Package ghidra.util.table
Class GhidraTable
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JTable
-
- docking.widgets.table.GTable
-
- ghidra.util.table.GhidraTable
-
- All Implemented Interfaces:
DockingActionProviderIf,KeyStrokeConsumer,java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,java.util.EventListener,javax.accessibility.Accessible,javax.swing.event.CellEditorListener,javax.swing.event.ListSelectionListener,javax.swing.event.RowSorterListener,javax.swing.event.TableColumnModelListener,javax.swing.event.TableModelListener,javax.swing.Scrollable
public class GhidraTable extends GTable
Navigation is only supported if the underlying table model implementsProgramTableModeland thesetGoToService()method has been called with a valid reference. When both of these conditions are met, then the table will navigate on a user's double-click or on an Enter key press. Also, if selection navigation is enabled, then this table will navigate any time the selection of the table changes. To prevent this feature callsetNavigateOnSelectionEnabled(boolean)with a value of false.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JTable
javax.swing.JTable.AccessibleJTable, javax.swing.JTable.DropLocation, javax.swing.JTable.PrintMode
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
-
Fields inherited from class docking.widgets.table.GTable
defaultGTableRendererList, KEY_TIMEOUT
-
Fields inherited from class javax.swing.JTable
AUTO_RESIZE_ALL_COLUMNS, AUTO_RESIZE_LAST_COLUMN, AUTO_RESIZE_NEXT_COLUMN, AUTO_RESIZE_OFF, AUTO_RESIZE_SUBSEQUENT_COLUMNS, autoCreateColumnsFromModel, autoResizeMode, cellEditor, cellSelectionEnabled, columnModel, dataModel, defaultEditorsByColumnClass, defaultRenderersByColumnClass, editingColumn, editingRow, editorComp, gridColor, preferredViewportSize, rowHeight, rowMargin, rowSelectionAllowed, selectionBackground, selectionForeground, selectionModel, showHorizontalLines, showVerticalLines, tableHeader
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description GhidraTable()GhidraTable(java.lang.Object[][] rowData, java.lang.Object[] columnNames)Constructs aGhidraTableto display the values in the two dimensional array,rowData, with column names,columnNames.GhidraTable(java.lang.Object[][] rowData, java.lang.Object[] columnNames, boolean allowAutoEdit)Constructs aGhidraTableto display the values in the two dimensional array,rowData, with column names,columnNames.GhidraTable(javax.swing.table.TableModel model)GhidraTable(javax.swing.table.TableModel dm, boolean allowAutoEdit)Constructs a new GhidraTable using the specified table model.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddispose()Call this when the table will no longer be usedProgramSelectiongetProgramSelection()Returns the program selection equivalent to the rows currently selected in the table.protected voidinitDefaultRenderers()Installs the defaultTableCellRenderers for known Ghidra table cell data classes.voidinstallNavigation(GoToService goToService, Navigatable nav)Sets the GoTo service to use when navigation is enabled on this table.voidnavigate(int row, int column)Does nothing if noGoToServicehas been installed frominstallNavigation(GoToService, Navigatable).voidremoveNavigation()voidselectRow(int row)Selects the given row and performs a goto, if applicable.voidsetNavigateOnSelectionEnabled(boolean enabled)Allows the user to enable and disable the table's feature that triggers navigation on certain selection events, like mouse clicking and pressing the 'Enter' key.voidsetValueAt(java.lang.Object aValue, int row, int column)-
Methods inherited from class docking.widgets.table.GTable
columnAdded, columnRemoved, createDefaultColumnModel, createDefaultColumnsFromModel, createSelectionManager, editCellAt, getCellRenderer, getCellRendererOverride, getConfigurableColumnTableModel, getDefaultDockingActions, getDefaultRenderer, getDockingActions, getPreferenceKey, getPreferredScrollableViewportSize, getSelectionManager, getTableColumnPopupMenu, getToolTipText, getUnwrappedTableModel, getValueAt, isColumnHeaderPopupEnabled, isKeyConsumed, notifyTableChanged, processKeyBinding, savePreferences, scrollToSelectedRow, selectRow, setActionsEnabled, setAutoLookupColumn, setColumnHeaderPopupEnabled, setColumnModel, setHTMLRenderingEnabled, setModel, setPreferenceKey, setRowHeight, setSelectionModel, setUserSortingEnabled, setVisibleRowCount, tableChanged, wrapDefaultTableCellRenderer
-
Methods inherited from class javax.swing.JTable
addColumn, addColumnSelectionInterval, addNotify, addRowSelectionInterval, changeSelection, clearSelection, columnAtPoint, columnMarginChanged, columnMoved, columnSelectionChanged, configureEnclosingScrollPane, convertColumnIndexToModel, convertColumnIndexToView, convertRowIndexToModel, convertRowIndexToView, createDefaultDataModel, createDefaultEditors, createDefaultRenderers, createDefaultSelectionModel, createDefaultTableHeader, createScrollPaneForTable, doLayout, editCellAt, editingCanceled, editingStopped, getAccessibleContext, getAutoCreateColumnsFromModel, getAutoCreateRowSorter, getAutoResizeMode, getCellEditor, getCellEditor, getCellRect, getCellSelectionEnabled, getColumn, getColumnClass, getColumnCount, getColumnModel, getColumnName, getColumnSelectionAllowed, getDefaultEditor, getDragEnabled, getDropLocation, getDropMode, getEditingColumn, getEditingRow, getEditorComponent, getFillsViewportHeight, getGridColor, getIntercellSpacing, getModel, getPrintable, getRowCount, getRowHeight, getRowHeight, getRowMargin, getRowSelectionAllowed, getRowSorter, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedColumn, getSelectedColumnCount, getSelectedColumns, getSelectedRow, getSelectedRowCount, getSelectedRows, getSelectionBackground, getSelectionForeground, getSelectionModel, getShowHorizontalLines, getShowVerticalLines, getSurrendersFocusOnKeystroke, getTableHeader, getUI, getUIClassID, getUpdateSelectionOnSort, initializeLocalVars, isCellEditable, isCellSelected, isColumnSelected, isEditing, isRowSelected, moveColumn, paramString, prepareEditor, prepareRenderer, print, print, print, print, print, removeColumn, removeColumnSelectionInterval, removeEditor, removeNotify, removeRowSelectionInterval, resizeAndRepaint, rowAtPoint, selectAll, setAutoCreateColumnsFromModel, setAutoCreateRowSorter, setAutoResizeMode, setCellEditor, setCellSelectionEnabled, setColumnSelectionAllowed, setColumnSelectionInterval, setDefaultEditor, setDefaultRenderer, setDragEnabled, setDropMode, setEditingColumn, setEditingRow, setFillsViewportHeight, setGridColor, setIntercellSpacing, setPreferredScrollableViewportSize, setRowHeight, setRowMargin, setRowSelectionAllowed, setRowSelectionInterval, setRowSorter, setSelectionBackground, setSelectionForeground, setSelectionMode, setShowGrid, setShowHorizontalLines, setShowVerticalLines, setSurrendersFocusOnKeystroke, setTableHeader, setUI, setUpdateSelectionOnSort, sizeColumnsToFit, sizeColumnsToFit, sorterChanged, unconfigureEnclosingScrollPane, updateUI, valueChanged
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Constructor Detail
-
GhidraTable
public GhidraTable()
-
GhidraTable
public GhidraTable(javax.swing.table.TableModel model)
-
GhidraTable
public GhidraTable(javax.swing.table.TableModel dm, boolean allowAutoEdit)Constructs a new GhidraTable using the specified table model. IfallowAutoEditis true, then automatic editing is enabled. Auto-editing implies that typing in an editable cell will automatically force the cell into edit mode. IfallowAutoEditis false, thenF2must be hit before editing may commence.- Parameters:
dm- the table modelallowAutoEdit- true if auto-editing is allowed
-
GhidraTable
public GhidraTable(java.lang.Object[][] rowData, java.lang.Object[] columnNames)Constructs aGhidraTableto display the values in the two dimensional array,rowData, with column names,columnNames.rowDatais an array of rows, so the value of the cell at row 1, column 5 can be obtained with the following code:rowData[1][5];
All rows must be of the same length as
columnNames.- Parameters:
rowData- the data for the new tablecolumnNames- names of each column
-
GhidraTable
public GhidraTable(java.lang.Object[][] rowData, java.lang.Object[] columnNames, boolean allowAutoEdit)Constructs aGhidraTableto display the values in the two dimensional array,rowData, with column names,columnNames.rowDatais an array of rows, so the value of the cell at row 1, column 5 can be obtained with the following code:rowData[1][5];
All rows must be of the same length as
columnNames.If
allowAutoEditis true, then automatic editing is enabled. Auto-editing implies that typing in an editable cell will automatically force the cell into edit mode. IfallowAutoEditis false, thenF2must be hit before editing may commence.- Parameters:
rowData- the data for the new tablecolumnNames- names of each columnallowAutoEdit- true if auto-editing is allowed
-
-
Method Detail
-
initDefaultRenderers
protected void initDefaultRenderers()
Installs the defaultTableCellRenderers for known Ghidra table cell data classes. Subclasses can override this method to add additional types or to change the default associations.- Overrides:
initDefaultRenderersin classGTable
-
installNavigation
public void installNavigation(GoToService goToService, Navigatable nav)
Sets the GoTo service to use when navigation is enabled on this table.- Parameters:
goToService- the GoTo service.nav- the navigable
-
removeNavigation
public void removeNavigation()
-
getProgramSelection
public ProgramSelection getProgramSelection()
Returns the program selection equivalent to the rows currently selected in the table. This method is only valid when the underlying table model implementsProgramTableModel. Returns null if no rows are selected or the underlying model does not implementProgramTableModel.- Returns:
- the program selection or null.
-
navigate
public void navigate(int row, int column)Does nothing if noGoToServicehas been installed frominstallNavigation(GoToService, Navigatable). Also, this method will do nothing if this table's TableModel is not an instance ofProgramTableModel. Otherwise, this method will attempt to go to the program location denoted by the given row and column.- Parameters:
row- the rowcolumn- the column
-
setNavigateOnSelectionEnabled
public void setNavigateOnSelectionEnabled(boolean enabled)
Allows the user to enable and disable the table's feature that triggers navigation on certain selection events, like mouse clicking and pressing the 'Enter' key.- Parameters:
enabled- true enables the navigation on selection feature.
-
setValueAt
public void setValueAt(java.lang.Object aValue, int row, int column)- Overrides:
setValueAtin classjavax.swing.JTable
-
selectRow
public void selectRow(int row)
Selects the given row and performs a goto, if applicable.
-
-