KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > terracotta > dso > editors > chooser > BaseProjectNavigator


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

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 JavaDoc;
16 import java.awt.event.ActionListener JavaDoc;
17 import java.awt.event.MouseAdapter JavaDoc;
18 import java.awt.event.MouseEvent JavaDoc;
19
20 import javax.swing.tree.TreeNode JavaDoc;
21 import javax.swing.tree.TreePath JavaDoc;
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 JavaDoc 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 JavaDoc 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 JavaDoc() {
50       public void mouseClicked(MouseEvent JavaDoc me) {
51         TreeNode JavaDoc node = (TreeNode JavaDoc)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 JavaDoc() {
61       public void actionPerformed(ActionEvent JavaDoc 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 JavaDoc() {
70       public void actionPerformed(ActionEvent JavaDoc ae) {
71         m_selection = null;
72         setVisible(false);
73       }
74     });
75     
76     getRootPane().setDefaultButton(m_okButton);
77   }
78
79   protected ProjectNode[] getSelectedProjectNodes() {
80     TreePath JavaDoc[] 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 JavaDoc 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