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 | |
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')
2 files changed, 41 insertions, 19 deletions
diff --git a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/AbstractManager.java b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/AbstractManager.java index 59cbd88ecb..ef1d1a8db2 100644 --- a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/AbstractManager.java +++ b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/AbstractManager.java @@ -12,6 +12,7 @@ package org.eclipse.emf.cdo.internal.explorer; import org.eclipse.emf.cdo.explorer.CDOExplorerElement; import org.eclipse.emf.cdo.explorer.CDOExplorerManager; +import org.eclipse.emf.cdo.explorer.CDOExplorerManager.ElementsChangedEvent.StructuralImpact; import org.eclipse.emf.cdo.internal.explorer.bundle.OM; import org.eclipse.net4j.util.AdapterUtil; @@ -123,17 +124,14 @@ public abstract class AbstractManager<T extends CDOExplorerElement> extends SetC protected abstract T createElement(String type); - public void fireElementChangedEvent( - org.eclipse.emf.cdo.explorer.CDOExplorerManager.ElementsChangedEvent.StructuralImpact structuralImpact, - Object changedElement) + public void fireElementChangedEvent(StructuralImpact structuralImpact, Object changedElement) { fireEvent(new ElementsChangedImpl(this, structuralImpact, Collections.singleton(changedElement))); } public void fireElementsChangedEvent(Collection<Object> changedElements) { - fireEvent(new ElementsChangedImpl(this, - org.eclipse.emf.cdo.explorer.CDOExplorerManager.ElementsChangedEvent.StructuralImpact.NONE, changedElements)); + fireEvent(new ElementsChangedImpl(this, StructuralImpact.NONE, changedElements)); } public static Properties loadProperties(File folder, String fileName) @@ -172,12 +170,11 @@ public abstract class AbstractManager<T extends CDOExplorerElement> extends SetC { private static final long serialVersionUID = 1L; - private final org.eclipse.emf.cdo.explorer.CDOExplorerManager.ElementsChangedEvent.StructuralImpact structuralImpact; + private final StructuralImpact structuralImpact; private final Collection<Object> changedElements; - public ElementsChangedImpl(CDOExplorerManager<?> manager, - org.eclipse.emf.cdo.explorer.CDOExplorerManager.ElementsChangedEvent.StructuralImpact structuralImpact, + public ElementsChangedImpl(CDOExplorerManager<?> manager, StructuralImpact structuralImpact, Collection<Object> changedElements) { super(manager); @@ -191,7 +188,7 @@ public abstract class AbstractManager<T extends CDOExplorerElement> extends SetC return (CDOExplorerManager<?>)super.getSource(); } - public org.eclipse.emf.cdo.explorer.CDOExplorerManager.ElementsChangedEvent.StructuralImpact getStructuralImpact() + public StructuralImpact getStructuralImpact() { return structuralImpact; } 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) |