1 2 import java.awt.event.ActionEvent ; 3 import java.io.File ; 4 import java.net.MalformedURLException ; 5 import java.util.ArrayList ; 6 import javax.swing.AbstractAction ; 7 import javax.swing.Action ; 8 import javax.swing.JComponent ; 9 import javax.swing.JDialog ; 10 import javax.swing.JEditorPane ; 11 import javax.swing.JFrame ; 12 import org.netbeans.spi.viewmodel.Models; 13 import org.netbeans.spi.viewmodel.NodeActionsProvider; 14 import org.netbeans.spi.viewmodel.NodeModel; 15 import org.netbeans.spi.viewmodel.TreeModel; 16 import org.netbeans.spi.viewmodel.TreeModelListener; 17 18 public class TreeModelExample3 implements TreeModel, NodeModel, NodeActionsProvider { 19 20 public Object [] getChildren (Object parent, int from, int to) { 21 if (parent == ROOT) 22 return File.listRoots (); 23 return ((File ) parent).listFiles (); 24 } 25 26 public Object getRoot () { 27 return ROOT; 28 } 29 30 public boolean isLeaf (Object node) { 31 if (node == ROOT) 32 return false; 33 return ((File ) node).isFile (); 34 } 35 36 public void addTreeModelListener (TreeModelListener l) {} 37 public void removeTreeModelListener (TreeModelListener l) {} 38 39 public String getDisplayName (Object node) { 40 if (node == ROOT) return "Name"; 41 String name = ((File ) node).getName (); 42 if (name.length () < 1) return ((File ) node).getAbsolutePath (); 43 return name; 44 } 45 46 public String getIconBase (Object node) { 47 if (node == ROOT) return "folder"; 48 if (((File ) node).isDirectory ()) return "folder"; 49 return "file"; 50 } 51 52 public String getShortDescription (Object node) { 53 if (node == ROOT) return "Name"; 54 return ((File ) node).getAbsolutePath (); 55 } 56 57 public Action [] getActions (final Object node) { 58 return new Action [] { 59 new AbstractAction ("Open") { 60 public void actionPerformed (ActionEvent e) { 61 performDefaultAction (node); 62 } 63 }, 64 new AbstractAction ("Delete") { 65 public void actionPerformed (ActionEvent e) { 66 ((File ) node).delete (); 67 } 68 } 69 }; 70 } 71 72 public void performDefaultAction (Object node) { 73 try { 74 JFrame f = new JFrame ("View"); 75 f.getContentPane ().add (new JEditorPane (((File ) node).toURL ())); 76 f.pack (); 77 f.show (); 78 } catch (Exception e) { 79 e.printStackTrace(); 80 } 81 } 82 83 public static void main (String [] args) { 84 TreeModelExample3 tme = new TreeModelExample3 (); 85 JComponent ttv = Models.createView ( 86 tme, tme, null, tme, new ArrayList () ); 92 JFrame f = new JFrame ("Tree Model Example 3"); 93 f.getContentPane ().add (ttv); 94 f.pack (); 95 f.show (); 96 } 97 } 98 | Popular Tags |