com.compomics.util.gui.tablemodels
Class SelfUpdatingTableModel

java.lang.Object
  extended by javax.swing.table.AbstractTableModel
      extended by javax.swing.table.DefaultTableModel
          extended by 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 Summary
 
Fields inherited from class javax.swing.table.DefaultTableModel
columnIdentifiers, dataVector
 
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
 
Constructor Summary
SelfUpdatingTableModel()
           
 
Method Summary
static void addSortListener(JTable jTable, ProgressDialogX progressDialog)
          Convenience method adding a row sorter listener to the given JTable.
protected abstract  void catchException(Exception e)
          This method is called whenever an exception is encountered in a separate thread.
protected  void dataMissingAtRow(int row)
          Calling this method indicates that data is missing at the given row.
 int getRowNumber(int viewIndex)
          Returns the row number of the given view index.
 int getViewIndex(int row)
          Returns the view index of the given row.
 void initiateSorter()
          Initiates the sorter to the current order of the table.
 boolean isSelfUpdating()
          Indicates whether the table is in self update mode.
protected abstract  void loadDataForColumn(int column, WaitingHandler waitingHandler)
          Loads the data for a column.
protected abstract  int loadDataForRows(ArrayList<Integer> indexes, boolean interrupted)
          Loads the data needed for objects at rows of the given view indexes.
 boolean needsUpdate(int column, String waitingContent)
          Indicates whether the given column needs an update, i.e.
 void setSelfUpdating(boolean selfUpdating)
          Sets whether the table is in self update mode.
 void sort(int column, ProgressDialogX progressDialog)
          Sorts the table according to a given column using the built in sorter.
 
Methods inherited from class javax.swing.table.DefaultTableModel
addColumn, addColumn, addColumn, addRow, addRow, convertToVector, convertToVector, getColumnCount, getColumnName, getDataVector, getRowCount, getValueAt, insertRow, insertRow, isCellEditable, moveRow, newDataAvailable, newRowsAdded, removeRow, rowsRemoved, setColumnCount, setColumnIdentifiers, setColumnIdentifiers, setDataVector, setDataVector, setNumRows, setRowCount, setValueAt
 
Methods inherited from class javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, removeTableModelListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SelfUpdatingTableModel

public SelfUpdatingTableModel()
Method Detail

loadDataForRows

protected abstract int loadDataForRows(ArrayList<Integer> indexes,
                                       boolean interrupted)
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.
interrupted - a boolean indicating whether the loading shall be stopped
Returns:
the last updated row

loadDataForColumn

protected abstract void loadDataForColumn(int column,
                                          WaitingHandler waitingHandler)
Loads the data for a column. Use this method to cache data before working on the given column.

Parameters:
column - the column number
waitingHandler - a waiting handler used to display progress to the user or interrupt the process

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)
                         throws InterruptedException
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)
Throws:
InterruptedException

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

sort

public void sort(int column,
                 ProgressDialogX progressDialog)
Sorts the table according to a given column using the built in sorter.

Parameters:
column - the column of interest
progressDialog - 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 -
progressDialog - progress dialog used to display progress or cancel while sorting. Can be null.


Copyright © 2013. All Rights Reserved.