import javax.swing.table.AbstractTableModel;
public class TaskListModel extends AbstractTableModel { public final static int TITLE = 0;
private TaskList list; public TaskListModel (TaskList l) {
public int getRowCount() { public int getColumnCount() { public Object getValueAt(int row,
Task task = list.getTask(row); switch
(column) { return null;
import java.awt.*; import javax.swing.*; import javax.swing.table.*; public class TaskManagerUI extends JFrame { public static void main(String[]
args) { public TaskManagerUI() { |
public class ResultRecorder implements
javax.swing.table.TableModel { private java.util.Vector a_data; private javax.swing.event.EventListenerList a_listenerList; private static final int TEST_NAME = 0; private static final int TEST_DESCRIPTION = 1; private static final int RESULT_STATUS = 2; private static final int RESULT_DESCRIPTION = 3; private class ResultRecord { private String a_testName; private String a_testDescription; private CheckStatus a_resultStatus; private String a_resultDescription; public ResultRecord(String testName, String testDescription, int resultStatus, String resultDescription) { a_testName = testName; a_testDescription = testDescription; a_resultStatus = new CheckStatus(resultStatus); a_resultDescription = resultDescription; } public String getTestName() { return a_testName; } public String getTestDescription() { return a_testDescription; } public CheckStatus getResultStatus() { return a_resultStatus; } public String getResultDescription() { return a_resultDescription; } } public ResultRecorder() { a_data = new java.util.Vector(); a_listenerList = new javax.swing.event.EventListenerList(); } void record(String testName, String testDescription, int resultStatus, String resultDescription) { a_data.add( new ResultRecord(testName, testDescription, resultStatus, resultDescription) ); javax.swing.event.TableModelEvent e; int n = a_data.size(); e = new javax.swing.event.TableModelEvent(this, n, n, javax.swing.event.TableModelEvent.ALL_COLUMNS, javax.swing.event.TableModelEvent.INSERT); java.util.EventListener[] list = a_listenerList.getListeners(javax.swing.event.TableModelListener.class); for (int i = list.length-1; i>=0; i--) { ((javax.swing.event.TableModelListener)list[i]).tableChanged(e); } } public Class getColumnClass(int columnIndex) { switch (columnIndex) { case TEST_NAME: return String.class; case TEST_DESCRIPTION: return String.class; case RESULT_STATUS: return CheckStatus.class; case RESULT_DESCRIPTION: return String.class; } return null; } public int getColumnCount() { return 4; } public int getRowCount() { return a_data.size(); } public String getColumnName(int columnIndex) { switch (columnIndex) { case TEST_NAME: return "test"; case TEST_DESCRIPTION: return "description"; case RESULT_STATUS: return "status"; case RESULT_DESCRIPTION: return "result"; } return null; } public Object getValueAt(int rowIndex, int columnIndex) { ResultRecord r = (ResultRecord)a_data.get(rowIndex); switch (columnIndex) { case TEST_NAME: return r.getTestName(); case TEST_DESCRIPTION: return r.getTestDescription(); case RESULT_STATUS: return r.getResultStatus(); case RESULT_DESCRIPTION: return r.getResultDescription(); } return null; } public boolean isCellEditable(int rowIndex, int columnIndex) { return false; } public void addTableModelListener(javax.swing.event.TableModelListener l) { a_listenerList.add(javax.swing.event.TableModelListener.class, l); } public void removeTableModelListener(javax.swing.event.TableModelListener l) { a_listenerList.remove(javax.swing.event.TableModelListener.class, l); } public void setValueAt(Object aValue, int rowIndex, int columnIndex) { } } |
class
ResultTableCellRenderer extends
javax.swing.table.DefaultTableCellRenderer {
taskTable.setDefaultRenderer(String.class,new
ResultTableCellRenderer());
|
public class CheckStatus { public static final int SUCCESS = 1; public static final int WARNING = 2; public static final int FAILURE = 3; int a_status; public CheckStatus(int status) { a_status = status; } public String toString() { switch (a_status) { case SUCCESS: return "Success"; case WARNING: return "Warning"; case FAILURE: return "Failure"; } return null; } public java.awt.Color getColor() { switch (a_status) { case SUCCESS: return java.awt.Color.green; case WARNING: return java.awt.Color.orange; case FAILURE: return java.awt.Color.red; } return null; } } class CheckStatusCellRenderer extends javax.swing.table.DefaultTableCellRenderer { public java.awt.Component getTableCellRendererComponent( javax.swing.JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column ) { java.awt.Component renderer = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); CheckStatus status = (CheckStatus)value; renderer.setBackground(status.getColor()); return this; } } taskTable.setDefaultRenderer(CheckStatus.class,new CheckStatusCellRenderer()); |
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import javax.swing.table.DefaultTableCellRenderer; public class DateTimeCellRenderer extends DefaultTableCellRenderer { final static DateFormat format = new SimpleDateFormat("EEEE d MMMM yyyy HH:mm:ss"); public DateTimeCellRenderer() { public void setValue(Object value) {
table.setDefaultRenderer(java.util.Date.class, new DateTimeCellRenderer); |
import java.text.DateFormat; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Date; import javax.swing.DefaultCellEditor; import javax.swing.JTextField; public class DateTimeCellEditor extends DefaultCellEditor { static final DateFormat format = new SimpleDateFormat("dd/MM/yy HH:mm:ss"); public DateTimeCellEditor(JTextField
textField)
{ table.setDefaultEditor(java.util.Date.class, new DateTimeCellEditor(new JtextField())); |