1 7 package org.enhydra.pim.presentation.enhydrapim; 8 9 import java.math.BigDecimal ; 10 import java.util.Vector ; 11 12 import org.enhydra.pim.business.PersonManagerI; 13 import org.enhydra.pim.business.api.ContactI; 14 import org.enhydra.pim.business.api.PersonI; 15 import org.enhydra.pim.exception.EnhydraPimException; 16 import org.enhydra.pim.presentation.BasePO; 17 import org.enhydra.pim.spec.ContactManagerFactory; 18 import org.enhydra.pim.spec.PersonManagerFactory; 19 import org.enhydra.xml.xmlc.XMLObject; 20 import org.w3c.dom.Node ; 21 import org.w3c.dom.html.HTMLTableRowElement; 22 23 import com.lutris.appserver.server.httpPresentation.HttpPresentationException; 24 25 30 public class Detail extends BasePO { 31 32 final String ID_ITEMID = "itemId"; 33 34 final String ID_FIRSTNAME = "firstName"; 35 36 final String ID_LASTNAME = "lastName"; 37 38 final String ID_NICKNAME = "nickName"; 39 40 final String ID_NOTE = "note"; 41 42 final String ID_CONTACTTYPE = "contactType"; 43 44 final String ID_CONTACTDATA = "contactData"; 45 46 51 private PersonI getPersonId() throws HttpPresentationException, EnhydraPimException { 52 try { 53 String itemID = this.getComms().request.getParameter(ID_ITEMID); 54 PersonManagerI personManager = PersonManagerFactory.getPersonManager(); 55 PersonI person = personManager.findPerson(new BigDecimal (itemID)); 56 this.getSessionData().setPersonSessionHandle(person); 57 return person; 58 }catch(Exception ex) { 59 throw new EnhydraPimException(ex.getMessage()); 60 } 61 } 62 63 68 public XMLObject handleDefault() throws HttpPresentationException { 69 70 71 72 return showErrorPage("Unknown or Unexisting Person"); 73 } 74 75 80 public XMLObject handleViewDetailItem() throws HttpPresentationException { 81 try { 82 PersonI person = null; 83 try { 84 person = getPersonId(); 85 if (person != null) { 86 return showPage(person); 87 } else { 88 return showErrorPage("Person don't exists"); 89 } 90 } catch (EnhydraPimException ex) { 91 return showErrorPage("Unknown person"); 92 } 93 } catch (Exception ex) { 94 return showErrorPage("Application Error :" + ex.getMessage()); 95 } 96 } 97 98 103 protected boolean loggedInUserRequired() { 104 return true; 106 } 107 108 113 public XMLObject showPage(PersonI person) throws HttpPresentationException { 114 115 DetailHTML page = (DetailHTML) myComms.xmlcFactory.create(DetailHTML.class); 116 try { 117 118 HTMLTableRowElement listRow = page.getElementDetailTableRow(); 119 Node listTable = listRow.getParentNode(); 120 121 listRow.removeAttribute("id"); 123 124 page.setTextFirstName(person.getFirstname()); 125 page.setTextLastName(person.getLastname()); 126 page.setTextNickName(person.getNicname()); 127 page.setTextNote(person.getNote()); 128 page.getElementUpdatePerson().setAttribute("onClick", "UpdateItem('" + person.getHandle().toString() + "')"); 129 page.getElementDeletePerson().setAttribute("onClick", "DeleteItem('" + person.getHandle().toString() + "')"); 130 131 Vector contacts = ContactManagerFactory.getContactManager().getPersonContacts(person); 134 for (int i = 0; i < contacts.size(); i++) { 135 ContactI contact = (ContactI)contacts.elementAt(i); 136 page.setTextContactType(contact.getContact_type().getContact_type()); 137 page.setTextContactData(contact.getContact_data()); 138 Node clonedListRow = listRow.cloneNode(true); 140 listTable.appendChild(clonedListRow); 141 } 145 146 listRow.getParentNode().removeChild(listRow); 149 } catch (Exception ex) { 150 return showErrorPage("Error during detail view:" + ex.getMessage()); 151 } 152 return page; 154 155 } 156 157 } | Popular Tags |