package com.google.code.joto.ui.table;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import com.google.code.joto.eventrecorder.RecordEventSummary;
/**
* swing TableModel implementation for List<RecordEventSummary>
*/
public abstract class AbstractRecordEventTableModel extends AbstractTableModel {
/** internal for java.io.Serializable */
private static final long serialVersionUID = 1L;
// ------------------------------------------------------------------------
public AbstractRecordEventTableModel() {
}
// ------------------------------------------------------------------------
// public abstract List<RecordEventSummary> getEventRows();
public abstract RecordEventSummary getEventRow(int row);
public List<RecordEventSummary> getEventRowsSubList(int fromIndex, int toIndex) {
List<RecordEventSummary> res = new ArrayList<RecordEventSummary>();
for (int i = fromIndex; i <= toIndex; i++) {
res.add(getEventRow(i));
}
return res;
}
/** implements TableModel */
public int getColumnCount() {
return 7;
}
/** implements TableModel */
public Object getValueAt(int rowIndex, int columnIndex) {
RecordEventSummary rowEvent = getEventRow(rowIndex);
switch(columnIndex) {
case 0: return rowEvent.getEventId();
case 1: return rowEvent.getEventDate();
case 2: return rowEvent.getEventType();
case 3: return rowEvent.getEventSubType();
case 4: return rowEvent.getEventClassName();
case 5: return rowEvent.getEventMethodName();
case 6: return rowEvent.getEventMethodDetail();
case 7: return rowEvent.getInternalEventStoreDataAddress();
default: return null;
}
}
}