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();
+ }
+ }
}