Package ghidra.framework.main.logviewer.ui

# Class FVTable

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JTable
docking.widgets.table.GTable
ghidra.framework.main.logviewer.ui.FVTable

All Implemented Interfaces:
  `MouseListener`, `MouseMotionListener`, `ImageObserver`, `MenuContainer`, `Serializable`, `EventListener`, `Accessible`, `CellEditorListener`, `ListSelectionListener`, `RowSorterListener`, `TableColumnModelListener`, `TableModelListener`, `Scrollable`

public class FVTable extends GTable implements MouseMotionListener, MouseListener
The table that backs the `FileViewer` window. It is responsible for displaying `Chunk` instances.

See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class javax.swing.JTable

  `JTable.AccessibleJTable, JTable.DropLocation, JTable.PrintMode`

  ## Nested classes/interfaces inherited from class javax.swing.JComponent

  `JComponent.AccessibleJComponent`

  ## Nested classes/interfaces inherited from class java.awt.Container

  `Container.AccessibleAWTContainer`

  ## Nested classes/interfaces inherited from class java.awt.Component

  `Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

- ## Field Summary

  ### 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`

  ### Fields inherited from class java.awt.Component

  `accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

  ### Fields inherited from interface java.awt.image.ImageObserver

  `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FVTable(ChunkReader reader, ViewportUtility viewportUtility, ChunkModel model, FVEventListener eventListener)`
  Ctor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addRow(String row)`
  Adds the given row to the table.
  `void`
  `addRows(List<String> rows)`
  Adds the list of rows to the table.
  `void`
  `clear()`
  Removes all rows from the table model.
  `void`
  `decrementAndAddSelection(int rows)`
  Decrements the selection by the number of rows given, and adds the new rows to the selection.
  `void`
  `decrementSelection(int rows)`
  Moves the table selection up by the number of rows specified, ensuring that selection does not go beyond the beginning of the file.
  `void`
  `incrementAndAddSelection(int rows)`
  Increments the selection by the given number of rows, but doesn't affect any previously selected rows.
  `void`
  `incrementSelection(int rows)`
  Moves the table selection down by the number of rows specified, ensuring that selection does not go beyond the bounds of the file.
  `void`
  `mouseClicked(MouseEvent e)`
  `void`
  `mouseDragged(MouseEvent e)`
  `void`
  `mouseEntered(MouseEvent e)`
  `void`
  `mouseExited(MouseEvent e)`
  `void`
  `mouseMoved(MouseEvent e)`
  `void`
  `mousePressed(MouseEvent e)`
  `void`
  `mouseReleased(MouseEvent e)`
  `Component`
  `prepareRenderer(TableCellRenderer renderer, int row, int column)`
  Adjusts the column widths to be at least as wide as the widest cell.
  `void`
  `restoreSelection()`
  Set any previously selected table rows to a selected state.
  `void`
  `setMouseDragging(boolean isMouseDragging)`
  `void`
  `setShiftDown(boolean isDown)`
  Sets the status of the shift key.
  `void`
  `valueChanged(ListSelectionEvent e)`
  Invoked when a new row has been selected in the table.

  ### Methods inherited from class docking.widgets.table.GTable

  `areActionsEnabled, columnAdded, columnRemoved, createAutoLookup, createDefaultColumnModel, createDefaultColumnsFromModel, createSelectionManager, createSharedActions, dispose, editCellAt, getAutoLookup, getCellRenderer, getCellRendererOverride, getConfigurableColumnTableModel, getDefaultRenderer, getHeaderRendererOverride, getPreferenceKey, getPreferredScrollableViewportSize, getSelectionManager, getTableColumnPopupMenu, getToolTipText, getUnwrappedTableModel, getValueAt, initDefaultRenderers, installEditKeyBinding, isColumnHeaderPopupEnabled, notifyTableChanged, processKeyBinding, requestTableEditorFocus, savePreferences, scrollToSelectedRow, selectRow, selectRow, setActionsEnabled, setAutoEditEnabled, setAutoLookupColumn, setAutoLookupTimeout, setColumnHeaderPopupEnabled, setColumnModel, setHTMLRenderingEnabled, setModel, setPreferenceKey, setRowHeight, setSelectionModel, setUI, setUserSortingEnabled, setVisibleRowCount, supportsPopupActions, 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, 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, setUpdateSelectionOnSort, setValueAt, sizeColumnsToFit, sizeColumnsToFit, sorterChanged, unconfigureEnclosingScrollPane, updateUI`

  ### 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`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### FVTable

    public FVTable(ChunkReader reader, ViewportUtility viewportUtility, ChunkModel model, FVEventListener eventListener)
    Ctor.
    Parameters:
      `reader` -
      `viewportUtility` -
      `model` -
      `eventListener` -

