Author: bbrossaud Date: 2010-07-19 18:09:42 +0200 (Mon, 19 Jul 2010) New Revision: 107 Url: http://chorem.org/repositories/revision/bonzoms/107 Log: addition person page and remove some bugs Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonFormController.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonModel.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceFormController.java trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyController.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyData.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyFormController.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Email.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmailsModel.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeData.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeFormController.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Model.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonController.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonData.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Phone.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PhonesModel.java trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul trunk/bonzoms-ui-zk/transaction.log Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyController.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyController.java 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyController.java 2010-07-19 16:09:42 UTC (rev 107) @@ -53,21 +53,17 @@ public CompanyController() { List<Company> companies = _model.retrieveAllCompanies(); - List<CompanyData> dto = createCompaniesData(companies); - _companyDataModel.setCompanies(dto); + createCompaniesData(companies); } - public List<CompanyData> createCompaniesData(List<Company> companies) { - List<CompanyData> datas = new ArrayList<CompanyData>(); + public void createCompaniesData(List<Company> companies) { for (Company company: companies) { List<Address> addresses = _model.retrieveAddressesByIds(new ArrayList<String>(company.getAddress())); CompanyData data = new CompanyData(company, addresses); - datas.add(data); + _companyDataModel.addData(data); } - return datas; } - public void createWindowCompanyForm(CompanyData companyData) throws SuspendNotAllowedException, InterruptedException { Map<String, Object> map = new HashMap<String, Object>(); if (companyData != null) { @@ -90,16 +86,17 @@ /* * Renderers */ - protected Listcell phonesFaxRenderer(CompanyData company) { String render = "Fax: " + company.getCompany().getFax() + "\n"; String str = company.getCompany().getPhones(); String[] phones = StringUtil.split(str, ";"); for (String phone : phones) { String[] values = StringUtil.split(phone, ":"); - if (!values[1].isEmpty()) { - render += values[1] + " (" + values[0] + ")\n"; + String number = ""; + if (values.length > 1) { + number = values[1]; } + render += number + " (" + values[0] + ")\n"; } Label label = new Label(render); label.setMultiline(true); @@ -114,9 +111,11 @@ String[] emails = StringUtil.split(str, ";"); for (String email : emails) { String[] values = StringUtil.split(email, ":"); - if (!values[1].isEmpty()) { - render += values[1] + " (" + values[0] + ")\n"; + String mail = ""; + if (values.length > 1) { + mail = values[1]; } + render += mail + " (" + values[0] + ")\n"; } Label label = new Label(render); label.setMultiline(true); Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyData.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyData.java 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyData.java 2010-07-19 16:09:42 UTC (rev 107) @@ -85,6 +85,14 @@ return phonesModel.getPhones(); } + public String getEmailsModelAsString() { + return emailsModel.getEmailsAsString(); + } + + public String getPhonesModelAsString() { + return phonesModel.getPhonesAsString(); + } + /* * Setters */ @@ -125,4 +133,12 @@ public void setEmails(List<Email> emails) { emailsModel.setEmails(emails); } + + public void setEmailsModelList(String str) { + emailsModel.setEmails(str); + } + + public void setPhonesModelList(String str) { + phonesModel.setPhones(str); + } } Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyFormController.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyFormController.java 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyFormController.java 2010-07-19 16:09:42 UTC (rev 107) @@ -27,15 +27,11 @@ import java.util.List; import org.chorem.data.bonzoms.Address; import org.chorem.data.bonzoms.AddressImpl; -import org.chorem.data.bonzoms.Company; import org.nuiton.util.StringUtil; import org.zkoss.zk.ui.Component; -import org.zkoss.zk.ui.event.Event; -import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zkplus.databind.AnnotateDataBinder; import org.zkoss.zkplus.databind.DataBinder; -import org.zkoss.zul.Button; import org.zkoss.zul.Listbox; /** @@ -43,6 +39,7 @@ * @author sherkhan */ public class CompanyFormController extends GenericForwardComposer { + protected Model _model = new Model(); protected CompanyData _companyData = new CompanyData(); @@ -54,7 +51,7 @@ @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); - CompanyData company = (CompanyData) arg.get("company"); + CompanyData company = (CompanyData) arg.get("companyData"); init(company); DataBinder binder = new AnnotateDataBinder(comp); binder.bindBean("composer", this); @@ -78,104 +75,42 @@ Email email = new Email(); _companyData.getEmailsModel().addData(email); - - Button add = new Button("Add"); - add.addEventListener("onClick", new EventListener() { - - @Override - public void onEvent(Event event) throws Exception { - addCompany(); - } - }); - self.appendChild(add); } protected void initCompany(CompanyData company) { _companyData = company; - initPhonesModel(); - initEmailsModel(); - Button update = new Button("Update"); - update.addEventListener("onClick", new EventListener() { - - @Override - public void onEvent(Event event) throws Exception { - updateCompany(); - } - }); - self.appendChild(update); + _companyData.setEmailsModelList(_companyData.getCompany().getEmails()); + _companyData.setPhonesModelList(_companyData.getCompany().getPhones()); } - public void initPhonesModel() { - String str = _companyData.getCompany().getPhones(); - String[] phones = StringUtil.split(str, ";"); - List<Phone> phoneList = new ArrayList<Phone>(); - for (String phone : phones) { - String[] values = StringUtil.split(phone, ":"); - Phone newPhone = new Phone(values[0], values[1]); - phoneList.add(newPhone); + protected void removeCompanyAddresses() { + List<String> ids = _companyData.getRemovedAddresses(); + for (String id : ids) { + _companyData.getCompany().removeAddress(id); } - _companyData.setPhones(phoneList); } - public void initEmailsModel() { - String str = _companyData.getCompany().getEmails(); - String[] emails = StringUtil.split(str, ";"); - List<Email> emailList = new ArrayList<Email>(); - for (String email : emails) { - String[] values = StringUtil.split(email, ":"); - Email newEmail = new Email(values[0], values[1]); - emailList.add(newEmail); - } - _companyData.setEmails(emailList); - } - - protected void addAddresses(boolean update) { + protected void addAddresses() { List<Address> addresses = _model.createAddresses(_companyData.getAddressesModel().getAddresses()); - if (update == true) { + if (!_companyData.getRemovedAddresses().isEmpty()) { _model.deleteAddressesByIds(_companyData.getRemovedAddresses()); + removeCompanyAddresses(); } - _companyData.getCompany().clearAddress(); for (Address address : addresses) { _companyData.getCompany().addAddress(address.getWikittyId()); } } protected void addEmails() { - String emails = ""; - List<Email> emailList = _companyData.getEmails(); - for (Email email : emailList) { - emails += email.getName() + ":" + email.getEmail() + ";"; - } + String emails = _companyData.getEmailsModelAsString(); _companyData.getCompany().setEmails(emails); } protected void addPhones() { - String phones = ""; - List<Phone> phoneList = _companyData.getPhones(); - for (Phone phone : phoneList) { - phones += phone.getName() + ":" + phone.getPhone() + ";"; - } + String phones = _companyData.getPhonesModelAsString(); _companyData.getCompany().setPhones(phones); } - protected void addCompany() { - addPhones(); - addEmails(); - addAddresses(false); - - _model.createCompany(_companyData.getCompany()); - this.self.detach(); - } - - protected void updateCompany() { - addPhones(); - addEmails(); - addAddresses(true); - - _model.updateCompany(_companyData.getCompany()); - this.self.detach(); - } - /* * Events */ @@ -217,11 +152,20 @@ public void onClick$deleteEmail() { int size = emailListbox.getItemCount(); if (size > 1) { - Email email = (Email) _companyData.getEmailsModel().getElementAt(size -1); + Email email = (Email) _companyData.getEmailsModel().getElementAt(size - 1); _companyData.getEmailsModel().removeData(email); } } + public void onClick$saveCompany() { + addPhones(); + addEmails(); + addAddresses(); + + _model.updateCompany(_companyData.getCompany()); + this.self.detach(); + } + /* * Getters */ Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Email.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Email.java 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Email.java 2010-07-19 16:09:42 UTC (rev 107) @@ -28,7 +28,8 @@ protected String email = ""; protected String name = ""; - public Email() {} + public Email() { + } public Email(String name, String email) { this.email = email; @@ -56,4 +57,11 @@ public void setName(String name) { this.name = name; } + + public boolean isEmpty() { + if (name.isEmpty() && email.isEmpty()) { + return true; + } + return false; + } } Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmailsModel.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmailsModel.java 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmailsModel.java 2010-07-19 16:09:42 UTC (rev 107) @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.List; +import org.nuiton.util.StringUtil; import org.zkoss.zkplus.databind.BindingListModel; import org.zkoss.zul.AbstractListModel; import org.zkoss.zul.event.ListDataEvent; @@ -75,4 +76,32 @@ public List<Email> getEmails() { return _emails; } + + public String getEmailsAsString() { + String emails = ""; + for (Email email : _emails) { + if (!email.isEmpty()) { + emails += email.getName() + ":" + email.getEmail() + ";"; + } + } + return emails; + } + + public void setEmails(String str) { + _emails.clear(); + String[] emails = StringUtil.split(str, ";"); + for (String email : emails) { + String[] values = StringUtil.split(email, ":"); + String mail = ""; + if (values.length > 1) { + mail = values[1]; + } + Email newEmail = new Email(values[0], mail); + _emails.add(newEmail); + } + if (_emails.isEmpty()) { + _emails.add(new Email()); + } + fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1); + } } Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeData.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeData.java 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeData.java 2010-07-19 16:09:42 UTC (rev 107) @@ -23,7 +23,6 @@ */ package org.chorem.bonzoms.ui; -import java.util.ArrayList; import java.util.List; import org.chorem.data.bonzoms.Address; import org.chorem.data.bonzoms.AddressImpl; @@ -73,12 +72,12 @@ contractsData.getContractsModel().setContracts(contracts); } - public void setPersonPhones(List<Phone> phones) { + public void setPersonPhonesModelList(String phones) { personData.setPhones(phones); } - public void setPersonEmails(List<Email> emails) { - personData.setEmail(emails); + public void setPersonEmailsModelList(String emails) { + personData.setEmails(emails); } public void setPerson(Person person) { @@ -180,4 +179,12 @@ public ContractsData getContractsData() { return contractsData; } + + public String getPersonPhonesModelAsString() { + return personData.getPhonesAsString(); + } + + public String getPersonEmailsModelAsString() { + return personData.getEmailsAsString(); + } } Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeFormController.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeFormController.java 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeFormController.java 2010-07-19 16:09:42 UTC (rev 107) @@ -29,10 +29,11 @@ import java.util.Map; import org.chorem.data.bonzoms.Address; import org.chorem.data.bonzoms.AddressImpl; +import org.chorem.data.bonzoms.Employee; import org.chorem.data.bonzoms.EmploymentContract; import org.chorem.data.bonzoms.EmploymentContractImpl; +import org.chorem.data.bonzoms.Person; import org.chorem.data.bonzoms.Service; -import org.nuiton.util.StringUtil; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.SuspendNotAllowedException; @@ -91,34 +92,10 @@ protected void initPerson() { List<Address> addresses = _model.retrieveAddressesByIds(new ArrayList<String>(_employeeData.getPerson().getAddress())); _employeeData.setPersonAddresses(addresses); - initPersonPhonesModel(); - initPersonEmailsModel(); + _employeeData.setPersonEmailsModelList(_employeeData.getPerson().getEmails()); + _employeeData.setPersonPhonesModelList(_employeeData.getPerson().getPhones()); } - public void initPersonEmailsModel() { - String str = _employeeData.getPerson().getEmails(); - String[] emails = StringUtil.split(str, ";"); - List<Email> emailList = new ArrayList<Email>(); - for (String email : emails) { - String[] values = StringUtil.split(email, ":"); - Email newEmail = new Email(values[0], values[1]); - emailList.add(newEmail); - } - _employeeData.setPersonEmails(emailList); - } - - public void initPersonPhonesModel() { - String str = _employeeData.getPerson().getPhones(); - String[] phones = StringUtil.split(str, ";"); - List<Phone> phoneList = new ArrayList<Phone>(); - for (String phone : phones) { - String[] values = StringUtil.split(phone, ":"); - Phone newPhone = new Phone(values[0], values[1]); - phoneList.add(newPhone); - } - _employeeData.setPersonPhones(phoneList); - } - protected void initService() { Service service = _model.retrieveServiceById(_employeeData.getEmployee().getService()); Address address = _model.retrieveAddressById(service.getAddress()); @@ -144,46 +121,68 @@ initContracts(); } + protected void removePersonAddresses() { + List<String> ids = _employeeData.getPersonRemovedAddresses(); + for (String id : ids) { + _employeeData.getPerson().removeAddress(id); + } + } + + protected void removeEmployeeContracts() { + List<String> ids = _employeeData.getRemovedContracts(); + for (String id : ids) { + _employeeData.getEmployee().removeEmploymentContract(id); + } + } + protected void addEmployeeContracts() { List<EmploymentContract> contracts = _model.createContracts(_employeeData.getContractsList()); if (!_employeeData.getRemovedContracts().isEmpty()) { _model.deleteContractsByIds(_employeeData.getRemovedContracts()); + removeEmployeeContracts(); } - _employeeData.getContractsList().clear(); for (EmploymentContract contract : contracts) { _employeeData.getEmployee().addEmploymentContract(contract.getWikittyId()); } } + protected void addEmployeeService() { + Address serviceAddress = _model.createAddress(_employeeData.getServiceAddress()); + _employeeData.getService().setAddress(serviceAddress.getWikittyId()); + Service service = _model.updateService(_employeeData.getService()); + _employeeData.getEmployee().setService(service.getWikittyId()); + } + protected void addPersonAddresses() { List<Address> addresses = _model.createAddresses(_employeeData.getPersonAddresses()); if (!_employeeData.getPersonRemovedAddresses().isEmpty()) { _model.deleteAddressesByIds(_employeeData.getPersonRemovedAddresses()); + removePersonAddresses(); } - _employeeData.getPerson().clearAddress(); for (Address address : addresses) { _employeeData.getPerson().addAddress(address.getWikittyId()); } } protected void addPersonEmails() { - String emails = ""; - List<Email> emailList = _employeeData.getPersonEmails(); - for (Email email : emailList) { - emails += email.getName() + ":" + email.getEmail() + ";"; - } + String emails = _employeeData.getPersonEmailsModelAsString(); _employeeData.getPerson().setEmails(emails); } protected void addPersonPhones() { - String phones = ""; - List<Phone> phoneList = _employeeData.getPersonPhones(); - for (Phone phone : phoneList) { - phones += phone.getName() + ":" + phone.getPhone() + ";"; - } + String phones = _employeeData.getPersonPhonesModelAsString(); _employeeData.getPerson().setPhones(phones); } + protected void addEmployeePerson() { + addPersonAddresses(); + addPersonPhones(); + addPersonEmails(); + Person person = _model.createPerson(_employeeData.getPerson()); + _employeeData.setPerson(person); + _employeeData.getEmployee().setPerson(person.getWikittyId()); + } + /* * Events */ @@ -231,11 +230,9 @@ } public void onClick$saveEmployee() { - addPersonAddresses(); - addPersonPhones(); - addPersonEmails(); - + addEmployeePerson(); addEmployeeContracts(); + addEmployeeService(); Address workingAddress = _model.updateAddress(_employeeData.getWorkingAddress()); _employeeData.getEmployee().setAddress(workingAddress.getWikittyId()); @@ -243,7 +240,9 @@ Service service = _model.updateService(_employeeData.getService()); _employeeData.getEmployee().setService(service.getWikittyId()); - _model.updateEmployee(_employeeData.getEmployee()); + Employee employee = _model.createEmployee(_employeeData.getEmployee()); + _employeeData.setEmployee(employee); + this.self.detach(); } @@ -252,7 +251,7 @@ map.put("contractsData", _employeeData.getContractsData()); Window win = (Window) Executions.createComponents("contractFormPage.zul", null, map); win.setPage(page); - win.setPosition("right,center"); + win.setPosition("center"); win.doModal(); } @@ -261,7 +260,7 @@ map.put("serviceData", _employeeData.getServiceData()); Window win = (Window) Executions.createComponents("serviceFormPage.zul", null, map); win.setPage(page); - win.setPosition("left,center"); + win.setPosition("center"); win.doModal(); } Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Model.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Model.java 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Model.java 2010-07-19 16:09:42 UTC (rev 107) @@ -56,16 +56,16 @@ return wikitties; } - public void createEmployee(Employee employee) { - proxy.store(employee); + public Employee createEmployee(Employee employee) { + return proxy.store(employee); } public Address createAddress(Address address) { return proxy.store(address); } - public void createCompany(Company company) { - proxy.store(company); + public Company createCompany(Company company) { + return proxy.store(company); } public List<EmploymentContract> createContracts(List<EmploymentContract> contractsList) { @@ -73,6 +73,10 @@ return wikitties; } + public Person createPerson(Person person) { + return proxy.store(person); + } + /* * Retrieve */ @@ -112,6 +116,13 @@ return new ArrayList<EmploymentContract>(contracts); } + public List<Person> retrieveAllPersons() { + Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Person.EXT_PERSON).criteria(); + List<Person> persons = proxy.findAllByCriteria(Person.class, criteria).getAll(); + persons = new ArrayList<Person>(persons); + return persons; + } + /* * Update */ Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonController.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonController.java 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonController.java 2010-07-19 16:09:42 UTC (rev 107) @@ -28,7 +28,24 @@ package org.chorem.bonzoms.ui; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.chorem.data.bonzoms.Address; +import org.chorem.data.bonzoms.Person; +import org.zkoss.zk.ui.Executions; +import org.zkoss.zk.ui.SuspendNotAllowedException; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.util.GenericForwardComposer; +import org.zkoss.zul.Button; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; +import org.zkoss.zul.Window; /** * @@ -36,4 +53,85 @@ */ public class PersonController extends GenericForwardComposer { + protected Model model = new Model(); + + protected PersonModel personModel = new PersonModel(); + + public PersonController() { + List<Person> persons = model.retrieveAllPersons(); + createPersonsData(persons); + } + + public void createPersonsData(List<Person> persons) { + for (Person person : persons) { + List<Address> addresses = model.retrieveAddressesByIds(new ArrayList<String>(person.getAddress())); + PersonData data = new PersonData(person, addresses); + personModel.addData(data); + } + } + + public void createWindowPersonForm(PersonData personData) throws SuspendNotAllowedException, InterruptedException { + Map<String, Object> map = new HashMap<String, Object>(); + if (personData != null) { + map.put("personData", personData); + } + Window win = (Window) Executions.createComponents("personFormPage.zul", null, map); + win.setPage(page); +// win.doHighlighted(); + win.setPosition("center"); +// win.doOverlapped(); + win.doModal(); + } + + /* + * Events + */ + public void onClick$newPerson() throws SuspendNotAllowedException, InterruptedException { + createWindowPersonForm(null); + } + + /* + * Renderers + */ + public ListitemRenderer getPersonDataRenderer() { + return new ListitemRenderer() { + + @Override + public void render(Listitem item, Object data) throws Exception { + item.setValue(data); + final PersonData personData = (PersonData) data; + + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + + Listcell firstNameCell = new Listcell(personData.getPerson().getFirstName()); + Listcell lastNameCell = new Listcell(personData.getPerson().getLastName()); + Date birthday = personData.getPerson().getBirthDay(); + if (birthday == null) { + birthday = new Date(); + } + Listcell dateCell = new Listcell(sdf.format(birthday)); + Listcell detailsCell = new Listcell(); + Button details = new Button("details"); + detailsCell.appendChild(details); + details.addEventListener("onClick", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + createWindowPersonForm(personData); + } + }); + item.appendChild(firstNameCell); + item.appendChild(lastNameCell); + item.appendChild(dateCell); + item.appendChild(detailsCell); + } + }; + } + + /* + * Getters + */ + public PersonModel getPersonModel() { + return personModel; + } } Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonData.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonData.java 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonData.java 2010-07-19 16:09:42 UTC (rev 107) @@ -36,14 +36,13 @@ public class PersonData { protected Person person = new PersonImpl(); - protected PhonesModel phonesModel = new PhonesModel(); protected EmailsModel emailsModel = new EmailsModel(); protected AddressesModel addressesModel = new AddressesModel(); - protected List<String> removedAddresses = new ArrayList<String>(); - public PersonData() {} + public PersonData() { + } public PersonData(Person person, List<Address> addresses) { setPerson(person); @@ -68,7 +67,7 @@ public List<Email> getEmails() { return emailsModel.getEmails(); } - + public EmailsModel getEmailsModel() { return emailsModel; } @@ -85,6 +84,14 @@ return addressesModel; } + public String getEmailsAsString() { + return emailsModel.getEmailsAsString(); + } + + public String getPhonesAsString() { + return phonesModel.getPhonesAsString(); + } + /* * Setters */ @@ -100,7 +107,13 @@ } } - public void setEmail(List<Email> emails) { + public void setEmails(String str) { + if (str != null) { + emailsModel.setEmails(str); + } + } + + public void setEmails(List<Email> emails) { if (emails != null) { emailsModel.setEmails(emails); } @@ -112,6 +125,12 @@ } } + public void setPhones(String str) { + if (str != null) { + phonesModel.setPhones(str); + } + } + public void setRemovedAddresses(List<String> list) { if (list != null) { removedAddresses = list; Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonFormController.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonFormController.java (rev 0) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonFormController.java 2010-07-19 16:09:42 UTC (rev 107) @@ -0,0 +1,76 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package org.chorem.bonzoms.ui; + +import java.util.ArrayList; +import java.util.List; +import org.chorem.data.bonzoms.Address; +import org.chorem.data.bonzoms.AddressImpl; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.util.GenericForwardComposer; +import org.zkoss.zkplus.databind.AnnotateDataBinder; +import org.zkoss.zkplus.databind.DataBinder; +import org.zkoss.zul.Listbox; + +/** + * + * @author bbrossaud + */ +public class PersonFormController extends GenericForwardComposer { + + protected Model model = new Model(); + + protected PersonData personData = new PersonData(); + + protected Listbox addressListbox; + protected Listbox phoneListbox; + protected Listbox emailListbox; + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + PersonData person = (PersonData) arg.get("personData"); + init(person); + DataBinder binder = new AnnotateDataBinder(comp); + binder.bindBean("composer", this); + binder.loadAll(); + } + + protected void init(PersonData personData) { + if (personData == null) { + initDefaultPerson(); + } else { + initPerson(personData); + } + } + + protected void initDefaultPerson() { + Address address = new AddressImpl(); + personData.getAddressesModel().addData(address); + + Phone phone = new Phone(); + personData.getPhonesModel().addData(phone); + + Email email = new Email(); + personData.getEmailsModel().addData(email); + } + + protected void initPerson(PersonData personData) { + this.personData = personData; + List<Address> addresses = model.retrieveAddressesByIds(new ArrayList<String>(personData.getPerson().getAddress())); + this.personData.setAddresses(addresses); + this.personData.setEmails(personData.getPerson().getEmails()); + this.personData.setPhones(personData.getPerson().getPhones()); + } + + /* + * Getters + */ + + public PersonData getPersonData() { + return personData; + } +} Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonModel.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonModel.java (rev 0) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonModel.java 2010-07-19 16:09:42 UTC (rev 107) @@ -0,0 +1,49 @@ +package org.chorem.bonzoms.ui; + +import java.util.ArrayList; +import java.util.List; +import org.zkoss.zkplus.databind.BindingListModel; +import org.zkoss.zul.AbstractListModel; +import org.zkoss.zul.event.ListDataEvent; + +/** + * + * @author bbrossaud + */ +public class PersonModel extends AbstractListModel implements BindingListModel { + + protected List<PersonData> persons = new ArrayList<PersonData>(); + @Override + public Object getElementAt(int index) { + return persons.get(index); + } + + @Override + public int getSize() { + return persons.size(); + } + + @Override + public int indexOf(Object obj) { + return persons.indexOf(obj); + } + + public void setPersons(List<PersonData> persons) { + this.persons = persons; + fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1); + } + + public void addData(PersonData newData) { + persons.add(newData); + } + + public void removeData(PersonData data) { + int interval = persons.indexOf(data); + persons.remove(data); + fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval); + } + + public void reload() { + fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1); + } +} Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Phone.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Phone.java 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Phone.java 2010-07-19 16:09:42 UTC (rev 107) @@ -59,4 +59,11 @@ public void setName(String name) { this.name = name; } + + public boolean isEmpty() { + if (name.isEmpty() && phone.isEmpty()) { + return true; + } + return false; + } } Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PhonesModel.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PhonesModel.java 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PhonesModel.java 2010-07-19 16:09:42 UTC (rev 107) @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.List; +import org.nuiton.util.StringUtil; import org.zkoss.zkplus.databind.BindingListModel; import org.zkoss.zul.AbstractListModel; import org.zkoss.zul.event.ListDataEvent; @@ -75,4 +76,32 @@ public List<Phone> getPhones() { return _phones; } + + public String getPhonesAsString() { + String phones = ""; + for (Phone phone : _phones) { + if (!phone.isEmpty()) { + phones += phone.getName() + ":" + phone.getPhone() + ";"; + } + } + return phones; + } + + public void setPhones(String str) { + _phones.clear(); + String[] phones = StringUtil.split(str, ";"); + for (String phone : phones) { + String[] values = StringUtil.split(phone, ":"); + String number = ""; + if (values.length > 1) { + number = values[1]; + } + Phone newPhone = new Phone(values[0], number); + _phones.add(newPhone); + } + if (_phones.isEmpty()) { + _phones.add(new Phone()); + } + fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1); + } } Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceFormController.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceFormController.java (rev 0) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceFormController.java 2010-07-19 16:09:42 UTC (rev 107) @@ -0,0 +1,38 @@ +package org.chorem.bonzoms.ui; + +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.util.GenericForwardComposer; +import org.zkoss.zkplus.databind.AnnotateDataBinder; +import org.zkoss.zkplus.databind.DataBinder; + +/** + * + * @author sherkhan + */ +public class ServiceFormController extends GenericForwardComposer { + + protected ServiceData serviceData = new ServiceData(); + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + serviceData = (ServiceData) arg.get("serviceData"); + DataBinder binder = new AnnotateDataBinder(comp); + binder.bindBean("composer", this); + binder.loadAll(); + } + + /* + * Events + */ + public void onClick$saveService() { + self.detach(); + } + + /* + * Getters + */ + public ServiceData getServiceData() { + return serviceData; + } +} Modified: trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul 2010-07-19 16:09:42 UTC (rev 107) @@ -11,16 +11,16 @@ <vbox> <label value="Name" /> - <textbox value="@{composer.companyData.company.name, save-when='self.onChange'}" /> + <textbox value="@{composer.companyData.company.name, save-when='saveCompany.onClick'}" /> <label value="Type" /> - <textbox value="@{composer.companyData.company.type, save-when='self.onChange'}" /> + <textbox value="@{composer.companyData.company.type, save-when='saveCompany.onClick'}" /> <label value="Fax" /> - <textbox value="@{composer.companyData.company.fax, save-when='self.onChange'}" /> + <textbox value="@{composer.companyData.company.fax, save-when='saveCompany.onClick'}" /> <label value="Web site" /> - <textbox value="@{composer.companyData.company.webSite, save-when='self.onChange'}" /> + <textbox value="@{composer.companyData.company.webSite, save-when='saveCompany.onClick'}" /> </vbox> @@ -35,22 +35,22 @@ <vbox> <label value="Name" /> - <textbox value="@{address.name, save-when='self.onChange'}" /> + <textbox value="@{address.name, save-when='saveCompany.onClick'}" /> <label value="Adress1" /> - <textbox value="@{address.address1, save-when='self.onChange'}" /> + <textbox value="@{address.address1, save-when='saveCompany.onClick'}" /> <label value="Adress2" /> - <textbox value="@{address.address2, save-when='self.onChange'}" /> + <textbox value="@{address.address2, save-when='saveCompany.onClick'}" /> <label value="Zip code" /> - <textbox value="@{address.zipCode, save-when='self.onChange'}" /> + <textbox value="@{address.zipCode, save-when='saveCompany.onClick'}" /> <label value="City" /> - <textbox value="@{address.city, save-when='self.onChange'}" /> + <textbox value="@{address.city, save-when='saveCompany.onClick'}" /> <label value="Country" /> - <textbox value="@{address.country, save-when='self.onChange'}" /> + <textbox value="@{address.country, save-when='saveCompany.onClick'}" /> </vbox> </groupbox> @@ -76,10 +76,10 @@ </listhead> <listitem self="@{each='phone'}"> <listcell> - <textbox value="@{phone.name, save-when='self.onChange'}" /> + <textbox value="@{phone.name, save-when='saveCompany.onClick'}" /> </listcell> <listcell> - <textbox value="@{phone.phone, save-when='self.onChange'}" /> + <textbox value="@{phone.phone, save-when='saveCompany.onClick'}" /> </listcell> </listitem> </listbox> @@ -103,10 +103,10 @@ </listhead> <listitem self="@{each='mail'}"> <listcell> - <textbox value="@{mail.name, save-when='self.onChange'}" /> + <textbox value="@{mail.name, save-when='saveCompany.onClick'}" /> </listcell> <listcell> - <textbox value="@{mail.email, save-when='self.onChange'}" /> + <textbox value="@{mail.email, save-when='saveCompany.onClick'}" /> </listcell> </listitem> </listbox> @@ -120,4 +120,6 @@ </groupbox> + <button id="saveCompany" label="Save" /> + </window> \ No newline at end of file Modified: trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul 2010-07-19 16:09:42 UTC (rev 107) @@ -1,7 +1,7 @@ <?page id="ContractForm" title="Contract form" cacheable="false" language="xul/html" zscriptLanguage="Java"?> <?meta content="text/html; charset=UTF-8" pageEncoding="UTF-8"?> -<window closable="true" maximizable="true" sizable="true" height="500px" width="450px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ContractFormController"> +<window closable="true" maximizable="true" sizable="true" height="400px" width="450px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ContractFormController"> <caption label="Contract"/> <groupbox> @@ -42,10 +42,10 @@ <textbox value="@{contract.name, save-when='save.onClick'}" /> <label value="Start" /> - <datebox value="@{contract.start, save-when='save.onClick'}" /> + <datebox format="dd/MM/yyyy" value="@{contract.start, save-when='save.onClick'}" /> <label value="End" /> - <datebox value="@{contract.start, save-when='save.onClick'}" /> + <datebox format="dd/MM/yyyy" value="@{contract.end, save-when='save.onClick'}" /> <label value="Description" /> <textbox rows="5" value="@{contract.description, save-when='save.onClick'}" /> Added: trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul (rev 0) +++ trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul 2010-07-19 16:09:42 UTC (rev 107) @@ -0,0 +1,116 @@ +<window closable="true" maximizable="true" sizable="true" height="500px" width="400" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.PersonFormController"> + <caption label="Person"/> + <groupbox> + <caption label="Personnal informations" /> + <hbox> + <vbox> + <label value="First name" /> + <textbox value="@{composer.personData.person.firstName, save-when='savePerson.onClick'}" /> + <label value="Last name" /> + <textbox value="@{composer.personData.person.lastName, save-when='savePerson.onClick'}" /> + <label value="Birthday" /> + <datebox value="@{composer.personData.person.birthDay, save-when='savePerson.onClick'}" /> + </vbox> + + <space /> + + <vbox> + <listbox id="addressListbox" model="@{composer.personData.personAddressesModel}" width="200px"> + <listitem self="@{each='address'}"> + <listcell> + <groupbox> + <caption label="@{address.name}" /> + <vbox> + + <label value="Name" /> + <textbox value="@{address.name, save-when='savePerson.onClick'}" /> + + <label value="Adress1" /> + <textbox value="@{address.address1, save-when='savePerson.onClick'}" /> + + <label value="Adress2" /> + <textbox value="@{address.address2, save-when='savePerson.onClick'}" /> + + <label value="Zip code" /> + <textbox value="@{address.zipCode, save-when='savePerson.onClick'}" /> + + <label value="City" /> + <textbox value="@{address.city, save-when='savePerson.onClick'}" /> + + <label value="Country" /> + <textbox value="@{address.country, save-when='savePerson.onClick'}" /> + + </vbox> + </groupbox> + </listcell> + </listitem> + </listbox> + <hbox> + <button label="Add address " id="addAddress" /> + <button label="Delete address" id="deleteAddress" /> + </hbox> + </vbox> + + </hbox> + + <separator/> + + <vbox> + <groupbox width="330px"> + + <caption label="Phones" /> + + <listbox id="phoneListbox" model="@{composer.personData.personPhonesModel}" width="310px"> + <listhead sizable="true"> + <listheader label="Name" /> + <listheader label="Phone Number" /> + </listhead> + <listitem self="@{each='phone'}"> + <listcell> + <textbox value="@{phone.name, save-when='savePerson.onClick'}" /> + </listcell> + <listcell> + <textbox value="@{phone.phone, save-when='savePerson.onClick'}" /> + </listcell> + </listitem> + </listbox> + + <separator/> + + <button label="Add phone " id="addPhone" /> <button label="Delete phone" id="deletePhone" /> + + </groupbox> + + <separator/> + + <groupbox width="330px"> + + <caption label="Emails" /> + + <listbox id="emailListbox" model="@{composer.personData.personEmailsModel}" width="310px"> + <listhead sizable="true"> + <listheader label="Name" /> + <listheader label="Email" /> + </listhead> + <listitem self="@{each='mail'}"> + <listcell> + <textbox value="@{mail.name, save-when='savePerson.onClick'}" /> + </listcell> + <listcell> + <textbox value="@{mail.email, save-when='savePerson.onClick'}" /> + </listcell> + </listitem> + </listbox> + + <separator/> + + <button label="Add email " id="addEmail" /> <button label="Delete email" id="deleteEmail" /> + + </groupbox> + </vbox> + + </groupbox> + + <button id="savePerson" label="Save" /> + +</window> \ No newline at end of file Modified: trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul 2010-07-19 16:09:42 UTC (rev 107) @@ -3,5 +3,14 @@ <?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="person"?> <window id="person" apply="org.chorem.bonzoms.ui.PersonController"> - Person page coming soon... + Companies: <toolbarbutton id="newPerson" label="Add new person" /> + <listbox autopaging="true" mold="paging" id="personListBox" rows="20" model="@{person$composer.personModel}" + itemRenderer="@{person$composer.personDataRenderer}"> + <listhead> + <listheader label="First name" /> + <listheader label="Last name" /> + <listheader label="Birthday" /> + <listheader label="details" /> + </listhead> + </listbox> </window> \ No newline at end of file Added: trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul (rev 0) +++ trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul 2010-07-19 16:09:42 UTC (rev 107) @@ -0,0 +1,39 @@ +<?page id="ServiceForm" title="Service form" cacheable="false" language="xul/html" zscriptLanguage="Java"?> +<?meta content="text/html; charset=UTF-8" pageEncoding="UTF-8"?> + +<window closable="true" maximizable="true" sizable="true" height="400px" width="200px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ServiceFormController"> +<caption label="Service"/> + + <groupbox> + <caption label="Service informations" /> + + <vbox> + + <label value="Type" /> + <textbox value="@{composer.serviceData.service.type, save-when='saveService.onClick'}" /> + + <label value="Name" /> + <textbox value="@{composer.serviceData.address.name, save-when='saveService.onClick'}" /> + + <label value="Address 1" /> + <textbox value="@{composer.serviceData.address.address1, save-when='saveService.onClick'}" /> + + <label value="Address 2" /> + <textbox value="@{composer.serviceData.address.address2, save-when='saveService.onClick'}" /> + + <label value="Zip code" /> + <textbox value="@{composer.serviceData.address.zipCode, save-when='saveService.onClick'}" /> + + <label value="City" /> + <textbox value="@{composer.serviceData.address.city, save-when='saveService.onClick'}" /> + + <label value="Country" /> + <textbox value="@{composer.serviceData.address.country, save-when='saveService.onClick'}" /> + + </vbox> + + </groupbox> + + <button label="save" id="saveService" /> + +</window> \ No newline at end of file Modified: trunk/bonzoms-ui-zk/transaction.log =================================================================== --- trunk/bonzoms-ui-zk/transaction.log 2010-07-16 15:34:30 UTC (rev 106) +++ trunk/bonzoms-ui-zk/transaction.log 2010-07-19 16:09:42 UTC (rev 107) @@ -432,3 +432,69 @@ 2010-07-16 16:38:52,518 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 41080 2010-07-16 16:38:52,519 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 41 080 2010-07-16 16:38:52,566 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 41080 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-16 18:03:03,219 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 58947 +2010-07-16 18:03:03,221 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 58 947 +2010-07-16 18:03:03,283 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 58947 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 10:42:25,227 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 34618 +2010-07-19 10:42:25,256 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 34 618 +2010-07-19 10:42:25,329 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 34618 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 10:57:53,528 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 48475 +2010-07-19 10:57:53,530 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 48 475 +2010-07-19 10:57:53,584 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 48475 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 11:18:39,613 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 39370 +2010-07-19 11:18:39,615 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 39 370 +2010-07-19 11:18:39,687 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 39370 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 11:49:44,983 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 36948 +2010-07-19 11:49:44,986 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 36 948 +2010-07-19 11:49:45,056 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 36948 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 11:57:10,571 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 56964 +2010-07-19 11:57:10,573 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 56 964 +2010-07-19 11:57:10,640 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 56964 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 11:58:15,083 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 48991 +2010-07-19 11:58:15,084 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 48 991 +2010-07-19 11:58:15,146 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 48991 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 12:05:01,392 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 44335 +2010-07-19 12:05:01,394 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 44 335 +2010-07-19 12:05:01,448 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 44335 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 12:06:30,398 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 37272 +2010-07-19 12:06:30,406 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 37 272 +2010-07-19 12:06:30,463 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 37272 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 12:10:16,130 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 53609 +2010-07-19 12:10:16,132 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 53 609 +2010-07-19 12:10:16,194 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 53609 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 15:05:23,427 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 35099 +2010-07-19 15:05:23,429 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 35 099 +2010-07-19 15:05:23,520 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 35099 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 15:12:58,070 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 56229 +2010-07-19 15:12:58,078 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 56 229 +2010-07-19 15:12:58,176 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 56229 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 15:16:04,729 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 59140 +2010-07-19 15:16:04,731 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 59 140 +2010-07-19 15:16:04,791 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 59140 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 15:18:16,986 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 36635 +2010-07-19 15:18:16,989 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 36 635 +2010-07-19 15:18:17,057 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 36635 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 15:21:29,150 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 44372 +2010-07-19 15:21:29,152 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 44 372 +2010-07-19 15:21:29,226 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 44372 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 15:37:09,179 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 59424 +2010-07-19 15:37:09,181 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 59 424 +2010-07-19 15:37:09,246 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 59424 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 15:41:16,810 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 36935 +2010-07-19 15:41:16,812 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 36 935 +2010-07-19 15:41:16,894 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 36935 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 17:59:55,278 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 52294 +2010-07-19 17:59:55,292 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 52 294 +2010-07-19 17:59:55,381 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 52294 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 18:02:36,486 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 49030 +2010-07-19 18:02:36,488 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 49 030 +2010-07-19 18:02:36,560 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 49030 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 18:03:28,364 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 39314 +2010-07-19 18:03:28,366 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 39 314 +2010-07-19 18:03:28,437 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 39314 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 18:04:49,607 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 51376 +2010-07-19 18:04:49,609 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 51 376 +2010-07-19 18:04:49,704 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 51376 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService +2010-07-19 18:06:53,687 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 58500 +2010-07-19 18:06:53,689 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem_5] - TransactionStatusManagerItem host: 127.0.0.1 port: 58 500 +2010-07-19 18:06:53,796 [http-8080-1] INFO com.arjuna.ats.arjuna.logging.arjLoggerI18N - [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 58500 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService