KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > gui > config > accountwizard > OutgoingServerStep


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.accountwizard;
17
18 import java.lang.reflect.Method JavaDoc;
19
20 import javax.swing.Box JavaDoc;
21 import javax.swing.BoxLayout JavaDoc;
22 import javax.swing.JComponent JavaDoc;
23 import javax.swing.JLabel JavaDoc;
24 import javax.swing.JPanel JavaDoc;
25 import javax.swing.JTextField JavaDoc;
26 import javax.swing.SwingUtilities JavaDoc;
27 import javax.swing.event.DocumentEvent JavaDoc;
28 import javax.swing.event.DocumentListener JavaDoc;
29
30 import net.javaprog.ui.wizard.AbstractStep;
31 import net.javaprog.ui.wizard.DataModel;
32 import net.javaprog.ui.wizard.DefaultDataLookup;
33
34 import org.columba.core.gui.base.LabelWithMnemonic;
35 import org.columba.core.gui.base.MultiLineLabel;
36 import org.columba.core.gui.base.WizardTextField;
37 import org.columba.mail.util.MailResourceLoader;
38
39
40 class OutgoingServerStep extends AbstractStep {
41     protected DataModel data;
42     protected boolean isLastStep;
43     private JTextField JavaDoc hostTextField;
44
45     public OutgoingServerStep(DataModel data, boolean isLastStep) {
46         super(MailResourceLoader.getString("dialog", "accountwizard",
47                 "outgoingserver"),
48             MailResourceLoader.getString("dialog", "accountwizard",
49                 "outgoingserver_description"));
50         this.data = data;
51         this.isLastStep = isLastStep;
52         setCanGoNext(false);
53     }
54
55     protected JComponent JavaDoc createComponent() {
56         JComponent JavaDoc component = new JPanel JavaDoc();
57         component.setLayout(new BoxLayout JavaDoc(component, BoxLayout.Y_AXIS));
58         component.add(new MultiLineLabel(MailResourceLoader.getString(
59                     "dialog", "accountwizard", "outgoingserver_text")));
60         component.add(Box.createVerticalStrut(40));
61
62         WizardTextField middlePanel = new WizardTextField();
63
64         LabelWithMnemonic addressLabel = new LabelWithMnemonic(MailResourceLoader.getString(
65                     "dialog", "accountwizard", "host"));
66         middlePanel.addLabel(addressLabel);
67         hostTextField = new JTextField JavaDoc();
68
69         Method JavaDoc method = null;
70
71         try {
72             method = hostTextField.getClass().getMethod("getText", null);
73         } catch (NoSuchMethodException JavaDoc nsme) {
74         }
75
76         data.registerDataLookup("OutgoingServer.host",
77             new DefaultDataLookup(hostTextField, method, null));
78         hostTextField.getDocument().addDocumentListener(new DocumentListener JavaDoc() {
79                 public void removeUpdate(DocumentEvent JavaDoc e) {
80                     setCanProceed(e.getDocument().getLength() > 0);
81                 }
82
83                 public void insertUpdate(DocumentEvent JavaDoc e) {
84                     setCanProceed(e.getDocument().getLength() > 0);
85                 }
86
87                 protected void setCanProceed(boolean b) {
88                     if (isLastStep) {
89                         setCanFinish(b);
90                     } else {
91                         setCanGoNext(b);
92                     }
93                 }
94
95                 public void changedUpdate(DocumentEvent JavaDoc e) {
96                 }
97             });
98         addressLabel.setLabelFor(hostTextField);
99         middlePanel.addTextField(hostTextField);
100
101         JLabel JavaDoc addressExampleLabel = new JLabel JavaDoc(MailResourceLoader.getString(
102                     "dialog", "accountwizard", "example") +
103                 "mail.microsoft.com");
104         middlePanel.addExample(addressExampleLabel);
105         component.add(middlePanel);
106
107         return component;
108     }
109
110     public void prepareRendering() {
111         SwingUtilities.invokeLater(new Runnable JavaDoc() {
112             public void run() {
113                 hostTextField.requestFocus();
114             }
115         });
116     }
117 }
118
Popular Tags