public TreeTable(NodeTreeModel treeModel, NodeTableModel tableModel) {
super();
setSurrendersFocusOnKeystroke(true);
this.tree = new TreeTableCellRenderer(treeModel);
this.tableModel = new TreeTableModelAdapter(tree, tableModel);
tree.setCellRenderer(new NodeRenderer());
setModel(this.tableModel);
selectionWrapper = new ListToTreeSelectionModelWrapper();
tree.setSelectionModel(selectionWrapper);
setSelectionModel(selectionWrapper.getListSelectionModel());
getTableHeader().setReorderingAllowed(false);
setDefaultRenderer(TreeTableModelAdapter.class, tree);
tableCell = new TableSheetCell(this.tableModel);
tableCell.setFlat(true);
setDefaultRenderer(Property.class, tableCell);
setDefaultEditor(Property.class, tableCell);
getTableHeader().setDefaultRenderer(tableCell);
getAccessibleContext().setAccessibleName(NbBundle.getMessage(TreeTable.class, "ACSN_TreeTable"));
getAccessibleContext().setAccessibleDescription(
NbBundle.getMessage(TreeTable.class, "ACSD_TreeTable"));
setFocusCycleRoot(true);
setFocusTraversalPolicy(new STPolicy());
putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
putClientProperty("JTable.autoStartsEdit", Boolean.FALSE);
initKeysAndActions();
}