X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fnet%2Fsf%2Fopenrocket%2Fgui%2Fcomponents%2FCollectionTable.java;fp=src%2Fnet%2Fsf%2Fopenrocket%2Fgui%2Fcomponents%2FCollectionTable.java;h=ef14dc6196c9fb233c858e8c1c7c411c35153451;hb=b3c3c1071dfdca4c6b3eb9935dc461201abdaf60;hp=0000000000000000000000000000000000000000;hpb=fa61335265b0af5f9bc8800df953d41cde2d75f6;p=debian%2Fopenrocket diff --git a/src/net/sf/openrocket/gui/components/CollectionTable.java b/src/net/sf/openrocket/gui/components/CollectionTable.java new file mode 100644 index 00000000..ef14dc61 --- /dev/null +++ b/src/net/sf/openrocket/gui/components/CollectionTable.java @@ -0,0 +1,75 @@ +package net.sf.openrocket.gui.components; + +import javax.swing.JTable; +import javax.swing.table.AbstractTableModel; + + +/* + * TODO: LOW: This is currently unused. + */ +public abstract class CollectionTable extends JTable { + + private final String[] columnNames; + private CollectionTableModel model; + + + protected CollectionTable(String[] columnNames) { + this.columnNames = columnNames.clone(); + } + + + protected void initializeTable() { + model = new CollectionTableModel(); + this.setModel(model); + } + + + /** + * Retrieve the object for the specified row number. + * + * @param row the row number being queried. + * @return the object at that row. + */ + protected abstract T getModelObjectAt(int row); + + protected abstract int getModelRowCount(); + + + + protected abstract Object getViewForModelObject(T object, int column); + + protected Class getViewColumnClass(int column) { + return Object.class; + } + + + + private class CollectionTableModel extends AbstractTableModel { + @Override + public int getColumnCount() { + return columnNames.length; + } + + @Override + public String getColumnName(int column) { + return columnNames[column]; + } + + @Override + public Class getColumnClass(int column) { + return getViewColumnClass(column); + } + + + @Override + public int getRowCount() { + return getModelRowCount(); + } + + @Override + public Object getValueAt(int row, int column) { + T value = getModelObjectAt(row); + return getViewForModelObject(value, column); + } + } +}