1 19 package org.openharmonise.him.swing.resourcetree; 20 21 import javax.swing.event.TreeExpansionEvent ; 22 import javax.swing.event.TreeSelectionEvent ; 23 import javax.swing.event.TreeSelectionListener ; 24 import javax.swing.event.TreeWillExpandListener ; 25 import javax.swing.tree.ExpandVetoException ; 26 import javax.swing.tree.TreePath ; 27 28 import org.openharmonise.him.context.StateHandler; 29 import org.openharmonise.vfs.*; 30 import org.openharmonise.vfs.context.*; 31 32 33 41 public class TreeListener 42 implements TreeSelectionListener , TreeWillExpandListener { 43 44 47 private static final String ACTION_OPEN_TREE = "OPEN_TREE_NODE"; 48 49 50 public TreeListener() { 51 super(); 52 } 53 54 57 public void valueChanged(TreeSelectionEvent e) { 58 TreePath path = e.getNewLeadSelectionPath(); 59 if(path!=null) { 60 Object obj = path.getLastPathComponent(); 61 if( obj instanceof TreeNode) { 62 String filepath = ((TreeNode)obj).getFilePath(); 63 AbstractVirtualFileSystem vfs = ((TreeNode)obj).getVFS(); 64 } 65 } 66 } 67 68 71 public void treeWillExpand(TreeExpansionEvent event) 72 throws ExpandVetoException { 73 Object obj = event.getPath().getLastPathComponent(); 74 if( obj instanceof TreeNode ) { 75 StateHandler.getInstance().addWait(ACTION_OPEN_TREE); 76 try { 77 ((TreeNode)obj).populateChildren(); 78 } catch(Exception e) { 79 e.printStackTrace(); 80 } finally { 81 StateHandler.getInstance().removeWait(ACTION_OPEN_TREE); 82 } 83 } 84 85 } 86 87 90 public void treeWillCollapse(TreeExpansionEvent event) 91 throws ExpandVetoException { 92 } 94 95 } 96 | Popular Tags |