diff options
author | Darin Wright | 2004-05-05 16:30:05 +0000 |
---|---|---|
committer | Darin Wright | 2004-05-05 16:30:05 +0000 |
commit | 8d8d898e5eb85b2c5e4474f420f57912c20c9dbf (patch) | |
tree | df99a5e35bd06b2a6d4687471a0962715d8eadb5 /org.eclipse.debug.ui/ui | |
parent | 6612568332a0d12cb18b94fed3491c7c439a8427 (diff) | |
download | eclipse.platform.debug-8d8d898e5eb85b2c5e4474f420f57912c20c9dbf.tar.gz eclipse.platform.debug-8d8d898e5eb85b2c5e4474f420f57912c20c9dbf.tar.xz eclipse.platform.debug-8d8d898e5eb85b2c5e4474f420f57912c20c9dbf.zip |
Bug 59319 - make scroll lock global to all process consoles
Diffstat (limited to 'org.eclipse.debug.ui/ui')
5 files changed, 41 insertions, 10 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPlugin.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPlugin.java index 49e0e73b6..0c9fd9804 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPlugin.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPlugin.java @@ -366,6 +366,7 @@ public class DebugUIPlugin extends AbstractUIPlugin implements ILaunchListener { prefs.setDefault(IDebugUIConstants.PREF_SKIP_BREAKPOINTS_DURING_RUN_TO_LINE, false); prefs.setDefault(IInternalDebugUIConstants.PREF_RELAUNCH_IN_DEBUG_MODE, MessageDialogWithToggle.PROMPT); prefs.setDefault(IInternalDebugUIConstants.PREF_CONTINUE_WITH_COMPILE_ERROR, MessageDialogWithToggle.PROMPT); + prefs.setDefault(IInternalDebugUIConstants.PREF_CONSOLE_SCROLL_LOCK, false); //ConsolePreferencePage prefs.setDefault(IDebugPreferenceConstants.CONSOLE_WRAP, false); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/IInternalDebugUIConstants.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/IInternalDebugUIConstants.java index baa64a734..b9dfc20c5 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/IInternalDebugUIConstants.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/IInternalDebugUIConstants.java @@ -196,6 +196,11 @@ public interface IInternalDebugUIConstants { */ public final static String FONT_NAME = IDebugUIConstants.PLUGIN_ID + ".MemoryViewTableFont"; //$NON-NLS-1$ + /** + * Boolean preference for console scroll lock toggle state. + */ + public static final String PREF_CONSOLE_SCROLL_LOCK = IDebugUIConstants.PLUGIN_ID + ".console_scroll_lock"; //$NON-NLS-1$ + public final static int BYTES_PER_LINE = 16; // number of bytes per line public final static int CHAR_PER_BYTE = 2; // number of characters to represent one byte public final static int BYTE_PER_CELL = 4; // number of bytes per cell diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleViewer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleViewer.java index 4d1b70ca8..d5d722f2b 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleViewer.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleViewer.java @@ -12,6 +12,7 @@ package org.eclipse.debug.internal.ui.views.console; import org.eclipse.debug.internal.ui.DebugUIPlugin; +import org.eclipse.debug.internal.ui.IInternalDebugUIConstants; import org.eclipse.debug.internal.ui.preferences.IDebugPreferenceConstants; import org.eclipse.debug.ui.console.IConsoleColorProvider; import org.eclipse.debug.ui.console.IConsoleHyperlink; @@ -190,6 +191,8 @@ public class ConsoleViewer extends TextViewer implements IPropertyChangeListener getTextWidget().setFont(JFaceResources.getFont(IConsoleConstants.CONSOLE_FONT)); } else if (propertyName.equals(IDebugPreferenceConstants.CONSOLE_TAB_WIDTH)) { getTextWidget().setTabs(DebugUIPlugin.getDefault().getPluginPreferences().getInt(IDebugPreferenceConstants.CONSOLE_TAB_WIDTH)); + } else if (propertyName.equals(IInternalDebugUIConstants.PREF_CONSOLE_SCROLL_LOCK)) { + setAutoScroll(DebugUIPlugin.getDefault().getPluginPreferences().getBoolean(IInternalDebugUIConstants.PREF_CONSOLE_SCROLL_LOCK)); } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ProcessConsolePage.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ProcessConsolePage.java index b54b4c23a..cf58a2bb2 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ProcessConsolePage.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ProcessConsolePage.java @@ -16,7 +16,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.ResourceBundle; - import org.eclipse.core.runtime.IAdaptable; import org.eclipse.debug.core.DebugEvent; import org.eclipse.debug.core.DebugPlugin; @@ -24,6 +23,7 @@ import org.eclipse.debug.core.IDebugEventSetListener; import org.eclipse.debug.core.model.IDebugTarget; import org.eclipse.debug.core.model.IProcess; import org.eclipse.debug.internal.ui.DebugUIPlugin; +import org.eclipse.debug.internal.ui.IInternalDebugUIConstants; import org.eclipse.debug.internal.ui.actions.FollowHyperlinkAction; import org.eclipse.debug.internal.ui.actions.KeyBindingFollowHyperlinkAction; import org.eclipse.debug.internal.ui.views.DebugUIViewsMessages; @@ -88,7 +88,7 @@ public class ProcessConsolePage implements IPageBookViewPage, ISelectionListener private ProcessConsole fConsole; // scroll lock - private boolean fIsLocked = false; + private boolean fIsLocked = DebugUIPlugin.getDefault().getPreferenceStore().getBoolean(IInternalDebugUIConstants.PREF_CONSOLE_SCROLL_LOCK); // text selection listener private ISelectionChangedListener fTextListener = new ISelectionChangedListener() { @@ -210,6 +210,10 @@ public class ProcessConsolePage implements IPageBookViewPage, ISelectionListener fRemoveTerminated.dispose(); } + if (fScrollLockAction != null) { + fScrollLockAction.dispose(); + } + if (fMenu != null && !fMenu.isDisposed()) { fMenu.dispose(); fMenu= null; @@ -287,7 +291,7 @@ public class ProcessConsolePage implements IPageBookViewPage, ISelectionListener fKeyBindingFollowLinkAction.setActionDefinitionId("org.eclipse.jdt.ui.edit.text.java.open.editor"); //$NON-NLS-1$ getConsoleView().getSite().getKeyBindingService().registerAction(fKeyBindingFollowLinkAction); - fScrollLockAction = new ScrollLockAction(getConsoleViewer()); + fScrollLockAction = new ScrollLockAction(); fScrollLockAction.setChecked(fIsLocked); getConsoleViewer().setAutoScroll(!fIsLocked); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ScrollLockAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ScrollLockAction.java index 71aef8eea..c07cb7c0e 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ScrollLockAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ScrollLockAction.java @@ -12,23 +12,26 @@ package org.eclipse.debug.internal.ui.views.console; import org.eclipse.debug.internal.ui.DebugPluginImages; +import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.internal.ui.IDebugHelpContextIds; import org.eclipse.debug.internal.ui.IInternalDebugUIConstants; import org.eclipse.debug.internal.ui.actions.ActionMessages; import org.eclipse.debug.ui.IDebugUIConstants; import org.eclipse.jface.action.Action; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.util.IPropertyChangeListener; +import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.ui.help.WorkbenchHelp; /** * Toggles console auto-scroll */ -public class ScrollLockAction extends Action { +public class ScrollLockAction extends Action implements IPropertyChangeListener { - private ConsoleViewer fConsoleViewer; - - public ScrollLockAction(ConsoleViewer viewer) { + private IPreferenceStore fStore = DebugUIPlugin.getDefault().getPreferenceStore(); + + public ScrollLockAction() { super(ActionMessages.getString("ScrollLockAction.Scroll_Lock_1")); //$NON-NLS-1$ - fConsoleViewer= viewer; setToolTipText(ActionMessages.getString("ScrollLockAction.Scroll_Lock_1")); //$NON-NLS-1$ setHoverImageDescriptor(DebugPluginImages.getImageDescriptor(IDebugUIConstants.IMG_LCL_LOCK)); setDisabledImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_DLCL_LOCK)); @@ -36,14 +39,29 @@ public class ScrollLockAction extends Action { WorkbenchHelp.setHelp( this, IDebugHelpContextIds.CONSOLE_SCROLL_LOCK_ACTION); - setChecked(false); + setChecked(DebugUIPlugin.getDefault().getPreferenceStore().getBoolean(IInternalDebugUIConstants.PREF_CONSOLE_SCROLL_LOCK)); + fStore.addPropertyChangeListener(this); } /** * @see org.eclipse.jface.action.IAction#run() */ public void run() { - fConsoleViewer.setAutoScroll(!isChecked()); + fStore.setValue(IInternalDebugUIConstants.PREF_CONSOLE_SCROLL_LOCK, isChecked()); + } + + public void dispose() { + fStore.removePropertyChangeListener(this); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent) + */ + public void propertyChange(PropertyChangeEvent event) { + if (event.getProperty().equals(IInternalDebugUIConstants.PREF_CONSOLE_SCROLL_LOCK)) { + setChecked(fStore.getBoolean(IInternalDebugUIConstants.PREF_CONSOLE_SCROLL_LOCK)); + } + } } |