Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Michel-Lemieux2004-02-26 16:36:39 +0000
committerJean Michel-Lemieux2004-02-26 16:36:39 +0000
commit5c4d9603c3c36a1b4d1817a30b719ef153e15064 (patch)
tree75b85d4c21ec1019e9e7cc05da90d70c4334775a /bundles
parent83fd74247ac8a6bbd4eaa7cfa35f9878efd23f2e (diff)
downloadeclipse.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')
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/viewers/SyncInfoCompareInput.java35
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/viewers/SyncInfoModelElement.java9
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());
}

Back to the top