Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Implementation of the 'Number Of Columns' action.

Implementation of the 'Number Of Columns' action.

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/ChangeLog,v
retrieving revision 1.17
diff -u -r1.17 ChangeLog
--- ChangeLog 25 Oct 2002 15:52:38 -0000 1.17
+++ ChangeLog 25 Oct 2002 17:13:16 -0000
@@ -1,3 +1,9 @@
+2002-10-24 Mikhail Khodjaiants
+ Implementation of the 'Number Of Columns' action.
+ * MemoryNumberOfColumnAction.java: the action class
+ * MemoryViewer.java: support of the action
+ * MemoryView.java: support of the action
+
 2002-10-25 Mikhail Khodjaiants
  Replaced the usage of 'setWordSize' method by the 'reformat' method of 'IFormattedMemoryBlock'.
  * MemorySizeAction.java
Index: src/org/eclipse/cdt/debug/internal/ui/actions/MemoryNumberOfColumnAction.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/internal/ui/actions/MemoryNumberOfColumnAction.java
diff -N src/org/eclipse/cdt/debug/internal/ui/actions/MemoryNumberOfColumnAction.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/internal/ui/actions/MemoryNumberOfColumnAction.java 25 Oct 2002 17:13:16 -0000
@@ -0,0 +1,76 @@
+/*
+ *(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.actions.MemoryActionSelectionGroup;
+import org.eclipse.cdt.debug.internal.ui.views.memory.MemoryViewer;
+import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.jface.action.Action;
+import org.eclipse.ui.texteditor.IUpdate;
+
+/**
+ * Enter type comment.
+ *
+ * @since: Oct 25, 2002
+ */
+public class MemoryNumberOfColumnAction extends Action implements IUpdate
+{
+ private MemoryActionSelectionGroup fGroup;
+ private MemoryViewer fMemoryViewer;
+ private int fNumberOfColumns = 0;
+
+ /**
+  * Constructor for MemoryNumberOfColumnAction.
+  */
+ public MemoryNumberOfColumnAction( MemoryActionSelectionGroup group,
+             MemoryViewer viewer,
+             int numberOfColumns )
+ {
+  super( getLabel( numberOfColumns ) );
+  fGroup = group;
+  fMemoryViewer = viewer;
+  fNumberOfColumns = numberOfColumns;
+  setChecked( false );
+ }
+
+ private static String getLabel( int numberOfColumns )
+ {
+  return Integer.toString( numberOfColumns) + " column" + ( ( numberOfColumns > 1 ) ? "s" : "" );
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.texteditor.IUpdate#update()
+  */
+ public void update()
+ {
+  setEnabled( fMemoryViewer.canUpdate() );
+  setChecked( fMemoryViewer.getCurrentNumberOfColumns() == fNumberOfColumns );
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.jface.action.IAction#run()
+  */
+ public void run()
+ {
+  try
+  {
+   fMemoryViewer.setNumberOfColumns( fNumberOfColumns );
+   fGroup.setCurrentSelection( this );
+  }
+  catch( DebugException e )
+  {
+   CDebugUIPlugin.errorDialog( e.getMessage(), (IStatus)null );
+   setChecked( false );
+  }
+ }

+ public String getActionId()
+ {
+  return "MemoryNumberOfColumns" + fNumberOfColumns;
+ }
+}
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.9
diff -u -r1.9 MemoryView.java
--- src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryView.java 24 Oct 2002 23:16:01 -0000 1.9
+++ src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryView.java 25 Oct 2002 17:13:16 -0000
@@ -11,6 +11,7 @@
 import org.eclipse.cdt.debug.internal.ui.actions.AutoRefreshMemoryAction;
 import org.eclipse.cdt.debug.internal.ui.actions.ClearMemoryAction;
 import org.eclipse.cdt.debug.internal.ui.actions.MemoryActionSelectionGroup;
+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.ShowAsciiAction;
@@ -56,6 +57,7 @@
 {
  private IDebugModelPresentation fModelPresentation = null;
  private MemoryActionSelectionGroup fMemorySizeGroup = null;
+ private MemoryActionSelectionGroup fMemoryNumberOfColumnsGroup = null;
 
  /* (non-Javadoc)
   * @see org.eclipse.debug.ui.AbstractDebugView#createViewer(Composite)
@@ -103,6 +105,9 @@
   fMemorySizeGroup = new MemoryActionSelectionGroup();
   createSizeActionGroup( fMemorySizeGroup );
 
+  fMemoryNumberOfColumnsGroup = new MemoryActionSelectionGroup();
+  createNumberOfColumnsActionGroup( fMemoryNumberOfColumnsGroup );
+
   // set initial content here, as viewer has to be set
   setInitialContent();
  }
@@ -145,6 +150,16 @@
   }
   menu.appendToGroup( ICDebugUIConstants.FORMAT_GROUP, subMenu );
 
+  subMenu = new MenuManager( "Number Of Columns" );
+  {
+   IAction[] actions = fMemoryNumberOfColumnsGroup.getActions();
+   for ( int i = 0; i < actions.length; ++i )
+   {
+    subMenu.add( actions[i] );
+   }
+  }
+  menu.appendToGroup( ICDebugUIConstants.FORMAT_GROUP, subMenu );
+
   menu.appendToGroup( IDebugUIConstants.RENDER_GROUP, getAction( "ShowAscii" ) ); file://$NON-NLS-1$
  }
 
@@ -199,6 +214,8 @@
  {
   removeActionGroup( fMemorySizeGroup );
   fMemorySizeGroup.dispose();
+  removeActionGroup( fMemoryNumberOfColumnsGroup );
+  fMemoryNumberOfColumnsGroup.dispose();
 
   remove( (ShowAsciiAction)getAction( "ShowAscii" ) );
   remove( (ClearMemoryAction)getAction( "ClearMemory" ) );
@@ -295,6 +312,23 @@
   for ( int i = 0; i < ids.length; ++i )
   {
    MemorySizeAction action = "" MemorySizeAction( group, (MemoryViewer)getViewer(), ids[i] );
+   action.setEnabled( false );
+   setAction( action.getActionId(), action ); file://$NON-NLS-1$
+   add( action );
+   group.addAction( action );
+  }
+ }

+ private void createNumberOfColumnsActionGroup( MemoryActionSelectionGroup group )
+ {
+  int[] nocs = new int[] { IFormattedMemoryBlock.MEMORY_NUMBER_OF_COLUMNS_1,
+         IFormattedMemoryBlock.MEMORY_NUMBER_OF_COLUMNS_2,
+         IFormattedMemoryBlock.MEMORY_NUMBER_OF_COLUMNS_4,
+         IFormattedMemoryBlock.MEMORY_NUMBER_OF_COLUMNS_8,
+         IFormattedMemoryBlock.MEMORY_NUMBER_OF_COLUMNS_16 };
+  for ( int i = 0; i < nocs.length; ++i )
+  {
+   MemoryNumberOfColumnAction action = "" MemoryNumberOfColumnAction( group, (MemoryViewer)getViewer(), nocs[i] );
    action.setEnabled( false );
    setAction( action.getActionId(), action ); file://$NON-NLS-1$
    add( action );
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.12
diff -u -r1.12 MemoryViewer.java
--- src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryViewer.java 25 Oct 2002 15:52:38 -0000 1.12
+++ src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryViewer.java 25 Oct 2002 17:13:16 -0000
@@ -226,4 +226,20 @@
    ((MemoryControlArea)fTabFolder.getSelection().getControl()).refresh();
   }
  }

+ public int getCurrentNumberOfColumns()
+ {
+  IFormattedMemoryBlock block = ((MemoryControlArea)fTabFolder.getSelection().getControl()).getMemoryBlock();
+  return ( block != null ) ? block.getNumberOfColumns() : 0;
+ }

+ public void setNumberOfColumns( int numberOfColumns ) throws DebugException
+ {
+  IFormattedMemoryBlock block = ((MemoryControlArea)fTabFolder.getSelection().getControl()).getMemoryBlock();
+  if ( block != null )
+  {
+   block.reformat( block.getFormat(), block.getWordSize(), block.getNumberOfRows(), numberOfColumns );
+   ((MemoryControlArea)fTabFolder.getSelection().getControl()).refresh();
+  }
+ }
 }


Back to the top