KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > gui > composer > util > SubjectDialog


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

17 package org.columba.mail.gui.composer.util;
18
19 import java.awt.BorderLayout JavaDoc;
20 import java.awt.GridLayout JavaDoc;
21 import java.awt.event.ActionEvent JavaDoc;
22 import java.awt.event.ActionListener JavaDoc;
23
24 import javax.swing.BorderFactory JavaDoc;
25 import javax.swing.JButton JavaDoc;
26 import javax.swing.JDialog JavaDoc;
27 import javax.swing.JLabel JavaDoc;
28 import javax.swing.JPanel JavaDoc;
29 import javax.swing.JTextField JavaDoc;
30 import javax.swing.event.DocumentEvent JavaDoc;
31 import javax.swing.event.DocumentListener JavaDoc;
32
33 import org.columba.core.gui.base.ButtonWithMnemonic;
34 import org.columba.core.gui.frame.FrameManager;
35 import org.columba.mail.util.MailResourceLoader;
36
37 /**
38  * @author fdietz
39  */

40 public class SubjectDialog extends JDialog JavaDoc implements ActionListener JavaDoc {
41     
42     private boolean bool = false;
43     private JTextField JavaDoc subjectTextField;
44     private String JavaDoc subject;
45     private JButton JavaDoc okButton;
46
47     public SubjectDialog() {
48         super(FrameManager.getInstance().getActiveFrame(), true);
49     }
50
51     public void showDialog(String JavaDoc subject) {
52         this.subject = subject;
53
54         JLabel JavaDoc subjectLabel = new JLabel JavaDoc("Subject:");
55
56         okButton = new ButtonWithMnemonic(MailResourceLoader.getString(
57                     "global", "ok"));
58         okButton.addActionListener(this);
59         okButton.setActionCommand("OK");
60         okButton.setSelected(true);
61
62         subjectTextField = new JTextField JavaDoc(subject, 30);
63         subjectTextField.setCaretPosition(subject.length());
64         subjectTextField.selectAll();
65         subjectTextField.getDocument().addDocumentListener(new MyDocumentListener());
66
67        //TODO (@author fdietz): i18n
68
setTitle("Enter Subject...");
69
70         //dialog.getContentPane().setLayout( new BoxLayout( dialog.getContentPane(), BoxLayout.Y_AXIS ) );
71
getContentPane().setLayout(new BorderLayout JavaDoc());
72
73         JPanel JavaDoc centerPanel = new JPanel JavaDoc();
74         centerPanel.setLayout(new BorderLayout JavaDoc());
75
76         //centerPanel.setLayout( new BoxLayout( centerPanel, BoxLayout.Y_AXIS ) );
77
centerPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
78
79         /*
80 TitledBorder etched = javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), " Login ");
81 centerPanel.setBorder( etched );
82 */

83         JPanel JavaDoc panel = new JPanel JavaDoc();
84
85         panel.setLayout(new BorderLayout JavaDoc());
86
87         JPanel JavaDoc leftInformationPanel = new JPanel JavaDoc();
88         leftInformationPanel.setBorder(BorderFactory.createEmptyBorder(0, 5, 5,
89                 5));
90         leftInformationPanel.setLayout(new GridLayout JavaDoc(0, 1, 50, 5));
91         panel.add(leftInformationPanel, BorderLayout.CENTER);
92
93         JPanel JavaDoc rightInformationPanel = new JPanel JavaDoc();
94         rightInformationPanel.setLayout(new GridLayout JavaDoc(0, 1, 50, 5));
95         rightInformationPanel.setBorder(BorderFactory.createEmptyBorder(0, 5,
96                 5, 5));
97         panel.add(rightInformationPanel, BorderLayout.EAST);
98
99         leftInformationPanel.add(subjectLabel);
100         rightInformationPanel.add(subjectTextField);
101
102         //centerPanel.add( Box.createRigidArea( new java.awt.Dimension(0,5) ) );
103
centerPanel.add(panel, BorderLayout.NORTH);
104
105         /*
106 JPanel panel = new JPanel();
107 panel.setLayout( new BoxLayout( panel, BoxLayout.X_AXIS ) );
108 panel.add( hostLabel );
109 centerPanel.add( panel );
110 */

111         //centerPanel.add( Box.createRigidArea( new java.awt.Dimension(0,5) ) );
112
//centerPanel.add( Box.createRigidArea( new java.awt.Dimension(0,5) ) );
113
getContentPane().add(centerPanel, BorderLayout.CENTER);
114
115         JPanel JavaDoc bottomPanel = new JPanel JavaDoc();
116         bottomPanel.setLayout(new BorderLayout JavaDoc());
117
118         JPanel JavaDoc buttonPanel = new JPanel JavaDoc();
119         buttonPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
120         buttonPanel.setLayout(new GridLayout JavaDoc(1, 2, 10, 0));
121         buttonPanel.add(okButton);
122
123         bottomPanel.add(buttonPanel, BorderLayout.EAST);
124
125         getContentPane().add(bottomPanel, BorderLayout.SOUTH);
126
127         pack();
128
129         getRootPane().setDefaultButton(okButton);
130
131         setLocationRelativeTo(null);
132         setVisible(true);
133     }
134
135     public boolean success() {
136         return bool;
137     }
138
139     public String JavaDoc getSubject() {
140         return subject;
141     }
142
143     public void actionPerformed(ActionEvent JavaDoc e) {
144         String JavaDoc action = e.getActionCommand();
145
146         if (action.equals("OK")) {
147             subject = subjectTextField.getText();
148
149             bool = true;
150
151             dispose();
152         }
153     }
154
155     class MyDocumentListener implements DocumentListener JavaDoc {
156         public void insertUpdate(DocumentEvent JavaDoc e) {
157             updateButton();
158         }
159
160         public void removeUpdate(DocumentEvent JavaDoc e) {
161             updateButton();
162         }
163         
164         protected void updateButton() {
165             okButton.setEnabled(subjectTextField.getText().length() > 0);
166         }
167
168         public void changedUpdate(DocumentEvent JavaDoc e) {
169             //Plain text components don't fire these events
170
}
171     }
172 }
173
Popular Tags