1 7 package org.columba.core.gui.plugin; 8 9 import javax.swing.tree.DefaultTreeModel ; 10 import javax.swing.tree.TreePath ; 11 12 import org.frapuccino.treetable.AbstractTreeTableModel; 13 14 15 21 public class PluginTreeTableModel extends AbstractTreeTableModel { 22 PluginNode root; 23 24 28 public PluginTreeTableModel(String [] columns) { 29 super(columns); 30 31 PluginNode root = new PluginNode(); 32 root.setId("root"); 33 } 34 35 public Class getColumnClass(int c) { 36 if (c == 0) { 38 return tree.getClass(); 39 } 40 41 if (c == 1) { 42 return String .class; 43 } else { 44 return Boolean .class; 46 } 47 } 48 49 public Object getValueAt(int row, int col) { 50 PluginNode node = (PluginNode) tree.getPathForRow(row) 51 .getLastPathComponent(); 52 53 return node; 54 } 55 56 public void set(PluginNode root) { 57 tree.setRootNode(root); 58 59 ((DefaultTreeModel ) tree.getModel()).nodeStructureChanged(root); 60 61 fireTableDataChanged(); 62 } 63 64 67 public void setValueAt(Object value, int row, int col) { 68 if (col == 2) { 69 TreePath path = tree.getPathForRow(row); 71 PluginNode node = (PluginNode) path.getLastPathComponent(); 72 73 if (node.isCategory()) { 74 return; 75 } 76 77 node.setEnabled(((Boolean ) value).booleanValue()); 79 80 85 } 86 } 87 88 91 public boolean isCellEditable(int row, int col) { 92 if (col == 2) { 94 return false; 95 } 96 97 if (col == 0) { 99 return true; 100 } 101 102 return false; 103 } 104 } 105 | Popular Tags |