/** Creates a new instance of TableView */ public TableView(NodeTableModel ntm) { table = new TableViewETable(); table.setModel(ntm); SheetCell tableCell = new SheetCell.TableSheetCell(ntm, table); table.setDefaultRenderer(Node.Property.class, tableCell); table.setDefaultEditor(Node.Property.class, tableCell); setViewportView(table); setPopupAllowed(true); // do not care about focus setRequestFocusEnabled (false); table.setRequestFocusEnabled(true); getActionMap().put("org.openide.actions.PopupAction", new PopupAction()); popupFactory = new NodePopupFactory(); java.awt.Color c = javax.swing.UIManager.getColor("Table.background1"); if (c == null) { c = javax.swing.UIManager.getColor("Table.background"); } if (c != null) { getViewport().setBackground(c); } setDragSource(true); setDropTarget(true); TableColumnSelector tcs = Lookup.getDefault ().lookup (TableColumnSelector.class); if (tcs != null) { table.setColumnSelector(tcs); } }
final String getShortDescription (String defaultValue) { TableModel model = getModel(); if (model.getRowCount() <= 0) { return null; } if (0 == getModelIndex()) { // 1st column return defaultValue; } if (model instanceof NodeTableModel) { NodeTableModel ntm = (NodeTableModel)model; Node.Property propertyForColumn = ntm.propertyForColumn(getModelIndex()); return propertyForColumn.getShortDescription(); } return defaultValue; }
@Override @SuppressWarnings("unchecked") public boolean editCellAt(int row, int column, EventObject e) { Object o = getValueAt(row, column); if (o instanceof Node.Property) { // && (e == null || e instanceof KeyEvent)) { //Toggle booleans without instantiating an editor Node.Property p = (Node.Property)o; if (!p.canWrite()) { return false; } if (p.getValueType() == Boolean.class || p.getValueType() == Boolean.TYPE) { PropertiesRowModel.toggleBooleanProperty(p); Rectangle r = getCellRect(row, column, true); repaint (r.x, r.y, r.width, r.height); return false; } } return super.editCellAt(row, column, e); }
@Override public boolean isSortingAllowed() { TableModel model = getModel(); if (model instanceof NodeTableModel) { NodeTableModel ntm = (NodeTableModel)model; return ntm.isComparableColumn(getModelIndex()); } return true; }