|
Eclipse Platform Release 3.1 |
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.core.runtime.PlatformObject
org.eclipse.debug.ui.memory.AbstractMemoryRendering
org.eclipse.debug.ui.memory.AbstractTableRendering
Abstract implementation of a table rendering.
Clients should subclass from this class if they wish to provide a table rendering.
The label of the rendering is constructed by retrieving the expression from
IMemoryBlockExtension
. For IMemoryBlock, the label is constructed
using the memory block's start address.
This rendering manages the change states of its memory bytes if the memory
block does not opt to manage the change states. For IMemoryBlockExtension, if
the memory block returns false when #supportsChangeManagement() is called, this
rendering will calculate the change state for each byte when its content is updated.
Clients may manages the change states of its memory block by returning true when
#supportsChangeManagement() is called. This will cause this rendering to stop
calculating the change states of the memory block. Instead it would rely on the
attributes returned in the MemoryByte array to determine if a byte has changed.
For IMemoryBlock, this rendering will manage the change states its content.
When firing change event, be aware of the following:
- whenever a change event is fired, the content provider for Memory View
view checks to see if memory has actually changed.
- If memory has actually changed, a refresh will commence. Changes to the memory block
will be computed and will be shown with the delta icons.
- If memory has not changed, content will not be refreshed. However, previous delta information
will be erased. The screen will be refreshed to show that no memory has been changed. (All
delta icons will be removed.)
Please note that these APIs will be called multiple times by the Memory View.
To improve performance, debug adapters need to cache the content of its memory block and only
retrieve updated data when necessary.
Field Summary | |
---|---|
static String |
PROPERTY_COL_SIZE
Property identifier for the column size in a table rendering |
static String |
PROPERTY_SELECTED_ADDRESS
Property identifier for the selected address in a table rendering |
static String |
PROPERTY_TOP_ADDRESS
Property identifier for the top row address in a table rendering |
Constructor Summary | |
---|---|
AbstractTableRendering(String renderingId)
Constructs a new table rendering of the specified type. |
Method Summary | |
---|---|
void |
becomesHidden()
Notification this rendering has become hidden in its container. |
void |
becomesVisible()
Notification this rendering has become visible in its container. |
protected void |
createActions()
Create actions for the view tab |
Control |
createControl(Composite parent)
Creates the top level control for this rendering under the given parent composite. |
void |
displayError(DebugException e)
Displays an error message for the given exception. |
void |
displayTable()
Displays the content of the table viewer. |
void |
dispose()
Disposes this rendering. |
protected void |
fillContextMenu(IMenuManager menu)
Fills the context menu for this rendering |
boolean |
format(int bytesPerLine,
int columnSize)
Format view tab based on the bytes per line and column. |
Object |
getAdapter(Class adapter)
Returns an object which is an instance of the given class associated with this object. |
int |
getAddressableSize()
Returns the addressible size of this rendering's memory block in bytes. |
int |
getAddressableUnitPerColumn()
Returns the number of addressable units per column. |
int |
getAddressableUnitPerLine()
Returns the number of addressable units per row. |
abstract byte[] |
getBytes(String renderingTypeId,
BigInteger address,
MemoryByte[] currentValues,
String newValue)
Returns bytes for the given text corresponding to bytes at the given address for the specified rendering type. |
int |
getBytesPerColumn()
Returns the number of bytes displayed in a single column cell. |
int |
getBytesPerLine()
Returns the number of bytes displayed in a row. |
protected IColorProvider |
getColorProviderAdapter()
Returns the color provider for this rendering's memory block or null if none.
|
Control |
getControl()
Returns the top level control for this rendering. |
protected IFontProvider |
getFontProviderAdapter()
Returns the font provider for this rendering's memory block or null if none.
|
protected ILabelProvider |
getLabelProviderAdapter()
Returns the label provider for this rendering's memory block or null if none.
|
int |
getNumCharsPerByte()
Returns the number of characters a byte will convert to or -1 if unknown. |
BigInteger |
getSelectedAddress()
Returns the currently selected address in this rendering. |
MemoryByte[] |
getSelectedAsBytes()
Returns the currently selected content in this rendering as MemoryByte. |
String |
getSelectedAsString()
Returns the currently selected content in this rendering as a String. |
abstract String |
getString(String renderingTypeId,
BigInteger address,
MemoryByte[] data)
Returns text for the given memory bytes at the specified address for the specified rendering type. |
protected IMemoryBlockTablePresentation |
getTablePresentationAdapter()
Returns the table presentation for this rendering's memory block or null if none.
|
TableViewer |
getTableViewer()
Returns this rendering's table viewer. |
void |
goToAddress(BigInteger address)
Moves the cursor to the specified address. |
boolean |
isDisplayingError()
Returns whether the error page is displayed. |
void |
propertyChange(PropertyChangeEvent event)
Notification that a property has changed. |
void |
refresh()
Refresh the table viewer with the current top visible address. |
void |
reset()
Resets this memory rendering. |
void |
resizeColumnsToPreferredSize()
Resize column to the preferred size. |
void |
updateLabels()
Updates labels of this rendering. |
protected void |
updateRenderingLabel(boolean showAddress)
Updates the label of this rendering, optionally displaying the base address of this rendering's memory block. |
Methods inherited from class org.eclipse.debug.ui.memory.AbstractMemoryRendering |
---|
activated, addPropertyChangeListener, createPopupMenu, deactivated, firePropertyChangedEvent, getImage, getLabel, getMemoryBlock, getMemoryRenderingContainer, getPopupMenuManager, getRenderingId, init, isVisible, removePropertyChangeListener |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final String PROPERTY_SELECTED_ADDRESS
public static final String PROPERTY_COL_SIZE
public static final String PROPERTY_TOP_ADDRESS
Constructor Detail |
public AbstractTableRendering(String renderingId)
renderingId
- memory rendering type identifierMethod Detail |
public void propertyChange(PropertyChangeEvent event)
IPropertyChangeListener
This method gets called when the observed object fires a property change event.
propertyChange
in interface IPropertyChangeListener
event
- the property change event object describing which property
changed and howpublic Control createControl(Composite parent)
IMemoryRendering
init
method has been
called.
Implementors are responsible for ensuring that
the created control can be accessed via getControl
createControl
in interface IMemoryRendering
parent
- the parent compositepublic boolean format(int bytesPerLine, int columnSize)
bytesPerLine
- - number of bytes per line, possible values: 16 * addressableSizecolumnSize
- - number of bytes per column, possible values: (1 / 2 / 4 / 8 / 16) * addressableSize
public void displayTable()
public void displayError(DebugException e)
e
- exception to displaypublic boolean isDisplayingError()
public Control getControl()
IMemoryRendering
May return null
if the control
has not been created yet.
getControl
in interface IMemoryRendering
null
public int getAddressableSize()
public void resizeColumnsToPreferredSize()
protected void fillContextMenu(IMenuManager menu)
menu
- menu to fillpublic int getAddressableUnitPerLine()
public int getAddressableUnitPerColumn()
public int getBytesPerColumn()
public int getBytesPerLine()
public void updateLabels()
protected void updateRenderingLabel(boolean showAddress)
showAddress
- whether to display the base address of this
rendering's memory block in this rendering's labelpublic void refresh()
public TableViewer getTableViewer()
public void dispose()
IMemoryRendering
dispose
in interface IMemoryRendering
dispose
in class AbstractMemoryRendering
public void goToAddress(BigInteger address) throws DebugException
address
- address to position cursor at
DebugException
- if an exception occurrsprotected void createActions()
public void becomesHidden()
IMemoryRendering
becomesHidden
in interface IMemoryRendering
becomesHidden
in class AbstractMemoryRendering
public void becomesVisible()
IMemoryRendering
becomesVisible
in interface IMemoryRendering
becomesVisible
in class AbstractMemoryRendering
public void reset()
public BigInteger getSelectedAddress()
public String getSelectedAsString()
public MemoryByte[] getSelectedAsBytes()
public int getNumCharsPerByte()
public Object getAdapter(Class adapter)
IAdaptable
null
if
no such object can be found.
getAdapter
in interface IAdaptable
getAdapter
in class PlatformObject
adapter
- the class to adapt to
null
IAdaptable.getAdapter(Class)
,
Platform.getAdapterManager()
protected IColorProvider getColorProviderAdapter()
null
if none.
By default a color provider is obtained by aksing this rendering's
memory bock for its IColorProvider
adapter. When the color
provider is queried for color information, it is provided with a
MemoryRenderingElement
as an argument.
null
protected ILabelProvider getLabelProviderAdapter()
null
if none.
By default a label provider is obtained by aksing this rendering's
memory bock for its ILabelProvider
adapter. When the label
provider is queried for label information, it is provided with a
MemoryRenderingElement
as an argument.
null
protected IFontProvider getFontProviderAdapter()
null
if none.
By default a font provider is obtained by aksing this rendering's
memory bock for its IFontProvider
adapter. When the font
provider is queried for font information, it is provided with a
MemoryRenderingElement
as an argument.
null
protected IMemoryBlockTablePresentation getTablePresentationAdapter()
null
if none.
By default a table presentation is obtained by aksing this rendering's
memory bock for its IMemoryBlockTablePresentation
adapter.
null
public abstract String getString(String renderingTypeId, BigInteger address, MemoryByte[] data)
renderingTypeId
- rendering type identifieraddress
- address where the bytes belong todata
- the bytes
null
.
Returns a string to pad the cell if the memory cannot be converted
successfully.public abstract byte[] getBytes(String renderingTypeId, BigInteger address, MemoryByte[] currentValues, String newValue)
null
if the bytes cannot be formatted properly.
renderingTypeId
- rendering type identifieraddress
- address the bytes begin atcurrentValues
- current values of the data in bytes formatnewValue
- the string to be converted to bytes
|
Eclipse Platform Release 3.1 |
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Guidelines for using Eclipse APIs.
Copyright (c) IBM Corp. and others 2000, 2005. All rights reserved.