1 4 package org.terracotta.dso.editors.chooser; 5 6 import org.dijon.Button; 7 import org.dijon.Dialog; 8 import org.dijon.DialogResource; 9 import org.dijon.DictionaryResource; 10 import org.dijon.Tree; 11 12 import org.terracotta.dso.TcPlugin; 13 import org.terracotta.dso.editors.tree.ProjectNode; 14 15 import java.awt.event.ActionEvent ; 16 import java.awt.event.ActionListener ; 17 import java.awt.event.MouseAdapter ; 18 import java.awt.event.MouseEvent ; 19 20 import javax.swing.tree.TreeNode ; 21 import javax.swing.tree.TreePath ; 22 23 public abstract class BaseProjectNavigator extends Dialog { 24 private static DialogResource m_res; 25 protected Tree m_packageTree; 26 protected Button m_okButton; 27 protected Button m_cancelButton; 28 protected ProjectNode[] m_selection; 29 private ActionListener m_listener; 30 31 static { 32 TcPlugin plugin = TcPlugin.getDefault(); 33 DictionaryResource topRes = plugin.getResources(); 34 35 m_res = (DialogResource)topRes.find("JavaProjectNavigator"); 36 } 37 38 public BaseProjectNavigator(java.awt.Frame frame) { 39 super(frame); 40 if(m_res != null) { 41 load(m_res); 42 } 43 } 44 45 public void load(DialogResource dialogRes) { 46 super.load(dialogRes); 47 48 m_packageTree = (Tree)findComponent("PackageTree"); 49 m_packageTree.addMouseListener(new MouseAdapter () { 50 public void mouseClicked(MouseEvent me) { 51 TreeNode node = (TreeNode )m_packageTree.getLastSelectedPathComponent(); 52 53 if(node.getChildCount() == 0 && me.getClickCount() == 2) { 54 m_okButton.doClick(); 55 } 56 } 57 }); 58 59 m_okButton = (Button)findComponent("OKButton"); 60 m_okButton.addActionListener(new ActionListener () { 61 public void actionPerformed(ActionEvent ae) { 62 m_selection = getSelectedProjectNodes(); 63 setVisible(false); 64 fireActionPerformed(); 65 } 66 }); 67 68 m_cancelButton = (Button)findComponent("CancelButton"); 69 m_cancelButton.addActionListener(new ActionListener () { 70 public void actionPerformed(ActionEvent ae) { 71 m_selection = null; 72 setVisible(false); 73 } 74 }); 75 76 getRootPane().setDefaultButton(m_okButton); 77 } 78 79 protected ProjectNode[] getSelectedProjectNodes() { 80 TreePath [] paths = m_packageTree.getSelectionPaths(); 81 ProjectNode[] nodes = new ProjectNode[paths.length]; 82 83 for(int i = 0; i < paths.length; i++) { 84 nodes[i] = (ProjectNode)paths[i].getLastPathComponent(); 85 } 86 87 return nodes; 88 } 89 90 public void setActionListener(ActionListener listener) { 91 m_listener = listener; 92 } 93 94 protected void fireActionPerformed() { 95 m_listener.actionPerformed(null); 96 } 97 98 public ProjectNode[] getSelection() { 99 return m_selection; 100 } 101 } 102 | Popular Tags |