/* NewStagerSleepStatisticTable.java created 2007-02-23
*
*/
package org.signalml.plugin.newstager.ui;
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.TableColumnModel;
import org.signalml.app.view.TablePopupMenuProvider;
/**
* NewStagerSleepStatisticTable
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe
* Sp. z o.o.
*/
public class NewStagerSleepStatisticTable extends JTable {
private static final long serialVersionUID = 1L;
private TablePopupMenuProvider popupMenuProvider;
public NewStagerSleepStatisticTable(NewStagerSleepStatisticTableModel model) {
super(model, (TableColumnModel) null);
setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_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);
TableColumnModel columnModel = getColumnModel();
columnModel.setColumnSelectionAllowed(false);
}
@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;
}
}