1 package org.columba.addressbook.gui.base; 19 20 import java.awt.Component ; 21 import java.util.Iterator ; 22 import java.util.Vector ; 23 24 import javax.swing.DefaultListCellRenderer ; 25 import javax.swing.JComboBox ; 26 import javax.swing.JList ; 27 28 import org.columba.addressbook.folder.IContactFolder; 29 import org.columba.addressbook.folder.IFolder; 30 import org.columba.addressbook.gui.tree.AddressbookTreeModel; 31 32 public class FolderComboBox extends JComboBox { 33 34 public FolderComboBox(boolean showRootFolders) { 35 super(); 36 37 AddressbookTreeModel model = AddressbookTreeModel.getInstance(); 38 Vector <IFolder> v = new Vector <IFolder>(); 39 40 Object parent = model.getRoot(); 41 42 getChildren(model, parent, v); 43 44 Iterator <IFolder> it = v.listIterator(); 45 46 while (it.hasNext()) { 47 IFolder folder = it.next(); 48 if (!showRootFolders) { 49 if (folder instanceof IContactFolder) 50 addItem(folder); 51 } 52 } 53 54 setRenderer(new MyListCellRenderer()); 55 } 56 57 private void getChildren(AddressbookTreeModel model, Object parent, 58 Vector <IFolder> v) { 59 int childCount = model.getChildCount(parent); 60 for (int i = 0; i < childCount; i++) { 61 Object child = model.getChild(parent, i); 62 v.add((IFolder) child); 63 64 getChildren(model, child, v); 65 } 66 } 67 68 class MyListCellRenderer extends DefaultListCellRenderer { 69 70 MyListCellRenderer() { 71 72 } 73 74 78 @Override 79 public Component getListCellRendererComponent(JList list, Object value, 80 int index, boolean isSelected, boolean cellHasFocus) { 81 82 super.getListCellRendererComponent(list, value, index, isSelected, 83 cellHasFocus); 84 85 IFolder folder = (IFolder) value; 86 87 setText(folder.getName()); 88 setIcon(folder.getIcon()); 89 90 91 return this; 92 } 93 94 } 95 } 96 | Popular Tags |