1 package org.columba.addressbook.facade; 2 3 import java.net.URI ; 4 5 import org.columba.addressbook.folder.AbstractFolder; 6 import org.columba.addressbook.folder.GroupFolder; 7 import org.columba.addressbook.folder.IContactFolder; 8 import org.columba.addressbook.gui.dialog.contact.ContactEditorDialog; 9 import org.columba.addressbook.gui.tree.AddressbookTreeModel; 10 import org.columba.addressbook.model.IContactModel; 11 import org.columba.api.gui.frame.IContainer; 12 import org.columba.api.gui.frame.IFrameMediator; 13 import org.columba.core.gui.dialog.ErrorDialog; 14 import org.columba.core.gui.frame.FrameManager; 15 import org.columba.core.logging.Logging; 16 17 public class DialogFacade implements IDialogFacade { 18 19 22 public void openContactDialog(URI location) { 23 String s = location.toString(); 25 26 int index = s.lastIndexOf('/'); 28 String contactId = s.substring(index + 1, s.length()); 29 String folderId = s.substring(s.lastIndexOf('/', index - 1) + 1, index); 30 31 IContainer[] container = FrameManager.getInstance().getOpenFrames(); 32 if (container == null || container.length == 0) 33 throw new RuntimeException ("No frames available"); 34 35 IFrameMediator frameMediator = container[0].getFrameMediator(); 36 37 IContactFolder folder = (IContactFolder) AddressbookTreeModel 38 .getInstance().getFolder(folderId); 39 40 IContactModel card = null; 41 try { 42 card = (IContactModel) folder.get(contactId); 43 } catch (Exception e) { 44 if (Logging.DEBUG) 45 e.printStackTrace(); 46 ErrorDialog.createDialog(e.getMessage(), e); 47 } 48 49 ContactEditorDialog dialog = new ContactEditorDialog( 51 frameMediator.getView().getFrame(), card); 52 53 if (dialog.getResult()) { 54 55 try { 56 folder.modify(contactId, dialog.getDestModel()); 58 } catch (Exception e1) { 59 if (Logging.DEBUG) 60 e1.printStackTrace(); 61 62 ErrorDialog.createDialog(e1.getMessage(), e1); 63 } 64 65 } 66 } 67 } 68 | Popular Tags |