00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 package GuiComponents.Inspector.TreeTable;
00041
00042 import javax.swing.table.AbstractTableModel;
00043 import javax.swing.JTree;
00044 import javax.swing.tree.TreePath;
00045 import javax.swing.event.TreeExpansionEvent;
00046 import javax.swing.event.TreeExpansionListener;
00047
00061 public class TreeTableModelAdapter extends AbstractTableModel
00062 {
00063 JTree tree;
00064 TreeTableModel treeTableModel;
00065
00066 public TreeTableModelAdapter(TreeTableModel treeTableModel, JTree tree) {
00067 this.tree = tree;
00068 this.treeTableModel = treeTableModel;
00069
00070 tree.addTreeExpansionListener(new TreeExpansionListener() {
00071
00072
00073 public void treeExpanded(TreeExpansionEvent event) {
00074 fireTableDataChanged();
00075 }
00076 public void treeCollapsed(TreeExpansionEvent event) {
00077 fireTableDataChanged();
00078 }
00079 });
00080 }
00081
00082
00083
00084 public int getColumnCount() {
00085 return treeTableModel.getColumnCount();
00086 }
00087
00088 public String getColumnName(int column) {
00089 return treeTableModel.getColumnName(column);
00090 }
00091
00092 public Class getColumnClass(int column) {
00093 return treeTableModel.getColumnClass(column);
00094 }
00095
00096 public int getRowCount() {
00097 return tree.getRowCount();
00098 }
00099
00100 protected Object nodeForRow(int row) {
00101 TreePath treePath = tree.getPathForRow(row);
00102 return treePath.getLastPathComponent();
00103 }
00104
00105 public Object getValueAt(int row, int column) {
00106 return treeTableModel.getValueAt(nodeForRow(row), column);
00107 }
00108
00109 public boolean isCellEditable(int row, int column) {
00110 return treeTableModel.isCellEditable(nodeForRow(row), column);
00111 }
00112
00113 public void setValueAt(Object value, int row, int column) {
00114 treeTableModel.setValueAt(value, nodeForRow(row), column);
00115 }
00116 }
00117
00118