Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowWhitespaceAction.java')
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowWhitespaceAction.java48
1 files changed, 4 insertions, 44 deletions
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);
- }
}

Back to the top