KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > addressbook > facade > DialogFacade


1 package org.columba.addressbook.facade;
2
3 import java.net.URI JavaDoc;
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     /**
20      * @see org.columba.addressbook.facade.IDialogFacade#openContactDialog(java.net.URI)
21      */

22     public void openContactDialog(URI JavaDoc location) {
23         // example: "columba://org.columba.contact/<folder-id>/<contact-id>"
24
String JavaDoc s = location.toString();
25
26         // TODO: @author fdietz replace with regular expression
27
int index = s.lastIndexOf('/');
28         String JavaDoc contactId = s.substring(index + 1, s.length());
29         String JavaDoc 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 JavaDoc("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 JavaDoc e) {
44             if (Logging.DEBUG)
45                 e.printStackTrace();
46             ErrorDialog.createDialog(e.getMessage(), e);
47         }
48
49         //
50
ContactEditorDialog dialog = new ContactEditorDialog(
51                 frameMediator.getView().getFrame(), card);
52
53         if (dialog.getResult()) {
54
55             try {
56                 // modify card properties in folder
57
folder.modify(contactId, dialog.getDestModel());
58             } catch (Exception JavaDoc e1) {
59                 if (Logging.DEBUG)
60                     e1.printStackTrace();
61
62                 ErrorDialog.createDialog(e1.getMessage(), e1);
63             }
64
65         }
66     }
67 }
68
Popular Tags