diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog index b7d27d61f7a..d0ef9b518ea 100644 --- a/debug/org.eclipse.cdt.debug.ui/ChangeLog +++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog @@ -1,3 +1,13 @@ +2003-02-10 Mikhail Khodjaiants + The 'Auto-Refresh' and 'Refresh' actions added to the 'Shared Libraries' view. + * RefreshAction.java: new + * AutoRefreshAction.java: new + * RefreshMemoryAction.java + * AutoRefreshMemoryAction.java + * SharedLibrariesView.java + * CDebugImages.java + * ICDebugHelpContextIds.java + 2003-02-09 Alain Magloire Changing the scope of methods to protected to let inner class diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugImages.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugImages.java index aa43309d361..350b20088c9 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugImages.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugImages.java @@ -71,8 +71,8 @@ public class CDebugImages public static final String IMG_LCL_TYPE_NAMES = NAME_PREFIX + "tnames_co.gif"; //$NON-NLS-1$ public static final String IMG_LCL_CHANGE_REGISTER_VALUE = NAME_PREFIX + "change_reg_value_co.gif"; //$NON-NLS-1$ - public static final String IMG_LCL_AUTO_REFRESH_MEMORY = NAME_PREFIX + "autorefresh_mem.gif"; //$NON-NLS-1$ - public static final String IMG_LCL_REFRESH_MEMORY = NAME_PREFIX + "refresh_mem.gif"; //$NON-NLS-1$ + public static final String IMG_LCL_AUTO_REFRESH = NAME_PREFIX + "autorefresh_mem.gif"; //$NON-NLS-1$ + public static final String IMG_LCL_REFRESH = NAME_PREFIX + "refresh_mem.gif"; //$NON-NLS-1$ public static final String IMG_LCL_MEMORY_SAVE = NAME_PREFIX + "memory_update.gif"; //$NON-NLS-1$ public static final String IMG_LCL_MEMORY_CLEAR = NAME_PREFIX + "memory_clear.gif"; //$NON-NLS-1$ public static final String IMG_LCL_SHOW_ASCII = NAME_PREFIX + "show_ascii.gif"; //$NON-NLS-1$ diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java index 8e4201b9a51..a46e103e300 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java @@ -30,6 +30,8 @@ public interface ICDebugHelpContextIds public static final String MEMORY_CLEAR_ACTION = PREFIX + "memory_clear_action_context"; //$NON-NLS-1$ public static final String MEMORY_SAVE_ACTION = PREFIX + "memory_save_action_context"; //$NON-NLS-1$ public static final String MEMORY_SHOW_ASCII_ACTION = PREFIX + "memory_show_ascii_action_context"; //$NON-NLS-1$ + 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$ // Views public static final String REGISTERS_VIEW = PREFIX + "registers_view_context"; //$NON-NLS-1$ diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/AutoRefreshAction.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/AutoRefreshAction.java new file mode 100644 index 00000000000..7d53e69b2b5 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/AutoRefreshAction.java @@ -0,0 +1,65 @@ +/* + *(c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + * + */ +package org.eclipse.cdt.debug.internal.ui.actions; + +import org.eclipse.cdt.debug.core.ICUpdateManager; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.ui.texteditor.IUpdate; + +/** + * Enter type comment. + * + * @since: Feb 10, 2003 + */ +public class AutoRefreshAction extends Action implements IUpdate +{ + private Viewer fViewer = null; + + /** + * Constructor for AutoRefreshAction. + */ + public AutoRefreshAction( Viewer viewer, String text ) + { + super( text ); + fViewer = viewer; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.texteditor.IUpdate#update() + */ + public void update() + { + if ( fViewer != null && fViewer.getInput() instanceof IAdaptable ) + { + ICUpdateManager uman = (ICUpdateManager)((IAdaptable)fViewer.getInput()).getAdapter( ICUpdateManager.class ); + if ( uman != null ) + { + setEnabled( uman.canUpdate() ); + setChecked( uman.getAutoModeEnabled() ); + return; + } + } + setEnabled( false ); + setChecked( false ); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.action.IAction#run() + */ + public void run() + { + if ( fViewer != null && fViewer.getInput() instanceof IAdaptable ) + { + ICUpdateManager uman = (ICUpdateManager)((IAdaptable)fViewer.getInput()).getAdapter( ICUpdateManager.class ); + if ( uman != null ) + { + uman.setAutoModeEnabled( isChecked() ); + } + } + } +} diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/AutoRefreshMemoryAction.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/AutoRefreshMemoryAction.java index 5e8162dddd1..8d415332db8 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/AutoRefreshMemoryAction.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/AutoRefreshMemoryAction.java @@ -30,7 +30,7 @@ public class AutoRefreshMemoryAction extends SelectionProviderAction implements { super( viewer, "Auto-Refresh" ); fMemoryViewer = viewer; - CDebugImages.setLocalImageDescriptors( this, CDebugImages.IMG_LCL_AUTO_REFRESH_MEMORY ); + CDebugImages.setLocalImageDescriptors( this, CDebugImages.IMG_LCL_AUTO_REFRESH ); setDescription( "Automatically Refresh Memory Block" ); setToolTipText( "Auto-Refresh" ); WorkbenchHelp.setHelp( this, ICDebugHelpContextIds.AUTO_REFRESH_MEMORY_ACTION ); diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshAction.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshAction.java new file mode 100644 index 00000000000..a739736aca1 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshAction.java @@ -0,0 +1,72 @@ +/* + *(c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + * + */ +package org.eclipse.cdt.debug.internal.ui.actions; + +import org.eclipse.cdt.debug.core.ICUpdateManager; +import org.eclipse.cdt.debug.ui.CDebugUIPlugin; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.debug.core.DebugException; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.ui.texteditor.IUpdate; + +/** + * Enter type comment. + * + * @since: Feb 10, 2003 + */ +public class RefreshAction extends Action implements IUpdate +{ + private Viewer fViewer = null; + + /** + * Constructor for RefreshAction. + */ + public RefreshAction( Viewer viewer, String text ) + { + super( text ); + fViewer = viewer; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.texteditor.IUpdate#update() + */ + public void update() + { + if ( fViewer != null && fViewer.getInput() instanceof IAdaptable ) + { + ICUpdateManager uman = (ICUpdateManager)((IAdaptable)fViewer.getInput()).getAdapter( ICUpdateManager.class ); + if ( uman != null ) + { + setEnabled( uman.canUpdate() ); + return; + } + } + setEnabled( false ); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.action.IAction#run() + */ + public void run() + { + if ( fViewer != null && fViewer.getInput() instanceof IAdaptable ) + { + ICUpdateManager uman = (ICUpdateManager)((IAdaptable)fViewer.getInput()).getAdapter( ICUpdateManager.class ); + if ( uman != null ) + { + try + { + uman.update(); + } + catch( DebugException e ) + { + CDebugUIPlugin.errorDialog( "Unable to refresh shared libraries.", e.getStatus() ); + } + } + } + } +} diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshMemoryAction.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshMemoryAction.java index 5387eaa411e..c7d39f3c8cf 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshMemoryAction.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshMemoryAction.java @@ -30,7 +30,7 @@ public class RefreshMemoryAction extends SelectionProviderAction implements IUpd { super( viewer, "Refresh" ); fMemoryViewer = viewer; - CDebugImages.setLocalImageDescriptors( this, CDebugImages.IMG_LCL_REFRESH_MEMORY ); + CDebugImages.setLocalImageDescriptors( this, CDebugImages.IMG_LCL_REFRESH ); setDescription( "Refresh Memory Block" ); setToolTipText( "Refresh" ); WorkbenchHelp.setHelp( this, ICDebugHelpContextIds.REFRESH_MEMORY_ACTION ); diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesView.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesView.java index 24d4594afee..e51b0a91810 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesView.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesView.java @@ -9,14 +9,21 @@ import org.eclipse.cdt.debug.core.ICSharedLibraryManager; import org.eclipse.cdt.debug.core.model.ICSharedLibrary; import org.eclipse.cdt.debug.internal.core.CDebugUtils; import org.eclipse.cdt.debug.internal.ui.CDTDebugModelPresentation; +import org.eclipse.cdt.debug.internal.ui.CDebugImages; import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds; import org.eclipse.cdt.debug.internal.ui.PixelConverter; +import org.eclipse.cdt.debug.internal.ui.actions.AutoRefreshAction; +import org.eclipse.cdt.debug.internal.ui.actions.RefreshAction; +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.ui.CDebugUIPlugin; +import org.eclipse.cdt.debug.ui.ICDebugUIConstants; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.model.IDebugElement; 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; @@ -35,6 +42,7 @@ import org.eclipse.swt.widgets.TableColumn; import org.eclipse.ui.ISelectionListener; import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.help.WorkbenchHelp; /** * Enter type comment. @@ -132,6 +140,25 @@ public class SharedLibrariesView extends AbstractDebugEventHandlerView */ protected void createActions() { + IAction action = new AutoRefreshAction( getViewer(), "Auto-Refresh" ); + CDebugImages.setLocalImageDescriptors( action, CDebugImages.IMG_LCL_AUTO_REFRESH ); + action.setDescription( "Automatically Refresh Shared Libraries View" ); + action.setToolTipText( "Auto-Refresh" ); + WorkbenchHelp.setHelp( action, ICDebugHelpContextIds.AUTO_REFRESH_SHARED_LIBRARIES_ACTION ); + action.setEnabled( false ); + action.setChecked( CDebugUIPlugin.getDefault().getPreferenceStore().getBoolean( ICDebugPreferenceConstants.PREF_SHARED_LIBRARIES_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 Shared Libraries View" ); + action.setToolTipText( "Refresh" ); + WorkbenchHelp.setHelp( action, ICDebugHelpContextIds.REFRESH_SHARED_LIBRARIES_ACTION ); + action.setEnabled( false ); + setAction( "Refresh", action ); //$NON-NLS-1$ + add( (RefreshAction)action ); + // set initial content here, as viewer has to be set setInitialContent(); } @@ -149,7 +176,13 @@ public class SharedLibrariesView extends AbstractDebugEventHandlerView */ protected void fillContextMenu( IMenuManager menu ) { + 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.REFRESH_GROUP, getAction( "AutoRefresh" ) ); //$NON-NLS-1$ + menu.appendToGroup( ICDebugUIConstants.REFRESH_GROUP, getAction( "Refresh" ) ); //$NON-NLS-1$ } /* (non-Javadoc) @@ -158,6 +191,9 @@ public class SharedLibrariesView 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$ } /* (non-Javadoc) diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/ICDebugUIConstants.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/ICDebugUIConstants.java index 4ec5dbf2fcf..5d057223aeb 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/ICDebugUIConstants.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/ICDebugUIConstants.java @@ -70,4 +70,16 @@ public interface ICDebugUIConstants * Identifier for a format group in a menu (value "formatGroup"). */ public static final String FORMAT_GROUP = "formatGroup"; //$NON-NLS-1$ + + /** + * Identifier for an empty group preceeding a + * refresh group in a menu (value "emptyRefreshGroup"). + */ + public static final String EMPTY_REFRESH_GROUP = "emptyRefreshGroup"; //$NON-NLS-1$ + + /** + * Identifier for a refresh group in a menu (value "refreshGroup" + * ). + */ + public static final String REFRESH_GROUP = "refreshGroup"; //$NON-NLS-1$ }