+ table.getColumnModel().getColumn(0).setPreferredWidth( (int) (.1 * width));
+ table.getColumnModel().getColumn(1).setPreferredWidth( (int) (.9 * width));
+ table.setAutoCreateRowSorter(true);
+
+ table.addMouseMotionListener(new MouseMotionAdapter(){
+ @Override
+ public void mouseMoved(MouseEvent e){
+ Point p = e.getPoint();
+ int row = table.rowAtPoint(p);
+ int col = table.columnAtPoint(p);
+ if (col == 1){
+ String description = String.valueOf(table.getValueAt(row, 1));
+ description = TextUtil.wrap(description, 60);
+ table.setToolTipText(description);
+ } else {
+ table.setToolTipText(null);
+ }
+ }
+ });
+
+ table.addMouseListener(new MouseListener(){
+ @Override
+ public void mouseClicked(MouseEvent e){
+ if (e.getClickCount() == 2){
+ log.debug("Selected operator by double clicking.");
+ selectOperator();
+ }
+ }
+ @Override
+ public void mouseEntered(MouseEvent e) {}
+ @Override
+ public void mouseExited(MouseEvent e) {}
+ @Override
+ public void mousePressed(MouseEvent e) {}
+ @Override
+ public void mouseReleased(MouseEvent e) {}
+ } );
+
+ InputMap inputMap = table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
+ ActionMap actionMap = table.getActionMap();
+ KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
+ inputMap.put(enter, "select");
+ actionMap.put("select", new AbstractAction(){
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ log.debug("Selected operator by enter key");
+ selectOperator();
+ }
+ });