package com.google.code.joto.ui.table; import java.util.ArrayList; import java.util.List; import javax.swing.JComponent; import javax.swing.JScrollPane; import javax.swing.JTable; import com.google.code.joto.eventrecorder.RecordEventSummary; import com.google.code.joto.eventrecorder.spy.awtspy.AWTRecordEventWriterSpy; /** * swing Panel containing a table of RecordEvent */ public class RecordEventTablePane { private AbstractRecordEventTableModel recordEventTableModel; private JScrollPane recordEventScrollPane; private JTable recordEventTable; // ------------------------------------------------------------------------ public RecordEventTablePane(AbstractRecordEventTableModel recordEventTableModel) { this.recordEventTableModel = recordEventTableModel; this.recordEventTable = new JTable(recordEventTableModel); // recordEventTable.setRowSorter(new TableRowSorter<AbstractRecordEventTableModel>(recordEventTableModel)); this.recordEventScrollPane = new JScrollPane(recordEventTable); AWTRecordEventWriterSpy.setIgnoreComponentAwtEventSpy(recordEventScrollPane); } // ------------------------------------------------------------------------ public JComponent getJComponent() { return recordEventScrollPane; } public JTable getRecordEventTable() { return recordEventTable; } public List<RecordEventSummary> getSelectedEventRows() { List<RecordEventSummary> res = new ArrayList<RecordEventSummary>(); int[] viewRows = recordEventTable.getSelectedRows(); for(int viewIndex : viewRows) { int modelIndex = recordEventTable.convertRowIndexToModel(viewIndex); RecordEventSummary eventRow = recordEventTableModel.getEventRow(modelIndex); res.add(eventRow); } return res; } }