mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-28 03:15:33 +02:00
Implementation of the 'Number Of Columns' action.
This commit is contained in:
parent
6fbe49621c
commit
37c1cc6633
4 changed files with 132 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue