package org.limewire.ui.swing.table; import java.awt.event.KeyEvent; import java.util.Vector; import javax.swing.Action; import javax.swing.JTable; import javax.swing.KeyStroke; import javax.swing.ListSelectionModel; import javax.swing.table.TableColumnModel; import javax.swing.table.TableModel; import org.jdesktop.swingx.JXTable; /** * A JXTable with some default functionality removed. * Specifically, this removes the 'Find' feature from the actionMap * and changes the 'enter' key to not move down. */ public class BasicJXTable extends JXTable { public BasicJXTable() { super(); initialize(); } public BasicJXTable(int numRows, int numColumns) { super(numRows, numColumns); initialize(); } public BasicJXTable(Object[][] rowData, Object[] columnNames) { super(rowData, columnNames); initialize(); } public BasicJXTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm) { super(dm, cm, sm); initialize(); } public BasicJXTable(TableModel dm, TableColumnModel cm) { super(dm, cm); initialize(); } public BasicJXTable(TableModel dm) { super(dm); initialize(); } public BasicJXTable(Vector rowData, Vector columnNames) { super(rowData, columnNames); initialize(); } private void initialize() { getActionMap().remove("find"); //Default java behavior for the enter key is the same as the down arrow. We don't want this. setEnterKeyAction(null); } /** * @param action the action that occurs when the user presses the enter key on the table */ public void setEnterKeyAction(Action action){ getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), "launchAction"); getActionMap().put("launchAction", action); } }