Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2007-04-11 20:04:50 +0000
committerMichael Valenta2007-04-11 20:04:50 +0000
commit0919b1863f14653df95cc581b66d44f1ce809d97 (patch)
tree5217234cdba6a0b8cba7c4cd70a579b978949ca7 /bundles/org.eclipse.compare
parent535d77e98c7ab94cf9e50a6221308942d05c88f6 (diff)
downloadeclipse.platform.team-0919b1863f14653df95cc581b66d44f1ce809d97.tar.gz
eclipse.platform.team-0919b1863f14653df95cc581b66d44f1ce809d97.tar.xz
eclipse.platform.team-0919b1863f14653df95cc581b66d44f1ce809d97.zip
Bug 181260 Compare viewers should bind command for Show Line Numbers
Diffstat (limited to 'bundles/org.eclipse.compare')
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java9
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java6
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowWhitespaceAction.java48
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextEditorPropertyAction.java76
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java9
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java6
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowWhitespaceAction.java48
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextEditorPropertyAction.java76
8 files changed, 184 insertions, 94 deletions
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
index 24731bac8..bb46f8008 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
@@ -285,6 +285,7 @@ public class TextMergeViewer extends ContentMergeViewer implements IAdaptable {
private ActionContributionItem fPreviousChange;
private ShowWhitespaceAction showWhitespaceAction;
private InternalOutlineViewerCreator fOutlineViewerCreator;
+ private TextEditorPropertyAction toggleLineNumbersAction;
private final class InternalOutlineViewerCreator extends OutlineViewerCreator implements ISelectionChangedListener {
public Viewer findStructureViewer(Viewer oldViewer,
@@ -1759,6 +1760,9 @@ public class TextMergeViewer extends ContentMergeViewer implements IAdaptable {
if (showWhitespaceAction != null)
showWhitespaceAction.dispose();
+ if (toggleLineNumbersAction != null)
+ toggleLineNumbersAction.dispose();
+
super.handleDispose(event);
}
@@ -3877,6 +3881,11 @@ public class TextMergeViewer extends ContentMergeViewer implements IAdaptable {
});
Utilities.registerAction(fHandlerService, showWhitespaceAction, ITextEditorActionDefinitionIds.SHOW_WHITESPACE_CHARACTERS, fActivations);
+ toggleLineNumbersAction = new TextEditorPropertyAction(new MergeSourceViewer[] {
+ fLeft, fRight, fAncestor
+ }, AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER);
+ Utilities.registerAction(fHandlerService, toggleLineNumbersAction, ITextEditorActionDefinitionIds.LINENUMBER_TOGGLE, fActivations);
+
IAction findAction = new Action() {
public void run() {
if (fFocusPart != null) {
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java
index 3e647d3ca..160c24046 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java
@@ -497,7 +497,7 @@ public class MergeSourceViewer extends SourceViewer
if(key.equals(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER)){
boolean b= EditorsUI.getPreferenceStore().getBoolean(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER);
if (b != fShowLineNumber){
- toogleLineNumberRuler();
+ toggleLineNumberRuler();
}
}
}
@@ -525,9 +525,9 @@ public class MergeSourceViewer extends SourceViewer
}
/**
- * Toogles line number ruler column.
+ * Toggles line number ruler column.
*/
- private void toogleLineNumberRuler()
+ private void toggleLineNumberRuler()
{
fShowLineNumber=!fShowLineNumber;
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowWhitespaceAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowWhitespaceAction.java
index 237b83430..74307d5f7 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowWhitespaceAction.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowWhitespaceAction.java
@@ -12,49 +12,19 @@ package org.eclipse.compare.internal;
import java.util.*;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.WhitespaceCharacterPainter;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.editors.text.EditorsUI;
import org.eclipse.ui.texteditor.AbstractTextEditor;
-public class ShowWhitespaceAction extends Action implements IPropertyChangeListener {
+public class ShowWhitespaceAction extends TextEditorPropertyAction {
- private MergeSourceViewer[] viewers;
private Map painters = new HashMap();
private boolean isWhitespaceShowing;
- private IPreferenceStore store;
public ShowWhitespaceAction(MergeSourceViewer[] viewers) {
- super(null, IAction.AS_CHECK_BOX);
- this.viewers = viewers;
- this.store = EditorsUI.getPreferenceStore();
- if (store != null)
- store.addPropertyChangeListener(this);
- synchronizeWithPreference();
+ super(viewers, AbstractTextEditor.PREFERENCE_SHOW_WHITESPACE_CHARACTERS);
}
- private void synchronizeWithPreference() {
- boolean checked = false;
- if (store != null) {
- checked = store.getBoolean(AbstractTextEditor.PREFERENCE_SHOW_WHITESPACE_CHARACTERS);
- }
- if (checked != isChecked()) {
- toggleState(checked);
- setChecked(checked);
- }
- }
-
- public void run() {
- toggleState(isChecked());
- if (store != null)
- store.setValue(AbstractTextEditor.PREFERENCE_SHOW_WHITESPACE_CHARACTERS, isChecked());
- }
-
- private void toggleState(boolean checked) {
+ protected void toggleState(boolean checked) {
if (checked) {
showWhitespace();
} else {
@@ -66,6 +36,7 @@ public class ShowWhitespaceAction extends Action implements IPropertyChangeListe
if (isWhitespaceShowing)
return;
try {
+ MergeSourceViewer[] viewers = getViewers();
for (int i = 0; i < viewers.length; i++) {
MergeSourceViewer viewer = viewers[i];
WhitespaceCharacterPainter painter= new WhitespaceCharacterPainter(viewer);
@@ -89,16 +60,5 @@ public class ShowWhitespaceAction extends Action implements IPropertyChangeListe
painters.clear();
isWhitespaceShowing = false;
}
-
- public void propertyChange(PropertyChangeEvent event) {
- if (event.getProperty().equals(AbstractTextEditor.PREFERENCE_SHOW_WHITESPACE_CHARACTERS)) {
- synchronizeWithPreference();
- }
- }
-
- public void dispose() {
- if (store != null)
- store.removePropertyChangeListener(this);
- }
}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextEditorPropertyAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextEditorPropertyAction.java
new file mode 100644
index 000000000..57734ab53
--- /dev/null
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextEditorPropertyAction.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.compare.internal;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.ui.editors.text.EditorsUI;
+
+public class TextEditorPropertyAction extends Action implements IPropertyChangeListener {
+
+ private final MergeSourceViewer[] viewers;
+ private final String preferenceKey;
+ private IPreferenceStore store;
+
+ public TextEditorPropertyAction(MergeSourceViewer[] viewers, String preferenceKey) {
+ super(null, IAction.AS_CHECK_BOX);
+ this.viewers = viewers;
+ this.preferenceKey = preferenceKey;
+ this.store = EditorsUI.getPreferenceStore();
+ if (store != null)
+ store.addPropertyChangeListener(this);
+ synchronizeWithPreference();
+ }
+
+ public MergeSourceViewer[] getViewers() {
+ return viewers;
+ }
+
+ public void propertyChange(PropertyChangeEvent event) {
+ if (event.getProperty().equals(getPreferenceKey())) {
+ synchronizeWithPreference();
+ }
+ }
+
+ private void synchronizeWithPreference() {
+ boolean checked = false;
+ if (store != null) {
+ checked = store.getBoolean(getPreferenceKey());
+ }
+ if (checked != isChecked()) {
+ toggleState(checked);
+ setChecked(checked);
+ }
+ }
+
+ public String getPreferenceKey() {
+ return preferenceKey;
+ }
+
+ public void run() {
+ toggleState(isChecked());
+ if (store != null)
+ store.setValue(getPreferenceKey(), isChecked());
+ }
+
+ public void dispose() {
+ if (store != null)
+ store.removePropertyChangeListener(this);
+ }
+
+ protected void toggleState(boolean checked) {
+ // No-op by default
+ }
+
+}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
index 24731bac8..bb46f8008 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
@@ -285,6 +285,7 @@ public class TextMergeViewer extends ContentMergeViewer implements IAdaptable {
private ActionContributionItem fPreviousChange;
private ShowWhitespaceAction showWhitespaceAction;
private InternalOutlineViewerCreator fOutlineViewerCreator;
+ private TextEditorPropertyAction toggleLineNumbersAction;
private final class InternalOutlineViewerCreator extends OutlineViewerCreator implements ISelectionChangedListener {
public Viewer findStructureViewer(Viewer oldViewer,
@@ -1759,6 +1760,9 @@ public class TextMergeViewer extends ContentMergeViewer implements IAdaptable {
if (showWhitespaceAction != null)
showWhitespaceAction.dispose();
+ if (toggleLineNumbersAction != null)
+ toggleLineNumbersAction.dispose();
+
super.handleDispose(event);
}
@@ -3877,6 +3881,11 @@ public class TextMergeViewer extends ContentMergeViewer implements IAdaptable {
});
Utilities.registerAction(fHandlerService, showWhitespaceAction, ITextEditorActionDefinitionIds.SHOW_WHITESPACE_CHARACTERS, fActivations);
+ toggleLineNumbersAction = new TextEditorPropertyAction(new MergeSourceViewer[] {
+ fLeft, fRight, fAncestor
+ }, AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER);
+ Utilities.registerAction(fHandlerService, toggleLineNumbersAction, ITextEditorActionDefinitionIds.LINENUMBER_TOGGLE, fActivations);
+
IAction findAction = new Action() {
public void run() {
if (fFocusPart != null) {
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java
index 3e647d3ca..160c24046 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java
@@ -497,7 +497,7 @@ public class MergeSourceViewer extends SourceViewer
if(key.equals(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER)){
boolean b= EditorsUI.getPreferenceStore().getBoolean(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER);
if (b != fShowLineNumber){
- toogleLineNumberRuler();
+ toggleLineNumberRuler();
}
}
}
@@ -525,9 +525,9 @@ public class MergeSourceViewer extends SourceViewer
}
/**
- * Toogles line number ruler column.
+ * Toggles line number ruler column.
*/
- private void toogleLineNumberRuler()
+ private void toggleLineNumberRuler()
{
fShowLineNumber=!fShowLineNumber;
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowWhitespaceAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowWhitespaceAction.java
index 237b83430..74307d5f7 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowWhitespaceAction.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowWhitespaceAction.java
@@ -12,49 +12,19 @@ package org.eclipse.compare.internal;
import java.util.*;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.WhitespaceCharacterPainter;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.editors.text.EditorsUI;
import org.eclipse.ui.texteditor.AbstractTextEditor;
-public class ShowWhitespaceAction extends Action implements IPropertyChangeListener {
+public class ShowWhitespaceAction extends TextEditorPropertyAction {
- private MergeSourceViewer[] viewers;
private Map painters = new HashMap();
private boolean isWhitespaceShowing;
- private IPreferenceStore store;
public ShowWhitespaceAction(MergeSourceViewer[] viewers) {
- super(null, IAction.AS_CHECK_BOX);
- this.viewers = viewers;
- this.store = EditorsUI.getPreferenceStore();
- if (store != null)
- store.addPropertyChangeListener(this);
- synchronizeWithPreference();
+ super(viewers, AbstractTextEditor.PREFERENCE_SHOW_WHITESPACE_CHARACTERS);
}
- private void synchronizeWithPreference() {
- boolean checked = false;
- if (store != null) {
- checked = store.getBoolean(AbstractTextEditor.PREFERENCE_SHOW_WHITESPACE_CHARACTERS);
- }
- if (checked != isChecked()) {
- toggleState(checked);
- setChecked(checked);
- }
- }
-
- public void run() {
- toggleState(isChecked());
- if (store != null)
- store.setValue(AbstractTextEditor.PREFERENCE_SHOW_WHITESPACE_CHARACTERS, isChecked());
- }
-
- private void toggleState(boolean checked) {
+ protected void toggleState(boolean checked) {
if (checked) {
showWhitespace();
} else {
@@ -66,6 +36,7 @@ public class ShowWhitespaceAction extends Action implements IPropertyChangeListe
if (isWhitespaceShowing)
return;
try {
+ MergeSourceViewer[] viewers = getViewers();
for (int i = 0; i < viewers.length; i++) {
MergeSourceViewer viewer = viewers[i];
WhitespaceCharacterPainter painter= new WhitespaceCharacterPainter(viewer);
@@ -89,16 +60,5 @@ public class ShowWhitespaceAction extends Action implements IPropertyChangeListe
painters.clear();
isWhitespaceShowing = false;
}
-
- public void propertyChange(PropertyChangeEvent event) {
- if (event.getProperty().equals(AbstractTextEditor.PREFERENCE_SHOW_WHITESPACE_CHARACTERS)) {
- synchronizeWithPreference();
- }
- }
-
- public void dispose() {
- if (store != null)
- store.removePropertyChangeListener(this);
- }
}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextEditorPropertyAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextEditorPropertyAction.java
new file mode 100644
index 000000000..57734ab53
--- /dev/null
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextEditorPropertyAction.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.compare.internal;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.ui.editors.text.EditorsUI;
+
+public class TextEditorPropertyAction extends Action implements IPropertyChangeListener {
+
+ private final MergeSourceViewer[] viewers;
+ private final String preferenceKey;
+ private IPreferenceStore store;
+
+ public TextEditorPropertyAction(MergeSourceViewer[] viewers, String preferenceKey) {
+ super(null, IAction.AS_CHECK_BOX);
+ this.viewers = viewers;
+ this.preferenceKey = preferenceKey;
+ this.store = EditorsUI.getPreferenceStore();
+ if (store != null)
+ store.addPropertyChangeListener(this);
+ synchronizeWithPreference();
+ }
+
+ public MergeSourceViewer[] getViewers() {
+ return viewers;
+ }
+
+ public void propertyChange(PropertyChangeEvent event) {
+ if (event.getProperty().equals(getPreferenceKey())) {
+ synchronizeWithPreference();
+ }
+ }
+
+ private void synchronizeWithPreference() {
+ boolean checked = false;
+ if (store != null) {
+ checked = store.getBoolean(getPreferenceKey());
+ }
+ if (checked != isChecked()) {
+ toggleState(checked);
+ setChecked(checked);
+ }
+ }
+
+ public String getPreferenceKey() {
+ return preferenceKey;
+ }
+
+ public void run() {
+ toggleState(isChecked());
+ if (store != null)
+ store.setValue(getPreferenceKey(), isChecked());
+ }
+
+ public void dispose() {
+ if (store != null)
+ store.removePropertyChangeListener(this);
+ }
+
+ protected void toggleState(boolean checked) {
+ // No-op by default
+ }
+
+}

Back to the top