Class SelfUpdatingTableModel

java.lang.Object
javax.swing.table.AbstractTableModel
javax.swing.table.DefaultTableModel
com.compomics.util.gui.tablemodels.SelfUpdatingTableModel
All Implemented Interfaces:
Serializable, TableModel

public abstract class SelfUpdatingTableModel
extends DefaultTableModel
These table models include a self updating function. Due to instability of the JTable with this model, it comprises a simple row sorter. Use it at your own risks and feel free to debug.
Author:
Marc Vaudel, Harald Barsnes
See Also:
Serialized Form
  • Field Details

    • isScrolling

      public boolean isScrolling
      When true this indicates that the user is currently scrolling in the table and that the table should not update.
  • Constructor Details

  • Method Details

    • loadDataForRows

      protected abstract int loadDataForRows​(ArrayList<Integer> indexes, WaitingHandler waitingHandler)
      Loads the data needed for objects at rows of the given view indexes. Use this method to cache data before working on the given lines.
      Parameters:
      indexes - the view indexes to load as a list. Shall not be empty or null.
      waitingHandler - the waiting handler
      Returns:
      the last updated row
    • catchException

      protected abstract void catchException​(Exception e)
      This method is called whenever an exception is encountered in a separate thread.
      Parameters:
      e - the exception encountered
    • dataMissingAtRow

      protected void dataMissingAtRow​(int row)
      Calling this method indicates that data is missing at the given row. The data will be loaded in a separate thread and the table updated later on.
      Parameters:
      row - the row number (not the view index)
    • isSelfUpdating

      public boolean isSelfUpdating()
      Indicates whether the table is in self update mode.
      Returns:
      true if the table is in self update mode
    • setSelfUpdating

      public void setSelfUpdating​(boolean selfUpdating)
      Sets whether the table is in self update mode.
      Parameters:
      selfUpdating - if false the table will not automatically update
    • needsUpdate

      public boolean needsUpdate​(int column, String waitingContent)
      Indicates whether the given column needs an update, i.e. whether a cell contains waitingContent.
      Parameters:
      column - index of the column of interest
      waitingContent - the waiting content of this table
      Returns:
      indicates whether the given column needs an update
    • initiateSorter

      public void initiateSorter()
      Initiates the sorter to the current order of the table.
    • getViewIndex

      public int getViewIndex​(int row)
      Returns the view index of the given row.
      Parameters:
      row - the row of interest
      Returns:
      the corresponding view index
    • getRowNumber

      public int getRowNumber​(int viewIndex)
      Returns the row number of the given view index.
      Parameters:
      viewIndex - view index row of interest
      Returns:
      the corresponding row
    • resetSorting

      public void resetSorting​(ProgressDialogX aProgressDialog)
      Sorts the table according to a given column using the built in sorter.
      Parameters:
      aProgressDialog - a progress dialog used to display the progress and interrupt the process
    • sort

      public void sort​(int column, ProgressDialogX aProgressDialog)
      Sorts the table according to a given column using the built in sorter.
      Parameters:
      column - the column of interest
      aProgressDialog - a progress dialog used to display the progress and interrupt the process
    • addSortListener

      public static void addSortListener​(JTable jTable, ProgressDialogX progressDialog)
      Convenience method adding a row sorter listener to the given JTable.
      Parameters:
      jTable - the table to add the resetSorting listener to
      progressDialog - progress dialog used to display progress or cancel while sorting. Can be null.
    • isScrolling

      public boolean isScrolling()
      Indicates whether the table is currently being scrolled.
      Returns:
      true if the table is currently being scrolled
    • setIsScrolling

      public void setIsScrolling​(boolean isScrolling)
      Set if the user is currently scrolling or not.
      Parameters:
      isScrolling - the isScrolling to set
    • addScrollListeners

      public static void addScrollListeners​(JTable table, JScrollPane scrollPane, JScrollBar scrollBar)
      Add scroll bar and mouse wheel listeners.
      Parameters:
      table - the table
      scrollBar - the scroll bar
      scrollPane - the scroll pane