1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-28 11:25:35 +02:00

Implementation of the 'Number Of Columns' action.

This commit is contained in:
Mikhail Khodjaiants 2002-10-25 17:13:57 +00:00
parent 6fbe49621c
commit 37c1cc6633
4 changed files with 132 additions and 0 deletions

View file

@ -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

View file

@ -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;
}
}

View file

@ -11,6 +11,7 @@ import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds;
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 @@ public class MemoryView extends AbstractDebugEventHandlerView
{
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 @@ public class MemoryView extends AbstractDebugEventHandlerView
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 @@ public class MemoryView extends AbstractDebugEventHandlerView
}
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" ) ); //$NON-NLS-1$
}
@ -199,6 +214,8 @@ public class MemoryView extends AbstractDebugEventHandlerView
{
removeActionGroup( fMemorySizeGroup );
fMemorySizeGroup.dispose();
removeActionGroup( fMemoryNumberOfColumnsGroup );
fMemoryNumberOfColumnsGroup.dispose();
remove( (ShowAsciiAction)getAction( "ShowAscii" ) );
remove( (ClearMemoryAction)getAction( "ClearMemory" ) );
@ -302,6 +319,23 @@ public class MemoryView extends AbstractDebugEventHandlerView
}
}
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 = new MemoryNumberOfColumnAction( group, (MemoryViewer)getViewer(), nocs[i] );
action.setEnabled( false );
setAction( action.getActionId(), action ); //$NON-NLS-1$
add( action );
group.addAction( action );
}
}
private void removeActionGroup( MemoryActionSelectionGroup group )
{
IAction[] actions = group.getActions();

View file

@ -226,4 +226,20 @@ public class MemoryViewer extends ContentViewer
((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();
}
}
}