Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] 'Auto-Refresh' and 'Refresh' actions for registers view

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/ChangeLog,v
retrieving revision 1.118
diff -u -r1.118 ChangeLog
--- ChangeLog 28 Mar 2003 19:21:57 -0000 1.118
+++ ChangeLog 31 Mar 2003 22:59:07 -0000
@@ -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.
Index: src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java,v
retrieving revision 1.13
diff -u -r1.13 ICDebugHelpContextIds.java
--- src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java 11 Feb 2003 19:17:26 -0000 1.13
+++ src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java 31 Mar 2003 22:59:07 -0000
@@ -33,6 +33,8 @@
  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$
Index: src/org/eclipse/cdt/debug/internal/ui/actions/RefreshAction.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshAction.java,v
retrieving revision 1.1
diff -u -r1.1 RefreshAction.java
--- src/org/eclipse/cdt/debug/internal/ui/actions/RefreshAction.java 10 Feb 2003 23:40:08 -0000 1.1
+++ src/org/eclipse/cdt/debug/internal/ui/actions/RefreshAction.java 31 Mar 2003 22:59:07 -0000
@@ -64,7 +64,7 @@
     }
     catch( DebugException e )
     {
-     CDebugUIPlugin.errorDialog( "Unable to refresh shared libraries.", e.getStatus() );
+     CDebugUIPlugin.errorDialog( "Unable to refresh.", e.getStatus() );
     }
    }
   }
Index: src/org/eclipse/cdt/debug/internal/ui/preferences/ICDebugPreferenceConstants.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/preferences/ICDebugPreferenceConstants.java,v
retrieving revision 1.6
diff -u -r1.6 ICDebugPreferenceConstants.java
--- src/org/eclipse/cdt/debug/internal/ui/preferences/ICDebugPreferenceConstants.java 7 Feb 2003 23:38:25 -0000 1.6
+++ src/org/eclipse/cdt/debug/internal/ui/preferences/ICDebugPreferenceConstants.java 31 Mar 2003 22:59:07 -0000
@@ -117,4 +117,11 @@
   * <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$
 }
Index: src/org/eclipse/cdt/debug/internal/ui/preferences/RegistersViewPreferencePage.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/preferences/RegistersViewPreferencePage.java,v
retrieving revision 1.2
diff -u -r1.2 RegistersViewPreferencePage.java
--- src/org/eclipse/cdt/debug/internal/ui/preferences/RegistersViewPreferencePage.java 2 Oct 2002 19:37:11 -0000 1.2
+++ src/org/eclipse/cdt/debug/internal/ui/preferences/RegistersViewPreferencePage.java 31 Mar 2003 22:59:07 -0000
@@ -56,11 +56,11 @@
   */
  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 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 )
Index: src/org/eclipse/cdt/debug/internal/ui/views/registers/RegistersView.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/registers/RegistersView.java,v
retrieving revision 1.9
diff -u -r1.9 RegistersView.java
--- src/org/eclipse/cdt/debug/internal/ui/views/registers/RegistersView.java 4 Dec 2002 15:28:47 -0000 1.9
+++ src/org/eclipse/cdt/debug/internal/ui/views/registers/RegistersView.java 31 Mar 2003 22:59:07 -0000
@@ -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.ui.ISelectionListener;
 import org.eclipse.ui.IWorkbenchActionConstants;
 import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.help.WorkbenchHelp;
 
 /**
  *
@@ -91,6 +96,25 @@
   setAction( "ChangeRegisterValue", action ); //$NON-NLS-1$
   setAction( DOUBLE_CLICK_ACTION, action );
 
+  action = "" 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 = "" 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 @@
   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 @@
  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 @@
 
  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 @@
   }
 
   Object current = getViewer().getInput();
-  if ( current == null && frame == null )
-  {
-   return;
-  }
-
-  if ( current != null && current.equals( frame ) )
+  if ( current == null && rm == null )
   {
    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();
  }
 
  /**
Index: src/org/eclipse/cdt/debug/internal/ui/views/registers/RegistersViewContentProvider.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/registers/RegistersViewContentProvider.java,v
retrieving revision 1.2
diff -u -r1.2 RegistersViewContentProvider.java
--- src/org/eclipse/cdt/debug/internal/ui/views/registers/RegistersViewContentProvider.java 16 Sep 2002 21:32:14 -0000 1.2
+++ src/org/eclipse/cdt/debug/internal/ui/views/registers/RegistersViewContentProvider.java 31 Mar 2003 22:59:07 -0000
@@ -7,6 +7,7 @@
 
 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 @@
   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 )
    {

Back to the top