1 package org.columba.contact.gui.box; 2 3 import java.awt.event.ActionListener ; 4 import java.util.Iterator ; 5 import java.util.Vector ; 6 7 import javax.swing.ButtonGroup ; 8 import javax.swing.JPopupMenu ; 9 import javax.swing.JRadioButtonMenuItem ; 10 11 import org.columba.addressbook.folder.IContactFolder; 12 import org.columba.addressbook.folder.IFolder; 13 import org.columba.addressbook.gui.tree.AddressbookTreeModel; 14 15 public class FolderListMenu extends JPopupMenu { 16 17 private ButtonGroup group = new ButtonGroup (); 18 19 public FolderListMenu(ActionListener l) { 20 21 AddressbookTreeModel model = AddressbookTreeModel.getInstance(); 22 Vector <IFolder> v = new Vector <IFolder>(); 23 Object parent = model.getRoot(); 24 getChildren(model, parent, v); 25 26 Iterator <IFolder> it = v.listIterator(); 27 while (it.hasNext()) { 28 IFolder folder = it.next(); 29 if (folder instanceof IContactFolder) { 30 JRadioButtonMenuItem item = createMenuItem(folder); 31 item.addActionListener(l); 32 group.add(item); 33 add(item); 34 } 35 } 36 37 JRadioButtonMenuItem item = (JRadioButtonMenuItem ) getComponent(0); 39 item.setSelected(true); 40 } 41 42 private JRadioButtonMenuItem createMenuItem(IFolder folder) { 43 JRadioButtonMenuItem item = new JRadioButtonMenuItem (); 44 item.setActionCommand(folder.getId()); 45 item.setText(folder.getName()); 46 item.setIcon(folder.getIcon()); 47 return item; 48 } 49 50 private void getChildren(AddressbookTreeModel model, Object parent, 51 Vector <IFolder> v) { 52 int childCount = model.getChildCount(parent); 53 for (int i = 0; i < childCount; i++) { 54 Object child = model.getChild(parent, i); 55 v.add((IFolder) child); 56 57 getChildren(model, child, v); 58 } 59 } 60 61 } 62 | Popular Tags |