Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Implementation of the 'SaveMemoryChanges' action

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()


Back to the top