diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog index 1d3f5f80d74..b49d48fb8fa 100644 --- a/debug/org.eclipse.cdt.debug.ui/ChangeLog +++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog @@ -1,3 +1,16 @@ +2004-06-09 Mikhail Khodjaiants + New implementation of the "Refresh" actions for registers and shared libraries. + * icons/full/clcl16/auto_refresh_co.gif: new + * icons/full/clcl16/refresh_co.gif: new + * plugin.properties + * plugin.xml + * CDebugImages.java + * AbstractRefreshActionDelegate.java: new + * RefreshRegistersAction.java: new + * RefreshSharedLibrariesAction.java: new + * SharedLibrariesView.java + * Refreshaction.java: removed + 2004-06-08 Mikhail Khodjaiants Warning clean-up. * DebugTextHover.java diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/auto_refresh_co.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/auto_refresh_co.gif new file mode 100644 index 00000000000..4a65d6241e1 Binary files /dev/null and b/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/auto_refresh_co.gif differ diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/autorefresh_mem.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/autorefresh_mem.gif deleted file mode 100644 index a063c230aca..00000000000 Binary files a/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/autorefresh_mem.gif and /dev/null differ diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/refresh_co.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/refresh_co.gif new file mode 100644 index 00000000000..c61cfc2f562 Binary files /dev/null and b/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/refresh_co.gif differ diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/refresh_mem.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/refresh_mem.gif deleted file mode 100644 index 9eb88fa444a..00000000000 Binary files a/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/refresh_mem.gif and /dev/null differ diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/autorefresh_mem.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/autorefresh_mem.gif deleted file mode 100644 index b2281b40cc6..00000000000 Binary files a/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/autorefresh_mem.gif and /dev/null differ diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/refresh_mem.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/refresh_mem.gif deleted file mode 100644 index b8c1865c696..00000000000 Binary files a/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/refresh_mem.gif and /dev/null differ diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/autorefresh_mem.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/autorefresh_mem.gif deleted file mode 100644 index 919423d4357..00000000000 Binary files a/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/autorefresh_mem.gif and /dev/null differ diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/refresh_mem.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/refresh_mem.gif deleted file mode 100644 index d28167335d6..00000000000 Binary files a/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/refresh_mem.gif and /dev/null differ diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.properties b/debug/org.eclipse.cdt.debug.ui/plugin.properties index a5b718c83c2..38f7a5472b0 100644 --- a/debug/org.eclipse.cdt.debug.ui/plugin.properties +++ b/debug/org.eclipse.cdt.debug.ui/plugin.properties @@ -101,3 +101,6 @@ DisassemblySourceLineColor.label=Disassembly Source Line text color DisassemblySourceLineColor.description=The color used in the Disassembly view for source lines. DisassemblyFontDefinition.label=Disassembly View text font DisassemblyFontDefinition.description=The font used in the Disassembly view. + +RefreshAction.label=Refresh +RefreshAction.tooltip=Refresh View's Content \ No newline at end of file diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.xml b/debug/org.eclipse.cdt.debug.ui/plugin.xml index 48627565d64..70c181e49e6 100644 --- a/debug/org.eclipse.cdt.debug.ui/plugin.xml +++ b/debug/org.eclipse.cdt.debug.ui/plugin.xml @@ -496,7 +496,7 @@ - + + + + + + + + + + + + + + + + @@ -919,6 +959,54 @@ + + + + + + + + + + + + + + + + + + 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 e9f20f40e54..83a3ed07882 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 @@ -96,8 +96,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 = 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_AUTO_REFRESH = NAME_PREFIX + "auto_refresh_co.gif"; //$NON-NLS-1$ + public static final String IMG_LCL_REFRESH = NAME_PREFIX + "refresh_co.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/actions/AbstractRefreshActionDelegate.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/AbstractRefreshActionDelegate.java new file mode 100644 index 00000000000..624c2184e2e --- /dev/null +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/AbstractRefreshActionDelegate.java @@ -0,0 +1,128 @@ +/********************************************************************** + * Copyright (c) 2004 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation + ***********************************************************************/ +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.MultiStatus; +import org.eclipse.debug.core.DebugException; +import org.eclipse.debug.internal.ui.DebugUIPlugin; +import org.eclipse.debug.ui.IDebugView; +import org.eclipse.jface.action.IAction; +import org.eclipse.swt.custom.BusyIndicator; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IViewActionDelegate; +import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.actions.ActionDelegate; +import org.eclipse.ui.texteditor.IUpdate; + +/** + * The superclass for all "Refresh" action delegates. + */ +public abstract class AbstractRefreshActionDelegate extends ActionDelegate implements IViewActionDelegate, IUpdate { + + private IAction fAction; + private IDebugView fView; + + /* (non-Javadoc) + * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart) + */ + public void init( IViewPart view ) { + setView( view ); + if ( getView() != null ) { + getView().add( this ); + } + } + + /* (non-Javadoc) + * @see org.eclipse.ui.actions.ActionDelegate#init(org.eclipse.jface.action.IAction) + */ + public void init( IAction action ) { + setAction( action ); + super.init( action ); + } + + /* (non-Javadoc) + * @see org.eclipse.ui.actions.ActionDelegate#dispose() + */ + public void dispose() { + if ( getView() != null ) + getView().remove( this ); + super.dispose(); + } + + protected IDebugView getView() { + return fView; + } + + private void setView( IViewPart view ) { + fView = ( view instanceof IDebugView ) ? (IDebugView)view : null; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.texteditor.IUpdate#update() + */ + public void update() { + IAction action = getAction(); + if ( getView() != null && action != null ) { + ICUpdateManager um = getUpdateManager( getView().getViewer().getInput() ); + action.setEnabled( ( um != null ) ? um.canUpdate() : false ); + } + } + + + /* (non-Javadoc) + * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) + */ + public void run( IAction action ) { + final MultiStatus ms = new MultiStatus( CDebugUIPlugin.getUniqueIdentifier(), DebugException.REQUEST_FAILED, "", null ); //$NON-NLS-1$ + BusyIndicator.showWhile( Display.getCurrent(), new Runnable() { + + public void run() { + try { + doAction(); + } + catch( DebugException e ) { + ms.merge( e.getStatus() ); + } + } + } ); + if ( !ms.isOK() ) { + IWorkbenchWindow window = DebugUIPlugin.getActiveWorkbenchWindow(); + if ( window != null ) { + CDebugUIPlugin.errorDialog( CDebugUIPlugin.getResourceString( "internal.ui.actions.RefreshAction.Unable_to_refresh" ), ms.getChildren()[0] ); //$NON-NLS-1$ + } + else { + DebugUIPlugin.log( ms ); + } + } + + } + + protected IAction getAction() { + return fAction; + } + + private void setAction( IAction action ) { + fAction = action; + } + + protected void doAction() throws DebugException { + if ( getView() != null ) { + ICUpdateManager um = getUpdateManager( getView().getViewer().getInput() ); + if ( um != null ) + um.update(); + } + } + + protected abstract ICUpdateManager getUpdateManager( Object element ); +} 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 deleted file mode 100644 index 075fd99c080..00000000000 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshAction.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - *(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( CDebugUIPlugin.getResourceString("internal.ui.actions.RefreshAction.Unable_to_refresh"), e.getStatus() ); //$NON-NLS-1$ - } - } - } - } -} diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshRegistersAction.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshRegistersAction.java new file mode 100644 index 00000000000..2f0f5610008 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshRegistersAction.java @@ -0,0 +1,31 @@ +/********************************************************************** + * Copyright (c) 2004 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation + ***********************************************************************/ +package org.eclipse.cdt.debug.internal.ui.actions; + +import org.eclipse.cdt.debug.core.ICRegisterManager; +import org.eclipse.cdt.debug.core.ICUpdateManager; +import org.eclipse.debug.core.model.IDebugElement; + +/** + * A delegate for the "Refresh" action of the Registers view. + */ +public class RefreshRegistersAction extends AbstractRefreshActionDelegate { + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.internal.ui.actions.AbstractRefreshActionDelegate#getUpdateManager(java.lang.Object) + */ + protected ICUpdateManager getUpdateManager( Object element ) { + if ( element instanceof IDebugElement ) { + return (ICUpdateManager)((IDebugElement)element).getDebugTarget().getAdapter( ICRegisterManager.class ); + } + return null; + } +} diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshSharedLibrariesAction.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshSharedLibrariesAction.java new file mode 100644 index 00000000000..1efdff14f53 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshSharedLibrariesAction.java @@ -0,0 +1,31 @@ +/********************************************************************** + * Copyright (c) 2004 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation + ***********************************************************************/ +package org.eclipse.cdt.debug.internal.ui.actions; + +import org.eclipse.cdt.debug.core.ICSharedLibraryManager; +import org.eclipse.cdt.debug.core.ICUpdateManager; +import org.eclipse.debug.core.model.IDebugElement; + +/** + * A delegate for the "Refresh" action of the Shared Libraries view. + */ +public class RefreshSharedLibrariesAction extends AbstractRefreshActionDelegate { + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.internal.ui.actions.RefreshActionDelegate#getUpdateManager(java.lang.Object) + */ + protected ICUpdateManager getUpdateManager( Object element ) { + if ( element instanceof IDebugElement ) { + return (ICUpdateManager)((IDebugElement)element).getDebugTarget().getAdapter( ICSharedLibraryManager.class ); + } + return null; + } +} 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 5a0e6701b14..844fa7f21af 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 @@ -20,6 +20,7 @@ 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; @@ -155,6 +156,8 @@ public class SharedLibrariesView extends AbstractDebugEventHandlerView * @see org.eclipse.debug.ui.AbstractDebugView#fillContextMenu(IMenuManager) */ 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 ) ); updateObjects(); } @@ -163,6 +166,7 @@ public class SharedLibrariesView extends AbstractDebugEventHandlerView * @see org.eclipse.debug.ui.AbstractDebugView#configureToolBar(IToolBarManager) */ protected void configureToolBar( IToolBarManager tbm ) { + tbm.add( new Separator( ICDebugUIConstants.REFRESH_GROUP ) ); } /* (non-Javadoc)