KickJava   Java API By Example, From Geeks To Geeks.

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


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

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