Implementation of the 'SaveMemoryChanges' action.
Index:
ChangeLog
===================================================================
RCS
file: /home/tools/org.eclipse.cdt.debug.ui/ChangeLog,v
retrieving revision
1.22
diff -u -r1.22 ChangeLog
--- ChangeLog 30 Oct 2002 14:47:45
-0000 1.22
+++ ChangeLog 30 Oct 2002 22:00:19 -0000
@@ -1,3
+1,13 @@
+2002-10-30 Mikhail Khodjaiants
+ Implementation of the
'SaveMemoryChanges' action.
+ * SaveMemoryChangesAction.java
+ *
CDebugImages.java
+ * ICDebugHelpConstants.java
+ *
MemoryControlArea.java
+ * MemoryText.java
+ *
MemoryViewer.java
+ * MemoryView.java
+
2002-10-30 Alain
Magloire
* src/.../ui/CDebugUIPlugin.java
(selectionChanged):
Index:
src/org/eclipse/cdt/debug/internal/ui/CDebugImages.java
===================================================================
RCS
file:
/home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugImages.java,v
retrieving
revision 1.8
diff -u -r1.8 CDebugImages.java
---
src/org/eclipse/cdt/debug/internal/ui/CDebugImages.java 22 Oct 2002
17:10:49 -0000 1.8
+++
src/org/eclipse/cdt/debug/internal/ui/CDebugImages.java 30 Oct 2002
22:00:19 -0000
@@ -66,7 +66,7 @@
public static final String
IMG_LCL_CHANGE_REGISTER_VALUE = NAME_PREFIX + "change_reg_value_co.gif"; file://$NON-NLS-1$
public static
final String IMG_LCL_AUTO_REFRESH_MEMORY = NAME_PREFIX +
"autorefresh_mem.gif"; file://$NON-NLS-1$
public static
final String IMG_LCL_REFRESH_MEMORY = NAME_PREFIX + "refresh_mem.gif"; file://$NON-NLS-1$
- public static final
String IMG_LCL_MEMORY_SAVE = NAME_PREFIX + "memory_save.gif"; file://$NON-NLS-1$
+ public static final
String IMG_LCL_MEMORY_SAVE = NAME_PREFIX + "memory_update.gif"; file://$NON-NLS-1$
public static
final String IMG_LCL_MEMORY_CLEAR = NAME_PREFIX + "memory_clear.gif"; file://$NON-NLS-1$
public static
final String IMG_LCL_SHOW_ASCII = NAME_PREFIX + "show_ascii.gif"; file://$NON-NLS-1$
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.7
diff -u -r1.7 ICDebugHelpContextIds.java
---
src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java 22 Oct
2002 17:10:49 -0000 1.7
+++
src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java 30 Oct
2002 22:00:19 -0000
@@ -28,6 +28,7 @@
public static final
String REFRESH_MEMORY_ACTION = PREFIX + "refresh_memory_action_context"; file://$NON-NLS-1$
public static
final String AUTO_REFRESH_MEMORY_ACTION = PREFIX +
"auto_refresh_memory_action_context"; file://$NON-NLS-1$
public static
final String MEMORY_CLEAR_ACTION = PREFIX + "memory_clear_action_context"; file://$NON-NLS-1$
+ public static final
String MEMORY_SAVE_ACTION = PREFIX + "memory_save_action_context"; file://$NON-NLS-1$
public static
final String MEMORY_SHOW_ASCII_ACTION = PREFIX +
"memory_show_ascii_action_context"; file://$NON-NLS-1$
//
Views
Index:
src/org/eclipse/cdt/debug/internal/ui/actions/SaveMemoryChangesAction.java
===================================================================
RCS
file:
src/org/eclipse/cdt/debug/internal/ui/actions/SaveMemoryChangesAction.java
diff
-N
src/org/eclipse/cdt/debug/internal/ui/actions/SaveMemoryChangesAction.java
---
/dev/null 1 Jan 1970 00:00:00 -0000
+++
src/org/eclipse/cdt/debug/internal/ui/actions/SaveMemoryChangesAction.java 30
Oct 2002 22:00:19 -0000
@@ -0,0 +1,54 @@
+/*
+ *(c) Copyright QNX
Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+
*/
+package org.eclipse.cdt.debug.internal.ui.actions;
+
+import
org.eclipse.cdt.debug.internal.ui.CDebugImages;
+import
org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds;
+import
org.eclipse.cdt.debug.internal.ui.views.memory.MemoryViewer;
+import
org.eclipse.ui.actions.SelectionProviderAction;
+import
org.eclipse.ui.help.WorkbenchHelp;
+import
org.eclipse.ui.texteditor.IUpdate;
+
+/**
+ * Enter type comment.
+
*
+ * @since: Oct 30, 2002
+ */
+public class SaveMemoryChangesAction
extends SelectionProviderAction implements IUpdate
+{
+ private
MemoryViewer fMemoryViewer;
+
+ /**
+ * Constructor for
SaveMemoryChangesAction.
+ * @param provider
+ * @param
text
+ */
+ public SaveMemoryChangesAction( MemoryViewer viewer
)
+ {
+ super( viewer, "Save Changes"
);
+ fMemoryViewer =
viewer;
+ CDebugImages.setLocalImageDescriptors( this,
CDebugImages.IMG_LCL_MEMORY_SAVE );
+ setDescription( "Save
Changes" );
+ setToolTipText( "Save Changes"
);
+ WorkbenchHelp.setHelp( this,
ICDebugHelpContextIds.MEMORY_SAVE_ACTION );
+ }
+
+ /*
(non-Javadoc)
+ * @see
org.eclipse.ui.texteditor.IUpdate#update()
+ */
+ public void
update()
+ {
+ setEnabled( fMemoryViewer.canSave()
);
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.jface.action.IAction#run()
+ */
+ public void
run()
+ {
+ fMemoryViewer.saveChanges();
+ }
+}
Index:
src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryControlArea.java
===================================================================
RCS
file:
/home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryControlArea.java,v
retrieving
revision 1.11
diff -u -r1.11 MemoryControlArea.java
---
src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryControlArea.java 30
Oct 2002 05:03:21 -0000 1.11
+++
src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryControlArea.java 30
Oct 2002 22:00:19 -0000
@@ -371,4 +371,24
@@
tabItems[fIndex].setText( title
);
}
}
+
+ protected void
saveChanges()
+ {
+ if ( getMemoryBlock() != null
)
+ {
+ try
+ {
+ getMemoryBlock().saveChanges();
+ String
title = getTitle();
+ if ( title.charAt( 0 ) == '*'
)
+ {
+ setTitle(
title.substring( 1 )
);
+ }
+ }
+ catch(
DebugException e
)
+ {
+ CDebugUIPlugin.errorDialog(
"Unable to save memory changes.", e.getStatus()
);
+ }
+ }
+ }
}
Index:
src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryView.java
===================================================================
RCS
file:
/home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryView.java,v
retrieving
revision 1.10
diff -u -r1.10 MemoryView.java
---
src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryView.java 25 Oct
2002 17:13:57 -0000 1.10
+++
src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryView.java 30 Oct
2002 22:00:19 -0000
@@ -14,6 +14,7 @@
import
org.eclipse.cdt.debug.internal.ui.actions.MemoryNumberOfColumnAction;
import
org.eclipse.cdt.debug.internal.ui.actions.MemorySizeAction;
import
org.eclipse.cdt.debug.internal.ui.actions.RefreshMemoryAction;
+import
org.eclipse.cdt.debug.internal.ui.actions.SaveMemoryChangesAction;
import
org.eclipse.cdt.debug.internal.ui.actions.ShowAsciiAction;
import
org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler;
import
org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandlerView;
@@
-96,6 +97,11 @@
setAction( "ClearMemory", action ); file://$NON-NLS-1$
add(
(ClearMemoryAction)action );
+ action = ""
SaveMemoryChangesAction( (MemoryViewer)getViewer()
);
+ action.setEnabled( false );
+ setAction(
"SaveMemoryChanges", action ); file://$NON-NLS-1$
+ add(
(SaveMemoryChangesAction)action );
+
action = ""
ShowAsciiAction( (MemoryViewer)getViewer()
);
action.setEnabled( false
);
action.setChecked( false );
@@ -139,6 +145,7
@@
menu.appendToGroup( ICDebugUIConstants.MEMORY_GROUP,
getAction( "AutoRefreshMemory" ) ); file://$NON-NLS-1$
menu.appendToGroup(
ICDebugUIConstants.MEMORY_GROUP, getAction( "RefreshMemory" ) ); file://$NON-NLS-1$
menu.appendToGroup(
ICDebugUIConstants.MEMORY_GROUP, getAction( "ClearMemory" ) ); file://$NON-NLS-1$
+ menu.appendToGroup(
ICDebugUIConstants.MEMORY_GROUP, getAction( "SaveMemoryChanges" ) ); file://$NON-NLS-1$
MenuManager
subMenu = new MenuManager( "Memory Unit
Size "
);
{
@@ -173,6 +180,7 @@
tbm.add(
getAction( "AutoRefreshMemory" ) ); file://$NON-NLS-1$
tbm.add(
getAction( "RefreshMemory" ) ); file://$NON-NLS-1$
tbm.add(
getAction( "ClearMemory" ) ); file://$NON-NLS-1$
+ tbm.add(
getAction( "SaveMemoryChanges" ) ); file://$NON-NLS-1$
tbm.add(
new Separator( IDebugUIConstants.RENDER_GROUP ) );
tbm.add(
getAction( "ShowAscii" ) ); file://$NON-NLS-1$
@@ -218,6 +226,7
@@
fMemoryNumberOfColumnsGroup.dispose();
remove(
(ShowAsciiAction)getAction( "ShowAscii" ) );
+ remove(
(SaveMemoryChangesAction)getAction( "SaveMemoryChanges" )
);
remove( (ClearMemoryAction)getAction( "ClearMemory" )
);
remove( (RefreshMemoryAction)getAction( "RefreshMemory"
) );
remove( (AutoRefreshMemoryAction)getAction(
"AutoRefreshMemory" ) );
Index:
src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryViewer.java
===================================================================
RCS
file:
/home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryViewer.java,v
retrieving
revision 1.13
diff -u -r1.13 MemoryViewer.java
---
src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryViewer.java 25 Oct
2002 17:13:57 -0000 1.13
+++
src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryViewer.java 30 Oct
2002 22:00:19 -0000
@@ -175,6 +175,11 @@
return (
((MemoryControlArea)fTabFolder.getSelection().getControl()).getMemoryBlock() !=
null );
}
+ public boolean
canSave()
+ {
+ return (
((MemoryControlArea)fTabFolder.getSelection().getControl()).getMemoryBlock() !=
null );
+ }
+
public boolean
isFrozen()
{
IFormattedMemoryBlock block =
((MemoryControlArea)fTabFolder.getSelection().getControl()).getMemoryBlock();
@@
-193,6 +198,11 @@
public void
clear()
{
((MemoryControlArea)fTabFolder.getSelection().getControl()).clear();
+ }
+
+ public
void
saveChanges()
+ {
+ ((MemoryControlArea)fTabFolder.getSelection().getControl()).saveChanges();
}
public
boolean showAscii()