Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarin Wright2004-05-05 16:30:05 +0000
committerDarin Wright2004-05-05 16:30:05 +0000
commit8d8d898e5eb85b2c5e4474f420f57912c20c9dbf (patch)
treedf99a5e35bd06b2a6d4687471a0962715d8eadb5 /org.eclipse.debug.ui/ui
parent6612568332a0d12cb18b94fed3491c7c439a8427 (diff)
downloadeclipse.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')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPlugin.java1
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/IInternalDebugUIConstants.java5
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleViewer.java3
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ProcessConsolePage.java10
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ScrollLockAction.java32
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));
+ }
+
}
}

Back to the top