mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-13 11:15:38 +02:00
'Auto-Refresh' and 'Refresh' actions for registers view.
This commit is contained in:
parent
f0b4f5668f
commit
35222002bd
7 changed files with 65 additions and 24 deletions
|
@ -1,3 +1,12 @@
|
|||
2003-03-31 Mikhail Khodjaiants
|
||||
'Auto-Refresh' and 'Refresh' actions for registers view.
|
||||
* ICDebugHelpContextIds.java
|
||||
* RefreshAction.java
|
||||
* ICDebugPreferenceConstants.java
|
||||
* RegistersViewPreferencePage.java
|
||||
* RegistersView.java
|
||||
* RegistersViewContentProvider.java
|
||||
|
||||
2003-03-28 Mikhail Khodjaiants
|
||||
Added the default format section for variables, registers and expressions
|
||||
to the debugger preference page.
|
||||
|
|
|
@ -33,6 +33,8 @@ public interface ICDebugHelpContextIds
|
|||
public static final String REFRESH_SHARED_LIBRARIES_ACTION = PREFIX + "refresh_shared_libraries_action_context"; //$NON-NLS-1$
|
||||
public static final String AUTO_REFRESH_SHARED_LIBRARIES_ACTION = PREFIX + "auto_refresh_shared_libraries_action_context"; //$NON-NLS-1$
|
||||
public static final String LOAD_SYMBOLS_FOR_ALL = PREFIX + "load_symbols_for_all_action_context"; //$NON-NLS-1$
|
||||
public static final String REFRESH_REGISTERS_ACTION = PREFIX + "refresh_registers_action_context"; //$NON-NLS-1$
|
||||
public static final String AUTO_REFRESH_REGISTERS_ACTION = PREFIX + "auto_refresh_registers_action_context"; //$NON-NLS-1$
|
||||
|
||||
// Views
|
||||
public static final String REGISTERS_VIEW = PREFIX + "registers_view_context"; //$NON-NLS-1$
|
||||
|
|
|
@ -64,7 +64,7 @@ public class RefreshAction extends Action implements IUpdate
|
|||
}
|
||||
catch( DebugException e )
|
||||
{
|
||||
CDebugUIPlugin.errorDialog( "Unable to refresh shared libraries.", e.getStatus() );
|
||||
CDebugUIPlugin.errorDialog( "Unable to refresh.", e.getStatus() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -117,4 +117,11 @@ public interface ICDebugPreferenceConstants
|
|||
* <code>true</code> the 'Auto-Refresh' option will be checked.
|
||||
*/
|
||||
public static final String PREF_SHARED_LIBRARIES_AUTO_REFRESH = ICDebugUIConstants.PLUGIN_ID + "SharedLibraries.auto_refresh"; //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* Boolean preference controlling whether the registers view will be
|
||||
* refreshed every time when the execution of program stops. When
|
||||
* <code>true</code> the 'Auto-Refresh' option will be checked.
|
||||
*/
|
||||
public static final String PREF_REGISTERS_AUTO_REFRESH = ICDebugUIConstants.PLUGIN_ID + "Registers.auto_refresh"; //$NON-NLS-1$
|
||||
}
|
||||
|
|
|
@ -56,11 +56,11 @@ public class RegistersViewPreferencePage extends FieldEditorPreferencePage
|
|||
*/
|
||||
protected void createFieldEditors()
|
||||
{
|
||||
addField( new ColorFieldEditor( ICDebugPreferenceConstants.CHANGED_REGISTER_RGB, "&Changed register value color:", getFieldEditorParent() ) );
|
||||
|
||||
addField( new ColorFieldEditor( ICDebugPreferenceConstants.CHANGED_REGISTER_RGB, "&Changed register value color:", getFieldEditorParent() ) );
|
||||
createSpacer( getFieldEditorParent(), 1 );
|
||||
|
||||
addField( new BooleanFieldEditor( IDebugUIConstants.PREF_SHOW_TYPE_NAMES, "Show type &names by default", SWT.NONE, getFieldEditorParent() ) );
|
||||
createSpacer( getFieldEditorParent(), 1 );
|
||||
addField( new BooleanFieldEditor( ICDebugPreferenceConstants.PREF_REGISTERS_AUTO_REFRESH, "Auto-Refresh by default", getFieldEditorParent() ) );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -73,10 +73,10 @@ public class RegistersViewPreferencePage extends FieldEditorPreferencePage
|
|||
public static void initDefaults( IPreferenceStore store )
|
||||
{
|
||||
store.setDefault( IDebugUIConstants.PREF_SHOW_TYPE_NAMES, false );
|
||||
|
||||
PreferenceConverter.setDefault( store,
|
||||
ICDebugPreferenceConstants.CHANGED_REGISTER_RGB,
|
||||
new RGB( 255, 0, 0 ) );
|
||||
store.setDefault( ICDebugPreferenceConstants.PREF_REGISTERS_AUTO_REFRESH, true );
|
||||
}
|
||||
|
||||
protected void createSpacer( Composite composite, int columnSpan )
|
||||
|
|
|
@ -6,8 +6,12 @@
|
|||
|
||||
package org.eclipse.cdt.debug.internal.ui.views.registers;
|
||||
|
||||
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;
|
||||
|
@ -36,6 +40,7 @@ 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;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -91,6 +96,25 @@ public class RegistersView extends AbstractDebugEventHandlerView
|
|||
setAction( "ChangeRegisterValue", action ); //$NON-NLS-1$
|
||||
setAction( DOUBLE_CLICK_ACTION, action );
|
||||
|
||||
action = new AutoRefreshAction( getViewer(), "Auto-Refresh" );
|
||||
CDebugImages.setLocalImageDescriptors( action, CDebugImages.IMG_LCL_AUTO_REFRESH );
|
||||
action.setDescription( "Automatically Refresh Registers View" );
|
||||
action.setToolTipText( "Auto-Refresh" );
|
||||
WorkbenchHelp.setHelp( action, ICDebugHelpContextIds.AUTO_REFRESH_REGISTERS_ACTION );
|
||||
action.setEnabled( false );
|
||||
action.setChecked( CDebugUIPlugin.getDefault().getPreferenceStore().getBoolean( ICDebugPreferenceConstants.PREF_REGISTERS_AUTO_REFRESH ) );
|
||||
setAction( "AutoRefresh", action ); //$NON-NLS-1$
|
||||
add( (AutoRefreshAction)action );
|
||||
|
||||
action = new RefreshAction( getViewer(), "Refresh" );
|
||||
CDebugImages.setLocalImageDescriptors( action, CDebugImages.IMG_LCL_REFRESH );
|
||||
action.setDescription( "Refresh Registers View" );
|
||||
action.setToolTipText( "Refresh" );
|
||||
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();
|
||||
}
|
||||
|
@ -116,6 +140,9 @@ public class RegistersView extends AbstractDebugEventHandlerView
|
|||
menu.add( getAction( "ShowTypeNames" ) ); //$NON-NLS-1$
|
||||
|
||||
menu.add( new Separator( IWorkbenchActionConstants.MB_ADDITIONS ) );
|
||||
|
||||
menu.appendToGroup( ICDebugUIConstants.REFRESH_GROUP, getAction( "AutoRefresh" ) ); //$NON-NLS-1$
|
||||
menu.appendToGroup( ICDebugUIConstants.REFRESH_GROUP, getAction( "Refresh" ) ); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -124,6 +151,11 @@ public class RegistersView extends AbstractDebugEventHandlerView
|
|||
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$
|
||||
}
|
||||
|
@ -206,14 +238,10 @@ public class RegistersView extends AbstractDebugEventHandlerView
|
|||
|
||||
protected void setViewerInput( IStructuredSelection ssel )
|
||||
{
|
||||
IStackFrame frame = null;
|
||||
if ( ssel.size() == 1 )
|
||||
ICRegisterManager rm = null;
|
||||
if ( ssel.size() == 1 && ssel.getFirstElement() instanceof IStackFrame )
|
||||
{
|
||||
Object input = ssel.getFirstElement();
|
||||
if ( input instanceof IStackFrame )
|
||||
{
|
||||
frame = (IStackFrame)input;
|
||||
}
|
||||
rm = (ICRegisterManager)((IStackFrame)ssel.getFirstElement()).getDebugTarget().getAdapter( ICRegisterManager.class );
|
||||
}
|
||||
|
||||
if ( getViewer() == null )
|
||||
|
@ -222,25 +250,19 @@ public class RegistersView extends AbstractDebugEventHandlerView
|
|||
}
|
||||
|
||||
Object current = getViewer().getInput();
|
||||
if ( current == null && frame == null )
|
||||
if ( current == null && rm == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( current != null && current.equals( frame ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( current != null && frame != null &&
|
||||
current instanceof IStackFrame &&
|
||||
((IStackFrame)current).getDebugTarget().equals( frame.getDebugTarget() ) )
|
||||
if ( current != null && current.equals( rm ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
showViewer();
|
||||
getViewer().setInput( frame );
|
||||
getViewer().setInput( rm );
|
||||
updateObjects();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -7,6 +7,7 @@ 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;
|
||||
|
@ -55,9 +56,9 @@ public class RegistersViewContentProvider implements ITreeContentProvider
|
|||
Object[] children= null;
|
||||
try
|
||||
{
|
||||
if ( parent instanceof IStackFrame )
|
||||
if ( parent instanceof ICRegisterManager )
|
||||
{
|
||||
children = ((IStackFrame)parent).getRegisterGroups();
|
||||
children = ((ICRegisterManager)parent).getRegisterGroups();
|
||||
}
|
||||
else if ( parent instanceof IRegisterGroup )
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue