KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > gui > message > viewer > AddressListDialog


1 package org.columba.mail.gui.message.viewer;
2
3 import java.awt.BorderLayout JavaDoc;
4 import java.awt.Dimension JavaDoc;
5 import java.awt.Frame JavaDoc;
6 import java.awt.HeadlessException JavaDoc;
7 import java.awt.event.ActionEvent JavaDoc;
8 import java.awt.event.ActionListener JavaDoc;
9 import java.awt.event.KeyEvent JavaDoc;
10
11 import javax.swing.BorderFactory JavaDoc;
12 import javax.swing.DefaultListSelectionModel JavaDoc;
13 import javax.swing.JButton JavaDoc;
14 import javax.swing.JComponent JavaDoc;
15 import javax.swing.JDialog JavaDoc;
16 import javax.swing.JLabel JavaDoc;
17 import javax.swing.JPanel JavaDoc;
18 import javax.swing.JScrollPane JavaDoc;
19 import javax.swing.KeyStroke JavaDoc;
20 import javax.swing.SwingConstants JavaDoc;
21 import javax.swing.event.ListSelectionEvent JavaDoc;
22 import javax.swing.event.ListSelectionListener JavaDoc;
23
24 import org.columba.core.gui.base.SingleSideEtchedBorder;
25 import org.columba.core.gui.util.DialogHeaderPanel;
26 import org.frapuccino.checkablelist.CheckableItemImpl;
27 import org.frapuccino.checkablelist.CheckableItemListTableModel;
28 import org.frapuccino.checkablelist.CheckableList;
29
30 import com.jgoodies.forms.builder.ButtonBarBuilder;
31 import com.jgoodies.forms.builder.ButtonStackBuilder;
32 import com.jgoodies.forms.layout.CellConstraints;
33 import com.jgoodies.forms.layout.FormLayout;
34
35
36 public class AddressListDialog extends JDialog JavaDoc implements ActionListener JavaDoc,
37         ListSelectionListener JavaDoc {
38
39     private JButton JavaDoc addContactButton;
40
41     private JButton JavaDoc composeButton;
42
43     private JButton JavaDoc replyButton;
44
45     private JButton JavaDoc forwardButton;
46
47     private JButton JavaDoc closeButton;
48
49     private JButton JavaDoc helpButton;
50
51     private CheckableList list;
52
53     private int index;
54
55     private CheckableItemImpl selection;
56     
57     public AddressListDialog(Frame JavaDoc owner) throws HeadlessException JavaDoc {
58         super(owner, true);
59
60         setTitle("Address Manager");
61
62         initComponents();
63
64         layoutComponents();
65
66         getRootPane().registerKeyboardAction(this, "CLOSE",
67                 KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
68                 JComponent.WHEN_IN_FOCUSED_WINDOW);
69         pack();
70         setLocationRelativeTo(null);
71         setVisible(true);
72     }
73
74     private void layoutComponents() {
75         setLayout(new BorderLayout JavaDoc());
76
77         add(new DialogHeaderPanel("Manage Address List",
78                 "Select email addresses for mass actions"), BorderLayout.NORTH);
79
80         getContentPane().add(createPanel(), BorderLayout.CENTER);
81
82         add(createBottomPanel(), BorderLayout.SOUTH);
83
84     }
85
86     private JPanel JavaDoc createEastPanel() {
87         JPanel JavaDoc eastPanel = new JPanel JavaDoc();
88         ButtonStackBuilder builder = new ButtonStackBuilder(eastPanel);
89         builder.addGridded(addContactButton);
90         builder.addUnrelatedGap();
91         builder.addGridded(composeButton);
92         builder.addRelatedGap();
93         builder.addGridded(replyButton);
94         builder.addRelatedGap();
95         builder.addGridded(forwardButton);
96         return eastPanel;
97     }
98
99     private JPanel JavaDoc createPanel() {
100         JPanel JavaDoc jpanel1 = new JPanel JavaDoc();
101         FormLayout formlayout1 = new FormLayout(
102                 "FILL:DEFAULT:GROW(1.0),3DLU,FILL:DEFAULT:NONE",
103                 "CENTER:DEFAULT:NONE,1DLU,FILL:DEFAULT:GROW(1.0),3DLU,CENTER:DEFAULT:NONE");
104         CellConstraints cc = new CellConstraints();
105         jpanel1.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
106         jpanel1.setLayout(formlayout1);
107
108         JLabel JavaDoc jlabel1 = new JLabel JavaDoc();
109         jlabel1.setText("Email Address:");
110         jpanel1.add(jlabel1, cc.xy(1, 1));
111
112         JScrollPane JavaDoc scrollPane = new JScrollPane JavaDoc(list);
113         scrollPane.setPreferredSize(new Dimension JavaDoc(250, 200));
114         jpanel1.add(scrollPane, cc.xy(1, 3));
115
116         jpanel1.add(createEastPanel(), new CellConstraints(3, 3, 1, 1,
117                 CellConstraints.DEFAULT, CellConstraints.TOP));
118
119         return jpanel1;
120     }
121
122     private JPanel JavaDoc createBottomPanel() {
123         JPanel JavaDoc bottomPanel = new JPanel JavaDoc(new BorderLayout JavaDoc());
124         bottomPanel.setBorder(new SingleSideEtchedBorder(SwingConstants.TOP));
125
126         JPanel JavaDoc buttonPanel = new JPanel JavaDoc();
127         buttonPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
128
129         ButtonBarBuilder builder2 = new ButtonBarBuilder(buttonPanel);
130         // builder.setDefaultButtonBarGapBorder();
131
builder2.addGlue();
132         builder2.addGriddedButtons(new JButton JavaDoc[] { closeButton, helpButton });
133
134         bottomPanel.add(buttonPanel, BorderLayout.EAST);
135
136         return bottomPanel;
137     }
138
139     private void initComponents() {
140
141         list = new CheckableList();
142         list.getSelectionModel().addListSelectionListener(this);
143
144         addContactButton = new JButton JavaDoc("Add Contacts");
145
146         composeButton = new JButton JavaDoc("Compose");
147
148         replyButton = new JButton JavaDoc("Reply");
149
150         forwardButton = new JButton JavaDoc("Forward");
151
152         // TODO i18n "Close" button
153
closeButton = new JButton JavaDoc("Close");
154         closeButton.setDefaultCapable(true);
155         closeButton.setMnemonic('C');
156         closeButton.addActionListener(new ActionListener JavaDoc() {
157             public void actionPerformed(ActionEvent JavaDoc event) {
158                 setVisible(false);
159             }
160         });
161
162         // TODO i18n "Help" button
163
helpButton = new JButton JavaDoc("Help");
164         helpButton.setMnemonic('h');
165     }
166
167     public void valueChanged(ListSelectionEvent JavaDoc e) {
168         if (e.getValueIsAdjusting()) {
169             return;
170         }
171
172         DefaultListSelectionModel JavaDoc theList = (DefaultListSelectionModel JavaDoc) e
173                 .getSource();
174         if (!theList.isSelectionEmpty()) {
175             index = theList.getAnchorSelectionIndex();
176
177             selection = (CheckableItemImpl) ((CheckableItemListTableModel) list
178                     .getModel()).getElement(index);
179             
180         }
181     }
182
183     public void actionPerformed(ActionEvent JavaDoc e) {
184         String JavaDoc action = e.getActionCommand();
185
186         if (action.equals("OK")) {
187         } else if (action.equals("CANCEL")) {
188             setVisible(false);
189         }
190     }
191
192 }
193
Popular Tags