KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > TreeModelExample4


1
2 import java.awt.event.ActionEvent JavaDoc;
3 import java.io.File JavaDoc;
4 import java.io.FileInputStream JavaDoc;
5 import java.net.MalformedURLException JavaDoc;
6 import java.util.ArrayList JavaDoc;
7 import java.util.Date JavaDoc;
8 import javax.swing.AbstractAction JavaDoc;
9 import javax.swing.Action JavaDoc;
10 import javax.swing.JComponent JavaDoc;
11 import javax.swing.JDialog JavaDoc;
12 import javax.swing.JEditorPane JavaDoc;
13 import javax.swing.JFrame JavaDoc;
14
15 import org.netbeans.spi.viewmodel.Models;
16 import org.netbeans.spi.viewmodel.ColumnModel;
17 import org.netbeans.spi.viewmodel.NodeActionsProvider;
18 import org.netbeans.spi.viewmodel.NodeModel;
19 import org.netbeans.spi.viewmodel.TableModel;
20 import org.netbeans.spi.viewmodel.TreeModel;
21 import org.netbeans.spi.viewmodel.TreeModelListener;
22
23
24 public class TreeModelExample4 implements TreeModel, NodeModel,
25 NodeActionsProvider, TableModel {
26     
27     public Object JavaDoc[] getChildren (Object JavaDoc parent, int from, int to) {
28         if (parent == ROOT)
29             return File.listRoots ();
30         return ((File JavaDoc) parent).listFiles ();
31     }
32     
33     public Object JavaDoc getRoot () {
34         return ROOT;
35     }
36     
37     public boolean isLeaf (Object JavaDoc node) {
38         if (node == ROOT)
39             return false;
40         return ((File JavaDoc) node).isFile ();
41     }
42     
43     public void addTreeModelListener (TreeModelListener l) {}
44     public void removeTreeModelListener (TreeModelListener l) {}
45     
46     public String JavaDoc getDisplayName (Object JavaDoc node) {
47         if (node == ROOT) return "Name";
48         String JavaDoc name = ((File JavaDoc) node).getName ();
49         if (name.length () < 1) return ((File JavaDoc) node).getAbsolutePath ();
50         return name;
51     }
52     
53     public String JavaDoc getIconBase (Object JavaDoc node) {
54         if (node == ROOT) return "folder";
55         if (((File JavaDoc) node).isDirectory ()) return "folder";
56         return "file";
57     }
58     
59     public String JavaDoc getShortDescription (Object JavaDoc node) {
60         if (node == ROOT) return "Name";
61         return ((File JavaDoc) node).getAbsolutePath ();
62     }
63     
64     public Action JavaDoc[] getActions (final Object JavaDoc node) {
65         return new Action JavaDoc [] {
66             new AbstractAction JavaDoc ("Open") {
67                 public void actionPerformed (ActionEvent JavaDoc e) {
68                     performDefaultAction (node);
69                 }
70             },
71             new AbstractAction JavaDoc ("Delete") {
72                 public void actionPerformed (ActionEvent JavaDoc e) {
73                     ((File JavaDoc) node).delete ();
74                 }
75             }
76         };
77     }
78     
79     public void performDefaultAction (Object JavaDoc node) {
80         try {
81             JFrame JavaDoc f = new JFrame JavaDoc ("View");
82             f.getContentPane ().add (new JEditorPane JavaDoc (((File JavaDoc) node).toURL ()));
83             f.pack ();
84             f.show ();
85         } catch (Exception JavaDoc e) {
86             e.printStackTrace();
87         }
88     }
89     
90     public Object JavaDoc getValueAt (Object JavaDoc row, String JavaDoc columnID) {
91         try {
92             if (row == ROOT) return null;
93             if (columnID.equals ("sizeID")) {
94                 if (((File JavaDoc) row).isDirectory ()) return "<dir>";
95                 return "" + new FileInputStream JavaDoc ((File JavaDoc) row).getChannel ().size ();
96             }
97         } catch (Exception JavaDoc e) {
98             e.printStackTrace ();
99         }
100         return "";
101     }
102     
103     public boolean isReadOnly (Object JavaDoc row, String JavaDoc columnID) {
104         return true;
105     }
106     
107     public void setValueAt (Object JavaDoc row, String JavaDoc columnID, Object JavaDoc value) {
108     }
109     
110     public static void main (String JavaDoc[] args) {
111         TreeModelExample4 tme = new TreeModelExample4 ();
112         ArrayList JavaDoc columns = new ArrayList JavaDoc ();
113         columns.add (new ColumnModel () {
114             public String JavaDoc getID () {
115                 return "sizeID";
116             }
117
118             public String JavaDoc getDisplayName () {
119                 return "size";
120             }
121
122             public Class JavaDoc getType () {
123                 return String JavaDoc.class;
124             }
125         });
126         JComponent JavaDoc ttv = Models.createView (
127             tme, // TreeModel
128
tme, // NodeModel
129
tme, // TableModel
130
tme, // NodeActionsProvider
131
columns // list of ColumnModels
132
);
133         JFrame JavaDoc f = new JFrame JavaDoc ("Tree Model Example 4");
134         f.getContentPane ().add (ttv);
135         f.pack ();
136         f.show ();
137     }
138 }
139
Popular Tags