mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 14:42:11 +02:00
The Registers view has been contibuted and moved to the Eclipse platform.
This commit is contained in:
parent
fd4d49ba30
commit
4ad9d2c33e
11 changed files with 69 additions and 984 deletions
|
@ -1,3 +1,13 @@
|
|||
2004-03-31 Mikhail Khodjaiants
|
||||
The Registers view has been contibuted and moved to the Eclipse platform.
|
||||
* org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/registers/* - removed
|
||||
* org.eclipse.cdt.debug.ui/icons/full/cview16/registers_view.gif - removed
|
||||
* org.eclipse.cdt.debug.ui/icons/full/eview16/registers_view.gif - removed
|
||||
* RegistersViewPreferencePage.java - removed
|
||||
* CDebugUIPlugin.java
|
||||
* plugin.properties
|
||||
* plugin.xml
|
||||
|
||||
2004-03-23 Mikhail Khodjaiants
|
||||
Fix for Bug 55777: I18N: Memory View is missing key for number_of_columns.
|
||||
* CDebugUIPluginResources.properties
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 119 B |
Binary file not shown.
Before Width: | Height: | Size: 118 B |
|
@ -6,14 +6,12 @@
|
|||
pluginName=C/C++ Development Tools Debugger UI
|
||||
providerName=Eclipse.org
|
||||
|
||||
RegistersView.name=Registers
|
||||
MemoryView.name=Memory
|
||||
SharedLibrariesView.name=Shared Libraries
|
||||
SignalsView.name=Signals
|
||||
|
||||
CDebuggerPage.name=C Debugger UI Page
|
||||
MemoryPreferencePage.name=Memory View
|
||||
RegistersPreferencePage.name=Registers View
|
||||
CDebugPreferencePage.name=Debug
|
||||
SharedLibrariesPreferencePage.name=Shared Libraries View
|
||||
SourcePreferencePage.name=Source Code Locations
|
||||
|
|
|
@ -41,13 +41,6 @@
|
|||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.ui.views">
|
||||
<view
|
||||
name="%RegistersView.name"
|
||||
icon="icons/full/cview16/registers_view.gif"
|
||||
category="org.eclipse.debug.ui"
|
||||
class="org.eclipse.cdt.debug.internal.ui.views.registers.RegistersView"
|
||||
id="org.eclipse.cdt.debug.ui.RegistersView">
|
||||
</view>
|
||||
<view
|
||||
name="%MemoryView.name"
|
||||
icon="icons/full/cview16/memory_view.gif"
|
||||
|
@ -76,36 +69,31 @@
|
|||
targetID="org.eclipse.debug.ui.DebugPerspective">
|
||||
<view
|
||||
relative="org.eclipse.debug.ui.VariableView"
|
||||
id="org.eclipse.cdt.debug.ui.RegistersView"
|
||||
relationship="stack">
|
||||
</view>
|
||||
<viewShortcut
|
||||
id="org.eclipse.cdt.debug.ui.RegistersView">
|
||||
</viewShortcut>
|
||||
<view
|
||||
relative="org.eclipse.debug.ui.VariableView"
|
||||
id="org.eclipse.cdt.debug.ui.MemoryView"
|
||||
relationship="stack">
|
||||
relationship="stack"
|
||||
id="org.eclipse.cdt.debug.ui.MemoryView">
|
||||
</view>
|
||||
<viewShortcut
|
||||
id="org.eclipse.cdt.debug.ui.MemoryView">
|
||||
</viewShortcut>
|
||||
<view
|
||||
relative="org.eclipse.debug.ui.VariableView"
|
||||
id="org.eclipse.cdt.debug.ui.SharedLibrariesView"
|
||||
relationship="stack">
|
||||
relationship="stack"
|
||||
id="org.eclipse.cdt.debug.ui.SharedLibrariesView">
|
||||
</view>
|
||||
<viewShortcut
|
||||
id="org.eclipse.cdt.debug.ui.SharedLibrariesView">
|
||||
</viewShortcut>
|
||||
<view
|
||||
relative="org.eclipse.debug.ui.VariableView"
|
||||
id="org.eclipse.cdt.debug.ui.SignalsView"
|
||||
relationship="stack">
|
||||
relationship="stack"
|
||||
id="org.eclipse.cdt.debug.ui.SignalsView">
|
||||
</view>
|
||||
<viewShortcut
|
||||
id="org.eclipse.cdt.debug.ui.SignalsView">
|
||||
</viewShortcut>
|
||||
<viewShortcut
|
||||
id="org.eclipse.debug.ui.RegisterView">
|
||||
</viewShortcut>
|
||||
<actionSet
|
||||
id="org.eclipse.cdt.debug.ui.debugActionSet">
|
||||
</actionSet>
|
||||
|
@ -316,8 +304,8 @@
|
|||
</action>
|
||||
<action
|
||||
label="%ShowFullPathsAction.label"
|
||||
icon="icons/full/clcl16/show_paths.gif"
|
||||
style="toggle"
|
||||
icon="icons/full/clcl16/show_paths.gif"
|
||||
helpContextId="show_full_paths_action_context"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.ShowFullPathsAction"
|
||||
menubarPath="renderGroup"
|
||||
|
@ -331,8 +319,8 @@
|
|||
</action>
|
||||
<action
|
||||
label="%SwitchToDisassemblyAction.label"
|
||||
icon="icons/full/clcl16/disassembly.gif"
|
||||
style="toggle"
|
||||
icon="icons/full/clcl16/disassembly.gif"
|
||||
helpContextId="switch_to_disassembly_action_context"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.SwitchToDisassemblyActionDelegate"
|
||||
menubarPath="renderGroup"
|
||||
|
@ -347,8 +335,8 @@
|
|||
</action>
|
||||
<action
|
||||
label="%ShowDebuggerConsoleAction.label"
|
||||
icon="icons/full/clcl16/debugger_console.gif"
|
||||
style="toggle"
|
||||
icon="icons/full/clcl16/debugger_console.gif"
|
||||
helpContextId="show_debugger_console_action_context"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.DebuggerConsoleActionDelegate"
|
||||
menubarPath="renderGroup"
|
||||
|
@ -486,8 +474,8 @@
|
|||
id="org.eclipse.cdt.debug.ui.breakpointview.popupMenu">
|
||||
<action
|
||||
label="%ShowFullPathsAction.label"
|
||||
icon="icons/full/clcl16/show_paths.gif"
|
||||
style="toggle"
|
||||
icon="icons/full/clcl16/show_paths.gif"
|
||||
helpContextId="show_full_paths_action_context"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.ShowFullPathsAction"
|
||||
menubarPath="renderGroup"
|
||||
|
@ -762,8 +750,8 @@
|
|||
id="org.eclipse.cdt.debug.ui.SharedLibrariesViewPopupActions">
|
||||
<action
|
||||
label="%ShowFullPathsAction.label"
|
||||
icon="icons/full/clcl16/show_paths.gif"
|
||||
style="toggle"
|
||||
icon="icons/full/clcl16/show_paths.gif"
|
||||
helpContextId="show_full_paths_action_context"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.ShowFullPathsAction"
|
||||
menubarPath="renderGroup"
|
||||
|
@ -783,8 +771,8 @@
|
|||
label="%LoadSymbolsAction.label"
|
||||
icon="icons/full/clcl16/load_symbols_co.gif"
|
||||
helpContextId="load_symbols_action_context"
|
||||
tooltip="%LoadSymbolsAction.tooltip"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.LoadSymbolsActionDelegate"
|
||||
tooltip="%LoadSymbolsAction.tooltip"
|
||||
menubarPath="sharedLibrariesGroup"
|
||||
enablesFor="1"
|
||||
id="org.eclipse.cdt.debug.internal.ui.actions.LoadSymbolsActionDelegate">
|
||||
|
@ -803,8 +791,8 @@
|
|||
label="%SignalAction.label"
|
||||
icon="icons/full/clcl16/signal_co.gif"
|
||||
helpContextId="signal_action_context"
|
||||
tooltip="%SignalAction.tooltip"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.SignalActionDelegate"
|
||||
tooltip="%SignalAction.tooltip"
|
||||
menubarPath="additions"
|
||||
enablesFor="1"
|
||||
id="org.eclipse.cdt.debug.internal.ui.actions.SignalActionDelegate">
|
||||
|
@ -841,8 +829,8 @@
|
|||
<action
|
||||
label="%RestoreDefaultTypeAction.label"
|
||||
helpContextId="restore_default_type_action_context"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.RestoreDefaultTypeActionDelegate"
|
||||
tooltip="%RestoreDefaultTypeAction.tooltip"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.RestoreDefaultTypeActionDelegate"
|
||||
menubarPath="additions"
|
||||
enablesFor="1"
|
||||
id="org.eclipse.cdt.debug.internal.ui.actions.RestoreDefaultTypeActionDelegate">
|
||||
|
@ -857,8 +845,8 @@
|
|||
label="%CastToTypeAction.label"
|
||||
icon="icons/full/clcl16/casttotype_co.gif"
|
||||
helpContextId="cast_to_type_action_context"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.CastToTypeActionDelegate"
|
||||
tooltip="%CastToTypeAction.tooltip"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.CastToTypeActionDelegate"
|
||||
menubarPath="additions"
|
||||
enablesFor="1"
|
||||
id="org.eclipse.cdt.debug.internal.ui.actions.CastToTypeActionDelegate">
|
||||
|
@ -873,8 +861,8 @@
|
|||
label="%CastToArrayAction.label"
|
||||
icon="icons/full/clcl16/showasarray_co.gif"
|
||||
helpContextId="cast_to_array_action_context"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.CastToArrayActionDelegate"
|
||||
tooltip="%CastToArrayAction.tooltip"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.CastToArrayActionDelegate"
|
||||
menubarPath="additions"
|
||||
enablesFor="1"
|
||||
id="org.eclipse.cdt.debug.internal.ui.actions.CastToArrayActionDelegate">
|
||||
|
@ -893,8 +881,8 @@
|
|||
label="%ManageFunctionBreakpointAction.label"
|
||||
icon="icons/full/obj16/funbrkp_obj.gif"
|
||||
helpContextId="manage_function_breakpoint_action_context"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.ManageFunctionBreakpointActionDelegate"
|
||||
tooltip="%ManageFunctionBreakpointAction.tooltip"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.ManageFunctionBreakpointActionDelegate"
|
||||
menubarPath="additions"
|
||||
enablesFor="1"
|
||||
id="org.eclipse.cdt.debug.internal.ui.actions.ManageFunctionBreakpointActionDelegate">
|
||||
|
@ -913,8 +901,8 @@
|
|||
label="%DisableVariablesAction.label"
|
||||
icon="icons/full/clcl16/disabled_co.gif"
|
||||
helpContextId="disable_variables_action_context"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.DisableVariablesActionDelegate"
|
||||
tooltip="%DisableVariablesAction.tooltip"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.DisableVariablesActionDelegate"
|
||||
menubarPath="variableGroup"
|
||||
enablesFor="2+"
|
||||
id="org.eclipse.cdt.debug.internal.ui.actions.DisableVariablesActionDelegate">
|
||||
|
@ -926,8 +914,8 @@
|
|||
label="%EnableVariablesAction.label"
|
||||
icon="icons/full/clcl16/enabled_co.gif"
|
||||
helpContextId="enable_variables_action_context"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.EnableVariablesActionDelegate"
|
||||
tooltip="%EnableVariablesAction.tooltip"
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.EnableVariablesActionDelegate"
|
||||
menubarPath="variableGroup"
|
||||
enablesFor="2+"
|
||||
id="org.eclipse.cdt.debug.internal.ui.actions.EnableVariablesActionDelegate">
|
||||
|
@ -950,8 +938,8 @@
|
|||
disabledIcon="icons/full/dlcl16/restart.gif"
|
||||
enablesFor="1"
|
||||
icon="icons/full/elcl16/restart.gif"
|
||||
label="%RestartAction.label"
|
||||
helpContextId="restart_action_context"
|
||||
label="%RestartAction.label"
|
||||
tooltip="%RestartAction.tooltip">
|
||||
<enablement>
|
||||
<pluginState
|
||||
|
@ -968,8 +956,8 @@
|
|||
class="org.eclipse.cdt.debug.internal.ui.actions.ShowFullPathsAction"
|
||||
disabledIcon="icons/full/dlcl16/show_paths.gif"
|
||||
icon="icons/full/elcl16/show_parents.gif"
|
||||
label="%ShowFullPathsAction.label"
|
||||
helpContextId="show_full_paths_action_context"
|
||||
label="%ShowFullPathsAction.label"
|
||||
tooltip="%ShowFullPathsAction.tooltip">
|
||||
<enablement>
|
||||
<pluginState
|
||||
|
@ -987,8 +975,8 @@
|
|||
disabledIcon="icons/full/dlcl16/disassembly.gif"
|
||||
enablesFor="1"
|
||||
icon="icons/full/elcl16/disassembly.gif"
|
||||
label="%SwitchToDisassemblyAction.label"
|
||||
helpContextId="switch_to_disassembly_action_context"
|
||||
label="%SwitchToDisassemblyAction.label"
|
||||
tooltip="%SwitchToDisassemblyAction.tooltip">
|
||||
<enablement>
|
||||
<pluginState
|
||||
|
@ -1006,8 +994,8 @@
|
|||
disabledIcon="icons/full/dlcl16/debugger_console.gif"
|
||||
enablesFor="1"
|
||||
icon="icons/full/elcl16/debugger_console.gif"
|
||||
label="%ShowDebuggerConsoleAction.label"
|
||||
helpContextId="show_debugger_console_action_context"
|
||||
label="%ShowDebuggerConsoleAction.label"
|
||||
tooltip="%ShowDebuggerConsoleAction.tooltip">
|
||||
<enablement>
|
||||
<pluginState
|
||||
|
@ -1028,8 +1016,8 @@
|
|||
class="org.eclipse.cdt.debug.internal.ui.actions.ShowFullPathsAction"
|
||||
disabledIcon="icons/full/dlcl16/show_paths.gif"
|
||||
icon="icons/full/elcl16/show_parents.gif"
|
||||
label="%ShowFullPathsAction.label"
|
||||
helpContextId="show_full_paths_action_context"
|
||||
label="%ShowFullPathsAction.label"
|
||||
tooltip="%ShowFullPathsAction.tooltip">
|
||||
<enablement>
|
||||
<pluginState
|
||||
|
@ -1050,8 +1038,8 @@
|
|||
disabledIcon="icons/full/dlcl16/watch_globals.gif"
|
||||
enablesFor="1"
|
||||
icon="icons/full/elcl16/watch_globals.gif"
|
||||
label="%AddGlobalsAction.label"
|
||||
helpContextId="add_globals_action_context"
|
||||
label="%AddGlobalsAction.label"
|
||||
tooltip="%AddGlobalsAction.tooltip">
|
||||
<enablement>
|
||||
<pluginState
|
||||
|
@ -1072,8 +1060,8 @@
|
|||
class="org.eclipse.cdt.debug.internal.ui.actions.ShowFullPathsAction"
|
||||
disabledIcon="icons/full/dlcl16/show_paths.gif"
|
||||
icon="icons/full/elcl16/show_parents.gif"
|
||||
label="%ShowFullPathsAction.label"
|
||||
helpContextId="show_full_paths_action_context"
|
||||
label="%ShowFullPathsAction.label"
|
||||
tooltip="%ShowFullPathsAction.tooltip">
|
||||
<enablement>
|
||||
<pluginState
|
||||
|
@ -1163,20 +1151,20 @@
|
|||
<extension
|
||||
point="org.eclipse.debug.core.statusHandlers">
|
||||
<statusHandler
|
||||
code="10000"
|
||||
plugin="org.eclipse.cdt.debug.core"
|
||||
code="10000"
|
||||
class="org.eclipse.cdt.debug.internal.ui.QuestionStatusHandler"
|
||||
id="org.eclipse.cdt.debug.internal.ui.QuestionStatusHandler">
|
||||
</statusHandler>
|
||||
<statusHandler
|
||||
code="10001"
|
||||
plugin="org.eclipse.cdt.debug.core"
|
||||
code="10001"
|
||||
class="org.eclipse.cdt.debug.internal.ui.InfoStatusHandler"
|
||||
id="org.eclipse.cdt.debug.internal.ui.InfoStatusHandler">
|
||||
</statusHandler>
|
||||
<statusHandler
|
||||
code="10002"
|
||||
plugin="org.eclipse.cdt.debug.core"
|
||||
code="10002"
|
||||
class="org.eclipse.cdt.debug.internal.ui.ErrorStatusHandler"
|
||||
id="org.eclipse.cdt.debug.internal.ui.ErrorStatusHandler">
|
||||
</statusHandler>
|
||||
|
@ -1239,16 +1227,16 @@
|
|||
point="org.eclipse.ui.editors">
|
||||
<editor
|
||||
name="%DisassemblyEditor.name"
|
||||
extensions="dasm"
|
||||
icon="icons/full/obj16/disassembly_obj.gif"
|
||||
extensions="dasm"
|
||||
class="org.eclipse.cdt.debug.internal.ui.editors.DisassemblyEditor"
|
||||
id="org.eclipse.cdt.debug.ui.DisassemblyEditor">
|
||||
</editor>
|
||||
<editor
|
||||
name="%CDebugEditor.name"
|
||||
icon="icons/full/obj16/filenotfound_obj.gif"
|
||||
class="org.eclipse.cdt.debug.internal.ui.editors.CDebugEditor"
|
||||
contributorClass="org.eclipse.cdt.internal.ui.editor.CEditorActionContributor"
|
||||
class="org.eclipse.cdt.debug.internal.ui.editors.CDebugEditor"
|
||||
id="org.eclipse.cdt.debug.ui.editor.CDebugEditor">
|
||||
</editor>
|
||||
</extension>
|
||||
|
@ -1270,8 +1258,8 @@
|
|||
<context
|
||||
name="Debugging C/C++"
|
||||
description="Debugging C/C++ Programs"
|
||||
id="org.eclipse.cdt.debug.ui.debugging"
|
||||
parentId="org.eclipse.debug.ui.debugging">
|
||||
parentId="org.eclipse.debug.ui.debugging"
|
||||
id="org.eclipse.cdt.debug.ui.debugging">
|
||||
</context>
|
||||
</extension>
|
||||
<extension
|
||||
|
@ -1281,5 +1269,28 @@
|
|||
contextId="org.eclipse.cdt.debug.ui.debugging">
|
||||
</modelContextBinding>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.debug.ui.contextViewBindings">
|
||||
<contextViewBinding
|
||||
viewId="org.eclipse.cdt.debug.ui.MemoryView"
|
||||
contextId="org.eclipse.cdt.debug.ui.debugging"
|
||||
autoClose="false">
|
||||
</contextViewBinding>
|
||||
<contextViewBinding
|
||||
viewId="org.eclipse.cdt.debug.ui.SharedLibrariesView"
|
||||
contextId="org.eclipse.cdt.debug.ui.debugging"
|
||||
autoClose="false">
|
||||
</contextViewBinding>
|
||||
<contextViewBinding
|
||||
viewId="org.eclipse.cdt.debug.ui.SignalsView"
|
||||
contextId="org.eclipse.cdt.debug.ui.debugging"
|
||||
autoClose="false">
|
||||
</contextViewBinding>
|
||||
<contextViewBinding
|
||||
viewId="org.eclipse.debug.ui.RegistersView"
|
||||
contextId="org.eclipse.cdt.debug.ui.debugging"
|
||||
autoClose="false">
|
||||
</contextViewBinding>
|
||||
</extension>
|
||||
|
||||
</plugin>
|
||||
|
|
|
@ -1,122 +0,0 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
package org.eclipse.cdt.debug.internal.ui.preferences;
|
||||
|
||||
import org.eclipse.cdt.debug.core.CDebugCorePlugin;
|
||||
import org.eclipse.cdt.debug.core.ICDebugConstants;
|
||||
import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds;
|
||||
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
||||
import org.eclipse.cdt.utils.ui.controls.ControlFactory;
|
||||
import org.eclipse.jface.preference.ColorFieldEditor;
|
||||
import org.eclipse.jface.preference.FieldEditorPreferencePage;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.preference.PreferenceConverter;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.graphics.RGB;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.widgets.Button;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
import org.eclipse.ui.IWorkbench;
|
||||
import org.eclipse.ui.IWorkbenchPreferencePage;
|
||||
import org.eclipse.ui.help.WorkbenchHelp;
|
||||
|
||||
/**
|
||||
*
|
||||
* A page to set the preferences for the registers view
|
||||
*
|
||||
* @since Sep 16, 2002
|
||||
*/
|
||||
public class RegistersViewPreferencePage extends FieldEditorPreferencePage
|
||||
implements IWorkbenchPreferencePage
|
||||
{
|
||||
private Button fAutoRefreshField = null;
|
||||
|
||||
/**
|
||||
* Constructor for RegistersViewPreferencePage.
|
||||
* @param style
|
||||
*/
|
||||
public RegistersViewPreferencePage()
|
||||
{
|
||||
super( GRID );
|
||||
setDescription( CDebugUIPlugin.getResourceString("internal.ui.preferences.RegistersViewPreferencePage.Registers_View_Settings") ); //$NON-NLS-1$
|
||||
setPreferenceStore( CDebugUIPlugin.getDefault().getPreferenceStore() );
|
||||
}
|
||||
|
||||
/**
|
||||
* @see PreferencePage#createControl(Composite)
|
||||
*/
|
||||
public void createControl( Composite parent )
|
||||
{
|
||||
super.createControl( parent );
|
||||
WorkbenchHelp.setHelp( parent, ICDebugHelpContextIds.REGISTERS_PREFERENCE_PAGE );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
|
||||
*/
|
||||
protected void createFieldEditors()
|
||||
{
|
||||
addField( new ColorFieldEditor( ICDebugPreferenceConstants.CHANGED_REGISTER_RGB, CDebugUIPlugin.getResourceString("internal.ui.preferences.RegistersViewPreferencePage.Changed_register_value_color"), getFieldEditorParent() ) ); //$NON-NLS-1$
|
||||
createSpacer( getFieldEditorParent(), 2 );
|
||||
fAutoRefreshField = ControlFactory.createCheckBox( getFieldEditorParent(), CDebugUIPlugin.getResourceString("internal.ui.preferences.RegistersViewPreferencePage.Auto-Refresh_by_default") ); //$NON-NLS-1$
|
||||
fAutoRefreshField.setSelection( CDebugCorePlugin.getDefault().getPluginPreferences().getBoolean( ICDebugConstants.PREF_REGISTERS_AUTO_REFRESH ) );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(IWorkbench)
|
||||
*/
|
||||
public void init( IWorkbench workbench )
|
||||
{
|
||||
}
|
||||
|
||||
public static void initDefaults( IPreferenceStore store )
|
||||
{
|
||||
PreferenceConverter.setDefault( store,
|
||||
ICDebugPreferenceConstants.CHANGED_REGISTER_RGB,
|
||||
new RGB( 255, 0, 0 ) );
|
||||
CDebugCorePlugin.getDefault().getPluginPreferences().setDefault( ICDebugConstants.PREF_REGISTERS_AUTO_REFRESH, true );
|
||||
}
|
||||
|
||||
protected void createSpacer( Composite composite, int columnSpan )
|
||||
{
|
||||
Label label = new Label( composite, SWT.NONE );
|
||||
GridData gd = new GridData();
|
||||
gd.horizontalSpan = columnSpan;
|
||||
label.setLayoutData( gd );
|
||||
}
|
||||
|
||||
/**
|
||||
* @see IPreferencePage#performOk()
|
||||
*/
|
||||
public boolean performOk()
|
||||
{
|
||||
boolean ok = super.performOk();
|
||||
storeValues();
|
||||
CDebugUIPlugin.getDefault().savePluginPreferences();
|
||||
CDebugCorePlugin.getDefault().savePluginPreferences();
|
||||
return ok;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.PreferencePage#performDefaults()
|
||||
*/
|
||||
protected void performDefaults()
|
||||
{
|
||||
setDefaultValues();
|
||||
super.performDefaults();
|
||||
}
|
||||
|
||||
private void setDefaultValues()
|
||||
{
|
||||
fAutoRefreshField.setSelection( CDebugCorePlugin.getDefault().getPluginPreferences().getDefaultBoolean( ICDebugConstants.PREF_REGISTERS_AUTO_REFRESH ) );
|
||||
}
|
||||
|
||||
private void storeValues()
|
||||
{
|
||||
CDebugCorePlugin.getDefault().getPluginPreferences().setValue( ICDebugConstants.PREF_REGISTERS_AUTO_REFRESH, fAutoRefreshField.getSelection() );
|
||||
}
|
||||
}
|
|
@ -1,416 +0,0 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
package org.eclipse.cdt.debug.internal.ui.views.registers;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.eclipse.cdt.debug.core.ICRegisterManager;
|
||||
import org.eclipse.cdt.debug.internal.ui.CDebugImages;
|
||||
import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds;
|
||||
import org.eclipse.cdt.debug.internal.ui.actions.AutoRefreshAction;
|
||||
import org.eclipse.cdt.debug.internal.ui.actions.ChangeRegisterValueAction;
|
||||
import org.eclipse.cdt.debug.internal.ui.actions.RefreshAction;
|
||||
import org.eclipse.cdt.debug.internal.ui.actions.ShowRegisterTypesAction;
|
||||
import org.eclipse.cdt.debug.internal.ui.preferences.ICDebugPreferenceConstants;
|
||||
import org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler;
|
||||
import org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandlerView;
|
||||
import org.eclipse.cdt.debug.internal.ui.views.IDebugExceptionHandler;
|
||||
import org.eclipse.cdt.debug.internal.ui.views.ViewerState;
|
||||
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
||||
import org.eclipse.cdt.debug.ui.ICDebugUIConstants;
|
||||
import org.eclipse.debug.core.DebugException;
|
||||
import org.eclipse.debug.core.model.IRegister;
|
||||
import org.eclipse.debug.core.model.IStackFrame;
|
||||
import org.eclipse.debug.ui.DebugUITools;
|
||||
import org.eclipse.debug.ui.IDebugModelPresentation;
|
||||
import org.eclipse.debug.ui.IDebugUIConstants;
|
||||
import org.eclipse.jface.action.IAction;
|
||||
import org.eclipse.jface.action.IMenuManager;
|
||||
import org.eclipse.jface.action.IToolBarManager;
|
||||
import org.eclipse.jface.action.Separator;
|
||||
import org.eclipse.jface.util.IPropertyChangeListener;
|
||||
import org.eclipse.jface.util.PropertyChangeEvent;
|
||||
import org.eclipse.jface.viewers.IBaseLabelProvider;
|
||||
import org.eclipse.jface.viewers.IColorProvider;
|
||||
import org.eclipse.jface.viewers.IContentProvider;
|
||||
import org.eclipse.jface.viewers.ILabelProvider;
|
||||
import org.eclipse.jface.viewers.ILabelProviderListener;
|
||||
import org.eclipse.jface.viewers.ISelection;
|
||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
import org.eclipse.jface.viewers.TreeViewer;
|
||||
import org.eclipse.jface.viewers.Viewer;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.graphics.Color;
|
||||
import org.eclipse.swt.graphics.Image;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.ui.ISelectionListener;
|
||||
import org.eclipse.ui.IWorkbenchActionConstants;
|
||||
import org.eclipse.ui.IWorkbenchPart;
|
||||
import org.eclipse.ui.help.WorkbenchHelp;
|
||||
|
||||
/**
|
||||
*
|
||||
* This view shows registers and their values for a particular stack frame.
|
||||
*
|
||||
* @since Jul 23, 2002
|
||||
*/
|
||||
public class RegistersView extends AbstractDebugEventHandlerView
|
||||
implements ISelectionListener,
|
||||
IPropertyChangeListener,
|
||||
IDebugExceptionHandler
|
||||
{
|
||||
/**
|
||||
* A label provider that delegates to a debug model
|
||||
* presentation and adds coloring to registers to
|
||||
* reflect their changed state
|
||||
*/
|
||||
class VariablesViewLabelProvider implements ILabelProvider, IColorProvider
|
||||
{
|
||||
private IDebugModelPresentation fPresentation;
|
||||
|
||||
public VariablesViewLabelProvider( IDebugModelPresentation presentation )
|
||||
{
|
||||
fPresentation = presentation;
|
||||
}
|
||||
|
||||
public IDebugModelPresentation getPresentation()
|
||||
{
|
||||
return fPresentation;
|
||||
}
|
||||
|
||||
public Image getImage( Object element )
|
||||
{
|
||||
return fPresentation.getImage( element );
|
||||
}
|
||||
public String getText( Object element )
|
||||
{
|
||||
return fPresentation.getText( element );
|
||||
}
|
||||
public void addListener( ILabelProviderListener listener )
|
||||
{
|
||||
fPresentation.addListener( listener );
|
||||
}
|
||||
public void dispose()
|
||||
{
|
||||
fPresentation.dispose();
|
||||
}
|
||||
public boolean isLabelProperty( Object element, String property )
|
||||
{
|
||||
return fPresentation.isLabelProperty( element, property );
|
||||
}
|
||||
public void removeListener( ILabelProviderListener listener )
|
||||
{
|
||||
fPresentation.removeListener( listener );
|
||||
}
|
||||
|
||||
public Color getForeground( Object element )
|
||||
{
|
||||
if ( element instanceof IRegister )
|
||||
{
|
||||
IRegister register = (IRegister)element;
|
||||
try
|
||||
{
|
||||
if ( register.hasValueChanged() )
|
||||
{
|
||||
return CDebugUIPlugin.getPreferenceColor( ICDebugPreferenceConstants.CHANGED_REGISTER_RGB );
|
||||
}
|
||||
}
|
||||
catch( DebugException e )
|
||||
{
|
||||
CDebugUIPlugin.log( e );
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Color getBackground( Object element )
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The model presentation used as the label provider for the tree viewer.
|
||||
*/
|
||||
private IDebugModelPresentation fModelPresentation;
|
||||
|
||||
protected static final String VARIABLES_SELECT_ALL_ACTION = SELECT_ALL_ACTION + ".Registers"; //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* A map of register managers to <code>ViewerState</code>s.
|
||||
* Used to restore the expanded state of the registers view on
|
||||
* re-selection of the register manager. The cache is cleared on
|
||||
* a frame by frame basis when a thread/target is terminated.
|
||||
*/
|
||||
private HashMap fExpandedRegisters = new HashMap( 10 );
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#createViewer(Composite)
|
||||
*/
|
||||
protected Viewer createViewer( Composite parent )
|
||||
{
|
||||
CDebugUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener( this );
|
||||
|
||||
// add tree viewer
|
||||
final TreeViewer vv = new RegistersViewer( parent, SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL );
|
||||
vv.setContentProvider( createContentProvider() );
|
||||
vv.setLabelProvider( new VariablesViewLabelProvider( getModelPresentation() ) );
|
||||
vv.setUseHashlookup( true );
|
||||
setAction( SELECT_ALL_ACTION, getAction( VARIABLES_SELECT_ALL_ACTION ) );
|
||||
getViewSite().getActionBars().updateActionBars();
|
||||
|
||||
// listen to selection in debug view
|
||||
getSite().getPage().addSelectionListener( IDebugUIConstants.ID_DEBUG_VIEW, this );
|
||||
setEventHandler( createEventHandler( vv ) );
|
||||
|
||||
return vv;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#createActions()
|
||||
*/
|
||||
protected void createActions()
|
||||
{
|
||||
IAction action = new ShowRegisterTypesAction( this );
|
||||
setAction( "ShowTypeNames", action ); //$NON-NLS-1$
|
||||
|
||||
action = new ChangeRegisterValueAction( getViewer() );
|
||||
action.setEnabled( false );
|
||||
setAction( "ChangeRegisterValue", action ); //$NON-NLS-1$
|
||||
setAction( DOUBLE_CLICK_ACTION, action );
|
||||
|
||||
action = new AutoRefreshAction( getViewer(), CDebugUIPlugin.getResourceString("RegistersView.Auto_Refresh") ); //$NON-NLS-1$
|
||||
CDebugImages.setLocalImageDescriptors( action, CDebugImages.IMG_LCL_AUTO_REFRESH );
|
||||
action.setDescription( CDebugUIPlugin.getResourceString("RegistersView.Automatically_Refresh_Registers_View") ); //$NON-NLS-1$
|
||||
action.setToolTipText( CDebugUIPlugin.getResourceString("RegistersView.Auto_Refresh") ); //$NON-NLS-1$
|
||||
WorkbenchHelp.setHelp( action, ICDebugHelpContextIds.AUTO_REFRESH_REGISTERS_ACTION );
|
||||
action.setEnabled( false );
|
||||
setAction( "AutoRefresh", action ); //$NON-NLS-1$
|
||||
add( (AutoRefreshAction)action );
|
||||
|
||||
action = new RefreshAction( getViewer(), CDebugUIPlugin.getResourceString("RegistersView.Refresh") ); //$NON-NLS-1$
|
||||
CDebugImages.setLocalImageDescriptors( action, CDebugImages.IMG_LCL_REFRESH );
|
||||
action.setDescription( CDebugUIPlugin.getResourceString("RegistersView.Refresh_Registers_View") ); //$NON-NLS-1$
|
||||
action.setToolTipText( CDebugUIPlugin.getResourceString("RegistersView.Refresh") ); //$NON-NLS-1$
|
||||
WorkbenchHelp.setHelp( action, ICDebugHelpContextIds.REFRESH_REGISTERS_ACTION );
|
||||
action.setEnabled( false );
|
||||
setAction( "Refresh", action ); //$NON-NLS-1$
|
||||
add( (RefreshAction)action );
|
||||
|
||||
// set initial content here, as viewer has to be set
|
||||
setInitialContent();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#getHelpContextId()
|
||||
*/
|
||||
protected String getHelpContextId()
|
||||
{
|
||||
return ICDebugHelpContextIds.REGISTERS_VIEW;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#fillContextMenu(IMenuManager)
|
||||
*/
|
||||
protected void fillContextMenu( IMenuManager menu )
|
||||
{
|
||||
menu.add( new Separator( ICDebugUIConstants.EMPTY_REGISTER_GROUP ) );
|
||||
menu.add( new Separator( ICDebugUIConstants.REGISTER_GROUP ) );
|
||||
|
||||
menu.add( new Separator( IDebugUIConstants.EMPTY_RENDER_GROUP ) );
|
||||
menu.add( new Separator( IDebugUIConstants.RENDER_GROUP ) );
|
||||
|
||||
menu.add( new Separator( ICDebugUIConstants.EMPTY_REFRESH_GROUP ) );
|
||||
menu.add( new Separator( ICDebugUIConstants.REFRESH_GROUP ) );
|
||||
|
||||
menu.add( new Separator( IWorkbenchActionConstants.MB_ADDITIONS ) );
|
||||
|
||||
menu.appendToGroup( ICDebugUIConstants.REGISTER_GROUP, getAction( "ChangeRegisterValue" ) ); //$NON-NLS-1$
|
||||
// menu.appendToGroup( IDebugUIConstants.RENDER_GROUP, getAction( "ShowTypeNames" ) ); //$NON-NLS-1$
|
||||
menu.appendToGroup( ICDebugUIConstants.REFRESH_GROUP, getAction( "AutoRefresh" ) ); //$NON-NLS-1$
|
||||
menu.appendToGroup( ICDebugUIConstants.REFRESH_GROUP, getAction( "Refresh" ) ); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#configureToolBar(IToolBarManager)
|
||||
*/
|
||||
protected void configureToolBar( IToolBarManager tbm )
|
||||
{
|
||||
tbm.add( new Separator( this.getClass().getName() ) );
|
||||
|
||||
tbm.add( new Separator( ICDebugUIConstants.REFRESH_GROUP ) );
|
||||
tbm.add( getAction( "AutoRefresh" ) ); //$NON-NLS-1$
|
||||
tbm.add( getAction( "Refresh" ) ); //$NON-NLS-1$
|
||||
|
||||
tbm.add( new Separator( IDebugUIConstants.RENDER_GROUP ) );
|
||||
tbm.add( getAction( "ShowTypeNames" ) ); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.ISelectionListener#selectionChanged(IWorkbenchPart, ISelection)
|
||||
*/
|
||||
public void selectionChanged( IWorkbenchPart part, ISelection selection )
|
||||
{
|
||||
if ( selection instanceof IStructuredSelection )
|
||||
{
|
||||
setViewerInput( (IStructuredSelection)selection );
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(PropertyChangeEvent)
|
||||
*/
|
||||
public void propertyChange( PropertyChangeEvent event )
|
||||
{
|
||||
String propertyName= event.getProperty();
|
||||
if ( propertyName.equals( ICDebugPreferenceConstants.CHANGED_REGISTER_RGB ) )
|
||||
{
|
||||
getEventHandler().refresh();
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.debug.internal.ui.views.IDebugExceptionHandler#handleException(DebugException)
|
||||
*/
|
||||
public void handleException( DebugException e )
|
||||
{
|
||||
showMessage( e.getMessage() );
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove myself as a selection listener
|
||||
* and preference change listener.
|
||||
*
|
||||
* @see IWorkbenchPart#dispose()
|
||||
*/
|
||||
public void dispose()
|
||||
{
|
||||
fModelPresentation.dispose();
|
||||
getSite().getPage().removeSelectionListener( IDebugUIConstants.ID_DEBUG_VIEW, this );
|
||||
CDebugUIPlugin.getDefault().getPreferenceStore().removePropertyChangeListener( this );
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates this view's content provider.
|
||||
*
|
||||
* @return a content provider
|
||||
*/
|
||||
protected IContentProvider createContentProvider()
|
||||
{
|
||||
RegistersViewContentProvider cp = new RegistersViewContentProvider();
|
||||
cp.setExceptionHandler( this );
|
||||
return cp;
|
||||
}
|
||||
|
||||
protected IDebugModelPresentation getModelPresentation()
|
||||
{
|
||||
if ( fModelPresentation == null )
|
||||
{
|
||||
fModelPresentation = DebugUITools.newDebugModelPresentation();
|
||||
}
|
||||
return fModelPresentation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates this view's event handler.
|
||||
*
|
||||
* @param viewer the viewer associated with this view
|
||||
* @return an event handler
|
||||
*/
|
||||
protected AbstractDebugEventHandler createEventHandler( Viewer viewer )
|
||||
{
|
||||
return new RegistersViewEventHandler( this );
|
||||
}
|
||||
|
||||
protected void setViewerInput( IStructuredSelection ssel )
|
||||
{
|
||||
ICRegisterManager rm = null;
|
||||
if ( ssel.size() == 1 && ssel.getFirstElement() instanceof IStackFrame )
|
||||
{
|
||||
rm = (ICRegisterManager)((IStackFrame)ssel.getFirstElement()).getDebugTarget().getAdapter( ICRegisterManager.class );
|
||||
}
|
||||
|
||||
if ( getViewer() == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Object current = getViewer().getInput();
|
||||
if ( current == null && rm == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( current != null && current.equals( rm ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( current != null )
|
||||
{
|
||||
// save state
|
||||
ViewerState state = new ViewerState( getRegistersViewer() );
|
||||
fExpandedRegisters.put( current, state );
|
||||
}
|
||||
|
||||
showViewer();
|
||||
getViewer().setInput( rm );
|
||||
|
||||
// restore state
|
||||
if ( rm != null )
|
||||
{
|
||||
ViewerState state = (ViewerState)fExpandedRegisters.get( rm );
|
||||
if ( state != null )
|
||||
{
|
||||
state.restoreState( getRegistersViewer() );
|
||||
}
|
||||
}
|
||||
|
||||
updateObjects();
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes the viewer input on creation
|
||||
*/
|
||||
protected void setInitialContent()
|
||||
{
|
||||
ISelection selection =
|
||||
getSite().getPage().getSelection( IDebugUIConstants.ID_DEBUG_VIEW );
|
||||
if ( selection instanceof IStructuredSelection && !selection.isEmpty() )
|
||||
{
|
||||
setViewerInput( (IStructuredSelection)selection );
|
||||
}
|
||||
}
|
||||
|
||||
protected RegistersViewer getRegistersViewer()
|
||||
{
|
||||
return (RegistersViewer)getViewer();
|
||||
}
|
||||
|
||||
protected void clearExpandedRegisters( ICRegisterManager rm )
|
||||
{
|
||||
fExpandedRegisters.remove( rm );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
|
||||
*/
|
||||
public Object getAdapter( Class adapter )
|
||||
{
|
||||
if ( IDebugModelPresentation.class.equals( adapter ) )
|
||||
{
|
||||
IBaseLabelProvider labelProvider = getStructuredViewer().getLabelProvider();
|
||||
if ( labelProvider instanceof VariablesViewLabelProvider )
|
||||
{
|
||||
return ((VariablesViewLabelProvider)labelProvider).getPresentation();
|
||||
}
|
||||
}
|
||||
return super.getAdapter( adapter );
|
||||
}
|
||||
|
||||
}
|
|
@ -1,214 +0,0 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
package org.eclipse.cdt.debug.internal.ui.views.registers;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.eclipse.cdt.debug.core.ICRegisterManager;
|
||||
import org.eclipse.cdt.debug.internal.ui.views.IDebugExceptionHandler;
|
||||
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
||||
import org.eclipse.debug.core.DebugException;
|
||||
import org.eclipse.debug.core.model.IRegisterGroup;
|
||||
import org.eclipse.debug.core.model.IStackFrame;
|
||||
import org.eclipse.debug.core.model.IValue;
|
||||
import org.eclipse.debug.core.model.IVariable;
|
||||
import org.eclipse.jface.viewers.ITreeContentProvider;
|
||||
import org.eclipse.jface.viewers.Viewer;
|
||||
|
||||
/**
|
||||
*
|
||||
* Provide the contents for a registers viewer.
|
||||
*
|
||||
* @since Jul 23, 2002
|
||||
*/
|
||||
public class RegistersViewContentProvider implements ITreeContentProvider
|
||||
{
|
||||
/**
|
||||
* A table that maps children to their parent element
|
||||
* such that this content provider can walk back up the
|
||||
* parent chain (since values do not know their
|
||||
* parent).
|
||||
* Map of <code>IVariable</code> (child) -> <code>IVariable</code> (parent).
|
||||
*/
|
||||
private HashMap fParentCache;
|
||||
|
||||
/**
|
||||
* Handler for exceptions as content is retrieved
|
||||
*/
|
||||
private IDebugExceptionHandler fExceptionHandler = null;
|
||||
|
||||
/**
|
||||
* Constructor for RegistersViewContentProvider.
|
||||
*/
|
||||
public RegistersViewContentProvider()
|
||||
{
|
||||
fParentCache = new HashMap( 10 );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(Object)
|
||||
*/
|
||||
public Object[] getChildren( Object parent )
|
||||
{
|
||||
Object[] children= null;
|
||||
try
|
||||
{
|
||||
if ( parent instanceof ICRegisterManager )
|
||||
{
|
||||
children = ((ICRegisterManager)parent).getRegisterGroups();
|
||||
}
|
||||
else if ( parent instanceof IRegisterGroup )
|
||||
{
|
||||
children = ((IRegisterGroup)parent).getRegisters();
|
||||
}
|
||||
else if ( parent instanceof IVariable )
|
||||
{
|
||||
children = ((IVariable)parent).getValue().getVariables();
|
||||
}
|
||||
if ( children != null )
|
||||
{
|
||||
cache( parent, children );
|
||||
return children;
|
||||
}
|
||||
}
|
||||
catch( DebugException e )
|
||||
{
|
||||
if ( getExceptionHandler() != null )
|
||||
{
|
||||
getExceptionHandler().handleException( e );
|
||||
}
|
||||
else
|
||||
{
|
||||
CDebugUIPlugin.log( e );
|
||||
}
|
||||
}
|
||||
return new Object[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Caches the given elememts as children of the given
|
||||
* parent.
|
||||
*
|
||||
* @param parent parent element
|
||||
* @param children children elements
|
||||
*/
|
||||
protected void cache( Object parent, Object[] children )
|
||||
{
|
||||
for ( int i = 0; i < children.length; i++ )
|
||||
{
|
||||
fParentCache.put( children[i], parent );
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(Object)
|
||||
*/
|
||||
public Object getParent( Object element )
|
||||
{
|
||||
return fParentCache.get( element );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(Object)
|
||||
*/
|
||||
public boolean hasChildren( Object element )
|
||||
{
|
||||
try
|
||||
{
|
||||
if ( element instanceof IVariable )
|
||||
{
|
||||
return ((IVariable)element).getValue().hasVariables();
|
||||
}
|
||||
if ( element instanceof IValue )
|
||||
{
|
||||
return ((IValue)element).hasVariables();
|
||||
}
|
||||
if ( element instanceof IRegisterGroup )
|
||||
{
|
||||
return ((IRegisterGroup)element).hasRegisters();
|
||||
}
|
||||
if ( element instanceof IStackFrame )
|
||||
{
|
||||
return ((IStackFrame)element).hasRegisterGroups();
|
||||
}
|
||||
}
|
||||
catch( DebugException e )
|
||||
{
|
||||
CDebugUIPlugin.log( e );
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(Object)
|
||||
*/
|
||||
public Object[] getElements( Object inputElement )
|
||||
{
|
||||
return getChildren( inputElement );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
|
||||
*/
|
||||
public void dispose()
|
||||
{
|
||||
fParentCache = null;
|
||||
setExceptionHandler( null );
|
||||
}
|
||||
|
||||
protected void clearCache()
|
||||
{
|
||||
if ( fParentCache != null )
|
||||
{
|
||||
fParentCache.clear();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the cached parent for the given children
|
||||
*
|
||||
* @param children for which to remove cached parents
|
||||
*/
|
||||
public void removeCache( Object[] children )
|
||||
{
|
||||
if ( fParentCache != null )
|
||||
{
|
||||
for ( int i = 0; i < children.length; i++ )
|
||||
{
|
||||
fParentCache.remove( children[i] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(Viewer, Object, Object)
|
||||
*/
|
||||
public void inputChanged( Viewer viewer, Object oldInput, Object newInput )
|
||||
{
|
||||
clearCache();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets an exception handler for this content provider.
|
||||
*
|
||||
* @param handler debug exception handler or <code>null</code>
|
||||
*/
|
||||
protected void setExceptionHandler( IDebugExceptionHandler handler )
|
||||
{
|
||||
fExceptionHandler = handler;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the exception handler for this content provider.
|
||||
*
|
||||
* @return debug exception handler or <code>null</code>
|
||||
*/
|
||||
protected IDebugExceptionHandler getExceptionHandler()
|
||||
{
|
||||
return fExceptionHandler;
|
||||
}
|
||||
}
|
|
@ -1,83 +0,0 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
package org.eclipse.cdt.debug.internal.ui.views.registers;
|
||||
|
||||
import org.eclipse.cdt.debug.core.ICRegisterManager;
|
||||
import org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler;
|
||||
import org.eclipse.debug.core.DebugEvent;
|
||||
import org.eclipse.debug.core.model.IDebugTarget;
|
||||
import org.eclipse.debug.core.model.IVariable;
|
||||
import org.eclipse.debug.ui.AbstractDebugView;
|
||||
|
||||
/**
|
||||
*
|
||||
* Updates the registers view
|
||||
*
|
||||
* @since Jul 23, 2002
|
||||
*/
|
||||
public class RegistersViewEventHandler extends AbstractDebugEventHandler
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor for RegistersViewEventHandler.
|
||||
* @param view
|
||||
*/
|
||||
public RegistersViewEventHandler( AbstractDebugView view )
|
||||
{
|
||||
super( view );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler#doHandleDebugEvents(DebugEvent[])
|
||||
*/
|
||||
protected void doHandleDebugEvents( DebugEvent[] events )
|
||||
{
|
||||
for( int i = 0; i < events.length; i++ )
|
||||
{
|
||||
DebugEvent event = events[i];
|
||||
switch( event.getKind() )
|
||||
{
|
||||
case DebugEvent.TERMINATE :
|
||||
if ( event.getSource() instanceof IDebugTarget &&
|
||||
((IDebugTarget)event.getSource()).getAdapter( ICRegisterManager.class ) != null )
|
||||
{
|
||||
getRegistersView().clearExpandedRegisters( (ICRegisterManager)(((IDebugTarget)event.getSource()).getAdapter( ICRegisterManager.class )) );
|
||||
}
|
||||
break;
|
||||
case DebugEvent.SUSPEND :
|
||||
if ( event.getDetail() != DebugEvent.EVALUATION_IMPLICIT )
|
||||
{
|
||||
// Don't refresh everytime an implicit evaluation finishes
|
||||
refresh();
|
||||
// return since we've done a complete refresh
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case DebugEvent.CHANGE :
|
||||
if ( event.getDetail() == DebugEvent.STATE )
|
||||
{
|
||||
// only process variable state changes
|
||||
if ( event.getSource() instanceof IVariable )
|
||||
{
|
||||
refresh( event.getSource() );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
refresh();
|
||||
// return since we've done a complete refresh
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected RegistersView getRegistersView()
|
||||
{
|
||||
return (RegistersView)getView();
|
||||
}
|
||||
}
|
|
@ -1,95 +0,0 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
package org.eclipse.cdt.debug.internal.ui.views.registers;
|
||||
|
||||
import org.eclipse.jface.viewers.TreeViewer;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Item;
|
||||
import org.eclipse.swt.widgets.Tree;
|
||||
import org.eclipse.swt.widgets.Widget;
|
||||
|
||||
/**
|
||||
*
|
||||
* Registers viewer. As the user steps through code, this
|
||||
* viewer renders registers that have changed with a
|
||||
* different foreground color thereby drawing attention
|
||||
* to the values that have changed.
|
||||
*
|
||||
* @since Jul 23, 2002
|
||||
*/
|
||||
public class RegistersViewer extends TreeViewer
|
||||
{
|
||||
|
||||
private Item fNewItem;
|
||||
|
||||
/**
|
||||
* Constructor for RegistersViewer.
|
||||
* @param parent
|
||||
*/
|
||||
public RegistersViewer( Composite parent )
|
||||
{
|
||||
super( parent );
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor for RegistersViewer.
|
||||
* @param parent
|
||||
* @param style
|
||||
*/
|
||||
public RegistersViewer( Composite parent, int style )
|
||||
{
|
||||
super( parent, style );
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor for RegistersViewer.
|
||||
* @param tree
|
||||
*/
|
||||
public RegistersViewer( Tree tree )
|
||||
{
|
||||
super( tree );
|
||||
}
|
||||
|
||||
public void refresh()
|
||||
{
|
||||
super.refresh();
|
||||
|
||||
if ( getSelection().isEmpty() && getNewItem() != null )
|
||||
{
|
||||
if ( !getNewItem().isDisposed() )
|
||||
{
|
||||
//ensure that new items are visible
|
||||
showItem( getNewItem() );
|
||||
}
|
||||
setNewItem( null );
|
||||
}
|
||||
//expandToLevel( 2 );
|
||||
}
|
||||
|
||||
/**
|
||||
* @see AbstractTreeViewer#newItem(Widget, int, int)
|
||||
*/
|
||||
protected Item newItem( Widget parent, int style, int index )
|
||||
{
|
||||
if ( index != -1 )
|
||||
{
|
||||
//ignore the dummy items
|
||||
setNewItem( super.newItem( parent, style, index ) );
|
||||
return getNewItem();
|
||||
}
|
||||
return super.newItem( parent, style, index );
|
||||
}
|
||||
|
||||
protected Item getNewItem()
|
||||
{
|
||||
return fNewItem;
|
||||
}
|
||||
|
||||
protected void setNewItem( Item newItem )
|
||||
{
|
||||
fNewItem = newItem;
|
||||
}
|
||||
}
|
|
@ -1,7 +1,6 @@
|
|||
package org.eclipse.cdt.debug.ui;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.text.NumberFormat;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.MissingResourceException;
|
||||
|
@ -19,7 +18,6 @@ import org.eclipse.cdt.debug.internal.ui.editors.DisassemblyDocumentProvider;
|
|||
import org.eclipse.cdt.debug.internal.ui.editors.DisassemblyEditorInput;
|
||||
import org.eclipse.cdt.debug.internal.ui.preferences.CDebugPreferencePage;
|
||||
import org.eclipse.cdt.debug.internal.ui.preferences.MemoryViewPreferencePage;
|
||||
import org.eclipse.cdt.debug.internal.ui.preferences.RegistersViewPreferencePage;
|
||||
import org.eclipse.cdt.debug.internal.ui.preferences.SharedLibrariesViewPreferencePage;
|
||||
import org.eclipse.cdt.debug.ui.sourcelookup.DefaultSourceLocator;
|
||||
import org.eclipse.core.resources.IStorage;
|
||||
|
@ -58,7 +56,6 @@ import org.eclipse.ui.IWorkbenchPage;
|
|||
import org.eclipse.ui.IWorkbenchPart;
|
||||
import org.eclipse.ui.IWorkbenchWindow;
|
||||
import org.eclipse.ui.plugin.AbstractUIPlugin;
|
||||
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
||||
|
||||
/**
|
||||
* The main plugin class to be used in the desktop.
|
||||
|
@ -180,7 +177,6 @@ public class CDebugUIPlugin extends AbstractUIPlugin
|
|||
protected void initializeDefaultPreferences( IPreferenceStore pstore )
|
||||
{
|
||||
MemoryViewPreferencePage.initDefaults( pstore );
|
||||
RegistersViewPreferencePage.initDefaults( pstore );
|
||||
SharedLibrariesViewPreferencePage.initDefaults( pstore );
|
||||
CDebugPreferencePage.initDefaults( pstore );
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue