Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2006-09-06 19:56:31 +0000
committerMichael Valenta2006-09-06 19:56:31 +0000
commit88922198c6981a7515d1a7a3f4d827a48e6c485a (patch)
tree6561040fdb808d1859e7abd6c840916862b339a9 /bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java
parentc9009018da1c5151463cd7974515038b249878d5 (diff)
downloadeclipse.platform.team-88922198c6981a7515d1a7a3f4d827a48e6c485a.tar.gz
eclipse.platform.team-88922198c6981a7515d1a7a3f4d827a48e6c485a.tar.xz
eclipse.platform.team-88922198c6981a7515d1a7a3f4d827a48e6c485a.zip
Bug 127708 CompareEditInput flushes viewer when switching focus to right pane
Diffstat (limited to 'bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java')
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java65
1 files changed, 28 insertions, 37 deletions
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java
index afb70cc40..6c4641c4c 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java
@@ -11,32 +11,29 @@
package org.eclipse.compare;
import java.lang.reflect.InvocationTargetException;
-
import java.util.ArrayList;
import java.util.ResourceBundle;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.custom.BusyIndicator;
-
-import org.eclipse.core.resources.IFile;
+import org.eclipse.compare.internal.*;
+import org.eclipse.compare.structuremergeviewer.*;
import org.eclipse.core.runtime.*;
-import org.eclipse.ui.*;
-
-import org.eclipse.jface.util.*;
-import org.eclipse.jface.util.Assert;
import org.eclipse.core.runtime.ListenerList;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.viewers.*;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.resource.ImageDescriptor;
-
-import org.eclipse.compare.internal.*;
-import org.eclipse.compare.structuremergeviewer.*;
+import org.eclipse.jface.util.*;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.jface.viewers.*;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.BusyIndicator;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.*;
/**
@@ -188,22 +185,6 @@ public abstract class CompareEditorInput implements IEditorInput, IPropertyChang
);
return fNavigator;
}
- if (IFile.class.equals(adapter)) {
- IProgressMonitor pm= new NullProgressMonitor();
- // flush changes in any dirty viewer
- try {
- flushViewer(fStructureInputPane, pm);
- flushViewer(fStructurePane1, pm);
- flushViewer(fStructurePane2, pm);
- flushViewer(fContentInputPane, pm);
- } catch (CoreException e) {
- CompareUIPlugin.log(e);
- }
- IFile[] files= (IFile[]) getAdapter(IFile[].class);
- if (files != null && files.length > 0)
- return files[0]; // can only return one: limitation on IDE.saveAllEditors; see #64617
- return null;
- }
return null;
}
@@ -802,14 +783,24 @@ public abstract class CompareEditorInput implements IEditorInput, IPropertyChang
*/
public void saveChanges(IProgressMonitor pm) throws CoreException {
- // flush changes in any dirty viewer
- flushViewer(fStructureInputPane, pm);
- flushViewer(fStructurePane1, pm);
- flushViewer(fStructurePane2, pm);
- flushViewer(fContentInputPane, pm);
+ flushViewers(pm);
save(pm);
}
+
+ /**
+ * Flush the viewer contents into the input.
+ * @param monitor a progress monitor
+ * @throws CoreException
+ * @since 3.3
+ */
+ protected void flushViewers(IProgressMonitor monitor) throws CoreException {
+ // flush changes in any dirty viewer
+ flushViewer(fStructureInputPane, monitor);
+ flushViewer(fStructurePane1, monitor);
+ flushViewer(fStructurePane2, monitor);
+ flushViewer(fContentInputPane, monitor);
+ }
private static void flushViewer(CompareViewerSwitchingPane pane, IProgressMonitor pm) throws CoreException {
if (pane != null) {

Back to the top