KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > gui > config > template > ChooseTemplateDialog


1 //The contents of this file are subject to the Mozilla Public License Version 1.1
2
//(the "License"); you may not use this file except in compliance with the
3
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
4
//
5
//Software distributed under the License is distributed on an "AS IS" basis,
6
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
7
//for the specific language governing rights and
8
//limitations under the License.
9
//
10
//The Original Code is "The Columba Project"
11
//
12
//The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14
//
15
//All Rights Reserved.
16
package org.columba.mail.gui.config.template;
17
18 import java.awt.BorderLayout JavaDoc;
19 import java.awt.Dimension JavaDoc;
20 import java.awt.GridLayout JavaDoc;
21 import java.awt.event.ActionEvent JavaDoc;
22 import java.awt.event.ActionListener JavaDoc;
23 import java.awt.event.KeyEvent JavaDoc;
24
25 import javax.swing.BorderFactory JavaDoc;
26 import javax.swing.JButton JavaDoc;
27 import javax.swing.JComponent JavaDoc;
28 import javax.swing.JDialog JavaDoc;
29 import javax.swing.JFrame JavaDoc;
30 import javax.swing.JList JavaDoc;
31 import javax.swing.JPanel JavaDoc;
32 import javax.swing.JScrollPane JavaDoc;
33 import javax.swing.KeyStroke JavaDoc;
34 import javax.swing.SwingConstants JavaDoc;
35 import javax.swing.event.ListSelectionEvent JavaDoc;
36 import javax.swing.event.ListSelectionListener JavaDoc;
37
38 import org.columba.core.gui.base.ButtonWithMnemonic;
39 import org.columba.core.gui.base.SingleSideEtchedBorder;
40 import org.columba.core.help.HelpManager;
41 import org.columba.mail.message.IHeaderList;
42 import org.columba.mail.util.MailResourceLoader;
43
44
45 /**
46  * Asks the user to choose a template from a list.
47  *
48  * @author fdietz
49  */

50
51 public class ChooseTemplateDialog extends JDialog JavaDoc implements ActionListener JavaDoc,
52     ListSelectionListener JavaDoc {
53     boolean result;
54     JList JavaDoc list;
55     Object JavaDoc uid;
56     IHeaderList headerList;
57     JButton JavaDoc okButton;
58
59     public ChooseTemplateDialog(JFrame JavaDoc parent, IHeaderList list) {
60         super(parent, true);
61
62         this.headerList = list;
63
64         initComponents();
65
66         updateComponents(true);
67
68         pack();
69         setLocationRelativeTo(null);
70         setVisible(true);
71     }
72
73     protected JPanel JavaDoc createButtonPanel() {
74         JPanel JavaDoc bottom = new JPanel JavaDoc();
75         bottom.setLayout(new BorderLayout JavaDoc());
76         bottom.setBorder(new SingleSideEtchedBorder(SwingConstants.TOP));
77
78         //bottom.setLayout( new BoxLayout( bottom, BoxLayout.X_AXIS ) );
79
//bottom.add( Box.createHorizontalStrut());
80
ButtonWithMnemonic cancelButton = new ButtonWithMnemonic(MailResourceLoader.getString(
81                     "global", "cancel"));
82
83         //$NON-NLS-1$ //$NON-NLS-2$
84
cancelButton.addActionListener(this);
85         cancelButton.setActionCommand("CANCEL"); //$NON-NLS-1$
86

87         okButton = new ButtonWithMnemonic(MailResourceLoader.getString(
88                     "global", "ok"));
89
90         //$NON-NLS-1$ //$NON-NLS-2$
91
okButton.addActionListener(this);
92         okButton.setActionCommand("OK"); //$NON-NLS-1$
93
okButton.setDefaultCapable(true);
94         okButton.setEnabled(false);
95         getRootPane().setDefaultButton(okButton);
96
97         ButtonWithMnemonic helpButton = new ButtonWithMnemonic(MailResourceLoader.getString(
98                     "global", "help"));
99
100         // associate with JavaHelp
101
HelpManager.getInstance().enableHelpOnButton(helpButton,
102             "template_dialog");
103         HelpManager.getInstance().enableHelpKey(getRootPane(),
104             "template_dialog");
105
106         JPanel JavaDoc buttonPanel = new JPanel JavaDoc();
107         buttonPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
108         buttonPanel.setLayout(new GridLayout JavaDoc(1, 3, 6, 0));
109         buttonPanel.add(okButton);
110         buttonPanel.add(cancelButton);
111         buttonPanel.add(helpButton);
112
113         //bottom.add( Box.createHorizontalGlue() );
114
bottom.add(buttonPanel, BorderLayout.EAST);
115
116         return bottom;
117     }
118
119     protected void initComponents() {
120         list = new JList JavaDoc( headerList.getUids());
121         list.addListSelectionListener(this);
122         list.setPreferredSize(new Dimension JavaDoc(200, 300));
123         list.setCellRenderer(new HeaderCellRenderer(headerList));
124
125         JPanel JavaDoc panel = new JPanel JavaDoc();
126         panel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
127         panel.setLayout(new BorderLayout JavaDoc());
128
129         JScrollPane JavaDoc scrollPane = new JScrollPane JavaDoc(list);
130         panel.add(scrollPane, BorderLayout.CENTER);
131
132         getContentPane().setLayout(new BorderLayout JavaDoc());
133
134         getContentPane().add(panel, BorderLayout.CENTER);
135
136         getContentPane().add(createButtonPanel(), BorderLayout.SOUTH);
137         getRootPane().registerKeyboardAction(this, "CANCEL",
138             KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
139             JComponent.WHEN_IN_FOCUSED_WINDOW);
140     }
141
142     protected void updateComponents(boolean b) {
143         if (b) {
144             // model -> view
145
} else {
146             // view -> model
147
}
148     }
149
150     public void actionPerformed(ActionEvent JavaDoc arg0) {
151         String JavaDoc action = arg0.getActionCommand();
152
153         if (action.equals("CANCEL")) {
154             result = false;
155             setVisible(false);
156         } else if (action.equals("OK")) {
157             result = true;
158             uid = list.getSelectedValue();
159             setVisible(false);
160         }
161     }
162
163     /**
164  * @return
165  */

166     public boolean isResult() {
167         return result;
168     }
169
170     /**
171  * @return
172  */

173     public Object JavaDoc getUid() {
174         return uid;
175     }
176
177     /* (non-Javadoc)
178  * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)
179  */

180     public void valueChanged(ListSelectionEvent JavaDoc ev) {
181         Object JavaDoc selection = list.getSelectedValue();
182
183         if (selection != null) {
184             okButton.setEnabled(true);
185         } else {
186             okButton.setEnabled(false);
187         }
188     }
189 }
190
Popular Tags