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; 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 /** 30 * Custom JTree using an appropriate model and renderer. 31 * 32 * @author fdietz 33 */ 34 public class TreeView extends JTree { 35 private AddressbookTreeNode root; 36 private AddressbookTreeModel model; 37 protected AddressbookFrameController frameController; 38 39 public TreeView(AddressbookFrameController frameController) { 40 this.frameController = frameController; 41 42 model = AddressbookTreeModel.getInstance(); 43 44 setModel(model); 45 46 setShowsRootHandles(true); 47 setRootVisible(false); 48 expandRow(0); 49 50 getSelectionModel().setSelectionMode(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 } 70