1 package org.columba.addressbook.gui.action; 19 20 import java.awt.event.ActionEvent ; 21 22 import javax.swing.event.TreeSelectionEvent ; 23 import javax.swing.event.TreeSelectionListener ; 24 import javax.swing.tree.TreePath ; 25 26 import org.columba.addressbook.folder.AddressbookFolder; 27 import org.columba.addressbook.folder.AddressbookTreeNode; 28 import org.columba.addressbook.folder.IContactFolder; 29 import org.columba.addressbook.gui.dialog.contact.ContactEditorDialog; 30 import org.columba.addressbook.gui.frame.AddressbookFrameMediator; 31 import org.columba.addressbook.resourceloader.ContactImageLoader; 32 import org.columba.addressbook.resourceloader.IconKeys; 33 import org.columba.addressbook.util.AddressbookResourceLoader; 34 import org.columba.api.gui.frame.IFrameMediator; 35 import org.columba.core.gui.action.AbstractColumbaAction; 36 import org.columba.core.gui.dialog.ErrorDialog; 37 import org.columba.core.logging.Logging; 38 39 44 public class AddContactCardAction extends AbstractColumbaAction implements 45 TreeSelectionListener { 46 47 private AddressbookTreeNode treeNode; 48 49 public AddContactCardAction(IFrameMediator frameController) { 50 super(frameController, AddressbookResourceLoader.getString("menu", 51 "mainframe", "menu_file_addcontact")); 52 53 putValue(SHORT_DESCRIPTION, AddressbookResourceLoader.getString("menu", 55 "mainframe", "menu_file_addcontact_tooltip") 56 .replaceAll("&", "")); 57 58 putValue(TOOLBAR_NAME, AddressbookResourceLoader.getString("menu", 59 "mainframe", "menu_file_addcontact_toolbar")); 60 61 putValue(SMALL_ICON, ContactImageLoader 63 .getSmallIcon(IconKeys.NEW_CONTACT)); 64 putValue(LARGE_ICON, ContactImageLoader.getIcon(IconKeys.NEW_CONTACT)); 65 66 if (frameController instanceof AddressbookFrameMediator) { 67 ((AddressbookFrameMediator) frameMediator) 69 .addTreeSelectionListener(this); 70 71 setEnabled(false); 72 } else 73 setEnabled(false); 74 } 75 76 79 public void actionPerformed(ActionEvent evt) { 80 if (frameMediator instanceof AddressbookFrameMediator) { 81 82 AddressbookFrameMediator mediator = (AddressbookFrameMediator) frameMediator; 83 84 AddressbookFolder folder = (AddressbookFolder) mediator.getTree() 86 .getSelectedFolder(); 87 88 ContactEditorDialog dialog = new ContactEditorDialog(mediator 89 .getView().getFrame()); 90 91 if (dialog.getResult()) { 92 try { 93 folder.add(dialog.getDestModel()); 95 } catch (Exception e) { 96 if (Logging.DEBUG) 97 e.printStackTrace(); 98 99 ErrorDialog.createDialog(e.getMessage(), e); 100 } 101 102 } 103 } else { 104 ContactEditorDialog dialog = new ContactEditorDialog(frameMediator 105 .getView().getFrame()); 106 107 } 122 } 123 124 131 public void valueChanged(TreeSelectionEvent e) { 132 TreePath path = e.getNewLeadSelectionPath(); 133 134 if (path != null) { 136 treeNode = (AddressbookTreeNode) path.getLastPathComponent(); 137 } 138 139 if ((path != null) && (treeNode instanceof AddressbookFolder)) { 141 setEnabled(true); 142 } else { 143 setEnabled(false); 144 } 145 } 146 } | Popular Tags |