Class RawPacketTableModel

java.lang.Object
javax.swing.table.AbstractTableModel
org.ka2ddo.yaac.gui.RawPacketTableModel
All Implemented Interfaces:
Serializable, TableModel, SnifferDataListener, ColumnSizingTableModel, FastComparableTableModel, ClearableTableModel

This class wraps the SnifferDataModel with a Java Swing TableModel.
Author:
Andrew Pavlin, KA2DDO
See Also:
  • Constructor Details

    • RawPacketTableModel

      public RawPacketTableModel(SnifferDataModel snifferDataModel)
      Create a table model for displaying the recent raw packets.
      Parameters:
      snifferDataModel - SnifferDataModel that contains the packet history
  • Method Details

    • isSortByRcvTime

      public boolean isSortByRcvTime()
      Indicate whether packets are sorted by time of local receipt, or any timestamp embedded in the packet (if any).
      Returns:
      boolean true if receive time should be used
    • setSortByRcvTime

      public void setSortByRcvTime(boolean sortByRcvTime)
      Specify whether packets are sorted by time of local receipt, or any timestamp embedded in the packet (if any).
      Parameters:
      sortByRcvTime - boolean true if receive time should be used
    • getColumnClass

      public Class<?> getColumnClass(int columnIndex)
      Returns the data Class for the specified column.
      Specified by:
      getColumnClass in interface TableModel
      Overrides:
      getColumnClass in class AbstractTableModel
      Parameters:
      columnIndex - the column being queried
      Returns:
      the Class object for the column's data
    • getColumnName

      public String getColumnName(int column)
      Returns the localized name for the column.
      Specified by:
      getColumnName in interface TableModel
      Overrides:
      getColumnName in class AbstractTableModel
      Parameters:
      column - the column being queried
      Returns:
      a string containing the name of column
    • compareRows

      public int compareRows(int rowIndex1, int rowIndex2, int columnIndex)
      Compare the selected column of the two rows.
      Specified by:
      compareRows in interface FastComparableTableModel
      Parameters:
      rowIndex1 - zero-based model row index of first row to compare
      rowIndex2 - zero-based model row index of second row to compare
      columnIndex - zero-based model column index of column to compare
      Returns:
      +1 if the 1st row's column is after the 2nd row's column, -1 if before, or 0 if equal precedence
    • isCellEditable

      public boolean isCellEditable(int rowIndex, int columnIndex)
      Indicate whether tabel cell is editable.
      Specified by:
      isCellEditable in interface TableModel
      Overrides:
      isCellEditable in class AbstractTableModel
      Parameters:
      rowIndex - zero-based row index of the cell
      columnIndex - zero-based column index of the cell
      Returns:
      always false
    • getColumnCount

      public int getColumnCount()
      Returns the number of columns in the model.
      Specified by:
      getColumnCount in interface TableModel
      Returns:
      the number of columns in the model
      See Also:
    • getColumnWidth

      public int getColumnWidth(int columnIndex)
      Specifies the default initial width of a column from this model. Should only be queried at table creation time.
      Specified by:
      getColumnWidth in interface ColumnSizingTableModel
      Parameters:
      columnIndex - int index of the model's column whose width should be obtained
      Returns:
      the width, in the same units used by the TableColumn class's setWidth() method, or -1 to indicate the width should not be forced
    • isSizeToFit

      public boolean isSizeToFit(int columnIndex)
      Specifies whether setWidthToFit() should be enabled on this column.
      Specified by:
      isSizeToFit in interface ColumnSizingTableModel
      Parameters:
      columnIndex - int index of the model's column whose width should be obtained
      Returns:
      boolean true if sizeWidthToFit() should be called on this column
    • getRowCount

      public int getRowCount()
      Returns the number of rows in the model.
      Specified by:
      getRowCount in interface TableModel
      Returns:
      the number of rows in the model
      See Also:
    • getValueAt

      public Object getValueAt(int rowIndex, int columnIndex)
      Returns the value for the cell at columnIndex and rowIndex.
      Specified by:
      getValueAt in interface TableModel
      Parameters:
      rowIndex - the row whose value is to be queried
      columnIndex - the column whose value is to be queried
      Returns:
      the value Object at the specified cell
    • getMessage

      public AX25Frame getMessage(int rowIndex)
      Get the AX.25 frame associated with a particular row in the RawPacketTableModel.
      Parameters:
      rowIndex - zero-based row index
      Returns:
      AX25Frame for that row
      Throws:
      IndexOutOfBoundsException - if rowIndex not between 0 and the number of messages in the table
    • getMode

      public RawPacketDisplayMode getMode()
      Get the current message body rendering mode.
      Returns:
      current SnifferPacketDisplayMode enum
    • setMode

      public void setMode(RawPacketDisplayMode mode)
      Set the current message body rendering mode.
      Parameters:
      mode - the RawPacketDisplayMode to use for future rendering
    • addTableModelListener

      public void addTableModelListener(TableModelListener l)
      Adds a listener to the list that's notified each time a change to the data model occurs.
      Specified by:
      addTableModelListener in interface TableModel
      Overrides:
      addTableModelListener in class AbstractTableModel
      Parameters:
      l - the TableModelListener
    • removeTableModelListener

      public void removeTableModelListener(TableModelListener l)
      Removes a listener from the list that's notified each time a change to the data model occurs.
      Specified by:
      removeTableModelListener in interface TableModel
      Overrides:
      removeTableModelListener in class AbstractTableModel
      Parameters:
      l - the TableModelListener
    • messagesDeleted

      public void messagesDeleted(int firstRow, int lastRow)
      Report that a block of messages has been deleted at the following range of indexes.
      Specified by:
      messagesDeleted in interface SnifferDataListener
      Parameters:
      firstRow - zero-based index of first message
      lastRow - zero-based index of last message
    • messagesInserted

      public void messagesInserted(int firstRow, int lastRow)
      Report that a block of messages has been inserted at the following range of indexes.
      Specified by:
      messagesInserted in interface SnifferDataListener
      Parameters:
      firstRow - zero-based index of first message
      lastRow - zero-based index of last message
    • scheduleToGuiThread

      public void scheduleToGuiThread(Runnable r)
      Schedule a short-running operation that should only occur on the GUI dispatch thread (however the implementing GUI chooses to do it).
      Specified by:
      scheduleToGuiThread in interface SnifferDataListener
      Parameters:
      r - Runnable to be scheduled as soon as possible on the GUI thread
    • deleteAllRows

      public int deleteAllRows(ClearableTableModel.ClearType clearType)
      Delete all rows from this table.
      Specified by:
      deleteAllRows in interface ClearableTableModel
      Parameters:
      clearType - type of rows to delete
      Returns:
      number of rows deleted
    • tableCanContainPlayback

      public boolean tableCanContainPlayback()
      Identifies whether this table can contain playback (historical) data.
      Specified by:
      tableCanContainPlayback in interface ClearableTableModel
      Returns:
      boolean true if table can contain playback data.
    • tableCanContainRealtime

      public boolean tableCanContainRealtime()
      Identifies whether this table can contain realtime data.
      Specified by:
      tableCanContainRealtime in interface ClearableTableModel
      Returns:
      boolean true if table can contain realtime data.