Class BulletinBoard

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

This class implements a bulletin board display of all the bulletins and NWS notices currently outstanding on the network. The bulletins are updated as new messages come in.
Author:
Andrew Pavlin, KA2DDO
See Also:
  • Field Details

    • DEFAULT_SORT_KEYS

      public static final List<RowSorter.SortKey> DEFAULT_SORT_KEYS
      Default sort order for Bulletin Board table.
  • Method Details

    • getInstance

      public static BulletinBoard getInstance()
      Get the BulletinBoard model instance.
      Returns:
      singleton BulletinBoard
    • showBulletinBoard

      public static void showBulletinBoard()
      Display the BulletinBoard window.
    • messageAdded

      public void messageAdded(StationState ss, int index, AX25Message msg)
      Called when a AX25Message is added to the history for a station in the tracker.
      Specified by:
      messageAdded in interface TrackerListener
      Parameters:
      ss - StationState containing the station's information
      index - zero-based index of the message added to the StationState object
      msg - APRS Message object being added to the tracker; note that non-APRS packets that can still be decoded (such as OpenTRAC) will also be passed here; AX25Frames that cannot be decoded will pass null here
    • stationAdded

      public void stationAdded(StationState ss, int index)
      Called when a new station is initially added to the tracker.
      Specified by:
      stationAdded in interface TrackerListener
      Parameters:
      ss - StationState containing the station's information; the initial AX25Message will not yet be stored within the StationState object
      index - zero-based integer sequence number for this station in the StationTracker
    • stationUpdated

      public void stationUpdated(StationState ss)
      Called when an existing station is updated with new information in the tracker.
      Specified by:
      stationUpdated in interface TrackerListener
      Parameters:
      ss - StationState containing the station's information
    • stationDeleted

      public void stationDeleted(StationState ss, int index)
      Called when an existing station is deleted from the tracker.
      Specified by:
      stationDeleted in interface TrackerListener
      Parameters:
      ss - StationState containing the station's information
      index - zero-based integer sequence number for this station in the StationTracker
    • messageDeleted

      public void messageDeleted(StationState ss, int index, AX25Message msg)
      Called when a AX25Message is deleted from the history for a station in the tracker.
      Specified by:
      messageDeleted in interface TrackerListener
      Parameters:
      ss - StationState containing the station's information; the AX25Message will already be removed from the StationState object
      index - zero-based index of the message removed from the StationState object
      msg - APRS Message object being removed from the tracker; note that non-APRS packets that can still be decoded (such as OpenTRAC) will also be passed here; AX25Frames that cannot be decoded will pass null here
    • getRowCount

      public int getRowCount()
      Returns the number of rows in the model. A JTable uses this method to determine how many rows it should display. This method should be quick, as it is called frequently during rendering.
      Specified by:
      getRowCount in interface TableModel
      Returns:
      the number of rows in the model
      See Also:
    • 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:
    • 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
    • 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
    • isCellEditable

      public boolean isCellEditable(int rowIndex, int columnIndex)
      Specified by:
      isCellEditable in interface TableModel
      Overrides:
      isCellEditable in class AbstractTableModel
    • 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
    • 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
    • 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
    • fontChanged

      public void fontChanged(String category, Font newFont)
      Report that the font choice for the specified category has changed.
      Specified by:
      fontChanged in interface FontChangeListener
      Parameters:
      category - String font family name (as defined by Font class)
      newFont - actual font instance
    • deleteAllRows

      public int deleteAllRows(ClearableTableModel.ClearType clearType)
      Delete all rows from this table.
      Specified by:
      deleteAllRows in interface ClearableTableModel
      Parameters:
      clearType - type of records 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.