KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > gui > config > account > PopAttributPanel


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.account;
17
18 import java.awt.event.ActionEvent JavaDoc;
19 import java.awt.event.ActionListener JavaDoc;
20
21 import javax.swing.JCheckBox JavaDoc;
22 import javax.swing.JLabel JavaDoc;
23 import javax.swing.JPanel JavaDoc;
24 import javax.swing.JSpinner JavaDoc;
25 import javax.swing.JTextField JavaDoc;
26 import javax.swing.SpinnerNumberModel JavaDoc;
27
28 import org.columba.core.gui.base.CheckBoxWithMnemonic;
29 import org.columba.mail.config.PopItem;
30 import org.columba.mail.util.MailResourceLoader;
31
32 import com.jgoodies.forms.builder.DefaultFormBuilder;
33 import com.jgoodies.forms.layout.FormLayout;
34
35 /**
36  *
37  * @author freddy
38  * @version
39  */

40 public class PopAttributPanel implements ActionListener JavaDoc {
41     private PopItem item;
42
43     private JCheckBox JavaDoc leaveOnServerCheckBox;
44
45     private JCheckBox JavaDoc excludeCheckBox;
46
47     private JCheckBox JavaDoc removeOldMessagesCheckBox;
48
49     private JSpinner JavaDoc olderThanSpinner;
50
51     private JLabel JavaDoc daysLabel;
52
53     private JCheckBox JavaDoc limitMessageDownloadCheckBox;
54
55     private JTextField JavaDoc limitMessageDownloadTextField;
56
57     public PopAttributPanel(PopItem item) {
58         super();
59         this.item = item;
60
61         initComponents();
62     }
63
64     public void updateComponents(boolean b) {
65
66         if (b) {
67             leaveOnServerCheckBox.setSelected(item
68                     .getBoolean(PopItem.LEAVE_MESSAGES_ON_SERVER));
69             removeOldMessagesCheckBox.setSelected(item.getBooleanWithDefault(
70                     PopItem.REMOVE_OLD_FROM_SERVER, false));
71
72             updateRemoveOldMessagesEnabled();
73
74             olderThanSpinner.getModel().setValue(
75                     new Integer JavaDoc(item.getIntegerWithDefault(PopItem.OLDER_THAN,
76                             30)));
77
78             excludeCheckBox.setSelected(item.getBooleanWithDefault(
79                     PopItem.EXCLUDE_FROM_CHECKALL, false));
80
81             limitMessageDownloadCheckBox.setSelected(item
82                     .getBoolean(PopItem.ENABLE_DOWNLOAD_LIMIT));
83
84             limitMessageDownloadTextField.setText(item
85                     .get(PopItem.DOWNLOAD_LIMIT));
86
87         } else {
88             item.setBoolean(PopItem.REMOVE_OLD_FROM_SERVER,
89                     removeOldMessagesCheckBox.isSelected());
90
91             item.setInteger(PopItem.OLDER_THAN,
92                     ((SpinnerNumberModel JavaDoc) olderThanSpinner.getModel())
93                             .getNumber().intValue());
94
95             item.setBoolean(PopItem.LEAVE_MESSAGES_ON_SERVER,
96                     leaveOnServerCheckBox.isSelected()); //$NON-NLS-1$
97

98             item.setBoolean(PopItem.EXCLUDE_FROM_CHECKALL, excludeCheckBox
99                     .isSelected()); //$NON-NLS-1$
100

101             item.setString(PopItem.DOWNLOAD_LIMIT,
102                     limitMessageDownloadTextField.getText());
103
104             item.setBoolean(PopItem.ENABLE_DOWNLOAD_LIMIT,
105                     limitMessageDownloadCheckBox.isSelected());
106
107         }
108     }
109
110     /**
111      *
112      */

113     private void updateRemoveOldMessagesEnabled() {
114         removeOldMessagesCheckBox
115                 .setEnabled(leaveOnServerCheckBox.isSelected());
116         olderThanSpinner.setEnabled(leaveOnServerCheckBox.isSelected());
117         daysLabel.setEnabled(leaveOnServerCheckBox.isSelected());
118     }
119
120     public void createPanel(DefaultFormBuilder builder) {
121         JPanel JavaDoc panel;
122         FormLayout l;
123         DefaultFormBuilder b;
124
125         builder.appendSeparator(MailResourceLoader.getString("dialog",
126                 "account", "options"));
127
128         builder.append(leaveOnServerCheckBox, 4);
129         builder.nextLine();
130
131         builder.setLeadingColumnOffset(2);
132
133         panel = new JPanel JavaDoc();
134         l = new FormLayout("default, 3dlu, min(50;default), 3dlu, default",
135         // 2 columns
136
""); // rows are added dynamically (no need to define them
137
// here)
138

139         // create a form builder
140
b = new DefaultFormBuilder(l, panel);
141         b.append(removeOldMessagesCheckBox);
142         b.append(olderThanSpinner);
143         b.append(daysLabel);
144         builder.append(panel, 3);
145         builder.nextLine();
146
147         builder.setLeadingColumnOffset(1);
148         builder.append(excludeCheckBox, 4);
149         builder.nextLine();
150
151         panel = new JPanel JavaDoc();
152         l = new FormLayout("max(100;default), 3dlu, left:max(50dlu;default)",
153
154         // 2 columns
155
""); // rows are added dynamically (no need to define them
156
// here)
157

158         // create a form builder
159
b = new DefaultFormBuilder(l, panel);
160         b.append(limitMessageDownloadCheckBox, limitMessageDownloadTextField);
161
162         builder.append(panel, 4);
163
164     }
165
166     protected void initComponents() {
167         leaveOnServerCheckBox = new CheckBoxWithMnemonic(MailResourceLoader
168                 .getString("dialog", "account",
169                         PopItem.LEAVE_MESSAGES_ON_SERVER));
170         leaveOnServerCheckBox.setActionCommand("LEAVE_ON_SERVER");
171         leaveOnServerCheckBox.addActionListener(this);
172
173         limitMessageDownloadCheckBox = new CheckBoxWithMnemonic(
174                 MailResourceLoader.getString("dialog", "account",
175                         "limit_message_download_to"));
176
177         limitMessageDownloadCheckBox.setActionCommand("LIMIT_MESSAGE_DOWNLOAD");
178         limitMessageDownloadCheckBox.addActionListener(this);
179
180         limitMessageDownloadTextField = new JTextField JavaDoc();
181
182         excludeCheckBox = new CheckBoxWithMnemonic(MailResourceLoader
183                 .getString("dialog", "account", "exclude_from_fetch_all"));
184
185         removeOldMessagesCheckBox = new CheckBoxWithMnemonic(MailResourceLoader
186                 .getString("dialog", "account", PopItem.REMOVE_OLD_FROM_SERVER));
187
188         olderThanSpinner = new JSpinner JavaDoc(new SpinnerNumberModel JavaDoc(1, 1,
189                 Integer.MAX_VALUE, 1));
190
191         daysLabel = new JLabel JavaDoc(MailResourceLoader.getString("dialog",
192                 "account", "days"));
193
194     }
195
196     public void actionPerformed(ActionEvent JavaDoc e) {
197         String JavaDoc action = e.getActionCommand();
198
199         if (action.equals("LIMIT_MESSAGE_DOWNLOAD")) {
200             limitMessageDownloadTextField
201                     .setEnabled(limitMessageDownloadCheckBox.isSelected());
202         } else if (action.equals("LEAVE_ON_SERVER")) {
203             updateRemoveOldMessagesEnabled();
204         }
205     }
206 }
207
Popular Tags