diff options
author | Eike Stepper | 2015-02-22 16:21:40 +0000 |
---|---|---|
committer | Eike Stepper | 2015-02-23 05:49:06 +0000 |
commit | 9c12b9143fadefb1fe0543d6615a55a5807c0c1a (patch) | |
tree | 888a93f6f7e7034124183ace5130e5a5fb2cc8f3 /plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutImpl.java | |
parent | d1925e4c2974aa288f1d8dea7a1d3922fcaecc1c (diff) | |
download | cdo-9c12b9143fadefb1fe0543d6615a55a5807c0c1a.tar.gz cdo-9c12b9143fadefb1fe0543d6615a55a5807c0c1a.tar.xz cdo-9c12b9143fadefb1fe0543d6615a55a5807c0c1a.zip |
[458349] Consolidate UI
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=458349
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutImpl.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutImpl.java | 45 |
1 files changed, 35 insertions, 10 deletions
diff --git a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutImpl.java b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutImpl.java index 70d901a7e6..e8de601a9f 100644 --- a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutImpl.java +++ b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutImpl.java @@ -10,6 +10,7 @@ */ package org.eclipse.emf.cdo.internal.explorer.checkouts; +import org.eclipse.emf.cdo.CDOObject; import org.eclipse.emf.cdo.common.branch.CDOBranch; import org.eclipse.emf.cdo.common.branch.CDOBranchManager; import org.eclipse.emf.cdo.common.branch.CDOBranchPoint; @@ -23,9 +24,10 @@ import org.eclipse.emf.cdo.internal.explorer.bundle.OM; import org.eclipse.emf.cdo.internal.explorer.repositories.CDORepositoryImpl; import org.eclipse.emf.cdo.session.CDOSession; import org.eclipse.emf.cdo.transaction.CDOTransaction; -import org.eclipse.emf.cdo.transaction.CDOTransactionCommentator; +import org.eclipse.emf.cdo.util.CDOUtil; import org.eclipse.emf.cdo.util.ReadOnlyException; import org.eclipse.emf.cdo.view.CDOView; +import org.eclipse.emf.cdo.view.CDOViewLocksChangedEvent; import org.eclipse.net4j.util.ObjectUtil; import org.eclipse.net4j.util.container.IManagedContainer; @@ -345,6 +347,7 @@ public abstract class CDOCheckoutImpl extends AbstractElement implements CDOChec view = openView(session); view.addListener(viewListener); + configureView(view); rootObject = loadRootObject(); rootObject.eAdapters().add(this); @@ -458,13 +461,7 @@ public abstract class CDOCheckoutImpl extends AbstractElement implements CDOChec throw new ReadOnlyException("Checkout '" + getLabel() + "' is read-only"); } - CDOTransaction transaction = (CDOTransaction)doOpenView(false); - if (transaction != null) - { - new CDOTransactionCommentator(transaction); - } - - return transaction; + return (CDOTransaction)doOpenView(false); } protected CDOView doOpenView(boolean readOnly) @@ -479,10 +476,38 @@ public abstract class CDOCheckoutImpl extends AbstractElement implements CDOChec if (readOnly) { - return session.openView(branch); + return configureView(session.openView(branch)); } - return session.openTransaction(branch); + return configureView(session.openTransaction(branch)); + } + + protected CDOView configureView(final CDOView view) + { + CDOUtil.configureView(view); + view.addListener(new IListener() + { + public void notifyEvent(IEvent event) + { + if (event instanceof CDOViewLocksChangedEvent) + { + CDOViewLocksChangedEvent e = (CDOViewLocksChangedEvent)event; + List<CDOObject> objects = e.getAffectedObjects(view); + if (!objects.isEmpty()) + { + List<Object> elements = new ArrayList<Object>(); + for (CDOObject object : objects) + { + elements.add(object); + } + + getManager().fireElementsChangedEvent(elements); + } + } + } + }); + + return view; } public String getEditorID(CDOID objectID) |