diff options
author | Jean Michel-Lemieux | 2004-02-26 16:36:39 +0000 |
---|---|---|
committer | Jean Michel-Lemieux | 2004-02-26 16:36:39 +0000 |
commit | 5c4d9603c3c36a1b4d1817a30b719ef153e15064 (patch) | |
tree | 75b85d4c21ec1019e9e7cc05da90d70c4334775a /bundles | |
parent | 83fd74247ac8a6bbd4eaa7cfa35f9878efd23f2e (diff) | |
download | eclipse.platform.team-5c4d9603c3c36a1b4d1817a30b719ef153e15064.tar.gz eclipse.platform.team-5c4d9603c3c36a1b4d1817a30b719ef153e15064.tar.xz eclipse.platform.team-5c4d9603c3c36a1b4d1817a30b719ef153e15064.zip |
Adding updating of compare editors when local resource changes. Not finished though.
Diffstat (limited to 'bundles')
2 files changed, 27 insertions, 17 deletions
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/viewers/SyncInfoCompareInput.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/viewers/SyncInfoCompareInput.java index f22d757d1..3b95a0f5a 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/viewers/SyncInfoCompareInput.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/viewers/SyncInfoCompareInput.java @@ -19,6 +19,7 @@ import org.eclipse.compare.IContentChangeListener; import org.eclipse.compare.IContentChangeNotifier; import org.eclipse.compare.ITypedElement; import org.eclipse.compare.structuremergeviewer.DiffNode; +import org.eclipse.compare.structuremergeviewer.IDiffContainer; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceChangeEvent; import org.eclipse.core.resources.IResourceChangeListener; @@ -64,11 +65,20 @@ import org.eclipse.ui.progress.UIJob; */ public final class SyncInfoCompareInput extends CompareEditorInput implements IResourceChangeListener { - private SyncInfoModelElement node; + private MyDiffNode node; private String description; private IResource resource; private IEditorPart editor; + private static class MyDiffNode extends SyncInfoModelElement { + public MyDiffNode(IDiffContainer parent, SyncInfo info) { + super(parent, info); + } + public void fireChange() { + super.fireChange(); + } + } + /** * Creates a compare editor input based on an existing <code>SyncInfo</code>. * @@ -82,7 +92,7 @@ public final class SyncInfoCompareInput extends CompareEditorInput implements IR Assert.isNotNull(description); this.description = description; this.resource = sync.getLocal(); - this.node = new SyncInfoModelElement(null, sync); + this.node = new MyDiffNode(null, sync); initializeContentChangeListeners(); initializeResourceChangeListeners(); } @@ -110,17 +120,15 @@ public final class SyncInfoCompareInput extends CompareEditorInput implements IR if (delta != null) { IResourceDelta resourceDelta = delta.findMember(resource.getFullPath()); if (resourceDelta != null) { - if (resourceDelta.getKind() == IResourceDelta.CHANGED) { - if (editor != null && editor instanceof IReusableEditor) { - UIJob job = new UIJob("") { - public IStatus runInUIThread(IProgressMonitor monitor) { - CompareUI.reuseCompareEditor(SyncInfoCompareInput.this, (IReusableEditor) editor); - return Status.OK_STATUS; - } - }; - job.setSystem(true); - job.schedule(); - } + if (editor != null && editor instanceof IReusableEditor) { + UIJob job = new UIJob("") { + public IStatus runInUIThread(IProgressMonitor monitor) { + node.update(node.getSyncInfo()); + return Status.OK_STATUS; + } + }; + job.setSystem(true); + job.schedule(); } } } @@ -232,6 +240,7 @@ public final class SyncInfoCompareInput extends CompareEditorInput implements IR try { commit(pm, node); } finally { + node.fireChange(); setDirty(false); } } diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/viewers/SyncInfoModelElement.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/viewers/SyncInfoModelElement.java index 5ac2c32b9..57e445795 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/viewers/SyncInfoModelElement.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/viewers/SyncInfoModelElement.java @@ -67,6 +67,7 @@ public class SyncInfoModelElement extends SynchronizeModelElement { setRight(createRemoteTypeElement(info)); // base setAncestor(createBaseTypeElement(info)); + fireChange(); } /* (non-Javadoc) @@ -207,25 +208,25 @@ public class SyncInfoModelElement extends SynchronizeModelElement { * Create an ITypedElement for the given remote resource. The contents for the remote resource * will be retrieved from the given IStorage which is a local cache used to buffer the remote contents */ - private static ITypedElement createTypeElement(IResourceVariant remoteResource) { + protected static ITypedElement createTypeElement(IResourceVariant remoteResource) { return new RemoteResourceTypedElement(remoteResource); } - private static ITypedElement createRemoteTypeElement(SyncInfo info) { + protected static ITypedElement createRemoteTypeElement(SyncInfo info) { if(info != null && info.getRemote() != null) { return createTypeElement(info.getRemote()); } return null; } - private static ITypedElement createLocalTypeElement(SyncInfo info) { + protected static ITypedElement createLocalTypeElement(SyncInfo info) { if(info != null && info.getLocal() != null) { return createTypeElement(info.getLocal(), info.getKind()); } return null; } - private static ITypedElement createBaseTypeElement(SyncInfo info) { + protected static ITypedElement createBaseTypeElement(SyncInfo info) { if(info != null && info.getBase() != null) { return createTypeElement(info.getBase()); } |