diff options
author | Michael Valenta | 2007-04-11 20:04:50 +0000 |
---|---|---|
committer | Michael Valenta | 2007-04-11 20:04:50 +0000 |
commit | 0919b1863f14653df95cc581b66d44f1ce809d97 (patch) | |
tree | 5217234cdba6a0b8cba7c4cd70a579b978949ca7 /bundles/org.eclipse.compare | |
parent | 535d77e98c7ab94cf9e50a6221308942d05c88f6 (diff) | |
download | eclipse.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')
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 + } + +} |