01: // The contents of this file are subject to the Mozilla Public License Version
02: // 1.1
03: //(the "License"); you may not use this file except in compliance with the
04: //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
05: //
06: //Software distributed under the License is distributed on an "AS IS" basis,
07: //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
08: //for the specific language governing rights and
09: //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;
19:
20: import javax.swing.JTree;
21: import javax.swing.ListSelectionModel;
22:
23: import org.columba.addressbook.folder.AbstractFolder;
24: import org.columba.addressbook.folder.AddressbookTreeNode;
25: import org.columba.addressbook.gui.frame.AddressbookFrameController;
26: import org.columba.addressbook.gui.tree.util.AddressbookTreeCellRenderer;
27:
28: /**
29: * Custom JTree using an appropriate model and renderer.
30: *
31: * @author fdietz
32: */
33: public class TreeView extends JTree {
34: private AddressbookTreeNode root;
35: private AddressbookTreeModel model;
36: protected AddressbookFrameController frameController;
37:
38: public TreeView(AddressbookFrameController frameController) {
39: this .frameController = frameController;
40:
41: model = AddressbookTreeModel.getInstance();
42:
43: setModel(model);
44:
45: setShowsRootHandles(true);
46: setRootVisible(false);
47: expandRow(0);
48:
49: getSelectionModel().setSelectionMode(
50: ListSelectionModel.SINGLE_SELECTION);
51:
52: setCellRenderer(new AddressbookTreeCellRenderer(true));
53: }
54:
55: public AbstractFolder getRootFolder() {
56: return (AbstractFolder) model.getRoot();
57: }
58:
59: public void removeAll() {
60: root.removeAllChildren();
61: }
62:
63: /**
64: * @return FrameController
65: */
66: public AddressbookFrameController getFrameController() {
67: return frameController;
68: }
69: }
|