KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > addressbook > gui > tree > util > SelectAddressbookFolderDialog


1 // The contents of this file are subject to the Mozilla Public License Version
2
// 1.1
3
//(the "License"); you may not use this file except in compliance with the
4
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
5
//
6
//Software distributed under the License is distributed on an "AS IS" basis,
7
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
8
//for the specific language governing rights and
9
//limitations under the License.
10
//
11
//The Original Code is "The Columba Project"
12
//
13
//The Initial Developers of the Original Code are Frederik Dietz and Timo
14
// Stich.
15
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
16
//
17
//All Rights Reserved.
18
package org.columba.addressbook.gui.tree.util;
19
20 import java.awt.BorderLayout JavaDoc;
21 import java.awt.GridLayout JavaDoc;
22 import java.awt.event.ActionEvent JavaDoc;
23 import java.awt.event.ActionListener JavaDoc;
24
25 import javax.swing.BorderFactory JavaDoc;
26 import javax.swing.JButton JavaDoc;
27 import javax.swing.JDialog JavaDoc;
28 import javax.swing.JFrame JavaDoc;
29 import javax.swing.JPanel JavaDoc;
30 import javax.swing.JScrollPane JavaDoc;
31 import javax.swing.JTree JavaDoc;
32 import javax.swing.SwingConstants JavaDoc;
33 import javax.swing.event.TreeSelectionEvent JavaDoc;
34 import javax.swing.event.TreeSelectionListener JavaDoc;
35 import javax.swing.tree.TreeModel JavaDoc;
36 import javax.swing.tree.TreePath JavaDoc;
37
38 import org.columba.addressbook.config.FolderItem;
39 import org.columba.addressbook.folder.AddressbookFolder;
40 import org.columba.addressbook.folder.AddressbookTreeNode;
41 import org.columba.addressbook.folder.IFolder;
42 import org.columba.addressbook.gui.tree.AddressbookTreeModel;
43 import org.columba.addressbook.util.AddressbookResourceLoader;
44 import org.columba.core.gui.base.ButtonWithMnemonic;
45 import org.columba.core.gui.base.SingleSideEtchedBorder;
46
47 public class SelectAddressbookFolderDialog extends JDialog JavaDoc implements
48         ActionListener JavaDoc, TreeSelectionListener JavaDoc, ISelectFolderDialog {
49
50     // private MainInterface mainInterface;
51
private boolean bool = false;
52
53     // public SelectFolderTree tree;
54
private JTree JavaDoc tree;
55
56     private JButton JavaDoc[] buttons;
57
58     // private TreeView treeViewer;
59
private IFolder selectedFolder;
60
61     private TreeModel JavaDoc model;
62
63     public SelectAddressbookFolderDialog(TreeModel JavaDoc model) {
64         super(new JFrame JavaDoc(), true);
65
66         setTitle(AddressbookResourceLoader.getString("tree", "folderdialog",
67                 "select_folder"));
68
69         this.model = model;
70
71         initComponents();
72
73         layoutComponents();
74
75         pack();
76         setLocationRelativeTo(null);
77         setVisible(true);
78     }
79
80     private void layoutComponents() {
81         getContentPane().setLayout(new BorderLayout JavaDoc());
82
83         JPanel JavaDoc mainPanel = new JPanel JavaDoc(new BorderLayout JavaDoc());
84         mainPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
85         mainPanel.add(new JScrollPane JavaDoc(tree), BorderLayout.CENTER);
86
87         getContentPane().add(mainPanel, BorderLayout.CENTER);
88
89         JPanel JavaDoc bottomPanel = new JPanel JavaDoc(new BorderLayout JavaDoc());
90         bottomPanel.setBorder(new SingleSideEtchedBorder(SwingConstants.TOP));
91
92         JPanel JavaDoc buttonPanel = new JPanel JavaDoc(new GridLayout JavaDoc(1, 2, 6, 0));
93         buttonPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
94
95         buttonPanel.add(buttons[0]);
96         buttonPanel.add(buttons[1]);
97         bottomPanel.add(buttonPanel, BorderLayout.EAST);
98
99         getContentPane().add(bottomPanel, BorderLayout.SOUTH);
100     }
101
102     private void initComponents() {
103         buttons = new JButton JavaDoc[3];
104
105         buttons[0] = new ButtonWithMnemonic(AddressbookResourceLoader
106                 .getString("global", "cancel"));
107         buttons[0].setActionCommand("CANCEL");
108         buttons[0].setDefaultCapable(true);
109         buttons[1] = new ButtonWithMnemonic(AddressbookResourceLoader
110                 .getString("global", "ok"));
111         buttons[1].setEnabled(true);
112         buttons[1].setActionCommand("OK");
113         buttons[2] = new JButton JavaDoc(AddressbookResourceLoader.getString("tree",
114                 "folderdialog", "new_subFolder"));
115         buttons[2].setActionCommand("NEW");
116         buttons[2].setEnabled(false);
117
118         getRootPane().setDefaultButton(buttons[1]);
119
120         tree = new JTree JavaDoc(model);
121         tree.expandRow(0);
122         tree.expandRow(1);
123         tree.putClientProperty("JTree.lineStyle", "Angled");
124         tree.setShowsRootHandles(true);
125         tree.setRootVisible(false);
126
127         tree.addTreeSelectionListener(this);
128         tree.setCellRenderer(new AddressbookTreeCellRenderer(true));
129
130         for (int i = 0; i < 3; i++) {
131             buttons[i].addActionListener(this);
132         }
133
134         tree.setSelectionPath(new TreePath JavaDoc(AddressbookTreeModel.getInstance()
135                 .getFolder("101").getPath()));
136     }
137
138     public boolean success() {
139         return bool;
140     }
141
142     public IFolder getSelectedFolder() {
143         return selectedFolder;
144     }
145
146     public int getUid() {
147         /*
148          * FolderTreeNode node = tree.getSelectedNode(); FolderItem item =
149          * node.getFolderItem();
150          */

151         return 101;
152
153         // return item.getUid();
154
}
155
156     public void actionPerformed(ActionEvent JavaDoc e) {
157         String JavaDoc action = e.getActionCommand();
158
159         if (action.equals("OK")) {
160             bool = true;
161             setVisible(false);
162         } else if (action.equals("CANCEL")) {
163             bool = false;
164             setVisible(false);
165         } else if (action.equals("NEW")) {
166             /*
167              * EditFolderDialog dialog = treeViewer.getEditFolderDialog( "New
168              * Folder" ); dialog.showDialog(); String name; if (
169              * dialog.success() == true ) { // ok pressed name =
170              * dialog.getName(); } else { // cancel pressed return; }
171              * treeViewer.getFolderTree().addUserFolder( getSelectedFolder(),
172              * name ); //TreeNodeEvent updateEvent2 = new TreeNodeEvent(
173              * getSelectedFolder(), TreeNodeEvent.STRUCTURE_CHANGED );
174              * //treeViewer.mainInterface.crossbar.fireTreeNodeChanged(updateEvent2);
175              */

176         }
177     }
178
179     /**
180      * ***************************** tree selection listener
181      * *******************************
182      */

183     public void valueChanged(TreeSelectionEvent JavaDoc e) {
184         AddressbookTreeNode node = (AddressbookTreeNode) tree
185                 .getLastSelectedPathComponent();
186
187         if (node == null) {
188             return;
189         }
190
191         FolderItem item = node.getFolderItem();
192
193         if (item.get("type").equals("AddressbookFolder")) {
194             buttons[1].setEnabled(true);
195             selectedFolder = (AddressbookFolder) node;
196         } else {
197             buttons[1].setEnabled(false);
198         }
199     }
200 }
Popular Tags