r132 - in trunk: . bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui bonzoms-ui-zk/src/main/webapp bonzoms-ui-zk/src/main/webapp/WEB-INF bonzoms-ui-zk/src/main/webapp/macros
Author: bbrossaud Date: 2010-08-18 17:17:57 +0200 (Wed, 18 Aug 2010) New Revision: 132 Url: http://chorem.org/repositories/revision/bonzoms/132 Log: addition macro and changing Model Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyBandboxMacro.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeBandboxMacro.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportMacro.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportModel.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonBandboxMacro.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceBandboxMacro.java trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul trunk/bonzoms-ui-zk/src/main/webapp/macros/ trunk/bonzoms-ui-zk/src/main/webapp/macros/companyBandboxMacro.zul trunk/bonzoms-ui-zk/src/main/webapp/macros/employeeBandboxMacro.zul trunk/bonzoms-ui-zk/src/main/webapp/macros/personBandboxMacro.zul trunk/bonzoms-ui-zk/src/main/webapp/macros/serviceBandboxMacro.zul Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractFormController.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeFormController.java trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/zk.xml trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul trunk/pom.xml Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java 2010-08-16 10:16:48 UTC (rev 131) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java 2010-08-18 15:17:57 UTC (rev 132) @@ -72,4 +72,9 @@ include.setSrc(null); include.setSrc("contractPage.zul"); } + + public void onClick$exportReports() { + include.setSrc(null); + include.setSrc("exportReportPage.zul"); + } } Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyBandboxMacro.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyBandboxMacro.java (rev 0) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyBandboxMacro.java 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,137 @@ +package org.chorem.bonzoms.ui; + +import org.chorem.data.bonzoms.Company; +import org.nuiton.wikitty.Criteria; +import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.search.Element; +import org.nuiton.wikitty.search.Search; +import org.zkoss.zk.ui.HtmlMacroComponent; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zul.Bandbox; +import org.zkoss.zul.Listbox; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; +import org.zkoss.zul.Paging; +import org.zkoss.zul.event.PagingEvent; + +public class CompanyBandboxMacro extends HtmlMacroComponent { + + protected final int pageSize = 5; + + protected WikittyProxy proxy = ChoremDataProxy.getInstance(); + protected CompanyModel companyModel = new CompanyModel(pageSize); + protected String companyId = null; + + @Override + public void afterCompose() { + super.afterCompose(); + initPaging(); + initBandbox(); + initListbox(); + } + + protected void initPaging() { + Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Company.EXT_COMPANY).criteria(); + companyModel.setCriteria(criteria); + + int totalSize = companyModel.getTotalSize(); + Paging companyPaging = (Paging) getFellow("companyPaging"); + companyPaging.setTotalSize(totalSize); + companyPaging.setPageSize(pageSize); + companyPaging.addEventListener("onPaging", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + PagingEvent pagingEvent = (PagingEvent) event; + int activePage = pagingEvent.getActivePage(); + companyModel.setActivePage(activePage); + } + }); + } + + protected void initBandbox() { + final Bandbox companyBandbox = (Bandbox) getFellow("companyBandbox"); + companyBandbox.addEventListener(Events.ON_OK, new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + String search = companyBandbox.getValue(); + Search query = Search.query().eq(Element.ELT_EXTENSION, Company.EXT_COMPANY); + if (search != null && !search.isEmpty()) { + query = query.keyword(search); + } + Criteria criteria = query.criteria(); + companyModel.setCriteria(criteria); + int totalSize = companyModel.getTotalSize(); + Paging companyPaging = (Paging) getFellow("companyPaging"); + companyPaging.setTotalSize(totalSize); + companyPaging.setActivePage(0); + companyBandbox.open(); + } + }); + } + + protected void initListbox() { + Listbox companyListbox = (Listbox) getFellow("companyListbox"); + companyListbox.setModel(companyModel); + ListitemRenderer renderer = getCompanyRenderer(); + companyListbox.setItemRenderer(renderer); + } + + /* + * Renderer + */ + public ListitemRenderer getCompanyRenderer() { + return new ListitemRenderer() { + + @Override + public void render(Listitem item, Object data) throws Exception { + item.setValue(data); + final Company company = (Company) data; + final String name = company.getName(); + Listcell cell1 = new Listcell(name); + Listcell cell2 = new Listcell(company.getType()); + item.appendChild(cell1); + item.appendChild(cell2); + item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + companyId = company.getWikittyId(); + Bandbox companyBandbox = (Bandbox) getFellow("companyBandbox"); + companyBandbox.setValue(name); + companyBandbox.close(); + } + }); + } + }; + } + + /* + * Setters + */ + public void setCompanyId(String id) { + companyId = id; + if (id != null) { + Company company = proxy.restore(Company.class, id); + if (company != null) { + Bandbox companyBandbox = (Bandbox) getFellow("companyBandbox"); + String name = company.getName(); + if (name != null) { + companyBandbox.setValue(name); + companyBandbox.close(); + } + } + } + } + + /* + * Getters + */ + public String getCompanyId() { + return companyId; + } +} Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractFormController.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractFormController.java 2010-08-16 10:16:48 UTC (rev 131) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractFormController.java 2010-08-18 15:17:57 UTC (rev 132) @@ -6,6 +6,7 @@ import org.chorem.data.bonzoms.Employee; import org.chorem.data.bonzoms.EmploymentContract; import org.chorem.data.bonzoms.EmploymentContractImpl; +import org.chorem.data.bonzoms.Invoice; import org.chorem.data.bonzoms.Person; import org.nuiton.wikitty.Criteria; import org.nuiton.wikitty.WikittyProxy; @@ -34,13 +35,10 @@ protected WikittyProxy proxy = ChoremDataProxy.getInstance(); protected EmploymentContract contract = new EmploymentContractImpl(); - protected EmployeeModel employeeModel = new EmployeeModel(5); - protected Bandbox employeeBandbox; - protected Listbox employeeListbox; + EmployeeBandboxMacro employeeBandboxMacro; public static final String EVENT_ON_SAVE_CONTRACT = "onSaveContract"; - public static final String EVENT_ON_CLOSE_CONTRACT = "onCloseContract"; @Override public void doAfterCompose(Component comp) throws Exception { @@ -54,116 +52,21 @@ } if (contractId != null) { contract = proxy.restore(EmploymentContract.class, contractId); + employeeBandboxMacro.setEmployeeId(contract.getEmployee()); } - initEmployeeBandbox(); DataBinder binder = new AnnotateDataBinder(comp); binder.bindBean("composer", this); binder.loadAll(); } - protected void initEmployeeBandbox() { - onOK$employeeBandbox(); - initBandbox(); - } - - protected void initBandbox() { - String employeeId = contract.getEmployee(); - if (employeeId != null && !employeeId.isEmpty()) { - Employee employee = proxy.restore(Employee.class, employeeId); - String personId = employee.getPerson(); - if (personId != null && !personId.isEmpty()) { - Person person = proxy.restore(Person.class, personId); - String name = person.getFirstName() + " " + person.getLastName(); - employeeBandbox.setValue(name); - } - } - employeeBandbox.close(); - } - /* - * Renderers - */ - public ListitemRenderer getEmployeeRenderer() { - return new ListitemRenderer() { - - @Override - public void render(Listitem item, Object data) throws Exception { - item.setValue(data); - String firstName = ""; - String lastName = ""; - final Employee employee = (Employee) data; - String personId = employee.getPerson(); - if (personId != null && !personId.isEmpty()) { - Person person = proxy.restore(Person.class, personId); - firstName = person.getFirstName(); - lastName = person.getLastName(); - } - final String name = firstName + " " + lastName; - Listcell fName = new Listcell(firstName); - Listcell lName = new Listcell(lastName); - item.appendChild(fName); - item.appendChild(lName); - item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() { - - @Override - public void onEvent(Event event) throws Exception { - contract.setEmployee(employee.getWikittyId()); - employeeBandbox.setValue(name); - employeeBandbox.close(); - } - }); - } - }; - } - - /* * Events */ - public void onClick$newEmployee() { - contract.setEmployee(null); - employeeBandbox.setValue(""); - onClick$editEmployee(); - } - - public void onClick$editEmployee() { - String id = contract.getEmployee(); - Map<String, Object> map = new HashMap<String, Object>(); - if (id != null) { - map.put("employeeId", id); - } - Window win = (Window) Executions.createComponents("employeeFormPage.zul", null, map); - win.addEventListener(EmployeeFormController.EVENT_ON_SAVE_EMPLOYEE, new EventListener() { - - @Override - public void onEvent(Event event) throws Exception { - String employeeId = (String) event.getData(); - if (employeeId != null) { - contract.setEmployee(employeeId); - initBandbox(); - employeeModel.reload(); - } - } - }); - } - - public void onOK$employeeBandbox() { - String search = employeeBandbox.getValue(); - Search query = Search.query().eq(Element.ELT_EXTENSION, Employee.EXT_EMPLOYEE); - if (search != null && !search.isEmpty()) { - query = query.keyword(search); - } - Criteria criteria = query.criteria(); - employeeModel.setCriteria(criteria); - employeeBandbox.open(); - } - - public void onClose() { - Events.postEvent(EVENT_ON_CLOSE_CONTRACT, this.self, null); - } - public void onClick$saveContract() { + String employeeId = employeeBandboxMacro.getEmployeeId(); + contract.setEmployee(employeeId); contract = proxy.store(contract); - + Events.postEvent(EVENT_ON_SAVE_CONTRACT, this.self, contract.getWikittyId()); self.detach(); @@ -175,8 +78,4 @@ public EmploymentContract getContract() { return contract; } - - public EmployeeModel getEmployeeModel() { - return employeeModel; - } } Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeBandboxMacro.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeBandboxMacro.java (rev 0) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeBandboxMacro.java 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,148 @@ +package org.chorem.bonzoms.ui; + +import org.chorem.data.bonzoms.Employee; +import org.chorem.data.bonzoms.Person; +import org.nuiton.wikitty.Criteria; +import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.search.Element; +import org.nuiton.wikitty.search.Search; +import org.zkoss.zk.ui.HtmlMacroComponent; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zul.Bandbox; +import org.zkoss.zul.Listbox; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; +import org.zkoss.zul.Paging; +import org.zkoss.zul.event.PagingEvent; + +public class EmployeeBandboxMacro extends HtmlMacroComponent { + + private final int pageSize = 5; + + protected WikittyProxy proxy = ChoremDataProxy.getInstance(); + protected EmployeeModel employeeModel = new EmployeeModel(pageSize); + protected String employeeId = null; + + @Override + public void afterCompose() { + super.afterCompose(); + initPaging(); + initBandbox(); + initListbox(); + } + + protected void initPaging() { + Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Employee.EXT_EMPLOYEE).criteria(); + employeeModel.setCriteria(criteria); + + int totalSize = employeeModel.getTotalSize(); + Paging employeePaging = (Paging) getFellow("employeePaging"); + employeePaging.setTotalSize(totalSize); + employeePaging.setPageSize(pageSize); + employeePaging.addEventListener("onPaging", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + PagingEvent pagingEvent = (PagingEvent) event; + int activePage = pagingEvent.getActivePage(); + employeeModel.setActivePage(activePage); + } + }); + } + + protected void initBandbox() { + final Bandbox employeeBandbox = (Bandbox) getFellow("employeeBandbox"); + employeeBandbox.addEventListener(Events.ON_OK, new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + String search = employeeBandbox.getValue(); + Search query = Search.query().eq(Element.ELT_EXTENSION, Employee.EXT_EMPLOYEE); + if (search != null && !search.isEmpty()) { + query = query.keyword(search); + } + Criteria criteria = query.criteria(); + employeeModel.setCriteria(criteria); + int totalSize = employeeModel.getTotalSize(); + Paging paging = (Paging) getFellow("employeePaging"); + paging.setTotalSize(totalSize); + paging.setActivePage(0); + employeeBandbox.open(); + } + }); + } + + protected void initListbox() { + Listbox employeeListbox = (Listbox) getFellow("employeeListbox"); + employeeListbox.setModel(employeeModel); + ListitemRenderer renderer = getEmployeeRenderer(); + employeeListbox.setItemRenderer(renderer); + } + + /* + * Renderers + */ + public ListitemRenderer getEmployeeRenderer() { + return new ListitemRenderer() { + + @Override + public void render(Listitem item, Object data) throws Exception { + item.setValue(data); + String firstName = ""; + String lastName = ""; + final Employee employee = (Employee) data; + String personId = employee.getPerson(); + if (personId != null && !personId.isEmpty()) { + Person person = proxy.restore(Person.class, personId); + firstName = person.getFirstName(); + lastName = person.getLastName(); + } + final String name = firstName + " " + lastName; + Listcell fName = new Listcell(firstName); + Listcell lName = new Listcell(lastName); + item.appendChild(fName); + item.appendChild(lName); + item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + employeeId = employee.getWikittyId(); + Bandbox bandbox = (Bandbox) getFellow("employeeBandbox"); + bandbox.setValue(name); + bandbox.close(); + } + }); + } + }; + } + + /* + * Setters + */ + public void setEmployeeId(String id) { + employeeId = id; + if (id != null) { + Employee employee = proxy.restore(Employee.class, id); + if (employee != null) { + String personId = employee.getPerson(); + Person person = proxy.restore(Person.class, personId); + if (person != null) { + String name = person.getFirstName() + " " + person.getLastName(); + Bandbox bandbox = (Bandbox) getFellow("employeeBandbox"); + bandbox.setValue(name); + bandbox.close(); + } + } + } + } + + /* + * Getters + */ + public String getEmployeeId() { + return employeeId; + } +} 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-08-16 10:16:48 UTC (rev 131) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeFormController.java 2010-08-18 15:17:57 UTC (rev 132) @@ -28,28 +28,16 @@ import org.chorem.data.bonzoms.Address; import org.chorem.data.bonzoms.AddressImpl; -import org.chorem.data.bonzoms.Company; import org.chorem.data.bonzoms.Employee; import org.chorem.data.bonzoms.EmployeeImpl; -import org.chorem.data.bonzoms.Person; -import org.chorem.data.bonzoms.Service; -import org.nuiton.wikitty.Criteria; import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.search.Element; -import org.nuiton.wikitty.search.Search; import org.zkoss.zk.ui.Component; 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.event.Events; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zkplus.databind.AnnotateDataBinder; import org.zkoss.zkplus.databind.DataBinder; -import org.zkoss.zul.Bandbox; -import org.zkoss.zul.Listcell; -import org.zkoss.zul.Listitem; -import org.zkoss.zul.ListitemRenderer; import org.zkoss.zul.Window; /** @@ -63,16 +51,11 @@ protected Employee employee = new EmployeeImpl(); protected Address workingAddress = new AddressImpl(); - protected CompanyModel companyModel = new CompanyModel(5); - protected ServiceModel serviceModel = new ServiceModel(5); - protected PersonModel personModel = new PersonModel(5); + protected CompanyBandboxMacro companyBandboxMacro; + protected ServiceBandboxMacro serviceBandboxMacro; + protected PersonBandboxMacro personBandboxMacro; - protected Bandbox companyBandbox; - protected Bandbox serviceBandbox; - protected Bandbox personBandbox; - public static final String EVENT_ON_SAVE_EMPLOYEE = "onSaveEmployee"; - public static final String EVENT_ON_CLOSE_EMPLOYEE = "onCloseEmployee"; @Override public void doAfterCompose(Component comp) throws Exception { @@ -98,257 +81,144 @@ Component comp = self.getFellowIfAny("editContracts", false); comp.setVisible(false); } - initServiceModel(); - initCompanyModel(); - initPersonModel(); } protected void initEmployee(String employeeId) { employee = proxy.restore(Employee.class, employeeId); workingAddress = proxy.restore(Address.class, employee.getAddress()); + companyBandboxMacro.setCompanyId(employee.getCompany()); + serviceBandboxMacro.setServiceId(employee.getService()); + personBandboxMacro.setPersonId(employee.getPerson()); } - protected void initServiceModel() { - onOK$serviceBandbox(); - String serviceId = employee.getService(); - if (serviceId != null && !serviceId.isEmpty()) { - Service service = proxy.restore(Service.class, serviceId); - serviceBandbox.setValue(service.getType()); - } - serviceBandbox.close(); - } - - protected void initCompanyModel() { - onOK$companyBandbox(); - String companyId = employee.getCompany(); - if (companyId != null && !companyId.isEmpty()) { - Company company = proxy.restore(Company.class, companyId); - companyBandbox.setValue(company.getName()); - } - companyBandbox.close(); - } - - protected void initPersonModel() { - onOK$personBandbox(); - String personId = employee.getPerson(); - if (personId != null && !personId.isEmpty()) { - Person person = proxy.restore(Person.class, personId); - String name = person.getFirstName() + " " + person.getLastName(); - personBandbox.setValue(name); - } - personBandbox.close(); - } - /* - * Renderers - */ - public ListitemRenderer getCompanyRenderer() { - return new ListitemRenderer() { - - @Override - public void render(Listitem item, Object data) throws Exception { - item.setValue(data); - final Company company = (Company) data; - Listcell name = new Listcell(company.getName()); - Listcell type = new Listcell(company.getType()); - item.appendChild(name); - item.appendChild(type); - item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() { - - @Override - public void onEvent(Event event) throws Exception { - employee.setCompany(company.getWikittyId()); - companyBandbox.setValue(company.getName()); - companyBandbox.close(); - } - }); - } - }; - } - - public ListitemRenderer getServiceRenderer() { - return new ListitemRenderer() { - - @Override - public void render(Listitem item, Object data) throws Exception { - item.setValue(data); - final Service service = (Service) data; - Listcell name = new Listcell(service.getType()); - item.appendChild(name); - item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() { - - @Override - public void onEvent(Event event) throws Exception { - employee.setService(service.getWikittyId()); - serviceBandbox.setValue(service.getType()); - serviceBandbox.close(); - } - }); - } - }; - } - - public ListitemRenderer getPersonRenderer() { - return new ListitemRenderer() { - - @Override - public void render(Listitem item, Object data) throws Exception { - item.setValue(data); - final Person person = (Person) data; - Listcell firstName = new Listcell(person.getFirstName()); - Listcell lastName = new Listcell(person.getLastName()); - item.appendChild(firstName); - item.appendChild(lastName); - item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() { - - @Override - public void onEvent(Event event) throws Exception { - employee.setPerson(person.getWikittyId()); - String name = person.getFirstName() + " " + person.getLastName(); - personBandbox.setValue(name); - personBandbox.close(); - } - }); - } - }; - } - - /* * Events */ - public void onOK$companyBandbox() { - String search = companyBandbox.getValue(); - Search query = Search.query().eq(Element.ELT_EXTENSION, Company.EXT_COMPANY); - if (search != null && !search.isEmpty()) { - query = query.keyword(search); - } - Criteria criteria = query.criteria(); - companyModel.setCriteria(criteria); - companyBandbox.open(); - } - - public void onOK$serviceBandbox() { - String search = serviceBandbox.getValue(); - Search query = Search.query().eq(Element.ELT_EXTENSION, Service.EXT_SERVICE); - if (search != null && !search.isEmpty()) { - query = query.keyword(search); - } - Criteria criteria = query.criteria(); - serviceModel.setCriteria(criteria); - serviceBandbox.open(); - } - - public void onOK$personBandbox() { - String search = personBandbox.getValue(); - Search query = Search.query().eq(Element.ELT_EXTENSION, Person.EXT_PERSON); - if (search != null && !search.isEmpty()) { - query = query.keyword(search); - } - Criteria criteria = query.criteria(); - personModel.setCriteria(criteria); - personBandbox.open(); - } - - public void onClose() { - Events.postEvent(EVENT_ON_CLOSE_EMPLOYEE, this.self, null); - } - public void onClick$saveEmployee() { - + employee.setCompany(companyBandboxMacro.getCompanyId()); + employee.setPerson(personBandboxMacro.getPersonId()); + employee.setService(serviceBandboxMacro.getServiceId()); workingAddress = proxy.store(workingAddress); employee.setAddress(workingAddress.getWikittyId()); - + employee = proxy.store(employee); Events.postEvent(EVENT_ON_SAVE_EMPLOYEE, this.self, employee.getWikittyId()); this.self.detach(); } - public void onClick$newPerson() { - employee.setPerson(null); - personBandbox.setValue(""); - onClick$editPerson(); - } - - public void onClick$editPerson() { - Map<String, Object> map = new HashMap<String, Object>(); - String id = employee.getPerson(); - if (id != null && !id.isEmpty()) { - map.put("personId", id); - } - Window win = (Window) Executions.createComponents("personFormPage.zul", null, map); - win.addEventListener(PersonFormController.EVENT_ON_SAVE_PERSON, new EventListener() { +// public void onClick$newPerson() { +// employee.setPerson(null); +// personBandbox.setValue(""); +// onClick$editPerson(); +// } +// +// public void onClick$editPerson() { +// Map<String, Object> map = new HashMap<String, Object>(); +// String id = employee.getPerson(); +// if (id != null && !id.isEmpty()) { +// map.put("personId", id); +// } +// Window win = (Window) Executions.createComponents("personFormPage.zul", null, map); +// win.addEventListener(PersonFormController.EVENT_ON_SAVE_PERSON, new EventListener() { +// +// @Override +// public void onEvent(Event event) throws Exception { +// String personId = (String) event.getData(); +// if (personId != null) { +// employee.setPerson(personId); +// Person person = proxy.restore(Person.class, personId); +// String name = person.getFirstName() + " " + person.getLastName(); +// personBandbox.setValue(name); +// } +// personModel.reload(); +// } +// }); +// } public void onClick$newService() { +// employee.setService(null); +// serviceBandbox.setValue(""); +// onClick$editService(); +//} +// +//public void onClick$editService() { +// Map<String, Object> map = new HashMap<String, Object>(); +// String id = employee.getService(); +// if (id != null && !id.isEmpty()) { +// map.put("serviceId", id); +// } +// Window win = (Window) Executions.createComponents("serviceFormPage.zul", null, map); +// win.addEventListener(ServiceFormController.EVENT_ON_SAVE_SERVICE, new EventListener() { +// @Override +// public void onEvent(Event event) throws Exception { +// String serviceId = (String) event.getData(); +// if (serviceId != null) { +// employee.setService(serviceId); +// Service service = proxy.restore(Service.class, serviceId); +// serviceBandbox.setValue(service.getType()); +// } +// serviceModel.reload(); +// } +// }); +// +//} - @Override - public void onEvent(Event event) throws Exception { - String personId = (String) event.getData(); - if (personId != null) { - employee.setPerson(personId); - Person person = proxy.restore(Person.class, personId); - String name = person.getFirstName() + " " + person.getLastName(); - personBandbox.setValue(name); - } - personModel.reload(); - } - }); - } - public void onClick$newCompany() { - employee.setCompany(null); - companyBandbox.setValue(""); - onClick$editCompany(); - } - - public void onClick$editCompany() { - Map<String, Object> map = new HashMap<String, Object>(); - String id = employee.getCompany(); - if (id != null && !id.isEmpty()) { - map.put("companyId", id); - } - Window win = (Window) Executions.createComponents("companyFormPage.zul", null, map); - win.addEventListener(CompanyFormController.EVENT_ON_SAVE_COMPANY, new EventListener() { +// public void onClick$newCompany() { +// employee.setCompany(null); +// companyBandbox.setValue(""); +// onClick$editCompany(); +// } +// +// public void onClick$editCompany() { +// Map<String, Object> map = new HashMap<String, Object>(); +// String id = employee.getCompany(); +// if (id != null && !id.isEmpty()) { +// map.put("companyId", id); +// } +// Window win = (Window) Executions.createComponents("companyFormPage.zul", null, map); +// win.addEventListener(CompanyFormController.EVENT_ON_SAVE_COMPANY, new EventListener() { +// +// @Override +// public void onEvent(Event event) throws Exception { +// String companyId = (String) event.getData(); +// if (companyId != null) { +// employee.setCompany(companyId); +// Company company = proxy.restore(Company.class, companyId); +// companyBandbox.setValue(company.getName()); +// } +// companyModel.reload(); +// } +// }); +// } - @Override - public void onEvent(Event event) throws Exception { - String companyId = (String) event.getData(); - if (companyId != null) { - employee.setCompany(companyId); - Company company = proxy.restore(Company.class, companyId); - companyBandbox.setValue(company.getName()); - } - companyModel.reload(); - } - }); - } +// public void onClick$newService() { +// employee.setService(null); +// serviceBandbox.setValue(""); +// onClick$editService(); +// } +// +// public void onClick$editService() { +// Map<String, Object> map = new HashMap<String, Object>(); +// String id = employee.getService(); +// if (id != null && !id.isEmpty()) { +// map.put("serviceId", id); +// } +// Window win = (Window) Executions.createComponents("serviceFormPage.zul", null, map); +// win.addEventListener(ServiceFormController.EVENT_ON_SAVE_SERVICE, new EventListener() { +// @Override +// public void onEvent(Event event) throws Exception { +// String serviceId = (String) event.getData(); +// if (serviceId != null) { +// employee.setService(serviceId); +// Service service = proxy.restore(Service.class, serviceId); +// serviceBandbox.setValue(service.getType()); +// } +// serviceModel.reload(); +// } +// }); +// +// } - public void onClick$newService() { - employee.setService(null); - serviceBandbox.setValue(""); - onClick$editService(); - } - - public void onClick$editService() { - Map<String, Object> map = new HashMap<String, Object>(); - String id = employee.getService(); - if (id != null && !id.isEmpty()) { - map.put("serviceId", id); - } - Window win = (Window) Executions.createComponents("serviceFormPage.zul", null, map); - win.addEventListener(ServiceFormController.EVENT_ON_SAVE_SERVICE, new EventListener() { - @Override - public void onEvent(Event event) throws Exception { - String serviceId = (String) event.getData(); - if (serviceId != null) { - employee.setService(serviceId); - Service service = proxy.restore(Service.class, serviceId); - serviceBandbox.setValue(service.getType()); - } - serviceModel.reload(); - } - }); - - } - public void onClick$editContracts() throws SuspendNotAllowedException, InterruptedException { Map<String, Object> map = new HashMap<String, Object>(); String id = employee.getWikittyId(); @@ -365,18 +235,6 @@ return employee; } - public CompanyModel getCompanyModel() { - return companyModel; - } - - public PersonModel getPersonModel() { - return personModel; - } - - public ServiceModel getServiceModel() { - return serviceModel; - } - public Address getWorkingAddress() { return workingAddress; } Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java (rev 0) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,195 @@ +package org.chorem.bonzoms.ui; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.chorem.data.bonzoms.ExportReport; +import org.chorem.data.bonzoms.ExportReportItem; +import org.chorem.data.bonzoms.Person; +import org.nuiton.wikitty.Criteria; +import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.search.Element; +import org.nuiton.wikitty.search.Search; +import org.zkoss.zk.ui.Component; +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.event.Events; +import org.zkoss.zk.ui.event.ForwardEvent; +import org.zkoss.zk.ui.util.GenericForwardComposer; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; +import org.zkoss.zul.Paging; +import org.zkoss.zul.Window; +import org.zkoss.zul.event.PagingEvent; + +public class ExportReportController extends GenericForwardComposer { + + protected final int pageSize = 20; + + protected WikittyProxy proxy = ChoremDataProxy.getInstance(); + protected ExportReportModel exportReportModel = new ExportReportModel(pageSize); + + protected Paging exportReportPaging; + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + initExportReportModel(); + initPaging(); + } + + protected void initExportReportModel() { + Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, ExportReport.EXT_EXPORTREPORT).criteria(); + exportReportModel.setCriteria(criteria); + } + + protected void initPaging() { + exportReportPaging.setPageSize(pageSize); + int totalSize = exportReportModel.getTotalSize(); + exportReportPaging.setTotalSize(totalSize); + } + + protected void createWindowExportReportForm(String id) throws SuspendNotAllowedException, InterruptedException { + Map<String, Object> map = new HashMap<String, Object>(); + if (id != null) { + map.put("exportReportId", id); + } + Window win = (Window) Executions.createComponents("exportReportFormPage.zul", null, map); + win.addEventListener(ExportReportFormController.EVENT_ON_SAVE_EXPORTREPORT, new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + String id = (String) event.getData(); + ExportReport exportReport = proxy.restore(ExportReport.class, id); + int rowIndex = exportReportModel.indexOf(exportReport); + if (rowIndex != -1) { + exportReportModel.reloadContent(rowIndex); + } else { + exportReportModel.addData(exportReport); + } + int totalSize = exportReportModel.getTotalSize(); + exportReportPaging.setTotalSize(totalSize); + } + }); + } + + protected Listcell getDateCell(Date date) { + Listcell cell = new Listcell(); + if (date != null) { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + String label = sdf.format(date); + cell.setLabel(label); + } + return cell; + } + + protected Listcell getPersonCell(String id) { + Listcell cell = new Listcell(); + if (id != null && !id.isEmpty()) { + Person person = proxy.restore(Person.class, id); + if (person != null) { + String name = ""; + String str = person.getFirstName(); + if (str != null) { + name += str + " "; + } + str = person.getLastName(); + if (str != null) { + name += str; + } + cell.setLabel(name); + } + } + return cell; + } + + protected Listcell getPriceCell(String id) { + Listcell cell = new Listcell(); + if (id != null && !id.isEmpty()) { + Search search = Search.query().eq(Element.ELT_EXTENSION, ExportReportItem.EXT_EXPORTREPORTITEM); + search = search.eq(ExportReportItem.FQ_FIELD_EXPORTREPORTITEM_EXPORTREPORT, id); + Criteria criteria = search.criteria(); + List<ExportReportItem> items = proxy.findAllByCriteria(ExportReportItem.class, criteria).getAll(); + double price = 0; + for (ExportReportItem item : items) { + Double amount = item.getTTCAmount(); + if (amount != null) { + price += amount; + } + } + cell.setLabel(String.valueOf(price)); + } + return cell; + } + + /* + * Renderers + */ + public ListitemRenderer getExportReportRenderer() { + return new ListitemRenderer() { + + @Override + public void render(Listitem item, Object data) throws Exception { + item.setValue(data); + final ExportReport exportReport = (ExportReport) data; + + Listcell createdDateCell = getDateCell(exportReport.getDate()); + item.appendChild(createdDateCell); + + Listcell numberCell = new Listcell(exportReport.getNumber()); + item.appendChild(numberCell); + + Listcell stateCell = new Listcell(exportReport.getState()); + item.appendChild(stateCell); + + Listcell personCell = getPersonCell(exportReport.getPerson()); + item.appendChild(personCell); + + Listcell paymentDateCell = getDateCell(exportReport.getPayment()); + item.appendChild(paymentDateCell); + + Listcell priceCell = getPriceCell(exportReport.getWikittyId()); + item.appendChild(priceCell); + + item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + createWindowExportReportForm(exportReport.getWikittyId()); + } + }); + } + }; + } + + + /* + * Events + */ + public void onClick$newExportReport() throws SuspendNotAllowedException, InterruptedException { + createWindowExportReportForm(null); + } + + public void onPaging$exportReportPaging(ForwardEvent event) { + PagingEvent pagingEvent = (PagingEvent) event.getOrigin(); + int activePage = pagingEvent.getActivePage(); + exportReportModel.setActivePage(activePage); + } + + /* + * Getters + */ + public ExportReportModel getExportReportModel() { + return exportReportModel; + } + + /* + * Setters + */ +} Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java (rev 0) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,234 @@ +package org.chorem.bonzoms.ui; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.chorem.data.bonzoms.ExportReport; +import org.chorem.data.bonzoms.ExportReportImpl; +import org.chorem.data.bonzoms.ExportReportItem; +import org.chorem.data.bonzoms.ExportReportItemImpl; +import org.nuiton.wikitty.Criteria; +import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.search.Search; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Executions; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zk.ui.util.GenericForwardComposer; +import org.zkoss.zkplus.databind.AnnotateDataBinder; +import org.zkoss.zkplus.databind.DataBinder; +import org.zkoss.zul.Datebox; +import org.zkoss.zul.Doublebox; +import org.zkoss.zul.Listbox; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; +import org.zkoss.zul.Window; +import org.zkoss.zul.api.Textbox; + +public class ExportReportFormController extends GenericForwardComposer { + + protected WikittyProxy proxy = ChoremDataProxy.getInstance(); + + protected ExportReport exportReport = new ExportReportImpl(); + protected ExportReportItemModel itemsModel = new ExportReportItemModel(); + protected ExportReportItem selectedItem = null; + protected List<String> removedItems = new ArrayList<String>(); + + protected Listbox itemListbox; + + public static final String EVENT_ON_SAVE_EXPORTREPORT = "onSaveExportReport"; + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + Window win = (Window) self; + win.doModal(); + win.setPosition("center"); + String exportReportId = Executions.getCurrent().getParameter("exportReportId"); + if (exportReportId == null) { + exportReportId = (String) arg.get("exportReportId"); + } + init(exportReportId); + DataBinder binder = new AnnotateDataBinder(comp); + binder.bindBean("composer", this); + binder.loadAll(); + } + + protected void init(String exportReportId) { + if (exportReportId == null) { + initDefaultExportReport(); + } else { + initExportReport(exportReportId); + } + } + + protected void initDefaultExportReport() { + ExportReportItem item = newItem(); + itemsModel.addData(item); + selectedItem = item; + } + + protected void initExportReport(String id) { + exportReport = proxy.restore(ExportReport.class, id); + Criteria criteria = Search.query().eq(ExportReportItem.FQ_FIELD_EXPORTREPORTITEM_EXPORTREPORT, id).criteria(); + List<ExportReportItem> items = proxy.findAllByCriteria(ExportReportItem.class, criteria).getAll(); + items = new ArrayList<ExportReportItem>(items); + if (items.size() == 0) { + ExportReportItem item = newItem(); + items.add(item); + } + selectedItem = items.get(0); + itemsModel.setItems(items); + } + + protected ExportReportItem newItem() { + ExportReportItem item = new ExportReportItemImpl(); + item.setCompany(""); + item.setDate(new Date()); + return item; + } + + protected void saveItems() { + List<ExportReportItem> items = itemsModel.getItems(); + for (ExportReportItem item : items) { + item.setExportReport(exportReport.getWikittyId()); + } + proxy.store(items); + proxy.delete(removedItems); + } + + protected void setItemBox() { + Textbox textbox = (Textbox) self.getFellow("exportReportJustifyNumber"); + textbox.setValue(selectedItem.getJustifyNumber()); + + Doublebox doublebox = (Doublebox) self.getFellow("exportReportHTAmount"); + doublebox.setValue(selectedItem.getHTAmount()); + + doublebox = (Doublebox) self.getFellow("exportReportTTCAmount"); + doublebox.setValue(selectedItem.getTTCAmount()); + + doublebox = (Doublebox) self.getFellow("exportReportTVA"); + doublebox.setValue(selectedItem.getTVA()); + + Datebox datebox = (Datebox) self.getFellow("exportReportDate"); + datebox.setValue(selectedItem.getDate()); + } + + protected Listcell getDateCell(Date date) { + Listcell cell = new Listcell(); + if (date != null) { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + String label = sdf.format(date); + cell.setLabel(label); + } + return cell; + } + + protected Listcell getJustifyNumberCell(String number) { + Listcell cell = new Listcell(); + if (number != null) { + cell.setLabel(number); + } + return cell; + } + + /* + * Renderers + */ + public ListitemRenderer getExportReportItemRenderer() { + return new ListitemRenderer() { + + @Override + public void render(Listitem item, Object data) throws Exception { + item.setValue(data); + final ExportReportItem exportReportitem = (ExportReportItem) data; + + Listcell date = getDateCell(exportReportitem.getDate()); + item.appendChild(date); + + Listcell justifyNumber = getJustifyNumberCell(exportReportitem.getJustifyNumber()); + item.appendChild(justifyNumber); + + Listcell HT = new Listcell(String.valueOf(exportReportitem.getHTAmount())); + item.appendChild(HT); + + Listcell TVA = new Listcell(String.valueOf(exportReportitem.getTVA())); + item.appendChild(TVA); + + Listcell TTC = new Listcell(String.valueOf(exportReportitem.getTTCAmount())); + item.appendChild(TTC); + + item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + selectedItem = exportReportitem; + setItemBox(); + } + }); + } + }; + } + + /* + * Events + */ + public void onClick$saveItem() { + if (selectedItem != null) { + int rowIndex = itemsModel.indexOf(selectedItem); + itemsModel.reloadContent(rowIndex); + } + } + + public void onClick$saveExportReport() { + exportReport = proxy.store(exportReport); + saveItems(); + Events.postEvent(EVENT_ON_SAVE_EXPORTREPORT, this.self, exportReport.getWikittyId()); + self.detach(); + } + + public void onClick$addItem() { + ExportReportItem item = newItem(); + selectedItem = item; + setItemBox(); + itemsModel.addData(item); + } + + public void onClick$deleteItem() { + if (itemsModel.getSize() > 1) { + Listitem item = itemListbox.getSelectedItem(); + if (item != null) { + ExportReportItem exportReportItem = (ExportReportItem) item.getValue(); + if (exportReportItem != null) { + itemsModel.removeData(exportReportItem); + String id = exportReportItem.getWikittyId(); + if (id != null && !id.isEmpty()) { + removedItems.add(id); + } + selectedItem = (ExportReportItem) itemsModel.getElementAt(0); + setItemBox(); + itemListbox.setSelectedIndex(0); + } + } + } + } + + /* + * Getters + */ + public ExportReport getExportReport() { + return exportReport; + } + + public ExportReportItemModel getItemsModel() { + return itemsModel; + } + + public ExportReportItem getSelectedItem() { + return selectedItem; + } +} Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java (rev 0) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,57 @@ +package org.chorem.bonzoms.ui; + +import java.util.ArrayList; +import java.util.List; + +import org.chorem.data.bonzoms.ExportReportItem; +import org.zkoss.zkplus.databind.BindingListModel; +import org.zkoss.zul.AbstractListModel; +import org.zkoss.zul.event.ListDataEvent; + +public class ExportReportItemModel extends AbstractListModel implements BindingListModel { + + List<ExportReportItem> items = new ArrayList<ExportReportItem>(); + + @Override + public Object getElementAt(int index) { + return items.get(index); + } + + @Override + public int getSize() { + return items.size(); + } + + @Override + public int indexOf(Object obj) { + return items.indexOf(obj); + } + + public void setItems(List<ExportReportItem> items) { + this.items = items; + fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1); + } + + public void addData(ExportReportItem newData) { + items.add(newData); + fireEvent(ListDataEvent.INTERVAL_ADDED, items.size() - 1, items.size() - 1); + } + + public void removeData(ExportReportItem data) { + int interval = items.indexOf(data); + items.remove(data); + fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval); + } + + public void reloadContent(int rowIndex) { + fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex); + } + + public void reload() { + fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1); + } + + public List<ExportReportItem> getItems() { + return items; + } +} Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportMacro.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportMacro.java (rev 0) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportMacro.java 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,15 @@ +package org.chorem.bonzoms.ui; + +import org.nuiton.wikitty.WikittyProxy; +import org.zkoss.zk.ui.HtmlMacroComponent; + +public class ExportReportMacro extends HtmlMacroComponent { + + protected String id = null; + protected WikittyProxy proxy = BonzomsProxy.getInstance(); + + @Override + public void afterCompose() { + super.afterCompose(); + } +} Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportModel.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportModel.java (rev 0) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportModel.java 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,117 @@ +package org.chorem.bonzoms.ui; + +import java.util.ArrayList; +import java.util.List; + +import org.chorem.bonzoms.ui.ChoremDataProxy; +import org.chorem.data.bonzoms.ExportReport; +import org.nuiton.wikitty.Criteria; +import org.nuiton.wikitty.PagedResult; +import org.nuiton.wikitty.WikittyProxy; +import org.zkoss.zkplus.databind.BindingListModel; +import org.zkoss.zul.AbstractListModel; +import org.zkoss.zul.event.ListDataEvent; + +public class ExportReportModel extends AbstractListModel implements BindingListModel { + + protected WikittyProxy proxy = ChoremDataProxy.getInstance(); + protected Criteria criteria = null; + protected int activePage = 0; + protected int pageSize = 1; + protected List<ExportReport> exportReports = new ArrayList<ExportReport>(); + + public ExportReportModel(int pageSize) { + this.pageSize = pageSize; + createList(); + } + + @Override + public Object getElementAt(int index) { + ExportReport exportReport = exportReports.get(index); + return exportReport; + } + + @Override + public int getSize() { + return exportReports.size(); + } + + @Override + public int indexOf(Object obj) { + int index = -1; + String id = ((ExportReport) obj).getWikittyId(); + for (ExportReport data : exportReports) { + String dataId = data.getWikittyId(); + if (id.equals(dataId)) { + index = exportReports.indexOf(data); + break; + } + } + return index; + } + + public int getTotalSize() { + if (criteria == null) { + return 0; + } + Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0); + PagedResult<ExportReport> result = proxy.findAllByCriteria(ExportReport.class, criteria); + return result.getNumFound(); + } + + public void addData(ExportReport newData) { + int listSize = exportReports.size(); + if (listSize < (pageSize)) { + exportReports.add(newData); + } + int size = getSize(); + fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1); + } + + public void removeData(ExportReport data) { + int interval = exportReports.indexOf(data); + if (interval != -1) { + exportReports.remove(interval); + fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval); + } + } + + public void reloadContent(int rowIndex) { + ExportReport exportReport = exportReports.get(rowIndex); + exportReport = proxy.restore(ExportReport.class, exportReport.getWikittyId()); + exportReports.set(rowIndex, exportReport); + fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex); + } + + public void reload() { + fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1); + } + + public Criteria getCriteria() { + return criteria; + } + + public void setCriteria(Criteria criteria) { + if (criteria != null) { + this.criteria = criteria; + activePage = 0; + createList(); + } + } + + protected void createList() { + if (criteria != null) { + int first = activePage * pageSize; + int end = first + (pageSize - 1); + Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end); + List<ExportReport> exportReports = proxy.findAllByCriteria(ExportReport.class, criteria).getAll(); + this.exportReports = new ArrayList<ExportReport>(exportReports); + } + fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1); + } + + public void setActivePage(int activePage) { + this.activePage = activePage; + createList(); + } +} \ No newline at end of file Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonBandboxMacro.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonBandboxMacro.java (rev 0) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonBandboxMacro.java 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,136 @@ +package org.chorem.bonzoms.ui; + +import org.chorem.data.bonzoms.Person; +import org.nuiton.wikitty.Criteria; +import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.search.Element; +import org.nuiton.wikitty.search.Search; +import org.zkoss.zk.ui.HtmlMacroComponent; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zul.Bandbox; +import org.zkoss.zul.Listbox; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; +import org.zkoss.zul.Paging; +import org.zkoss.zul.event.PagingEvent; + +public class PersonBandboxMacro extends HtmlMacroComponent { + + protected final int pageSize = 5; + + protected WikittyProxy proxy = ChoremDataProxy.getInstance(); + protected PersonModel personModel = new PersonModel(pageSize); + protected String personId = null; + + @Override + public void afterCompose() { + super.afterCompose(); + initPaging(); + initBandbox(); + initListbox(); + } + + protected void initPaging() { + Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Person.EXT_PERSON).criteria(); + personModel.setCriteria(criteria); + + int totalSize = personModel.getTotalSize(); + Paging paging = (Paging) getFellow("personPaging"); + paging.setTotalSize(totalSize); + paging.setPageSize(pageSize); + paging.addEventListener("onPaging", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + PagingEvent pagingEvent = (PagingEvent) event; + int activePage = pagingEvent.getActivePage(); + personModel.setActivePage(activePage); + } + }); + } + + protected void initBandbox() { + final Bandbox bandbox = (Bandbox) getFellow("personBandbox"); + bandbox.addEventListener(Events.ON_OK, new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + String search = bandbox.getValue(); + Search query = Search.query().eq(Element.ELT_EXTENSION, Person.EXT_PERSON); + if (search != null && !search.isEmpty()) { + query = query.keyword(search); + } + Criteria criteria = query.criteria(); + personModel.setCriteria(criteria); + int totalSize = personModel.getTotalSize(); + Paging paging = (Paging) getFellow("personPaging"); + paging.setTotalSize(totalSize); + paging.setActivePage(0); + bandbox.open(); + } + }); + } + + protected void initListbox() { + Listbox listbox = (Listbox) getFellow("personListbox"); + listbox.setModel(personModel); + ListitemRenderer renderer = getPersonRenderer(); + listbox.setItemRenderer(renderer); + } + + /* + * Renderer + */ + public ListitemRenderer getPersonRenderer() { + return new ListitemRenderer() { + + @Override + public void render(Listitem item, Object data) throws Exception { + item.setValue(data); + final Person person = (Person) data; + Listcell firstName = new Listcell(person.getFirstName()); + Listcell lastName = new Listcell(person.getLastName()); + item.appendChild(firstName); + item.appendChild(lastName); + item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + personId = person.getWikittyId(); + Bandbox bandbox = (Bandbox) getFellow("personBandbox"); + bandbox.setValue(person.getFirstName() + " " + person.getLastName()); + bandbox.close(); + } + }); + } + }; + } + + /* + * Setters + */ + public void setPersonId(String id) { + personId = id; + if (id != null) { + Person person = proxy.restore(Person.class, id); + if (person != null) { + Bandbox bandbox = (Bandbox) getFellow("personBandbox"); + String name = person.getFirstName() + " " + person.getLastName(); + if (name != null) { + bandbox.setValue(name); + bandbox.close(); + } + } + } + } + + /* + * Getters + */ + public String getPersonId() { + return personId; + } +} Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceBandboxMacro.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceBandboxMacro.java (rev 0) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceBandboxMacro.java 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,135 @@ +package org.chorem.bonzoms.ui; + +import org.chorem.data.bonzoms.Service; +import org.nuiton.wikitty.Criteria; +import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.search.Element; +import org.nuiton.wikitty.search.Search; +import org.zkoss.zk.ui.HtmlMacroComponent; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zul.Bandbox; +import org.zkoss.zul.Listbox; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; +import org.zkoss.zul.Paging; +import org.zkoss.zul.event.PagingEvent; + +public class ServiceBandboxMacro extends HtmlMacroComponent { + + protected final int pageSize = 5; + + protected WikittyProxy proxy = ChoremDataProxy.getInstance(); + protected ServiceModel serviceModel = new ServiceModel(pageSize); + protected String serviceId = null; + + @Override + public void afterCompose() { + super.afterCompose(); + initPaging(); + initBandbox(); + initListbox(); + } + + protected void initPaging() { + Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Service.EXT_SERVICE).criteria(); + serviceModel.setCriteria(criteria); + + int totalSize = serviceModel.getTotalSize(); + Paging paging = (Paging) getFellow("servicePaging"); + paging.setTotalSize(totalSize); + paging.setPageSize(pageSize); + paging.addEventListener("onPaging", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + PagingEvent pagingEvent = (PagingEvent) event; + int activePage = pagingEvent.getActivePage(); + serviceModel.setActivePage(activePage); + } + }); + } + + protected void initBandbox() { + final Bandbox bandbox = (Bandbox) getFellow("serviceBandbox"); + bandbox.addEventListener(Events.ON_OK, new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + String search = bandbox.getValue(); + Search query = Search.query().eq(Element.ELT_EXTENSION, Service.EXT_SERVICE); + if (search != null && !search.isEmpty()) { + query = query.keyword(search); + } + Criteria criteria = query.criteria(); + serviceModel.setCriteria(criteria); + int totalSize = serviceModel.getTotalSize(); + Paging paging = (Paging) getFellow("servicePaging"); + paging.setTotalSize(totalSize); + paging.setActivePage(0); + bandbox.open(); + } + }); + } + + protected void initListbox() { + Listbox listbox = (Listbox) getFellow("serviceListbox"); + listbox.setModel(serviceModel); + ListitemRenderer renderer = getPersonRenderer(); + listbox.setItemRenderer(renderer); + } + + /* + * Renderer + */ + public ListitemRenderer getPersonRenderer() { + return new ListitemRenderer() { + + @Override + public void render(Listitem item, Object data) throws Exception { + item.setValue(data); + item.setValue(data); + final Service service = (Service) data; + Listcell name = new Listcell(service.getType()); + item.appendChild(name); + item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + serviceId = service.getWikittyId(); + Bandbox bandbox = (Bandbox) getFellow("serviceBandbox"); + bandbox.setValue(service.getType()); + bandbox.close(); + } + }); + } + }; + } + + /* + * Setters + */ + public void setServiceId(String id) { + serviceId = id; + if (id != null) { + Service service = proxy.restore(Service.class, id); + if (service != null) { + Bandbox bandbox = (Bandbox) getFellow("serviceBandbox"); + String name = service.getType(); + if (name != null) { + bandbox.setValue(name); + bandbox.close(); + } + } + } + } + + /* + * Getters + */ + public String getServiceId() { + return serviceId; + } +} Added: trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml (rev 0) +++ trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<language-addon> + + <addon-name>My macros</addon-name> + <language-name>xul/html</language-name> + + <!-- employee macro --> + <component> + <component-name>employeeBandboxMacro</component-name> + <component-class>org.chorem.bonzoms.ui.EmployeeBandboxMacro</component-class> + <macro-uri>macros/employeeBandboxMacro.zul</macro-uri> + </component> + + <!-- company macro --> + <component> + <component-name>companyBandboxMacro</component-name> + <component-class>org.chorem.bonzoms.ui.CompanyBandboxMacro</component-class> + <macro-uri>macros/companyBandboxMacro.zul</macro-uri> + </component> + + <!-- person macro --> + <component> + <component-name>personBandboxMacro</component-name> + <component-class>org.chorem.bonzoms.ui.PersonBandboxMacro</component-class> + <macro-uri>macros/personBandboxMacro.zul</macro-uri> + </component> + + <!-- service macro --> + <component> + <component-name>serviceBandboxMacro</component-name> + <component-class>org.chorem.bonzoms.ui.ServiceBandboxMacro</component-class> + <macro-uri>macros/serviceBandboxMacro.zul</macro-uri> + </component> + +</language-addon> Modified: trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/zk.xml =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/zk.xml 2010-08-16 10:16:48 UTC (rev 131) +++ trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/zk.xml 2010-08-18 15:17:57 UTC (rev 132) @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> - -<!-- - Created by ZK Studio ---> <zk> + <language-config> + <addon-uri>/WEB-INF/lang-addon.xml</addon-uri> + </language-config> </zk> \ No newline at end of file Modified: trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul 2010-08-16 10:16:48 UTC (rev 131) +++ trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul 2010-08-18 15:17:57 UTC (rev 132) @@ -10,9 +10,10 @@ <toolbarbutton id="companies" label="Companies" /> <toolbarbutton id="contracts" label="Contracts" /> <toolbarbutton id="employees" label="Employees" /> + <toolbarbutton id="exportReports" label="Export reports" /> <toolbarbutton id="persons" label="Persons" /> <toolbarbutton id="services" label="Services" /> - </vbox> + </vbox> </groupbox> <vbox id="content" > <hbox> Modified: trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul 2010-08-16 10:16:48 UTC (rev 131) +++ trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul 2010-08-18 15:17:57 UTC (rev 132) @@ -22,24 +22,8 @@ <label value="Advantages" /> <textbox value="@{composer.contract.advantages, save-when='saveContract.onClick'}" /> - <hbox> - <toolbarbutton id="editEmployee" label="Edit employee" /> / <toolbarbutton id="newEmployee" label="New employee" /> - </hbox> + <employeeBandboxMacro id="employeeBandboxMacro" /> - <bandbox id="employeeBandbox" mold="rounded"> - <bandpopup> - <vbox> - <listbox autopaging="true" mold="paging" id="personListbox" rows="5" width="200px" model="@{composer.employeeModel}" - itemRenderer="@{composer.employeeRenderer}"> - <listhead> - <listheader label="First name" /> - <listheader label="Last name" /> - </listhead> - </listbox> - </vbox> - </bandpopup> - </bandbox> - </vbox> <space /> Modified: trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul 2010-08-16 10:16:48 UTC (rev 131) +++ trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul 2010-08-18 15:17:57 UTC (rev 132) @@ -19,56 +19,11 @@ <label value="Phone number" /> <textbox value="@{composer.employee.workingPhone, save-when='saveEmployee.onClick'}" /> - <hbox> - <toolbarbutton id="editService" label="Edit service" /> / <toolbarbutton id="newService" label="New service" /> - </hbox> - <bandbox id="serviceBandbox" mold="rounded"> - <bandpopup> - <vbox> - <listbox autopaging="true" mold="paging" id="serviceListbox" rows="5" width="200px" model="@{composer.serviceModel}" - itemRenderer="@{composer.serviceRenderer}"> - <listhead> - <listheader label="Name"/> - </listhead> - </listbox> - </vbox> - </bandpopup> - </bandbox> - - <hbox> - <toolbarbutton id="editCompany" label="Edit company" /> / <toolbarbutton id="newCompany" label="New company" /> - </hbox> - - <bandbox id="companyBandbox" mold="rounded"> - <bandpopup> - <vbox> - <listbox autopaging="true" mold="paging" id="companyListbox" rows="5" width="200px" model="@{composer.companyModel}" - itemRenderer="@{composer.companyRenderer}"> - <listhead> - <listheader label="Name" /> - <listheader label="Type" /> - </listhead> - </listbox> - </vbox> - </bandpopup> - </bandbox> + <personBandboxMacro id="personBandboxMacro" /> - <hbox> - <toolbarbutton id="editPerson" label="Edit person" /> / <toolbarbutton id="newPerson" label="New person" /> - </hbox> - <bandbox id="personBandbox" mold="rounded"> - <bandpopup> - <vbox> - <listbox autopaging="true" mold="paging" id="personListbox" rows="5" width="200px" model="@{composer.personModel}" - itemRenderer="@{composer.personRenderer}"> - <listhead> - <listheader label="First name" /> - <listheader label="Last name" /> - </listhead> - </listbox> - </vbox> - </bandpopup> - </bandbox> + <companyBandboxMacro id="companyBandboxMacro" /> + + <serviceBandboxMacro id="serviceBandboxMacro" /> <toolbarbutton id="editContracts" label="Edit contracts" /> Added: trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul (rev 0) +++ trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,95 @@ +<?page id="exportReportForm" title="Export report 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" width="650px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ExportReportFormController"> + <caption label="Export report"/> + <vbox> + + <groupbox> + <caption label="Export report" /> + <hbox> + + <vbox> + State + <listbox id="stateListbox" mold="select"> + <listitem label="Writing" /> + <listitem label="Waiting for payment" /> + <listitem label="Waiting for validation" /> + <listitem label="Payed" /> + </listbox> + </vbox> + + <space /> + + <vbox> + Payment date + <datebox value="@{composer.exportReport.payment, save-when='saveExportReport.onClick'}" /> + </vbox> + + <space /> + + <vbox> + Number + <textbox value="@{composer.exportReport.number, save-when='saveExportReport.onClick'}" /> + </vbox> + + </hbox> + </groupbox> + + + <groupbox> + <caption label="Items" /> + <hbox> + <vbox> + Date + <datebox id="exportReportDate" value="@{composer.selectedItem.date, save-when='saveItem.onClick'}" /> + </vbox> + + <vbox> + Justify number + <textbox id="exportReportJustifyNumber" value="@{composer.selectedItem.justifyNumber, save-when='saveItem.onClick'}" /> + </vbox> + + <vbox> + HT amount + <doublebox id="exportReportHTAmount" value="@{composer.selectedItem.hTAmount, save-when='saveItem.onClick'}" /> + </vbox> + + <vbox> + TVA + <doublebox id="exportReportTVA" value="@{composer.selectedItem.tVA, save-when='saveItem.onClick'}" /> + </vbox> + + <vbox> + TTC amount + <doublebox id="exportReportTTCAmount" value="@{composer.selectedItem.tTCAmount, save-when='saveItem.onClick'}" /> + </vbox> + <space /> + <vbox> + <separator /> + <button id="saveItem" label="Save" /> + </vbox> + </hbox> + + <vbox> + <separator /> + <listbox id="itemListbox" model="@{composer.itemsModel}" itemRenderer="@{composer.exportReportItemRenderer}" autopaging="true" mold="paging" rows="5" > + <listhead> + <listheader label="Date" /> + <listheader label="Justify number" /> + <listheader label="HT amount" /> + <listheader label="TVA" /> + <listheader label="TTC amount" /> + </listhead> + </listbox> + <hbox> + <button id="addItem" label="Add item" /> + <space /> + <button id="deleteItem" label="Delete item" /> + </hbox> + </vbox> + </groupbox> + + </vbox> + <button id="saveExportReport" label="Save" /> +</window> Added: trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul (rev 0) +++ trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,20 @@ +<?page id="exportReport" title="Export report" cacheable="false" language="xul/html" zscriptLanguage="Java"?> +<?meta content="text/html; charset=UTF-8" pageEncoding="UTF-8"?> +<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./exportReport"?> + + +<window id="exportReport" apply="org.chorem.bonzoms.ui.ExportReportController"> + Export report: <toolbarbutton id="newExportReport" label="Add new export report" /> + <listbox id="exportReportListbox" rows="20" model="@{exportReport$composer.exportReportModel}" + itemRenderer="@{exportReport$composer.exportReportRenderer}"> + <listhead> + <listheader label="Creation Date" /> + <listheader label="Number" /> + <listheader label="State" /> + <listheader label="Person" /> + <listheader label="Payment date" /> + <listheader label="TTC Price" /> + </listhead> + </listbox> + <paging id="exportReportPaging" /> +</window> \ No newline at end of file Added: trunk/bonzoms-ui-zk/src/main/webapp/macros/companyBandboxMacro.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/macros/companyBandboxMacro.zul (rev 0) +++ trunk/bonzoms-ui-zk/src/main/webapp/macros/companyBandboxMacro.zul 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,17 @@ +<?page title="new page title" contentType="text/html;charset=UTF-8"?> +<zk> + Company: + <bandbox id="companyBandbox" mold="rounded"> + <bandpopup> + <vbox> + <listbox rows="5" id="companyListbox" width="200px" > + <listhead> + <listheader label="Name" /> + <listheader label="Type" /> + </listhead> + </listbox> + <paging id="companyPaging" width="200px"/> + </vbox> + </bandpopup> + </bandbox> +</zk> \ No newline at end of file Added: trunk/bonzoms-ui-zk/src/main/webapp/macros/employeeBandboxMacro.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/macros/employeeBandboxMacro.zul (rev 0) +++ trunk/bonzoms-ui-zk/src/main/webapp/macros/employeeBandboxMacro.zul 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,17 @@ +<?page title="new page title" contentType="text/html;charset=UTF-8"?> +<zk> + Employee: + <bandbox id="employeeBandbox" mold="rounded"> + <bandpopup> + <vbox> + <listbox id="employeeListbox" rows="5" width="200px"> + <listhead> + <listheader label="First name" /> + <listheader label="Last name" /> + </listhead> + </listbox> + <paging id="employeePaging" width="200px"/> + </vbox> + </bandpopup> + </bandbox> +</zk> \ No newline at end of file Added: trunk/bonzoms-ui-zk/src/main/webapp/macros/personBandboxMacro.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/macros/personBandboxMacro.zul (rev 0) +++ trunk/bonzoms-ui-zk/src/main/webapp/macros/personBandboxMacro.zul 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,17 @@ +<?page title="new page title" contentType="text/html;charset=UTF-8"?> +<zk> + Person: + <bandbox id="personBandbox" mold="rounded"> + <bandpopup> + <vbox> + <listbox id="personListbox" rows="5" width="200px"> + <listhead> + <listheader label="First name" /> + <listheader label="Last name" /> + </listhead> + </listbox> + <paging id="personPaging" width="200px"/> + </vbox> + </bandpopup> + </bandbox> +</zk> \ No newline at end of file Added: trunk/bonzoms-ui-zk/src/main/webapp/macros/serviceBandboxMacro.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/macros/serviceBandboxMacro.zul (rev 0) +++ trunk/bonzoms-ui-zk/src/main/webapp/macros/serviceBandboxMacro.zul 2010-08-18 15:17:57 UTC (rev 132) @@ -0,0 +1,16 @@ +<?page title="new page title" contentType="text/html;charset=UTF-8"?> +<zk> + Service: + <bandbox id="serviceBandbox" mold="rounded"> + <bandpopup> + <vbox> + <listbox id="serviceListbox" rows="5" width="200px"> + <listhead> + <listheader label="Type" /> + </listhead> + </listbox> + <paging id="servicePaging" width="200px"/> + </vbox> + </bandpopup> + </bandbox> +</zk> \ No newline at end of file Modified: trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul =================================================================== --- trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul 2010-08-16 10:16:48 UTC (rev 131) +++ trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul 2010-08-18 15:17:57 UTC (rev 132) @@ -12,7 +12,7 @@ <label value="Type" /> <textbox value="@{composer.service.type, save-when='saveService.onClick'}" /> - <label value="Name" /> + <label value="Address name" /> <textbox value="@{composer.address.name, save-when='saveService.onClick'}" /> <label value="Address 1" /> Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2010-08-16 10:16:48 UTC (rev 131) +++ trunk/pom.xml 2010-08-18 15:17:57 UTC (rev 132) @@ -230,7 +230,7 @@ <projectId>bonzoms</projectId> <chorem-data.version>0.1-SNAPSHOT</chorem-data.version> - <zk.version>5.0.2</zk.version> + <zk.version>5.0.3</zk.version> <wikitty.version>2.1-SNAPSHOT</wikitty.version> <!-- Nuiton librairies -->
participants (1)
-
bbrossaudï¼ users.chorem.org