- ## Method Details

  - ### prepareRenderer

    public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
    Adjusts the column widths to be at least as wide as the widest cell. This is required for horizontal scrolling to work properly.
    Overrides:
      `prepareRenderer` in class `JTable`

  - ### setShiftDown

    public void setShiftDown(boolean isDown)
    Sets the status of the shift key.
    Parameters:
      `isDown` -

  - ### setMouseDragging

    public void setMouseDragging(boolean isMouseDragging)

  - ### addRow

    public void addRow(String row)
    Adds the given row to the table.
    Parameters:
      `row` -

  - ### addRows

    public void addRows(List<String> rows)
    Adds the list of rows to the table.
    Parameters:
      `rows` -

  - ### restoreSelection

    public void restoreSelection()
    Set any previously selected table rows to a selected state. This should be called any time a chunk is read into the table. Note: This is critically important when the user has selected a row, then scrolled such that the selected row is in a chunk that has been swapped out and is no longer in the table. When that chunk is scrolled back into view, this will restore the selection. Note2: If there is a range of selected values and the table is somewhere in the middle of that range, just select the entire table.

  - ### clear

    public void clear()
    Removes all rows from the table model.

  - ### incrementAndAddSelection

    public void incrementAndAddSelection(int rows)
    Increments the selection by the given number of rows, but doesn't affect any previously selected rows. This is typically called when selecting while dragging.
    Parameters:
      `rows` -

  - ### incrementSelection

    public void incrementSelection(int rows)
    Moves the table selection down by the number of rows specified, ensuring that selection does not go beyond the bounds of the file.
    Parameters:
      `rows` -

  - ### decrementAndAddSelection

    public void decrementAndAddSelection(int rows)
    Decrements the selection by the number of rows given, and adds the new rows to the selection.
    Parameters:
      `rows` -

  - ### decrementSelection

    public void decrementSelection(int rows)
    Moves the table selection up by the number of rows specified, ensuring that selection does not go beyond the beginning of the file.
    Parameters:
      `rows` -

  - ### valueChanged

    public void valueChanged(ListSelectionEvent e)
    Invoked when a new row has been selected in the table. Update our chunk model to reflect as much.
    Specified by:
      `valueChanged` in interface `ListSelectionListener`
    Overrides:
      `valueChanged` in class `JTable`
    Parameters:
      `e` -

  - ### mouseDragged

    public void mouseDragged(MouseEvent e)
    Specified by:
      `mouseDragged` in interface `MouseMotionListener`

  - ### mouseMoved

    public void mouseMoved(MouseEvent e)
    Specified by:
      `mouseMoved` in interface `MouseMotionListener`

  - ### mouseClicked

    public void mouseClicked(MouseEvent e)
    Specified by:
      `mouseClicked` in interface `MouseListener`

  - ### mousePressed

    public void mousePressed(MouseEvent e)
    Specified by:
      `mousePressed` in interface `MouseListener`

  - ### mouseReleased

    public void mouseReleased(MouseEvent e)
    Specified by:
      `mouseReleased` in interface `MouseListener`

  - ### mouseEntered

    public void mouseEntered(MouseEvent e)
    Specified by:
      `mouseEntered` in interface `MouseListener`

  - ### mouseExited

    public void mouseExited(MouseEvent e)
    Specified by:
      `mouseExited` in interface `MouseListener`