KickJava   Java API By Example, From Geeks To Geeks.

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


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.eclipse.core.resources.IProject;
7 import org.eclipse.jdt.core.JavaCore;
8
9 import org.dijon.Button;
10 import org.dijon.Dialog;
11 import org.dijon.DialogResource;
12 import org.dijon.DictionaryResource;
13 import org.dijon.List;
14 import org.dijon.TextField;
15
16 import org.terracotta.dso.TcPlugin;
17
18 import java.awt.Frame JavaDoc;
19 import java.awt.event.ActionEvent JavaDoc;
20 import java.awt.event.ActionListener JavaDoc;
21
22 import javax.swing.DefaultListModel JavaDoc;
23
24 public class MethodChooser extends Dialog {
25   private static DialogResource m_res;
26   private IProject m_project;
27   private TextField m_expressionTextField;
28   private List m_expressionList;
29   private DefaultListModel JavaDoc m_expressionListModel;
30   private Button m_methodSelectorButton;
31   private MethodNavigator m_methodNavigator;
32   private Button m_okButton;
33   private Button m_cancelButton;
34   private String JavaDoc[] m_result;
35   private ActionListener JavaDoc m_listener;
36
37   static {
38     TcPlugin plugin = TcPlugin.getDefault();
39     DictionaryResource topRes = plugin.getResources();
40
41     m_res = (DialogResource)topRes.find("MethodChooser");
42   }
43   
44   public MethodChooser(java.awt.Frame JavaDoc frame) {
45     super(frame);
46     if(m_res != null) {
47       load(m_res);
48     }
49   }
50   
51   public void load(DialogResource dialogRes) {
52     super.load(dialogRes);
53
54     m_expressionTextField = (TextField)findComponent("ExpressionTextField");
55     m_expressionTextField.addActionListener(new ActionListener JavaDoc() {
56       public void actionPerformed(ActionEvent JavaDoc ae) {
57         m_expressionListModel.addElement(m_expressionTextField.getText());
58         m_expressionTextField.selectAll();
59       }
60     });
61     
62     m_expressionList = (List)findComponent("ExpressionList");
63     m_expressionList.setModel(m_expressionListModel = new DefaultListModel JavaDoc());
64     
65     m_methodSelectorButton = (Button)findComponent("MethodSelectorButton");
66     m_methodSelectorButton.addActionListener(new MethodSelector());
67     
68     m_okButton = (Button)findComponent("OKButton");
69     m_okButton.addActionListener(new ActionListener JavaDoc() {
70       public void actionPerformed(ActionEvent JavaDoc ae) {
71         accept();
72       }
73     });
74     m_cancelButton = (Button)findComponent("CancelButton");
75     m_cancelButton.addActionListener(new ActionListener JavaDoc() {
76       public void actionPerformed(ActionEvent JavaDoc ae) {
77         cancel();
78       }
79     });
80     
81     getRootPane().setDefaultButton(m_okButton);
82   }
83   
84   public void setup(IProject project) {
85     m_project = project;
86     m_expressionTextField.setText(null);
87     m_expressionListModel.clear();
88   }
89   
90   class MethodSelector implements ActionListener JavaDoc {
91     public void actionPerformed(ActionEvent JavaDoc ae) {
92       if(m_methodNavigator == null) {
93         Frame JavaDoc owner = (java.awt.Frame JavaDoc)MethodChooser.this.getOwner();
94         
95         m_methodNavigator = new MethodNavigator(owner);
96         m_methodNavigator.setActionListener(new NavigatorListener());
97       }
98       m_methodNavigator.init(JavaCore.create(m_project));
99       m_methodNavigator.center(MethodChooser.this);
100       m_methodNavigator.setModal(true);
101       m_methodNavigator.setVisible(true);
102     }
103   }
104
105   public void setListener(ActionListener JavaDoc listener) {
106     m_listener = listener;
107   }
108   
109   protected void fireActionPerformed() {
110     m_listener.actionPerformed(null);
111   }
112   
113   class NavigatorListener implements ActionListener JavaDoc {
114     public void actionPerformed(ActionEvent JavaDoc ae) {
115       String JavaDoc[] sigs = m_methodNavigator.getSelectedSignatures();
116       for(int i = 0; i < sigs.length; i++) {
117         m_expressionListModel.addElement(sigs[i]);
118       }
119     }
120   }
121   
122   private void accept() {
123     m_result = new String JavaDoc[m_expressionListModel.size()];
124     m_expressionListModel.copyInto(m_result);
125     setVisible(false);
126     fireActionPerformed();
127   }
128   
129   private void cancel() {
130     m_result = null;
131     setVisible(false);
132   }
133   public String JavaDoc[] getMethodExpressions() {
134     return m_result;
135   }
136 }
137
Popular Tags