From 45d38396b484f1c786a0f2f8d3b76d82eed34f59 Mon Sep 17 00:00:00 2001 From: Andre Weinand Date: Fri, 7 Jun 2002 11:14:42 +0000 Subject: #13730, #14952 --- .../org.eclipse.compare/buildnotes_compare.html | 28 +++++++++ .../org/eclipse/compare/CompareEditorInput.java | 72 +++++++++++++--------- .../compare/CompareViewerSwitchingPane.java | 50 +++++++++++---- .../eclipse/compare/internal/ResizableDialog.java | 15 +++-- .../org.eclipse.compare/buildnotes_compare.html | 28 +++++++++ .../org/eclipse/compare/CompareEditorInput.java | 72 +++++++++++++--------- .../compare/CompareViewerSwitchingPane.java | 50 +++++++++++---- .../eclipse/compare/internal/ResizableDialog.java | 15 +++-- 8 files changed, 230 insertions(+), 100 deletions(-) (limited to 'bundles') diff --git a/bundles/org.eclipse.compare/buildnotes_compare.html b/bundles/org.eclipse.compare/buildnotes_compare.html index 5d09e301c..4bb3c3545 100644 --- a/bundles/org.eclipse.compare/buildnotes_compare.html +++ b/bundles/org.eclipse.compare/buildnotes_compare.html @@ -11,6 +11,34 @@
CompareViewerSwitchingPane
as a child of the given parent and with the
* specified SWT style bits.
@@ -64,8 +72,11 @@ public abstract class CompareViewerSwitchingPane extends CompareViewerPane
public void widgetDisposed(DisposeEvent e) {
if (fViewer instanceof ISelectionProvider)
((ISelectionProvider) fViewer).removeSelectionChangedListener(CompareViewerSwitchingPane.this);
- if (fViewer instanceof StructuredViewer)
- ((StructuredViewer) fViewer).removeDoubleClickListener(CompareViewerSwitchingPane.this);
+ if (fViewer instanceof StructuredViewer) {
+ StructuredViewer sv= (StructuredViewer) fViewer;
+ sv.removeDoubleClickListener(CompareViewerSwitchingPane.this);
+ sv.removeOpenListener(fOpenHandler);
+ }
fViewer= null;
fInput= null;
fSelectionListeners= null;
@@ -96,8 +107,11 @@ public abstract class CompareViewerSwitchingPane extends CompareViewerPane
if (fViewer instanceof ISelectionProvider)
((ISelectionProvider) fViewer).removeSelectionChangedListener(this);
- if (fViewer instanceof StructuredViewer)
- ((StructuredViewer)fViewer).removeDoubleClickListener(this);
+ if (fViewer instanceof StructuredViewer) {
+ StructuredViewer sv= (StructuredViewer) fViewer;
+ sv.removeDoubleClickListener(this);
+ sv.removeOpenListener(fOpenHandler);
+ }
Control content= getContent();
setContent(null);
@@ -124,9 +138,13 @@ public abstract class CompareViewerSwitchingPane extends CompareViewerPane
if (fViewer instanceof ISelectionProvider)
((ISelectionProvider) fViewer).addSelectionChangedListener(this);
- if (fViewer instanceof StructuredViewer)
- ((StructuredViewer)fViewer).addDoubleClickListener(this);
+ if (fViewer instanceof StructuredViewer) {
+ StructuredViewer sv= (StructuredViewer) fViewer;
+ sv.addDoubleClickListener(this);
+ sv.addOpenListener(fOpenHandler);
+ }
+
if (oldEmpty != newEmpty) { // relayout my container
Composite parent= getParent();
if (parent instanceof Splitter)
@@ -158,15 +176,23 @@ public abstract class CompareViewerSwitchingPane extends CompareViewerPane
}
public void addDoubleClickListener(IDoubleClickListener l) {
- fOpenListeners.add(l);
+ fDoubleClickListener.add(l);
}
public void removeDoubleClickListener(IDoubleClickListener l) {
- fOpenListeners.remove(l);
+ fDoubleClickListener.remove(l);
+ }
+
+ public void addOpenListener(IOpenListener l) {
+ fOpenListener.add(l);
+ }
+
+ public void removeOpenListener(IOpenListener l) {
+ fOpenListener.remove(l);
}
public void doubleClick(DoubleClickEvent event) {
- Object[] listeners= fOpenListeners.getListeners();
+ Object[] listeners= fDoubleClickListener.getListeners();
for (int i= 0; i < listeners.length; i++)
((IDoubleClickListener) listeners[i]).doubleClick(event);
}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java
index 3f21c5ace..26e5fe34d 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java
@@ -45,14 +45,6 @@ public abstract class ResizableDialog extends Dialog {
final Shell s= getShell();
if (s != null) {
- s.addShellListener(
- new ShellAdapter() {
- public void shellClosed(ShellEvent arg0) {
- if (fNewBounds != null)
- saveBounds(fNewBounds);
- }
- }
- );
s.addControlListener(
new ControlListener() {
public void controlMoved(ControlEvent arg0) {
@@ -123,6 +115,13 @@ public abstract class ResizableDialog extends Dialog {
return loc;
}
+ public boolean close() {
+ boolean closed= super.close();
+ if (closed && fNewBounds != null)
+ saveBounds(fNewBounds);
+ return closed;
+ }
+
private void saveBounds(Rectangle bounds) {
IDialogSettings dialogBounds= fSettings.getSection(DIALOG_BOUNDS_KEY);
if (dialogBounds == null) {
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
index 5d09e301c..4bb3c3545 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
@@ -11,6 +11,34 @@
CompareViewerSwitchingPane
as a child of the given parent and with the
* specified SWT style bits.
@@ -64,8 +72,11 @@ public abstract class CompareViewerSwitchingPane extends CompareViewerPane
public void widgetDisposed(DisposeEvent e) {
if (fViewer instanceof ISelectionProvider)
((ISelectionProvider) fViewer).removeSelectionChangedListener(CompareViewerSwitchingPane.this);
- if (fViewer instanceof StructuredViewer)
- ((StructuredViewer) fViewer).removeDoubleClickListener(CompareViewerSwitchingPane.this);
+ if (fViewer instanceof StructuredViewer) {
+ StructuredViewer sv= (StructuredViewer) fViewer;
+ sv.removeDoubleClickListener(CompareViewerSwitchingPane.this);
+ sv.removeOpenListener(fOpenHandler);
+ }
fViewer= null;
fInput= null;
fSelectionListeners= null;
@@ -96,8 +107,11 @@ public abstract class CompareViewerSwitchingPane extends CompareViewerPane
if (fViewer instanceof ISelectionProvider)
((ISelectionProvider) fViewer).removeSelectionChangedListener(this);
- if (fViewer instanceof StructuredViewer)
- ((StructuredViewer)fViewer).removeDoubleClickListener(this);
+ if (fViewer instanceof StructuredViewer) {
+ StructuredViewer sv= (StructuredViewer) fViewer;
+ sv.removeDoubleClickListener(this);
+ sv.removeOpenListener(fOpenHandler);
+ }
Control content= getContent();
setContent(null);
@@ -124,9 +138,13 @@ public abstract class CompareViewerSwitchingPane extends CompareViewerPane
if (fViewer instanceof ISelectionProvider)
((ISelectionProvider) fViewer).addSelectionChangedListener(this);
- if (fViewer instanceof StructuredViewer)
- ((StructuredViewer)fViewer).addDoubleClickListener(this);
+ if (fViewer instanceof StructuredViewer) {
+ StructuredViewer sv= (StructuredViewer) fViewer;
+ sv.addDoubleClickListener(this);
+ sv.addOpenListener(fOpenHandler);
+ }
+
if (oldEmpty != newEmpty) { // relayout my container
Composite parent= getParent();
if (parent instanceof Splitter)
@@ -158,15 +176,23 @@ public abstract class CompareViewerSwitchingPane extends CompareViewerPane
}
public void addDoubleClickListener(IDoubleClickListener l) {
- fOpenListeners.add(l);
+ fDoubleClickListener.add(l);
}
public void removeDoubleClickListener(IDoubleClickListener l) {
- fOpenListeners.remove(l);
+ fDoubleClickListener.remove(l);
+ }
+
+ public void addOpenListener(IOpenListener l) {
+ fOpenListener.add(l);
+ }
+
+ public void removeOpenListener(IOpenListener l) {
+ fOpenListener.remove(l);
}
public void doubleClick(DoubleClickEvent event) {
- Object[] listeners= fOpenListeners.getListeners();
+ Object[] listeners= fDoubleClickListener.getListeners();
for (int i= 0; i < listeners.length; i++)
((IDoubleClickListener) listeners[i]).doubleClick(event);
}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java
index 3f21c5ace..26e5fe34d 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java
@@ -45,14 +45,6 @@ public abstract class ResizableDialog extends Dialog {
final Shell s= getShell();
if (s != null) {
- s.addShellListener(
- new ShellAdapter() {
- public void shellClosed(ShellEvent arg0) {
- if (fNewBounds != null)
- saveBounds(fNewBounds);
- }
- }
- );
s.addControlListener(
new ControlListener() {
public void controlMoved(ControlEvent arg0) {
@@ -123,6 +115,13 @@ public abstract class ResizableDialog extends Dialog {
return loc;
}
+ public boolean close() {
+ boolean closed= super.close();
+ if (closed && fNewBounds != null)
+ saveBounds(fNewBounds);
+ return closed;
+ }
+
private void saveBounds(Rectangle bounds) {
IDialogSettings dialogBounds= fSettings.getSection(DIALOG_BOUNDS_KEY);
if (dialogBounds == null) {
--
cgit v1.2.3