1 19 package org.columba.addressbook.gui.table; 20 21 import java.awt.event.MouseEvent ; 22 23 import org.columba.addressbook.folder.AbstractFolder; 24 import org.columba.addressbook.folder.GroupFolder; 25 import org.columba.addressbook.folder.IContactStorage; 26 import org.columba.addressbook.gui.dialog.contact.ContactEditorDialog; 27 import org.columba.addressbook.gui.frame.AddressbookFrameMediator; 28 import org.columba.addressbook.model.ContactModel; 29 import org.columba.addressbook.model.IContactModel; 30 import org.columba.core.gui.base.DoubleClickListener; 31 import org.columba.core.gui.dialog.ErrorDialog; 32 import org.columba.core.logging.Logging; 33 34 35 38 public class TableMouseListener extends DoubleClickListener 39 { 40 private TableController controller = null; 41 private AddressbookFrameMediator mediator = null; 42 public TableMouseListener(TableController tableController) 43 { 44 controller = tableController; 45 mediator = controller.getMediator(); 46 } 47 48 public void doubleClick(MouseEvent e) 49 { 50 54 if (e.getButton()==MouseEvent.BUTTON1 && 55 e.getClickCount() > 1) 56 { 57 58 String [] uids = mediator.getTable().getUids(); 60 61 IContactStorage folder = (IContactStorage) mediator.getTree() 63 .getSelectedFolder(); 64 65 if (uids.length == 0) 66 return; 67 68 IContactModel card = null; 70 try 71 { 72 card = (IContactModel) folder.get(uids[0]); 73 } 74 catch (Exception ex) 75 { 76 77 if (Logging.DEBUG) 78 ex.printStackTrace(); 79 80 ErrorDialog.createDialog(ex.getMessage(), ex); 81 } 82 83 ContactEditorDialog dialog = new ContactEditorDialog(mediator.getView().getFrame(), 84 (ContactModel) card); 85 86 if (dialog.getResult()) 87 { 88 89 try 90 { 91 folder.modify(uids[0], dialog.getDestModel()); 93 } 94 catch (Exception e1) 95 { 96 if (Logging.DEBUG) 97 e1.printStackTrace(); 98 99 ErrorDialog.createDialog(e1.getMessage(), e1); 100 } 101 102 if (folder instanceof GroupFolder) 103 mediator.getTree().setSelectedFolder((AbstractFolder) folder); 105 106 } 107 108 } 109 } 110 } 111 | Popular Tags |