/* FFTSampleFilterTable.java created 2008-02-03
*
*/
package org.signalml.app.view.montage.filters;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JPopupMenu;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import org.signalml.app.model.montage.FFTSampleFilterTableModel;
import org.signalml.app.view.TablePopupMenuProvider;
/** FFTSampleFilterTable
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o.
*/
public class FFTSampleFilterTable extends JTable {
private static final long serialVersionUID = 1L;
private TablePopupMenuProvider popupMenuProvider;
public FFTSampleFilterTable(FFTSampleFilterTableModel model) {
super(model, (TableColumnModel) null);
DefaultTableColumnModel columnModel = new DefaultTableColumnModel();
columnModel.setColumnSelectionAllowed(false);
TableColumn tc;
tc = new TableColumn(FFTSampleFilterTableModel.FREQUENCY_COLUMN, 200);
tc.setHeaderValue(model.getColumnName(tc.getModelIndex()));
columnModel.addColumn(tc);
tc = new TableColumn(FFTSampleFilterTableModel.COEFFICIENT_COLUMN, 100);
tc.setHeaderValue(model.getColumnName(tc.getModelIndex()));
columnModel.addColumn(tc);
setColumnModel(columnModel);
setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (SwingUtilities.isRightMouseButton(e) && (e.getClickCount() == 1)) {
int index = rowAtPoint(e.getPoint());
ListSelectionModel selectionModel = getSelectionModel();
if (!selectionModel.isSelectedIndex(index)) {
selectionModel.setSelectionInterval(index, index);
}
}
}
});
getTableHeader().setReorderingAllowed(false);
}
@Override
public FFTSampleFilterTableModel getModel() {
return (FFTSampleFilterTableModel) super.getModel();
}
@Override
public JPopupMenu getComponentPopupMenu() {
if (popupMenuProvider == null) {
return null;
}
return popupMenuProvider.getPopupMenu(-1, getSelectedRow());
}
public TablePopupMenuProvider getPopupMenuProvider() {
return popupMenuProvider;
}
public void setPopupMenuProvider(TablePopupMenuProvider popupMenuProvider) {
this.popupMenuProvider = popupMenuProvider;
}
}