/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package cn.vearn.checktreetable; import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; import org.jdesktop.swingx.treetable.DefaultTreeTableModel; import org.jdesktop.swingx.treetable.TreeTableNode; import org.jdesktop.swingx.ux.CellProvider; /** * @author vearn */ public class FiledTreeTableModel extends DefaultTreeTableModel { private String[] _names = {" Key ", "Value", "Data Type", " Field name "}; private Class[] _types = {Object.class, Object.class, Object.class, Object.class}; public FiledTreeTableModel(TreeTableNode node) { super(node); } /** * 列的类型 */ @Override public Class getColumnClass(int col) { return _types[col]; } /** * 列的数量 */ @Override public int getColumnCount() { return _names.length; } /** * 表头显示的内容 */ @Override public String getColumnName(int column) { return _names[column]; } /** * 返回在单元格中显示的Object */ @Override public Object getValueAt(Object node, int column) { Object value = ""; if (node instanceof DefaultMutableTreeTableNode) { DefaultMutableTreeTableNode mutableNode = (DefaultMutableTreeTableNode) node; Object o = mutableNode.getUserObject(); if (o != null && o instanceof CellProvider) { CellProvider cellProvider = (CellProvider) o; value = cellProvider.getCellTitle(column); } } return value; } @Override public void setValueAt(Object value, Object node, int column) { super.setValueAt(value, node, column); if (node instanceof DefaultMutableTreeTableNode) { DefaultMutableTreeTableNode mutableNode = (DefaultMutableTreeTableNode) node; Object o = mutableNode.getUserObject(); if (o != null && o instanceof CellProvider) { CellProvider cellProvider = (CellProvider) o; cellProvider.setValueAt(column,value.toString()); } } } @Override public boolean isCellEditable(Object node, int column) { if (column == 2) { return true; } if (column == 3) { return true; } return false; } }