Bonzoms-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
August 2010
- 2 participants
- 16 discussions
Author: tchemit
Date: 2010-08-11 16:49:46 +0200 (Wed, 11 Aug 2010)
New Revision: 126
Url: http://chorem.org/repositories/revision/bonzoms/126
Log:
Utilisation de mavenpom4redmine 2.2.3
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-08-06 13:00:04 UTC (rev 125)
+++ trunk/pom.xml 2010-08-11 14:49:46 UTC (rev 126)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>2.2.2.1</version>
+ <version>2.2.3</version>
</parent>
<groupId>org.chorem</groupId>
1
0
r125 - in trunk/bonzoms-ui-zk/src/main: java/org/chorem/bonzoms/ui webapp
by bbrossaud@users.chorem.org 06 Aug '10
by bbrossaud@users.chorem.org 06 Aug '10
06 Aug '10
Author: bbrossaud
Date: 2010-08-06 15:00:04 +0200 (Fri, 06 Aug 2010)
New Revision: 125
Url: http://chorem.org/repositories/revision/bonzoms/125
Log:
checkbox to hide out of date contract, person, service, company bandboxes for employee form page, employee bandbox for contract form page, new display addresses in company and person, proxy instead model java class
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/CompanyFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractController.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/java/org/chorem/bonzoms/ui/PersonFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceFormController.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/contractPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.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/CompanyController.java 2010-08-05 15:23:21 UTC (rev 124)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyController.java 2010-08-06 13:00:04 UTC (rev 125)
@@ -150,7 +150,6 @@
public void render(Listitem item, Object data) throws Exception {
item.setValue(data);
final Company company = (Company) data;
-
Listcell nameCell = new Listcell(company.getName());
Listcell webSiteCell = new Listcell(company.getWebSite());
Listcell phoneFaxCell = phonesFaxRenderer(company);
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-08-05 15:23:21 UTC (rev 124)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyFormController.java 2010-08-06 13:00:04 UTC (rev 125)
@@ -95,8 +95,7 @@
}
protected void initDefaultCompany() {
- Address address = new AddressImpl();
- address.setName("New address");
+ Address address = newAddress();
addressModel.addData(address);
selectedAddress = address;
@@ -125,13 +124,13 @@
protected void saveAddresses() {
List<Address> addresses = proxy.store(addressModel.getAddresses());
+ for (Address address : addresses) {
+ company.addAddress(address.getWikittyId());
+ }
if (!removedAddresses.isEmpty()) {
proxy.delete(removedAddresses);
removeCompanyAddresses();
}
- for (Address address : addresses) {
- company.addAddress(address.getWikittyId());
- }
}
protected void saveEmails() {
@@ -144,6 +143,18 @@
company.setPhones(phones);
}
+ protected Address newAddress() {
+ Address address = new AddressImpl();
+ address.setName("New address");
+ address.setCountry("");
+ address.setAddress1("");
+ address.setAddress2("");
+ address.setCountry("");
+ address.setCity("");
+ address.setZipCode("");
+ return address;
+ }
+
protected void setAddressBox() {
Caption caption = (Caption) self.getFellow("captionName");
caption.setLabel(selectedAddress.getName());
@@ -171,7 +182,11 @@
public void render(Listitem item, Object data) throws Exception {
item.setValue(data);
final Address address = (Address) data;
- Listcell name = new Listcell(address.getName());
+ String addressName = address.getName();
+ if (addressName == null) {
+ addressName = "";
+ }
+ Listcell name = new Listcell(addressName);
item.appendChild(name);
item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
@@ -196,12 +211,11 @@
}
public void onClose() {
- Events.postEvent(EVENT_ON_CLOSE_COMPANY, this.self, null);
+ Events.postEvent(EVENT_ON_CLOSE_COMPANY, this.self, company.getWikittyId());
}
public void onClick$addAddress() {
- Address address = new AddressImpl();
- address.setName("New address");
+ Address address = newAddress();
selectedAddress = address;
setAddressBox();
addressModel.addData(address);
@@ -271,7 +285,7 @@
return company;
}
- public AddressModel getAddressesModel() {
+ public AddressModel getAddressModel() {
return addressModel;
}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractController.java 2010-08-05 15:23:21 UTC (rev 124)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractController.java 2010-08-06 13:00:04 UTC (rev 125)
@@ -1,10 +1,16 @@
package org.chorem.bonzoms.ui;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import java.util.HashMap;
import java.util.Map;
+
+import org.chorem.data.bonzoms.Employee;
import org.chorem.data.bonzoms.EmploymentContract;
+import org.chorem.data.bonzoms.Person;
import org.nuiton.wikitty.Criteria;
import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyUtil;
import org.nuiton.wikitty.search.Element;
import org.nuiton.wikitty.search.Search;
import org.zkoss.zk.ui.Component;
@@ -14,6 +20,7 @@
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.util.GenericForwardComposer;
+import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
@@ -27,6 +34,7 @@
protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected ContractModel contractModel = new ContractModel(20);
+ protected Checkbox checkbox1;
@Override
public void doAfterCompose(Component comp) throws Exception {
@@ -50,6 +58,34 @@
});
}
+ public Listcell getPersonCell(String employeeId) {
+ String name = "";
+ if (employeeId != null) {
+ Employee employee = proxy.restore(Employee.class, employeeId);
+ if (employee != null) {
+ String personId = employee.getPerson();
+ if (personId != null) {
+ Person person = proxy.restore(Person.class, personId);
+ if (person != null) {
+ name = person.getFirstName() + " " + person.getLastName();
+ }
+ }
+ }
+ }
+ Listcell cell = new Listcell(name);
+ return cell;
+ }
+
+ protected Listcell getDateCell(Date date) {
+ String cellDate = "";
+ if (date != null) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
+ cellDate = sdf.format(date);
+ }
+ Listcell cell = new Listcell(cellDate);
+ return cell;
+ }
+
/*
* Renderers
*/
@@ -60,12 +96,14 @@
public void render(Listitem item, Object data) throws Exception {
item.setValue(data);
final EmploymentContract contract = (EmploymentContract) data;
-
+ Listcell person = getPersonCell(contract.getEmployee());
Listcell type = new Listcell(String.valueOf(contract.getType()));
Listcell salary = new Listcell(String.valueOf(contract.getSalary()));
Listcell workingTime = new Listcell(String.valueOf(contract.getWorkingTime()));
Listcell advantages = new Listcell(contract.getAdvantages());
Listcell description = new Listcell(contract.getDescription());
+ Listcell startDate = getDateCell(contract.getStart());
+ Listcell endDate = getDateCell(contract.getEnd());
item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
@@ -75,11 +113,14 @@
}
});
+ item.appendChild(person);
item.appendChild(type);
item.appendChild(salary);
item.appendChild(workingTime);
item.appendChild(advantages);
item.appendChild(description);
+ item.appendChild(startDate);
+ item.appendChild(endDate);
}
};
}
@@ -88,6 +129,19 @@
/*
* Events
*/
+ public void onCheck$checkbox1() {
+ if (checkbox1.isChecked()) {
+ Date date = new Date();
+ String formatDate = WikittyUtil.solrDateFormat.format(date);
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT).
+ and().gt(EmploymentContract.FQ_FIELD_END, formatDate).criteria();
+ contractModel.setCriteria(criteria);
+ } else {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT).criteria();
+ contractModel.setCriteria(criteria);
+ }
+ }
+
public void onCreate$contract(Event event) {
}
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-05 15:23:21 UTC (rev 124)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractFormController.java 2010-08-06 13:00:04 UTC (rev 125)
@@ -1,14 +1,29 @@
package org.chorem.bonzoms.ui;
+import java.util.HashMap;
+import java.util.Map;
+
+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.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.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.Listbox;
+import org.zkoss.zul.Listcell;
+import org.zkoss.zul.Listitem;
+import org.zkoss.zul.ListitemRenderer;
import org.zkoss.zul.Window;
/**
@@ -19,7 +34,11 @@
protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected EmploymentContract contract = new EmploymentContractImpl();
+ protected EmployeeModel employeeModel = new EmployeeModel(5);
+ protected Bandbox employeeBandbox;
+ protected Listbox employeeListbox;
+
public static final String EVENT_ON_SAVE_CONTRACT = "onSaveContract";
public static final String EVENT_ON_CLOSE_CONTRACT = "onCloseContract";
@@ -36,14 +55,108 @@
if (contractId != null) {
contract = proxy.restore(EmploymentContract.class, contractId);
}
+ 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);
}
@@ -51,7 +164,7 @@
public void onClick$saveContract() {
contract = proxy.store(contract);
- Events.postEvent(EVENT_ON_SAVE_CONTRACT, this.self, contract);
+ Events.postEvent(EVENT_ON_SAVE_CONTRACT, this.self, contract.getWikittyId());
self.detach();
}
@@ -62,4 +175,8 @@
public EmploymentContract getContract() {
return contract;
}
+
+ public EmployeeModel getEmployeeModel() {
+ return employeeModel;
+ }
}
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-05 15:23:21 UTC (rev 124)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeFormController.java 2010-08-06 13:00:04 UTC (rev 125)
@@ -265,11 +265,17 @@
employee = proxy.store(employee);
- Events.postEvent(EVENT_ON_SAVE_EMPLOYEE, this.self, null);
+ Events.postEvent(EVENT_ON_SAVE_EMPLOYEE, this.self, employee.getWikittyId());
this.self.detach();
}
- public void onClick$editPerson() throws SuspendNotAllowedException, InterruptedException {
+ 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()) {
@@ -280,21 +286,25 @@
@Override
public void onEvent(Event event) throws Exception {
- Person person = (Person) event.getData();
- if (person != null) {
- employee.setPerson(person.getWikittyId());
- String name = person.getFirstName() + " " + person.getLastName();
- personBandbox.setValue(name);
+ 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$editCompany() throws InterruptedException {
- if (companyBandbox.getValue().isEmpty()) {
- employee.setCompany(null);
- }
+ 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()) {
@@ -305,9 +315,10 @@
@Override
public void onEvent(Event event) throws Exception {
- Company company = (Company) event.getData();
- if (company != null) {
- employee.setCompany(company.getWikittyId());
+ String companyId = (String) event.getData();
+ if (companyId != null) {
+ employee.setCompany(companyId);
+ Company company = proxy.restore(Company.class, companyId);
companyBandbox.setValue(company.getName());
}
companyModel.reload();
@@ -315,10 +326,13 @@
});
}
- public void onClick$editService() throws SuspendNotAllowedException, InterruptedException {
- if (serviceBandbox.getValue().isEmpty()) {
- employee.setService(null);
- }
+ 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()) {
@@ -328,9 +342,10 @@
win.addEventListener(ServiceFormController.EVENT_ON_SAVE_SERVICE, new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
- Service service = (Service) event.getData();
- if (service != null) {
- employee.setService(service.getWikittyId());
+ String serviceId = (String) event.getData();
+ if (serviceId != null) {
+ employee.setService(serviceId);
+ Service service = proxy.restore(Service.class, serviceId);
serviceBandbox.setValue(service.getType());
}
serviceModel.reload();
Modified: 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 2010-08-05 15:23:21 UTC (rev 124)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonFormController.java 2010-08-06 13:00:04 UTC (rev 125)
@@ -70,8 +70,7 @@
}
protected void initDefaultPerson() {
- Address address = new AddressImpl();
- address.setName("New address");
+ Address address = newAddress();
addressModel.addData(address);
selectedAddress = address;
@@ -98,15 +97,27 @@
}
}
+ protected Address newAddress() {
+ Address address = new AddressImpl();
+ address.setName("New address");
+ address.setCountry("");
+ address.setAddress1("");
+ address.setAddress2("");
+ address.setCountry("");
+ address.setCity("");
+ address.setZipCode("");
+ return address;
+ }
+
protected void saveAddresses() {
List<Address> addresses = proxy.store(addressModel.getAddresses());
+ for (Address address : addresses) {
+ person.addAddress(address.getWikittyId());
+ }
if (!removedAddresses.isEmpty()) {
proxy.delete(removedAddresses);
removeAddresses();
}
- for (Address address : addresses) {
- person.addAddress(address.getWikittyId());
- }
}
protected void saveEmails() {
@@ -146,7 +157,11 @@
public void render(Listitem item, Object data) throws Exception {
item.setValue(data);
final Address address = (Address) data;
- Listcell name = new Listcell(address.getName());
+ String addressName = address.getName();
+ if (addressName == null) {
+ addressName = "";
+ }
+ Listcell name = new Listcell(addressName);
item.appendChild(name);
item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
@@ -179,13 +194,12 @@
savePhones();
saveEmails();
person = proxy.store(person);
- Events.postEvent(EVENT_ON_SAVE_PERSON, this.self, person);
+ Events.postEvent(EVENT_ON_SAVE_PERSON, this.self, person.getWikittyId());
self.detach();
}
public void onClick$addAddress() {
- Address address = new AddressImpl();
- address.setName("New address");
+ Address address = newAddress();
selectedAddress = address;
setAddressBox();
addressModel.addData(address);
Modified: 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 2010-08-05 15:23:21 UTC (rev 124)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceFormController.java 2010-08-06 13:00:04 UTC (rev 125)
@@ -54,7 +54,6 @@
* Events
*/
public void onClose() {
- System.out.println("CLOSE");
Events.postEvent(EVENT_ON_CLOSE_SERVICE, this.self, null);
}
@@ -64,8 +63,7 @@
service = proxy.store(service);
- Events.postEvent(EVENT_ON_SAVE_SERVICE, this.self, service);
- System.out.println(this.self.getParent());
+ Events.postEvent(EVENT_ON_SAVE_SERVICE, this.self, service.getWikittyId());
self.detach();
}
Modified: trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul 2010-08-05 15:23:21 UTC (rev 124)
+++ trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul 2010-08-06 13:00:04 UTC (rev 125)
@@ -1,7 +1,7 @@
<?page id="CompanyForm" title="Company 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="400px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.CompanyFormController">
+<window closable="true" maximizable="true" sizable="true" height="500px" width="410px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.CompanyFormController">
<caption label="Company"/>
<groupbox>
Modified: trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul 2010-08-05 15:23:21 UTC (rev 124)
+++ trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul 2010-08-06 13:00:04 UTC (rev 125)
@@ -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="350px" width="450px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ContractFormController">
+<window closable="true" maximizable="true" sizable="true" height="310px" width="450px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ContractFormController">
<caption label="Contract" />
<groupbox>
<caption label="@{composer.contract.type}" />
@@ -21,7 +21,25 @@
<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>
+
+ <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/contractPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/contractPage.zul 2010-08-05 15:23:21 UTC (rev 124)
+++ trunk/bonzoms-ui-zk/src/main/webapp/contractPage.zul 2010-08-06 13:00:04 UTC (rev 125)
@@ -3,15 +3,19 @@
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./contract"?>
<window id="contract" apply="org.chorem.bonzoms.ui.ContractController">
- Contracts: <toolbarbutton id="newContract" label="Add new contract" />
+ Contracts: <toolbarbutton id="newContract" label="Add new contract" />
+ <checkbox id="checkbox1" label="Hide out of date contracts" />
<listbox autopaging="true" mold="paging" id="contractListBox" rows="20" model="@{contract$composer.contractModel}"
itemRenderer="@{contract$composer.contractRenderer}">
<listhead>
+ <listheader label="Person name" />
<listheader label="Type" />
<listheader label="Salary" />
<listheader label="Working time" />
<listheader label="Advantages" />
<listheader label="Description" />
+ <listheader label="Start date" />
+ <listheader label="End date" />
</listhead>
</listbox>
</window>
\ No newline at end of file
Modified: trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul 2010-08-05 15:23:21 UTC (rev 124)
+++ trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul 2010-08-06 13:00:04 UTC (rev 125)
@@ -47,7 +47,7 @@
<vbox>
<vbox>
- <listbox id="contractListbox" mold="paging" rows="5" model="@{composer.contractsModel}" width="400px" itemRenderer="@{composer.contractsRenderer}">
+ <listbox id="contractListbox" autopaging="true" mold="paging" rows="5" model="@{composer.contractsModel}" width="400px" itemRenderer="@{composer.contractsRenderer}">
<listhead>
<listheader label="Type" />
<listheader label="Start" />
Modified: trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul 2010-08-05 15:23:21 UTC (rev 124)
+++ trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul 2010-08-06 13:00:04 UTC (rev 125)
@@ -19,11 +19,14 @@
<label value="Phone number" />
<textbox value="@{composer.employee.workingPhone, save-when='saveEmployee.onClick'}" />
- <toolbarbutton id="editService" label="Edit service :" />
+ <hbox>
+ <toolbarbutton id="editService" label="Edit service" /> / <toolbarbutton id="newService" label="New service" />
+ </hbox>
<bandbox id="serviceBandbox" mold="rounded">
<bandpopup>
<vbox>
- <listbox width="200px" id="serviceListbox" model="@{composer.serviceModel}" itemRenderer="@{composer.serviceRenderer}">
+ <listbox autopaging="true" mold="paging" id="serviceListbox" rows="5" width="200px" model="@{composer.serviceModel}"
+ itemRenderer="@{composer.serviceRenderer}">
<listhead>
<listheader label="Name"/>
</listhead>
@@ -32,12 +35,15 @@
</bandpopup>
</bandbox>
-
- <toolbarbutton id="editCompany" label="Edit company :" />
+ <hbox>
+ <toolbarbutton id="editCompany" label="Edit company" /> / <toolbarbutton id="newCompany" label="New company" />
+ </hbox>
+
<bandbox id="companyBandbox" mold="rounded">
<bandpopup>
<vbox>
- <listbox id="companyListbox" width="200px" model="@{composer.companyModel}" itemRenderer="@{composer.companyRenderer}">
+ <listbox autopaging="true" mold="paging" id="companyListbox" rows="5" width="200px" model="@{composer.companyModel}"
+ itemRenderer="@{composer.companyRenderer}">
<listhead>
<listheader label="Name" />
<listheader label="Type" />
@@ -47,11 +53,14 @@
</bandpopup>
</bandbox>
- <toolbarbutton id="editPerson" label="Edit person" />
- <bandbox id="personBandbox" mold="rounded">
+ <hbox>
+ <toolbarbutton id="editPerson" label="Edit person" /> / <toolbarbutton id="newPerson" label="New person" />
+ </hbox>
+ <bandbox id="personBandbox" mold="rounded">
<bandpopup>
<vbox>
- <listbox id="personListbox" width="200px" model="@{composer.personModel}" itemRenderer="@{composer.personRenderer}">
+ <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" />
Modified: trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul 2010-08-05 15:23:21 UTC (rev 124)
+++ trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul 2010-08-06 13:00:04 UTC (rev 125)
@@ -1,4 +1,4 @@
-<window closable="true" maximizable="true" sizable="true" height="500px" width="400" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.PersonFormController">
+<window closable="true" maximizable="true" sizable="true" height="500px" width="410px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.PersonFormController">
<caption label="Person"/>
<groupbox>
<caption label="Personnal informations" />
@@ -13,7 +13,7 @@
<separator />
- <listbox id="addressListbox" mold="paging" rows="5" model="@{composer.addressModel}" width="170px" itemRenderer="@{composer.addressRenderer}">
+ <listbox id="addressListbox" autopaging="true" mold="paging" rows="5" model="@{composer.addressModel}" width="170px" itemRenderer="@{composer.addressRenderer}">
<listhead>
<listheader label="Address name" />
</listhead>
1
0
r124 - in trunk/bonzoms-ui-zk/src/main: java/org/chorem/bonzoms/ui webapp
by bbrossaud@users.chorem.org 05 Aug '10
by bbrossaud@users.chorem.org 05 Aug '10
05 Aug '10
Author: bbrossaud
Date: 2010-08-05 17:23:21 +0200 (Thu, 05 Aug 2010)
New Revision: 124
Url: http://chorem.org/repositories/revision/bonzoms/124
Log:
addition contracts
Added:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsModel.java
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/ContractsFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonFormController.java
trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/contractPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul
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-08-05 12:52:18 UTC (rev 123)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyFormController.java 2010-08-05 15:23:21 UTC (rev 124)
@@ -32,12 +32,19 @@
import org.chorem.data.bonzoms.CompanyImpl;
import org.nuiton.wikitty.WikittyProxy;
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.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.Caption;
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;
import org.zkoss.zk.ui.Executions;
/**
@@ -49,7 +56,8 @@
protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected Company company = new CompanyImpl();
- protected AddressModel addressesModel = new AddressModel();
+ protected AddressModel addressModel = new AddressModel();
+ protected Address selectedAddress = null;
protected PhonesModel phonesModel = new PhonesModel();
protected EmailsModel emailsModel = new EmailsModel();
@@ -87,8 +95,10 @@
}
protected void initDefaultCompany() {
- Address address = new AddressImpl();
- addressesModel.addData(address);
+ Address address = new AddressImpl();
+ address.setName("New address");
+ addressModel.addData(address);
+ selectedAddress = address;
Phone phone = new Phone();
phonesModel.addData(phone);
@@ -101,7 +111,8 @@
this.company = proxy.restore(Company.class, companyId);
List<Address> addresses = proxy.restore(Address.class, new ArrayList<String>(company.getAddress()));
addresses = new ArrayList<Address>(addresses);
- addressesModel.setAddresses(addresses);
+ addressModel.setAddresses(addresses);
+ selectedAddress = addresses.get(0);
emailsModel.setEmails(company.getEmails());
phonesModel.setPhones(company.getPhones());
}
@@ -113,7 +124,7 @@
}
protected void saveAddresses() {
- List<Address> addresses = proxy.store(addressesModel.getAddresses());
+ List<Address> addresses = proxy.store(addressModel.getAddresses());
if (!removedAddresses.isEmpty()) {
proxy.delete(removedAddresses);
removeCompanyAddresses();
@@ -133,28 +144,86 @@
company.setPhones(phones);
}
+ protected void setAddressBox() {
+ Caption caption = (Caption) self.getFellow("captionName");
+ caption.setLabel(selectedAddress.getName());
+ Textbox box = (Textbox) self.getFellow("name");
+ box.setValue(selectedAddress.getName());
+ box = (Textbox) self.getFellow("address1");
+ box.setValue(selectedAddress.getAddress1());
+ box = (Textbox) self.getFellow("address2");
+ box.setValue(selectedAddress.getAddress2());
+ box = (Textbox) self.getFellow("zipcode");
+ box.setValue(selectedAddress.getZipCode());
+ box = (Textbox) self.getFellow("city");
+ box.setValue(selectedAddress.getCity());
+ box = (Textbox) self.getFellow("country");
+ box.setValue(selectedAddress.getCountry());
+ }
+
/*
+ * Renderers
+ */
+ public ListitemRenderer getAddressRenderer() {
+ return new ListitemRenderer() {
+
+ @Override
+ public void render(Listitem item, Object data) throws Exception {
+ item.setValue(data);
+ final Address address = (Address) data;
+ Listcell name = new Listcell(address.getName());
+ item.appendChild(name);
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ selectedAddress = address;
+ setAddressBox();
+ }
+ });
+ }
+ };
+ }
+
+ /*
* Events
*/
+ public void onClick$saveAddress() {
+ int rowIndex = addressModel.indexOf(selectedAddress);
+ Caption caption = (Caption) self.getFellow("captionName");
+ caption.setLabel(selectedAddress.getName());
+ addressModel.reloadContent(rowIndex);
+ }
+
public void onClose() {
Events.postEvent(EVENT_ON_CLOSE_COMPANY, this.self, null);
}
public void onClick$addAddress() {
- Address address = new AddressImpl();
- addressesModel.addData(address);
+ Address address = new AddressImpl();
+ address.setName("New address");
+ selectedAddress = address;
+ setAddressBox();
+ addressModel.addData(address);
}
public void onClick$deleteAddress() {
- int size = addressListbox.getItemCount();
- if (size > 1) {
- Address address = (Address) addressesModel.getElementAt(size -1);
- addressesModel.removeData(address);
- String id = address.getWikittyId();
- if (!id.isEmpty()) {
- removedAddresses.add(id);
- }
- }
+ if (addressListbox.getItemCount() > 1) {
+ Listitem item = addressListbox.getSelectedItem();
+ if (item != null) {
+ Address address = (Address) item.getValue();
+ if (address != null) {
+ addressModel.removeData(address);
+ String id = address.getWikittyId();
+ if (id != null && !id.isEmpty()) {
+ removedAddresses.add(id);
+ }
+ selectedAddress = (Address) addressModel.getElementAt(0);
+ setAddressBox();
+ addressListbox.setSelectedIndex(0);
+ }
+ }
+ }
}
public void onClick$addPhone() {
@@ -203,7 +272,7 @@
}
public AddressModel getAddressesModel() {
- return addressesModel;
+ return addressModel;
}
public PhonesModel getPhonesModel() {
@@ -213,4 +282,8 @@
public EmailsModel getEmailsModel() {
return emailsModel;
}
+
+ public Address getSelectedAddress() {
+ return selectedAddress;
+ }
}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsFormController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsFormController.java 2010-08-05 12:52:18 UTC (rev 123)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsFormController.java 2010-08-05 15:23:21 UTC (rev 124)
@@ -1,7 +1,10 @@
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.EmploymentContract;
import org.chorem.data.bonzoms.EmploymentContractImpl;
import org.nuiton.wikitty.Criteria;
@@ -9,12 +12,21 @@
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.Caption;
+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;
/**
*
@@ -24,8 +36,9 @@
protected WikittyProxy proxy = BonzomsProxy.getInstance();
- protected ContractModel contractModel = new ContractModel(20);
+ protected ContractsModel contractsModel = new ContractsModel();
protected List<String> removedContracts = new ArrayList<String>();
+ protected EmploymentContract selectedContract = null;
protected String employeeId = null;
protected Listbox contractListbox;
@@ -43,6 +56,7 @@
employeeId = (String) arg.get("employeeId");
}
this.employeeId = employeeId;
+ init();
DataBinder binder = new AnnotateDataBinder(comp);
binder.bindBean("composer", this);
binder.loadAll();
@@ -58,40 +72,129 @@
protected void initDefaultContracts() {
EmploymentContract contract = new EmploymentContractImpl();
+ contract.setType("New contract");
contract.setEmployee(employeeId);
- contractModel.addData(contract);
+ selectedContract = contract;
+ contractsModel.addData(contract);
}
protected void initContracts() {
if (employeeId != null) {
Criteria criteria = Search.query().eq(EmploymentContract.FQ_FIELD_EMPLOYEE, employeeId).criteria();
- contractModel.setCriteria(criteria);
+ List<EmploymentContract> contracts = proxy.findAllByCriteria(EmploymentContract.class, criteria).getAll();
+ contracts = new ArrayList<EmploymentContract>(contracts);
+ contractsModel.setContracts(contracts);
+ if (contracts.size() == 0) {
+ onClick$addContract();
+ }
+ selectedContract = (EmploymentContract) contractsModel.getElementAt(0);
}
}
+
+ protected void setContractBox() {
+ Caption caption = (Caption) self.getFellow("captionName");
+ caption.setLabel(selectedContract.getType());
+
+ Textbox box = (Textbox) self.getFellow("contractWorkingTime");
+ box.setValue(String.valueOf(selectedContract.getWorkingTime()));
+ box = (Textbox) self.getFellow("contractType");
+ box.setValue(selectedContract.getType());
+ box = (Textbox) self.getFellow("contractAdvantages");
+ box.setValue(selectedContract.getAdvantages());
+ box = (Textbox) self.getFellow("contractDescription");
+ box.setValue(selectedContract.getDescription());
+
+ Doublebox doublebox = (Doublebox) self.getFellow("contractSalary");
+ doublebox.setValue(selectedContract.getSalary());
+
+ Datebox datebox = (Datebox) self.getFellow("contractEnd");
+ datebox.setValue(selectedContract.getEnd());
+ datebox = (Datebox) self.getFellow("contractStart");
+ datebox.setValue(selectedContract.getStart());
+ }
/*
+ * Renderers
+ */
+ public ListitemRenderer getContractsRenderer() {
+ return new ListitemRenderer() {
+
+ @Override
+ public void render(Listitem item, Object data) throws Exception {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
+ item.setValue(data);
+ final EmploymentContract contract = (EmploymentContract) data;
+ Listcell type = new Listcell(contract.getType());
+ String str = "";
+ Date date = contract.getStart();
+ if (date != null) {
+ str = sdf.format(date);
+ }
+ Listcell start = new Listcell(str);
+ str = "";
+ date = contract.getEnd();
+ if (date != null) {
+ str = sdf.format(date);
+ }
+ Listcell end = new Listcell(str);
+ Listcell salary = new Listcell(String.valueOf(contract.getSalary()));
+ item.appendChild(type);
+ item.appendChild(start);
+ item.appendChild(end);
+ item.appendChild(salary);
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ selectedContract = contract;
+ setContractBox();
+ }
+ });
+ }
+ };
+ }
+
+ /*
* Events
*/
public void onClick$addContract() {
- EmploymentContract contract = new EmploymentContractImpl();
+ EmploymentContract contract = new EmploymentContractImpl();
+ contract.setType("New contract");
contract.setEmployee(employeeId);
- contractModel.addData(contract);
+ selectedContract = contract;
+ setContractBox();
+ contractsModel.addData(contract);
}
public void onClick$deleteContract() {
-// int size = contractListbox.getItemCount();
-// if (size > 1) {
-// EmploymentContract contract = (EmploymentContract) contractModel.getElementAt(size -1);
-// contractModel.removeData(contract);
-// String id = contract.getWikittyId();
-// if (!id.isEmpty()) {
-// removedContracts.add(id);
-// }
-// }
+ if (contractListbox.getItemCount() > 1) {
+ Listitem item = contractListbox.getSelectedItem();
+ if (item != null) {
+ EmploymentContract contract = (EmploymentContract) item.getValue();
+ if (contract != null) {
+ contractsModel.removeData(contract);
+ String id = contract.getWikittyId();
+ if (id != null && !id.isEmpty()) {
+ removedContracts.add(id);
+ }
+ selectedContract = (EmploymentContract) contractsModel.getElementAt(0);
+ setContractBox();
+ contractListbox.setSelectedIndex(0);
+ }
+ }
+ }
}
- public void onClick$saveContracts() {
+ public void onClick$saveContract() {
+ int rowIndex = contractsModel.indexOf(selectedContract);
+ Caption caption = (Caption) self.getFellow("captionName");
+ caption.setLabel(selectedContract.getType());
+ contractsModel.reloadContent(rowIndex);
+ }
+
+ public void onClick$save() {
proxy.delete(removedContracts);
+ proxy.store(contractsModel.getContracts());
Events.postEvent(EVENT_ON_SAVE_CONTRACTS, this.self, null);
self.detach();
}
@@ -99,7 +202,11 @@
/*
* Getters
*/
- public ContractModel getContractModel() {
- return contractModel;
+ public ContractsModel getContractsModel() {
+ return contractsModel;
}
+
+ public EmploymentContract getSelectedContract() {
+ return selectedContract;
+ }
}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsModel.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsModel.java 2010-08-05 15:23:21 UTC (rev 124)
@@ -0,0 +1,57 @@
+package org.chorem.bonzoms.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.chorem.data.bonzoms.EmploymentContract;
+import org.zkoss.zkplus.databind.BindingListModel;
+import org.zkoss.zul.AbstractListModel;
+import org.zkoss.zul.event.ListDataEvent;
+
+public class ContractsModel extends AbstractListModel implements BindingListModel {
+
+ List<EmploymentContract> contracts = new ArrayList<EmploymentContract>();
+
+ @Override
+ public Object getElementAt(int index) {
+ return contracts.get(index);
+ }
+
+ @Override
+ public int getSize() {
+ return contracts.size();
+ }
+
+ @Override
+ public int indexOf(Object obj) {
+ return contracts.indexOf(obj);
+ }
+
+ public void setContracts(List<EmploymentContract> contracts) {
+ this.contracts = contracts;
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public void addData(EmploymentContract newData) {
+ contracts.add(newData);
+ fireEvent(ListDataEvent.INTERVAL_ADDED, contracts.size() - 1, contracts.size() - 1);
+ }
+
+ public void removeData(EmploymentContract data) {
+ int interval = contracts.indexOf(data);
+ contracts.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<EmploymentContract> getContracts() {
+ return contracts;
+ }
+}
Modified: 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 2010-08-05 12:52:18 UTC (rev 123)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonFormController.java 2010-08-05 15:23:21 UTC (rev 124)
@@ -118,6 +118,24 @@
String phones = phonesModel.getPhonesAsString();
person.setPhones(phones);
}
+
+ protected void setAddressBox() {
+ Caption caption = (Caption) self.getFellow("captionName");
+ caption.setLabel(selectedAddress.getName());
+ Textbox box = (Textbox) self.getFellow("name");
+ box.setValue(selectedAddress.getName());
+ box = (Textbox) self.getFellow("address1");
+ box.setValue(selectedAddress.getAddress1());
+ box = (Textbox) self.getFellow("address2");
+ box.setValue(selectedAddress.getAddress2());
+ box = (Textbox) self.getFellow("zipcode");
+ box.setValue(selectedAddress.getZipCode());
+ box = (Textbox) self.getFellow("city");
+ box.setValue(selectedAddress.getCity());
+ box = (Textbox) self.getFellow("country");
+ box.setValue(selectedAddress.getCountry());
+ }
+
/*
* Renderers
*/
@@ -142,23 +160,6 @@
};
}
- protected void setAddressBox() {
- Caption caption = (Caption) self.getFellow("captionName");
- caption.setLabel(selectedAddress.getName());
- Textbox box = (Textbox) self.getFellow("name");
- box.setValue(selectedAddress.getName());
- box = (Textbox) self.getFellow("address1");
- box.setValue(selectedAddress.getAddress1());
- box = (Textbox) self.getFellow("address2");
- box.setValue(selectedAddress.getAddress2());
- box = (Textbox) self.getFellow("zipcode");
- box.setValue(selectedAddress.getZipCode());
- box = (Textbox) self.getFellow("city");
- box.setValue(selectedAddress.getCity());
- box = (Textbox) self.getFellow("country");
- box.setValue(selectedAddress.getCountry());
- }
-
/*
* Events
*/
@@ -182,31 +183,31 @@
self.detach();
}
- public void onClick$addAddress() {
- Address address = new AddressImpl();
- address.setName("New address");
- selectedAddress = address;
- setAddressBox();
- addressModel.addData(address);
- }
+ public void onClick$addAddress() {
+ Address address = new AddressImpl();
+ address.setName("New address");
+ selectedAddress = address;
+ setAddressBox();
+ addressModel.addData(address);
+ }
+
+ public void onClick$deleteAddress() {
+ Listitem item = addressListbox.getSelectedItem();
+ if (item != null) {
+ Address address = (Address) item.getValue();
+ if (address != null) {
+ addressModel.removeData(address);
+ String id = address.getWikittyId();
+ if (id != null && !id.isEmpty()) {
+ removedAddresses.add(id);
+ }
+ selectedAddress = (Address) addressModel.getElementAt(0);
+ setAddressBox();
+ addressListbox.setSelectedIndex(0);
+ }
+ }
+ }
- public void onClick$deleteAddress() {
- Listitem item = addressListbox.getSelectedItem();
- if (item != null) {
- Address address = (Address) item.getValue();
- if (address != null) {
- addressModel.removeData(address);
- String id = address.getWikittyId();
- if (id != null && !id.isEmpty()) {
- removedAddresses.add(id);
- }
- selectedAddress = (Address) addressModel.getElementAt(0);
- setAddressBox();
- addressListbox.setSelectedIndex(0);
- }
- }
- }
-
public void onClick$addPhone() {
Phone phone = new Phone();
phonesModel.addData(phone);
Modified: trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul 2010-08-05 12:52:18 UTC (rev 123)
+++ trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul 2010-08-05 15:23:21 UTC (rev 124)
@@ -1,7 +1,7 @@
<?page id="CompanyForm" title="Company 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="400" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.CompanyFormController">
+<window closable="true" maximizable="true" sizable="true" height="500px" width="400px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.CompanyFormController">
<caption label="Company"/>
<groupbox>
@@ -22,48 +22,53 @@
<label value="Web site" />
<textbox value="@{composer.company.webSite, save-when='saveCompany.onClick'}" />
+ <separator />
+
+ <listbox id="addressListbox" mold="paging" rows="5" model="@{composer.addressModel}" width="170px" itemRenderer="@{composer.addressRenderer}">
+ <listhead>
+ <listheader label="Address name" />
+ </listhead>
+ </listbox>
+
+ <hbox>
+ <button label="Add" id="addAddress" />
+ <button label="Delete" id="deleteAddress" />
+ </hbox>
+
</vbox>
<space />
<vbox>
- <listbox id="addressListbox" model="@{composer.addressesModel}" width="200px">
- <listitem self="@{each='address'}">
- <listcell>
- <groupbox>
- <caption label="@{address.name}" />
- <vbox>
+ <groupbox>
+ <caption id="captionName" label="@{composer.selectedAddress.name}" />
+ <vbox>
+
+ <label value="Name" />
+ <textbox id="name" value="@{composer.selectedAddress.name, save-when='saveAddress.onClick'}" />
+
+ <label value="Adress1" />
+ <textbox id="address1" value="@{composer.selectedAddress.address1, save-when='saveAddress.onClick'}" />
+
+ <label value="Adress2" />
+ <textbox id="address2" value="@{composer.selectedAddress.address2, save-when='saveAddress.onClick'}" />
+
+ <label value="Zip code" />
+ <textbox id="zipcode" value="@{composer.selectedAddress.zipCode, save-when='saveAddress.onClick'}" />
+
+ <label value="City" />
+ <textbox id="city" value="@{composer.selectedAddress.city, save-when='saveAddress.onClick'}" />
+
+ <label value="Country" />
+ <textbox id="country" value="@{composer.selectedAddress.country, save-when='saveAddress.onClick'}" />
+
+ <button id="saveAddress" label="Save" />
+
+ </vbox>
+ </groupbox>
+ </vbox>
+ </hbox>
- <label value="Name" />
- <textbox value="@{address.name, save-when='saveCompany.onClick'}" />
-
- <label value="Adress1" />
- <textbox value="@{address.address1, save-when='saveCompany.onClick'}" />
-
- <label value="Adress2" />
- <textbox value="@{address.address2, save-when='saveCompany.onClick'}" />
-
- <label value="Zip code" />
- <textbox value="@{address.zipCode, save-when='saveCompany.onClick'}" />
-
- <label value="City" />
- <textbox value="@{address.city, save-when='saveCompany.onClick'}" />
-
- <label value="Country" />
- <textbox value="@{address.country, save-when='saveCompany.onClick'}" />
-
- </vbox>
- </groupbox>
- </listcell>
- </listitem>
- </listbox>
- <hbox>
- <button label="Add address " id="addAddress" />
- <button label="Delete address" id="deleteAddress" />
- </hbox>
- </vbox>
- </hbox>
-
<separator/>
<groupbox>
Modified: trunk/bonzoms-ui-zk/src/main/webapp/contractPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/contractPage.zul 2010-08-05 12:52:18 UTC (rev 123)
+++ trunk/bonzoms-ui-zk/src/main/webapp/contractPage.zul 2010-08-05 15:23:21 UTC (rev 124)
@@ -4,7 +4,7 @@
<window id="contract" apply="org.chorem.bonzoms.ui.ContractController">
Contracts: <toolbarbutton id="newContract" label="Add new contract" />
- <listbox autopaging="true" mold="paging" id="contractListBox" rows="20" model="@{contract$composer.contractsModel}"
+ <listbox autopaging="true" mold="paging" id="contractListBox" rows="20" model="@{contract$composer.contractModel}"
itemRenderer="@{contract$composer.contractRenderer}">
<listhead>
<listheader label="Type" />
Modified: trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul 2010-08-05 12:52:18 UTC (rev 123)
+++ trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul 2010-08-05 15:23:21 UTC (rev 124)
@@ -1,69 +1,69 @@
<?page id="ContractsForm" title="Contracts 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="450px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ContractsFormController">
-<caption label="Contracts"/>
+<window closable="true" maximizable="true" sizable="true" height="470px" width="450px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ContractsFormController">
+ <caption label="Contracts"/>
<groupbox>
<caption label="Contracts informations" />
+ <vbox>
+ <groupbox width="375px">
+ <caption id="captionName" label="@{composer.selectedContract.type}" />
+ <hbox>
+
+ <vbox>
+ <label value="Type" />
+ <textbox id="contractType" value="@{composer.selectedContract.type, save-when='saveContract.onClick'}" />
+
+ <label value="Salary" />
+ <doublebox id="contractSalary" value="@{composer.selectedContract.salary, save-when='saveContract.onClick'}" />
+
+ <label value="Working time" />
+ <textbox id="contractWorkingTime" value="@{composer.selectedContract.workingTime, save-when='saveContract.onClick'}" />
+
+ <label value="Advantages" />
+ <textbox id="contractAdvantages" value="@{composer.selectedContract.advantages, save-when='saveContract.onClick'}" />
+
+ <separator />
+
+ <button id="saveContract" label="Save" />
+ </vbox>
+ <space />
+ <vbox>
+ <label value="Start" />
+ <datebox id="contractStart" format="yyyy/MM/dd" value="@{composer.selectedContract.start, save-when='saveContract.onClick'}" />
+
+ <label value="End" />
+ <datebox id="contractEnd" format="yyyy/MM/dd" value="@{composer.selectedContract.end, save-when='saveContract.onClick'}" />
+
+ <label value="Description" />
+ <textbox id="contractDescription" rows="5" value="@{composer.selectedContract.description, save-when='saveContract.onClick'}" />
+ </vbox>
+ </hbox>
+ </groupbox>
+ </vbox>
+
+ <separator />
+
+ <vbox>
+ <vbox>
+ <listbox id="contractListbox" mold="paging" rows="5" model="@{composer.contractsModel}" width="400px" itemRenderer="@{composer.contractsRenderer}">
+ <listhead>
+ <listheader label="Type" />
+ <listheader label="Start" />
+ <listheader label="End" />
+ <listheader label="Salary" />
+ </listhead>
+ </listbox>
+
+ <hbox>
+ <button label="Add" id="addContract" />
+ <button label="Delete" id="deleteContract" />
+ </hbox>
- <hbox>
-
- <vbox>
-
- <listbox id="contractListbox" model="@{composer.contractsModel}" width="400px">
- <listitem self="@{each='contract'}">
- <listcell>
- <groupbox>
- <caption label="@{contract.type}" />
-
- <hbox>
-
- <vbox>
-
- <label value="Type" />
- <textbox value="@{contract.type, save-when='save.onClick'}" />
-
- <label value="Salary" />
- <doublebox value="@{contract.salary, save-when='save.onClick'}" />
-
- <label value="Working time" />
- <textbox value="@{contract.workingTime, save-when='save.onClick'}" />
-
- <label value="Advantages" />
- <textbox value="@{contract.advantages, save-when='save.onClick'}" />
-
- </vbox>
-
- <space />
-
- <vbox>
-
- <label value="Start" />
- <datebox format="yyyy/MM/dd" value="@{contract.start, save-when='save.onClick'}" />
-
- <label value="End" />
- <datebox format="yyyy/MM/dd" value="@{contract.end, save-when='save.onClick'}" />
-
- <label value="Description" />
- <textbox rows="5" value="@{contract.description, save-when='save.onClick'}" />
-
- </vbox>
-
- </hbox>
- </groupbox>
- </listcell>
- </listitem>
- </listbox>
- <hbox>
- <button label="Add contract" id="addContract" />
- <button label="Delete contract" id="deleteContract" />
- </hbox>
-
- </vbox>
-
- </hbox>
+ </vbox>
+ </vbox>
+
</groupbox>
<button id="save" label="Save" />
- <include id="openContract" />
</window>
\ No newline at end of file
Modified: trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul 2010-08-05 12:52:18 UTC (rev 123)
+++ trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul 2010-08-05 15:23:21 UTC (rev 124)
@@ -1,7 +1,7 @@
<?page id="employeeForm" title="Employee 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="350px" width="400" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.EmployeeFormController">
+<window closable="true" maximizable="true" sizable="true" height="370px" width="400px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.EmployeeFormController">
<caption label="Employee"/>
<separator />
1
0
r123 - trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui
by bbrossaud@users.chorem.org 05 Aug '10
by bbrossaud@users.chorem.org 05 Aug '10
05 Aug '10
Author: bbrossaud
Date: 2010-08-05 14:52:18 +0200 (Thu, 05 Aug 2010)
New Revision: 123
Url: http://chorem.org/repositories/revision/bonzoms/123
Log:
addition missing files and removed model
Added:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressModel.java
Removed:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressesModel.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Model.java
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressModel.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressModel.java 2010-08-05 12:52:18 UTC (rev 123)
@@ -0,0 +1,84 @@
+/*
+ * #%L
+ * Bonzoms : bonzoms-zk
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package org.chorem.bonzoms.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.chorem.data.bonzoms.Address;
+import org.chorem.data.bonzoms.EmploymentContract;
+import org.zkoss.zkplus.databind.BindingListModel;
+import org.zkoss.zul.AbstractListModel;
+import org.zkoss.zul.event.ListDataEvent;
+
+/**
+ *
+ * @author sherkhan
+ */
+public class AddressModel extends AbstractListModel implements BindingListModel {
+
+ List<Address> addresses = new ArrayList<Address>();
+
+ @Override
+ public Object getElementAt(int index) {
+ return addresses.get(index);
+ }
+
+ @Override
+ public int getSize() {
+ return addresses.size();
+ }
+
+ @Override
+ public int indexOf(Object obj) {
+ return addresses.indexOf(obj);
+ }
+
+ public void setAddresses(List<Address> addresses) {
+ this.addresses = addresses;
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public void addData(Address newData) {
+ addresses.add(newData);
+ fireEvent(ListDataEvent.INTERVAL_ADDED, addresses.size() - 1, addresses.size() - 1);
+ }
+
+ public void removeData(Address data) {
+ int interval = addresses.indexOf(data);
+ addresses.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<Address> getAddresses() {
+ return addresses;
+ }
+}
Deleted: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressesModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressesModel.java 2010-08-05 12:51:10 UTC (rev 122)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressesModel.java 2010-08-05 12:52:18 UTC (rev 123)
@@ -1,79 +0,0 @@
-/*
- * #%L
- * Bonzoms : bonzoms-zk
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package org.chorem.bonzoms.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.chorem.data.bonzoms.Address;
-import org.zkoss.zkplus.databind.BindingListModel;
-import org.zkoss.zul.AbstractListModel;
-import org.zkoss.zul.event.ListDataEvent;
-
-/**
- *
- * @author sherkhan
- */
-public class AddressesModel extends AbstractListModel implements BindingListModel {
-
- List<Address> addresses = new ArrayList<Address>();
-
- @Override
- public Object getElementAt(int index) {
- return addresses.get(index);
- }
-
- @Override
- public int getSize() {
- return addresses.size();
- }
-
- @Override
- public int indexOf(Object obj) {
- return addresses.indexOf(obj);
- }
-
- public void setAddresses(List<Address> addresses) {
- this.addresses = addresses;
- fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
- }
-
- public void addData(Address newData) {
- addresses.add(newData);
- fireEvent(ListDataEvent.INTERVAL_ADDED, addresses.size() - 1, addresses.size() - 1);
- }
-
- public void removeData(Address data) {
- int interval = addresses.indexOf(data);
- addresses.remove(data);
- fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
- }
-
- public void reload() {
- fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
- }
-
- public List<Address> getAddresses() {
- return addresses;
- }
-}
Deleted: 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-08-05 12:51:10 UTC (rev 122)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Model.java 2010-08-05 12:52:18 UTC (rev 123)
@@ -1,277 +0,0 @@
-/*
- * #%L
- * Bonzoms : bonzoms-zk
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package org.chorem.bonzoms.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.chorem.data.bonzoms.Address;
-import org.chorem.data.bonzoms.Company;
-import org.chorem.data.bonzoms.Employee;
-import org.chorem.data.bonzoms.EmploymentContract;
-import org.chorem.data.bonzoms.Person;
-import org.chorem.data.bonzoms.Service;
-import org.nuiton.wikitty.Criteria;
-import org.nuiton.wikitty.PagedResult;
-import org.nuiton.wikitty.Wikitty;
-import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.WikittyService;
-import org.nuiton.wikitty.search.Element;
-import org.nuiton.wikitty.search.Search;
-
-/**
- *
- * @author sherkhan
- */
-public class Model {
-
- protected WikittyProxy proxy;
-
- public Model() {
- proxy = BonzomsProxy.getInstance();
- }
-
- /*
- * Create
- */
- public List<Address> createAddresses(List<Address> addresses) {
- List<Address> wikitties = proxy.store(addresses);
- return wikitties;
- }
-
- public Employee createEmployee(Employee employee) {
- return proxy.store(employee);
- }
-
- public Address createAddress(Address address) {
- return proxy.store(address);
- }
-
- public Company createCompany(Company company) {
- return proxy.store(company);
- }
-
- public List<EmploymentContract> createContracts(List<EmploymentContract> contractsList) {
- List<EmploymentContract> wikitties = proxy.store(contractsList);
- return wikitties;
- }
-
- public Person createPerson(Person person) {
- return proxy.store(person);
- }
-
- public EmploymentContract createContract(EmploymentContract contract) {
- return proxy.store(contract);
- }
-
- /*
- * Retrieve
- */
- public List<EmploymentContract> retrieveAllContracts() {
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT).criteria();
- List<EmploymentContract> contracts = proxy.findAllByCriteria(EmploymentContract.class, criteria).getAll();
- contracts = new ArrayList<EmploymentContract>(contracts);
- return contracts;
- }
-
- public Employee retrieveEmployeeById(String id) {
- if (id == null || id.isEmpty()) {
- return null;
- }
- return proxy.restore(Employee.class, id);
- }
-
- public List<Employee> retrieveAllEmployees() {
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Employee.EXT_EMPLOYEE).criteria();
- List<Employee> employees = proxy.findAllByCriteria(Employee.class, criteria).getAll();
- employees = new ArrayList<Employee>(employees);
- return employees;
- }
-
- public List<Service> retrieveAllServices() {
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Service.EXT_SERVICE).criteria();
- List<Service> services = proxy.findAllByCriteria(Service.class, criteria).getAll();
- services = new ArrayList<Service>(services);
- return services;
- }
-
- public List<EmploymentContract> retrieveContractsByEmployeeId(String id) {
- Criteria criteria = Search.query().eq(EmploymentContract.FQ_FIELD_EMPLOYEE, id).criteria();
- List<EmploymentContract> contracts = proxy.findAllByCriteria(EmploymentContract.class, criteria).getAll();
- contracts = new ArrayList<EmploymentContract>(contracts);
- return contracts;
- }
-
- public Person retrievePersonById(String id) {
- if (id == null) {
- return null;
- }
- return proxy.restore(Person.class, id);
- }
-
- public List<Company> retrieveAllCompanies() {
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Company.EXT_COMPANY).criteria();
- List<Company> companies = proxy.findAllByCriteria(Company.class, criteria).getAll();
- companies = new ArrayList<Company>(companies);
- return companies;
- }
-
- public Address retrieveAddressById(String id) {
- if (id == null || id.isEmpty()) {
- return null;
- }
- return proxy.restore(Address.class, id);
- }
-
- public List<Address> retrieveAddressesByIds(List<String> ids) {
- List<Address> addresses = proxy.restore(Address.class, ids);
- return new ArrayList<Address>(addresses);
- }
-
- public Service retrieveServiceById(String id) {
- if (id == null || id.isEmpty()) {
- return null;
- }
- return proxy.restore(Service.class, id);
- }
-
- public List<EmploymentContract> retrieveContractsByIds(List<String> ids) {
- List<EmploymentContract> contracts = proxy.restore(EmploymentContract.class, ids);
- 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;
- }
-
- public List<Employee> retrieveEmployeesBySearch(String search) {
- Criteria criteria = Search.query().keyword(search).criteria();
- List<Employee> employees = proxy.findAllByCriteria(Employee.class, criteria).getAll();
- employees = new ArrayList<Employee>(employees);
- return employees;
- }
-
- public List<Company> retrieveCompaniesBySearch(String search) {
- Criteria criteria = Search.query().keyword(search).criteria();
- List<Company> companies = proxy.findAllByCriteria(Company.class, criteria).getAll();
- companies = new ArrayList<Company>(companies);
- return companies;
- }
-
- public List<Service> retrieveServicesBySearch(String search) {
- Criteria criteria = Search.query().keyword(search).criteria();
- List<Service> services = proxy.findAllByCriteria(Service.class, criteria).getAll();
- services = new ArrayList<Service>(services);
- return services;
- }
-
- public EmploymentContract retrieveContractById(String id) {
- if (id == null || id.isEmpty()) {
- return null;
- }
- return proxy.restore(EmploymentContract.class, id);
- }
-
- public List<Wikitty> retrieveAllBySearch(String str) {
- List<Wikitty> wikitties = new ArrayList<Wikitty>();
-
- Search search = Search.query().eq(Element.ELT_EXTENSION, Person.EXT_PERSON);
- search = search.or().eq(Element.ELT_EXTENSION, Company.EXT_COMPANY);
- search = search.eq(Element.ELT_EXTENSION, Employee.EXT_EMPLOYEE);
- search = search.eq(Element.ELT_EXTENSION, Service.EXT_SERVICE);
- search = search.eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT);
- search = search.eq(Element.ELT_EXTENSION, Address.EXT_ADDRESS);
- if (str != null && !str.isEmpty()) {
- search = search.and().keyword(str);
- }
-
- Criteria criteria = search.criteria();
-
- WikittyService service = proxy.getWikittyService();
- String securityToken = proxy.getSecurityToken();
- PagedResult<?> result = service.findAllByCriteria(securityToken, criteria);
- if (result != null) {
- wikitties = result.cast(securityToken, service).getAll();
- wikitties = new ArrayList<Wikitty>(wikitties);
- }
- return wikitties;
- }
-
- public Company retrieveCompanyById(String id) {
- if (id == null || id.isEmpty()) {
- return null;
- }
- return proxy.restore(Company.class, id);
- }
-
- public Wikitty retrieveWikittyById(String id) {
- WikittyService service = proxy.getWikittyService();
- return service.restore(proxy.getSecurityToken(), id);
- }
-
- /*
- * Update
- */
- public List<Address> updatePersonAddresses(List<Address> addresses) {
- List<Address> wikitties = proxy.store(addresses);
- return wikitties;
- }
-
- public Address updateAddress(Address address) {
- return proxy.store(address);
- }
-
- public Employee updateEmployee(Employee employee) {
- return proxy.store(employee);
- }
-
- public Company updateCompany(Company company) {
- return proxy.store(company);
- }
-
- public Service updateService(Service service) {
- return proxy.store(service);
- }
-
- /*
- * Delete
- */
- public void deleteAddressesByIds(List<String> ids) {
- proxy.delete(ids);
- }
-
- public void deletePhonesByIds(List<String> ids) {
- proxy.delete(ids);
- }
-
- public void deleteEmailsByIds(List<String> ids) {
- proxy.delete(ids);
- }
-
- public void deleteContractsByIds(List<String> removedContracts) {
- proxy.delete(removedContracts);
- }
-}
1
0
r122 - in trunk/bonzoms-ui-zk/src/main: java/org/chorem/bonzoms/ui webapp
by bbrossaud@users.chorem.org 05 Aug '10
by bbrossaud@users.chorem.org 05 Aug '10
05 Aug '10
Author: bbrossaud
Date: 2010-08-05 14:51:10 +0200 (Thu, 05 Aug 2010)
New Revision: 122
Url: http://chorem.org/repositories/revision/bonzoms/122
Log:
addition pagination and bandbox
Modified:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressFormController.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/CompanyModel.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/ContractModel.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsFormController.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/EmployeeModel.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/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/ServiceController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceModel.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/WikittyModel.java
trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressFormController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressFormController.java 2010-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressFormController.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -2,6 +2,7 @@
import org.chorem.data.bonzoms.Address;
import org.chorem.data.bonzoms.AddressImpl;
+import org.nuiton.wikitty.WikittyProxy;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.Events;
@@ -16,7 +17,7 @@
*/
public class AddressFormController extends GenericForwardComposer {
- protected Model model = new Model();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected Address address = new AddressImpl();
@@ -34,7 +35,7 @@
addressId = (String) arg.get("addressId");
}
if (addressId != null) {
- address = model.retrieveAddressById(addressId);
+ address = proxy.restore(Address.class, addressId);
}
DataBinder binder = new AnnotateDataBinder(comp);
binder.bindBean("composer", this);
@@ -49,7 +50,7 @@
}
public void onClick$saveAddress() {
- address = model.createAddress(address);
+ address = proxy.store(address);
Events.postEvent(EVENT_ON_SAVE_ADDRESS, this.self, address);
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-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyFormController.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -30,6 +30,7 @@
import org.chorem.data.bonzoms.AddressImpl;
import org.chorem.data.bonzoms.Company;
import org.chorem.data.bonzoms.CompanyImpl;
+import org.nuiton.wikitty.WikittyProxy;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.util.GenericForwardComposer;
@@ -45,10 +46,10 @@
*/
public class CompanyFormController extends GenericForwardComposer {
- protected Model model = new Model();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected Company company = new CompanyImpl();
- protected AddressesModel addressesModel = new AddressesModel();
+ protected AddressModel addressesModel = new AddressModel();
protected PhonesModel phonesModel = new PhonesModel();
protected EmailsModel emailsModel = new EmailsModel();
@@ -97,8 +98,9 @@
}
protected void initCompany(String companyId) {
- this.company = model.retrieveCompanyById(companyId);
- List<Address> addresses = model.retrieveAddressesByIds(new ArrayList<String>(company.getAddress()));
+ this.company = proxy.restore(Company.class, companyId);
+ List<Address> addresses = proxy.restore(Address.class, new ArrayList<String>(company.getAddress()));
+ addresses = new ArrayList<Address>(addresses);
addressesModel.setAddresses(addresses);
emailsModel.setEmails(company.getEmails());
phonesModel.setPhones(company.getPhones());
@@ -111,9 +113,9 @@
}
protected void saveAddresses() {
- List<Address> addresses = model.createAddresses(addressesModel.getAddresses());
+ List<Address> addresses = proxy.store(addressesModel.getAddresses());
if (!removedAddresses.isEmpty()) {
- model.deleteAddressesByIds(removedAddresses);
+ proxy.delete(removedAddresses);
removeCompanyAddresses();
}
for (Address address : addresses) {
@@ -186,7 +188,7 @@
saveEmails();
saveAddresses();
- company = model.updateCompany(company);
+ company = proxy.store(company);
Events.postEvent(EVENT_ON_SAVE_COMPANY, this.self, company);
@@ -200,7 +202,7 @@
return company;
}
- public AddressesModel getAddressesModel() {
+ public AddressModel getAddressesModel() {
return addressesModel;
}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyModel.java 2010-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyModel.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -43,13 +43,11 @@
protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected Criteria criteria = null;
protected int itemsByPage = 1;
- protected int size = 0;
protected int currentPage = 0;
protected List<Company> companies = new ArrayList<Company>();
public CompanyModel(int itemsByPage) {
this.itemsByPage = itemsByPage;
- size = getSize();
createList();
}
@@ -86,14 +84,21 @@
}
public void addData(Company newData) {
- size = getSize();
+ int listSize = companies.size();
+ if (listSize < (itemsByPage)) {
+ companies.add(newData);
+ }
+ int size = getSize();
fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
}
public void removeData(Company data) {
- int interval = companies.indexOf(data) + (itemsByPage * currentPage);
- proxy.delete(data.getWikittyId());
- fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ int index = companies.indexOf(data);
+ if (index != -1) {
+ companies.remove(index);
+ int interval = index + (itemsByPage * currentPage);
+ fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ }
}
public void reloadContent(int rowIndex) {
@@ -105,7 +110,6 @@
public void reload() {
createList();
- size = getSize();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
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-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractFormController.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -2,6 +2,7 @@
import org.chorem.data.bonzoms.EmploymentContract;
import org.chorem.data.bonzoms.EmploymentContractImpl;
+import org.nuiton.wikitty.WikittyProxy;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.Events;
@@ -16,7 +17,7 @@
*/
public class ContractFormController extends GenericForwardComposer {
- protected Model model = new Model();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected EmploymentContract contract = new EmploymentContractImpl();
public static final String EVENT_ON_SAVE_CONTRACT = "onSaveContract";
@@ -33,7 +34,7 @@
contractId = (String) arg.get("contractId");
}
if (contractId != null) {
- contract = model.retrieveContractById(contractId);
+ contract = proxy.restore(EmploymentContract.class, contractId);
}
DataBinder binder = new AnnotateDataBinder(comp);
binder.bindBean("composer", this);
@@ -48,7 +49,7 @@
}
public void onClick$saveContract() {
- contract = model.createContract(contract);
+ contract = proxy.store(contract);
Events.postEvent(EVENT_ON_SAVE_CONTRACT, this.self, contract);
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractModel.java 2010-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractModel.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -85,21 +85,22 @@
return index;
}
- public void addData(EmploymentContract newData, boolean store) {
- if (store == true) {
- proxy.store(newData);
- }
- size = getSize();
+ public void addData(EmploymentContract newData) {
+ int listSize = contracts.size();
+ if (listSize < (itemsByPage)) {
+ contracts.add(newData);
+ }
+ int size = getSize();
fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
}
- public void removeData(EmploymentContract data, boolean delete) {
- int interval = contracts.indexOf(data) + (itemsByPage * currentPage);
- if (delete == true) {
- proxy.delete(data.getWikittyId());
- }
- createList();
- fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ public void removeData(EmploymentContract data) {
+ int index = contracts.indexOf(data);
+ if (index != -1) {
+ contracts.remove(index);
+ int interval = index + (itemsByPage * currentPage);
+ fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ }
}
public void reloadContent(int rowIndex) {
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsFormController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsFormController.java 2010-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsFormController.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -59,7 +59,7 @@
protected void initDefaultContracts() {
EmploymentContract contract = new EmploymentContractImpl();
contract.setEmployee(employeeId);
- contractModel.addData(contract, false);
+ contractModel.addData(contract);
}
protected void initContracts() {
@@ -75,7 +75,7 @@
public void onClick$addContract() {
EmploymentContract contract = new EmploymentContractImpl();
contract.setEmployee(employeeId);
- contractModel.addData(contract, false);
+ contractModel.addData(contract);
}
public void onClick$deleteContract() {
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-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeFormController.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -120,6 +120,7 @@
Service service = proxy.restore(Service.class, serviceId);
serviceBandbox.setValue(service.getType());
}
+ serviceBandbox.close();
}
protected void initCompanyModel() {
@@ -129,6 +130,7 @@
Company company = proxy.restore(Company.class, companyId);
companyBandbox.setValue(company.getName());
}
+ companyBandbox.close();
}
protected void initPersonModel() {
@@ -139,6 +141,7 @@
String name = person.getFirstName() + " " + person.getLastName();
personBandbox.setValue(name);
}
+ personBandbox.close();
}
/*
@@ -355,6 +358,10 @@
public CompanyModel getCompanyModel() {
return companyModel;
}
+
+ public PersonModel getPersonModel() {
+ return personModel;
+ }
public ServiceModel getServiceModel() {
return serviceModel;
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeModel.java 2010-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeModel.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -43,13 +43,11 @@
protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected Criteria criteria = null;
protected int itemsByPage = 1;
- protected int size = 0;
protected int currentPage = 0;
protected List<Employee> employees = new ArrayList<Employee>();
public EmployeeModel(int itemsByPage) {
this.itemsByPage = itemsByPage;
- size = getSize();
createList();
}
@@ -87,14 +85,21 @@
}
public void addData(Employee newData) {
- size = getSize();
+ int listSize = employees.size();
+ if (listSize < (itemsByPage)) {
+ employees.add(newData);
+ }
+ int size = getSize();
fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
}
public void removeData(Employee data) {
- int interval = employees.indexOf(data) + (itemsByPage * currentPage);
- proxy.delete(data.getWikittyId());
- fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ int index = employees.indexOf(data);
+ if (index != -1) {
+ employees.remove(index);
+ int interval = index + (itemsByPage * currentPage);
+ fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ }
}
public void reloadContent(int rowIndex) {
@@ -106,7 +111,6 @@
public void reload() {
createList();
- size = getSize();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
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-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonController.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -31,6 +31,7 @@
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;
@@ -51,7 +52,7 @@
*/
public class PersonController extends GenericForwardComposer {
- protected Model model = new Model();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected PersonModel personModel = new PersonModel(20);
Modified: 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 2010-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonFormController.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -6,14 +6,22 @@
import org.chorem.data.bonzoms.AddressImpl;
import org.chorem.data.bonzoms.Person;
import org.chorem.data.bonzoms.PersonImpl;
+import org.nuiton.wikitty.WikittyProxy;
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.Caption;
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;
/**
*
@@ -21,13 +29,14 @@
*/
public class PersonFormController extends GenericForwardComposer {
- protected Model model = new Model();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected Person person = new PersonImpl();
- protected AddressesModel addressesModel = new AddressesModel();
+ protected AddressModel addressModel = new AddressModel();
+ protected Address selectedAddress = null;
protected EmailsModel emailsModel = new EmailsModel();
protected PhonesModel phonesModel = new PhonesModel();
- List<String> removedAddresses = new ArrayList<String>();
+ protected List<String> removedAddresses = new ArrayList<String>();
protected Listbox addressListbox;
protected Listbox phoneListbox;
@@ -62,7 +71,9 @@
protected void initDefaultPerson() {
Address address = new AddressImpl();
- addressesModel.addData(address);
+ address.setName("New address");
+ addressModel.addData(address);
+ selectedAddress = address;
Phone phone = new Phone();
phonesModel.addData(phone);
@@ -72,9 +83,11 @@
}
protected void initPerson(String personId) {
- person = model.retrievePersonById(personId);
- List<Address> addresses = model.retrieveAddressesByIds(new ArrayList<String>(person.getAddress()));
- addressesModel.setAddresses(addresses);
+ person = proxy.restore(Person.class, personId);
+ List<Address> addresses = proxy.restore(Address.class, new ArrayList<String>(person.getAddress()));
+ addresses = new ArrayList<Address>(addresses);
+ selectedAddress = addresses.get(0);
+ addressModel.setAddresses(addresses);
emailsModel.setEmails(person.getEmails());
phonesModel.setPhones(person.getPhones());
}
@@ -86,9 +99,9 @@
}
protected void saveAddresses() {
- List<Address> addresses = model.createAddresses(addressesModel.getAddresses());
+ List<Address> addresses = proxy.store(addressModel.getAddresses());
if (!removedAddresses.isEmpty()) {
- model.deleteAddressesByIds(removedAddresses);
+ proxy.delete(removedAddresses);
removeAddresses();
}
for (Address address : addresses) {
@@ -105,37 +118,92 @@
String phones = phonesModel.getPhonesAsString();
person.setPhones(phones);
}
-
/*
+ * Renderers
+ */
+ public ListitemRenderer getAddressRenderer() {
+ return new ListitemRenderer() {
+
+ @Override
+ public void render(Listitem item, Object data) throws Exception {
+ item.setValue(data);
+ final Address address = (Address) data;
+ Listcell name = new Listcell(address.getName());
+ item.appendChild(name);
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ selectedAddress = address;
+ setAddressBox();
+ }
+ });
+ }
+ };
+ }
+
+ protected void setAddressBox() {
+ Caption caption = (Caption) self.getFellow("captionName");
+ caption.setLabel(selectedAddress.getName());
+ Textbox box = (Textbox) self.getFellow("name");
+ box.setValue(selectedAddress.getName());
+ box = (Textbox) self.getFellow("address1");
+ box.setValue(selectedAddress.getAddress1());
+ box = (Textbox) self.getFellow("address2");
+ box.setValue(selectedAddress.getAddress2());
+ box = (Textbox) self.getFellow("zipcode");
+ box.setValue(selectedAddress.getZipCode());
+ box = (Textbox) self.getFellow("city");
+ box.setValue(selectedAddress.getCity());
+ box = (Textbox) self.getFellow("country");
+ box.setValue(selectedAddress.getCountry());
+ }
+
+ /*
* Events
*/
public void onClose() {
Events.postEvent(EVENT_ON_CLOSE_PERSON, this.self, null);
}
+ public void onClick$saveAddress() {
+ int rowIndex = addressModel.indexOf(selectedAddress);
+ Caption caption = (Caption) self.getFellow("captionName");
+ caption.setLabel(selectedAddress.getName());
+ addressModel.reloadContent(rowIndex);
+ }
+
public void onClick$savePerson() {
saveAddresses();
savePhones();
saveEmails();
- person = model.createPerson(person);
+ person = proxy.store(person);
Events.postEvent(EVENT_ON_SAVE_PERSON, this.self, person);
self.detach();
}
public void onClick$addAddress() {
Address address = new AddressImpl();
- addressesModel.addData(address);
+ address.setName("New address");
+ selectedAddress = address;
+ setAddressBox();
+ addressModel.addData(address);
}
public void onClick$deleteAddress() {
- int size = addressListbox.getItemCount();
- if (size > 1) {
- Address address = (Address) addressesModel.getElementAt(size -1);
- addressesModel.removeData(address);
- String id = address.getWikittyId();
- if (!id.isEmpty()) {
- removedAddresses.add(id);
- }
+ Listitem item = addressListbox.getSelectedItem();
+ if (item != null) {
+ Address address = (Address) item.getValue();
+ if (address != null) {
+ addressModel.removeData(address);
+ String id = address.getWikittyId();
+ if (id != null && !id.isEmpty()) {
+ removedAddresses.add(id);
+ }
+ selectedAddress = (Address) addressModel.getElementAt(0);
+ setAddressBox();
+ addressListbox.setSelectedIndex(0);
+ }
}
}
@@ -172,8 +240,8 @@
return person;
}
- public AddressesModel getAddressesModel() {
- return addressesModel;
+ public AddressModel getAddressModel() {
+ return addressModel;
}
public PhonesModel getPhonesModel() {
@@ -183,4 +251,8 @@
public EmailsModel getEmailsModel() {
return emailsModel;
}
+
+ public Address getSelectedAddress() {
+ return selectedAddress;
+ }
}
Modified: 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 2010-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonModel.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -20,13 +20,11 @@
protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected Criteria criteria = null;
protected int itemsByPage = 1;
- protected int size = 0;
protected int currentPage = 0;
protected List<Person> persons = new ArrayList<Person>();
public PersonModel(int itemsByPage) {
this.itemsByPage = itemsByPage;
- size = getSize();
createList();
}
@@ -63,14 +61,21 @@
}
public void addData(Person newData) {
- size = getSize();
+ int listSize = persons.size();
+ if (listSize < (itemsByPage)) {
+ persons.add(newData);
+ }
+ int size = getSize();
fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
}
public void removeData(Person data) {
- int interval = persons.indexOf(data) + (itemsByPage * currentPage);
- proxy.delete(data.getWikittyId());
- fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ int index = persons.indexOf(data);
+ if (index != -1) {
+ persons.remove(index);
+ int interval = index + (itemsByPage * currentPage);
+ fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ }
}
public void reloadContent(int rowIndex) {
@@ -82,7 +87,6 @@
public void reload() {
createList();
- size = getSize();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceController.java 2010-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceController.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -5,6 +5,7 @@
import org.chorem.data.bonzoms.Address;
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;
@@ -26,7 +27,7 @@
*/
public class ServiceController extends GenericForwardComposer {
- protected Model model = new Model();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected ServiceModel serviceModel = new ServiceModel(20);
@@ -53,7 +54,7 @@
}
protected Listcell addressesRenderer(Service service) {
- Address address = model.retrieveAddressById(service.getAddress());
+ Address address = proxy.restore(Address.class, service.getAddress());
String render = address.getName() + " (" + address.getCountry() + ") :\n";
render += address.getAddress1() + " " + address.getAddress2() + "\n";
render += address.getZipCode() + " " + address.getCity() + "\n";
Modified: 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 2010-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceFormController.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -4,6 +4,7 @@
import org.chorem.data.bonzoms.AddressImpl;
import org.chorem.data.bonzoms.Service;
import org.chorem.data.bonzoms.ServiceImpl;
+import org.nuiton.wikitty.WikittyProxy;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.Events;
@@ -18,7 +19,7 @@
*/
public class ServiceFormController extends GenericForwardComposer {
- protected Model model = new Model();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected Service service = new ServiceImpl();
protected Address address = new AddressImpl();
@@ -45,8 +46,8 @@
}
protected void initService(String id) {
- service = model.retrieveServiceById(id);
- address = model.retrieveAddressById(service.getAddress());
+ service = proxy.restore(Service.class, id);
+ address = proxy.restore(Address.class, service.getAddress());
}
/*
@@ -58,10 +59,10 @@
}
public void onClick$saveService() {
- address = model.createAddress(address);
+ address = proxy.store(address);
service.setAddress(address.getWikittyId());
- service = model.updateService(service);
+ service = proxy.store(service);
Events.postEvent(EVENT_ON_SAVE_SERVICE, this.self, service);
System.out.println(this.self.getParent());
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceModel.java 2010-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceModel.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -20,13 +20,11 @@
protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected Criteria criteria = null;
protected int itemsByPage = 1;
- protected int size = 0;
protected int currentPage = 0;
protected List<Service> services = new ArrayList<Service>();
public ServiceModel(int itemsByPage) {
this.itemsByPage = itemsByPage;
- size = getSize();
createList();
}
@@ -63,14 +61,21 @@
}
public void addData(Service newData) {
- size = getSize();
+ int listSize = services.size();
+ if (listSize < (itemsByPage)) {
+ services.add(newData);
+ }
+ int size = getSize();
fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
}
public void removeData(Service data) {
- int interval = services.indexOf(data) + (itemsByPage * currentPage);
- proxy.delete(data.getWikittyId());
- fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ int index = services.indexOf(data);
+ if (index != -1) {
+ services.remove(index);
+ int interval = index + (itemsByPage * currentPage);
+ fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ }
}
public void reloadContent(int rowIndex) {
@@ -82,7 +87,6 @@
public void reload() {
createList();
- size = getSize();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/WikittyModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/WikittyModel.java 2010-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/WikittyModel.java 2010-08-05 12:51:10 UTC (rev 122)
@@ -21,13 +21,11 @@
protected WikittyProxy proxy = BonzomsProxy.getInstance();
protected Criteria criteria = null;
protected int itemsByPage = 1;
- protected int size = 0;
protected int currentPage = 0;
protected List<Wikitty> wikitties = new ArrayList<Wikitty>();
public WikittyModel(int itemsByPage) {
this.itemsByPage = itemsByPage;
- size = getSize();
createList();
}
@@ -66,14 +64,21 @@
}
public void addData(Wikitty newData) {
- size = getSize();
+ int listSize = wikitties.size();
+ if (listSize < (itemsByPage)) {
+ wikitties.add(newData);
+ }
+ int size = getSize();
fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
}
public void removeData(Wikitty data) {
- int interval = wikitties.indexOf(data) + (itemsByPage * currentPage);
- proxy.delete(data.getId());
- fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ int index = wikitties.indexOf(data);
+ if (index != -1) {
+ wikitties.remove(index);
+ int interval = index + (itemsByPage * currentPage);
+ fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ }
}
public void reloadContent(int rowIndex) {
@@ -87,7 +92,6 @@
public void reload() {
createList();
- size = getSize();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
Modified: trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul 2010-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul 2010-08-05 12:51:10 UTC (rev 122)
@@ -24,7 +24,9 @@
<bandpopup>
<vbox>
<listbox width="200px" id="serviceListbox" model="@{composer.serviceModel}" itemRenderer="@{composer.serviceRenderer}">
-
+ <listhead>
+ <listheader label="Name"/>
+ </listhead>
</listbox>
</vbox>
</bandpopup>
Modified: trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul 2010-08-04 16:27:57 UTC (rev 121)
+++ trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul 2010-08-05 12:51:10 UTC (rev 122)
@@ -10,45 +10,51 @@
<textbox value="@{composer.person.lastName, save-when='savePerson.onClick'}" />
<label value="Birthday" />
<datebox format="yyyy/MM/dd" value="@{composer.person.birthDay, save-when='savePerson.onClick'}" />
- </vbox>
- <space />
+ <separator />
- <vbox>
- <listbox id="addressListbox" model="@{composer.addressesModel}" width="200px">
- <listitem self="@{each='address'}">
- <listcell>
- <groupbox>
- <caption label="@{address.name}" />
- <vbox>
+ <listbox id="addressListbox" mold="paging" rows="5" model="@{composer.addressModel}" width="170px" itemRenderer="@{composer.addressRenderer}">
+ <listhead>
+ <listheader label="Address name" />
+ </listhead>
+ </listbox>
- <label value="Name" />
- <textbox value="@{address.name, save-when='savePerson.onClick'}" />
+ <hbox>
+ <button label="Add" id="addAddress" />
+ <button label="Delete" id="deleteAddress" />
+ </hbox>
- <label value="Adress1" />
- <textbox value="@{address.address1, save-when='savePerson.onClick'}" />
+ </vbox>
- <label value="Adress2" />
- <textbox value="@{address.address2, save-when='savePerson.onClick'}" />
+ <space />
- <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>
+ <groupbox>
+ <caption id="captionName" label="@{composer.selectedAddress.name}" />
+ <vbox>
+
+ <label value="Name" />
+ <textbox id="name" value="@{composer.selectedAddress.name, save-when='saveAddress.onClick'}" />
+
+ <label value="Adress1" />
+ <textbox id="address1" value="@{composer.selectedAddress.address1, save-when='saveAddress.onClick'}" />
+
+ <label value="Adress2" />
+ <textbox id="address2" value="@{composer.selectedAddress.address2, save-when='saveAddress.onClick'}" />
+
+ <label value="Zip code" />
+ <textbox id="zipcode" value="@{composer.selectedAddress.zipCode, save-when='saveAddress.onClick'}" />
+
+ <label value="City" />
+ <textbox id="city" value="@{composer.selectedAddress.city, save-when='saveAddress.onClick'}" />
+
+ <label value="Country" />
+ <textbox id="country" value="@{composer.selectedAddress.country, save-when='saveAddress.onClick'}" />
+
+ <button id="saveAddress" label="Save" />
+
+ </vbox>
+ </groupbox>
</vbox>
</hbox>
1
0
r121 - in trunk/bonzoms-ui-zk/src/main: java/org/chorem/bonzoms/ui resources webapp
by bbrossaud@users.chorem.org 04 Aug '10
by bbrossaud@users.chorem.org 04 Aug '10
04 Aug '10
Author: bbrossaud
Date: 2010-08-04 18:27:57 +0200 (Wed, 04 Aug 2010)
New Revision: 121
Url: http://chorem.org/repositories/revision/bonzoms/121
Log:
removed *data and change paging mold
Added:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractModel.java
Removed:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyData.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsData.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsModel.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/PersonData.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceData.java
Modified:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsConfig.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyController.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/CompanyModel.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractController.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/ContractsFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeController.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/EmployeeModel.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/MainController.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/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/ResultController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceModel.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/WikittyModel.java
trunk/bonzoms-ui-zk/src/main/resources/wikitty-jdbc-config.properties
trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/companyPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/contractPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/employeePage.zul
trunk/bonzoms-ui-zk/src/main/webapp/index.zul
trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/resultPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/servicePage.zul
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressFormController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressFormController.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressFormController.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -3,10 +3,12 @@
import org.chorem.data.bonzoms.Address;
import org.chorem.data.bonzoms.AddressImpl;
import org.zkoss.zk.ui.Component;
+import org.zkoss.zk.ui.Executions;
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.Window;
/**
*
@@ -18,15 +20,22 @@
protected Address address = new AddressImpl();
- public final static String EVENT_ON_SAVE_ADDRESS = "onSaveAddress";
+ public static final String EVENT_ON_SAVE_ADDRESS = "onSaveAddress";
+ public static final String EVENT_ON_CLOSE_ADDRESS = "onCloseAddress";
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- Address data = (Address) arg.get("address");
- if (data != null) {
- this.address = data;
+ Window win = (Window) self;
+ win.doModal();
+ win.setPosition("center");
+ String addressId = Executions.getCurrent().getParameter("addressId");
+ if (addressId == null) {
+ addressId = (String) arg.get("addressId");
}
+ if (addressId != null) {
+ address = model.retrieveAddressById(addressId);
+ }
DataBinder binder = new AnnotateDataBinder(comp);
binder.bindBean("composer", this);
binder.loadAll();
@@ -35,6 +44,10 @@
/*
* Events
*/
+ public void onClose() {
+ Events.postEvent(EVENT_ON_CLOSE_ADDRESS, this.self, null);
+ }
+
public void onClick$saveAddress() {
address = model.createAddress(address);
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsConfig.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsConfig.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsConfig.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -108,7 +108,7 @@
APPLICATION_VERSION("application.version", _("bonzoms.config.application.version.description"),
null, String.class, true, true),
DATA_DIR("solr.data.dir", _("bonzoms.config.data.dir.description"),
- System.getProperty("user.home") + "/.bonzoms/solr", String.class, false, false);
+ System.getProperty("user.home") + "/.chorem-data/solr", String.class, false, false);
public final String key;
public final String description;
public final String defaultValue;
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-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyController.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -27,16 +27,21 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+
import org.chorem.data.bonzoms.Address;
import org.chorem.data.bonzoms.Company;
import org.nuiton.util.StringUtil;
+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.zul.Button;
import org.zkoss.zul.Label;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
@@ -48,59 +53,30 @@
* @author sherkhan
*/
public class CompanyController extends GenericForwardComposer {
- protected Model model = new Model();
- protected CompanyModel companyDataModel = new CompanyModel();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected CompanyModel companyModel = new CompanyModel(20);
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- String search = (String) arg.get("search");
- List<Company> companies;
- if (search != null && !search.isEmpty()) {
- companies = model.retrieveCompaniesBySearch(search);
- } else {
- companies = model.retrieveAllCompanies();
- }
- createCompaniesData(companies);
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Company.EXT_COMPANY).criteria();
+ companyModel.setCriteria(criteria);
}
- 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);
- companyDataModel.addData(data);
- }
- }
-
- public void createWindowCompanyForm(CompanyData companyData) throws SuspendNotAllowedException, InterruptedException {
- Map<String, Object> map = new HashMap<String, Object>();
- if (companyData != null) {
- map.put("companyData", companyData);
- }
- Window win = (Window) Executions.createComponents("companyFormPage.zul", null, map);
-
+ public void createWindowCompanyForm(String id) throws SuspendNotAllowedException, InterruptedException {
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ 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 {
- CompanyData data = (CompanyData) event.getData();
- if (data != null) {
- int rowIndex = companyDataModel.indexOf(data);
- if (rowIndex == -1) {
- companyDataModel.addData(data);
- } else {
- companyDataModel.reloadContent(rowIndex);
- }
- }
+ companyModel.reload();
}
});
-
- win.setPage(page);
-// win.doHighlighted();
- win.setPosition("center");
-// win.doOverlapped();
- win.doModal();
}
/*
@@ -109,12 +85,13 @@
public void onClick$newCompany() throws SuspendNotAllowedException, InterruptedException {
createWindowCompanyForm(null);
}
+
/*
* Renderers
*/
- protected Listcell phonesFaxRenderer(CompanyData company) {
- String render = "Fax: " + company.getCompany().getFax() + "\n";
- String str = company.getCompany().getPhones();
+ protected Listcell phonesFaxRenderer(Company company) {
+ String render = "Fax: " + company.getFax() + "\n";
+ String str = company.getPhones();
String[] phones = StringUtil.split(str, ";");
for (String phone : phones) {
String[] values = StringUtil.split(phone, ":");
@@ -131,9 +108,9 @@
return listcell;
}
- protected Listcell emailsRenderer(CompanyData company) {
+ protected Listcell emailsRenderer(Company company) {
String render = "";
- String str = company.getCompany().getEmails();
+ String str = company.getEmails();
String[] emails = StringUtil.split(str, ";");
for (String email : emails) {
String[] values = StringUtil.split(email, ":");
@@ -150,8 +127,9 @@
return listcell;
}
- protected Listcell addressesRenderer(CompanyData company) {
- List<Address> addresses = company.getAddresses();
+ protected Listcell addressesRenderer(Company company) {
+ List<String> ids = new ArrayList<String>(company.getAddress());
+ List<Address> addresses = proxy.restore(Address.class, ids);
String render = "";
for (Address address : addresses) {
render += address.getName() + " (" + address.getCountry() + ") :\n";
@@ -165,28 +143,25 @@
return listcell;
}
- public ListitemRenderer getCompanyDataRenderer() {
+ public ListitemRenderer getCompanyRenderer() {
return new ListitemRenderer() {
@Override
public void render(Listitem item, Object data) throws Exception {
item.setValue(data);
- final CompanyData companyData = (CompanyData) data;
+ final Company company = (Company) data;
- Listcell nameCell = new Listcell(companyData.getCompany().getName());
- Listcell webSiteCell = new Listcell(companyData.getCompany().getWebSite());
- Listcell phoneFaxCell = phonesFaxRenderer(companyData);
- Listcell emailCell = emailsRenderer(companyData);
- Listcell addressCell = addressesRenderer(companyData);
- Listcell typeCell = new Listcell(companyData.getCompany().getType());
- Listcell detailsCell = new Listcell();
- Button details = new Button("details");
- detailsCell.appendChild(details);
- details.addEventListener("onClick", new EventListener() {
+ Listcell nameCell = new Listcell(company.getName());
+ Listcell webSiteCell = new Listcell(company.getWebSite());
+ Listcell phoneFaxCell = phonesFaxRenderer(company);
+ Listcell emailCell = emailsRenderer(company);
+ Listcell addressCell = addressesRenderer(company);
+ Listcell typeCell = new Listcell(company.getType());
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
- createWindowCompanyForm(companyData);
+ createWindowCompanyForm(company.getWikittyId());
}
});
@@ -196,7 +171,6 @@
item.appendChild(emailCell);
item.appendChild(addressCell);
item.appendChild(typeCell);
- item.appendChild(detailsCell);
}
};
}
@@ -209,6 +183,6 @@
* Getters
*/
public CompanyModel getCompanyModel() {
- return companyDataModel;
+ return companyModel;
}
}
Deleted: 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-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyData.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,144 +0,0 @@
-/*
- * #%L
- * Bonzoms : bonzoms-zk
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package org.chorem.bonzoms.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.chorem.data.bonzoms.Address;
-import org.chorem.data.bonzoms.Company;
-import org.chorem.data.bonzoms.CompanyImpl;
-
-/**
- *
- * @author sherkhan
- */
-public class CompanyData {
-
- protected Company company = new CompanyImpl();
-
- protected PhonesModel phonesModel = new PhonesModel();
- protected EmailsModel emailsModel = new EmailsModel();
-
- protected AddressesModel addressesModel = new AddressesModel();
- protected List<String> removedAddresses = new ArrayList<String>();
-
- public CompanyData() {}
-
- public CompanyData(Company obj, List<Address> addr) {
- setCompany(obj);
- setAddresses(addr);
- }
-
- /*
- * Getters
- */
- public Company getCompany() {
- return company;
- }
-
- public List<Address> getAddresses() {
- return addressesModel.getAddresses();
- }
-
- public List<String> getRemovedAddresses() {
- return removedAddresses;
- }
-
- public AddressesModel getAddressesModel() {
- return addressesModel;
- }
-
- public EmailsModel getEmailsModel() {
- return emailsModel;
- }
-
- public List<Email> getEmails() {
- return emailsModel.getEmails();
- }
-
- public PhonesModel getPhonesModel() {
- return phonesModel;
- }
-
- public List<Phone> getPhones() {
- return phonesModel.getPhones();
- }
-
- public String getEmailsModelAsString() {
- return emailsModel.getEmailsAsString();
- }
-
- public String getPhonesModelAsString() {
- return phonesModel.getPhonesAsString();
- }
-
- /*
- * Setters
- */
- public void setCompany(Company obj) {
- if (obj != null) {
- company = obj;
- }
- }
-
- public void setAddresses(List<Address> list) {
- if (list != null) {
- addressesModel.setAddresses(list);
- }
- }
-
- public void setRemovedAddresses(List<String> list) {
- if (list != null) {
- removedAddresses = list;
- }
- }
-
- public void setAddressesModel(AddressesModel addr) {
- addressesModel = addr;
- }
-
- public void setEmailsModel(EmailsModel emailsModel) {
- this.emailsModel = emailsModel;
- }
-
- public void setPhonesModel(PhonesModel phonesModel) {
- this.phonesModel = phonesModel;
- }
-
- public void setPhones(List<Phone> phones) {
- phonesModel.setPhones(phones);
- }
-
- 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-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyFormController.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -25,15 +25,19 @@
import java.util.ArrayList;
import java.util.List;
+
import org.chorem.data.bonzoms.Address;
import org.chorem.data.bonzoms.AddressImpl;
import org.chorem.data.bonzoms.Company;
+import org.chorem.data.bonzoms.CompanyImpl;
import org.zkoss.zk.ui.Component;
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.Listbox;
+import org.zkoss.zul.Window;
+import org.zkoss.zk.ui.Executions;
/**
*
@@ -43,122 +47,137 @@
protected Model model = new Model();
- protected CompanyData companyData = new CompanyData();
+ protected Company company = new CompanyImpl();
+ protected AddressesModel addressesModel = new AddressesModel();
+ protected PhonesModel phonesModel = new PhonesModel();
+ protected EmailsModel emailsModel = new EmailsModel();
+
+ protected List<String> removedAddresses = new ArrayList<String>();
protected Listbox addressListbox;
protected Listbox phoneListbox;
protected Listbox emailListbox;
- public final static String EVENT_ON_SAVE_COMPANY = "onSaveCompany";
+ public static final String EVENT_ON_SAVE_COMPANY = "onSaveCompany";
+ public static final String EVENT_ON_CLOSE_COMPANY = "onCloseCompany";
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- CompanyData company = (CompanyData) arg.get("companyData");
- init(company);
+ Window win = (Window) self;
+ win.doModal();
+ win.setPosition("center");
+ String companyId = Executions.getCurrent().getParameter("companyId");
+ if (companyId == null) {
+ companyId = (String) arg.get("companyId");
+ }
+ init(companyId);
DataBinder binder = new AnnotateDataBinder(comp);
binder.bindBean("composer", this);
binder.loadAll();
}
- protected void init(CompanyData company) {
- if (company == null) {
+ protected void init(String companyId) {
+ if (companyId == null || companyId.isEmpty()) {
initDefaultCompany();
} else {
- initCompany(company);
+ initCompany(companyId);
}
}
protected void initDefaultCompany() {
Address address = new AddressImpl();
- companyData.getAddressesModel().addData(address);
+ addressesModel.addData(address);
Phone phone = new Phone();
- companyData.getPhonesModel().addData(phone);
+ phonesModel.addData(phone);
Email email = new Email();
- companyData.getEmailsModel().addData(email);
+ emailsModel.addData(email);
}
- protected void initCompany(CompanyData companyData) {
- this.companyData = companyData;
- List<Address> addresses = model.retrieveAddressesByIds(new ArrayList<String>(companyData.getCompany().getAddress()));
- companyData.setAddresses(addresses);
- companyData.setEmailsModelList(companyData.getCompany().getEmails());
- companyData.setPhonesModelList(companyData.getCompany().getPhones());
+ protected void initCompany(String companyId) {
+ this.company = model.retrieveCompanyById(companyId);
+ List<Address> addresses = model.retrieveAddressesByIds(new ArrayList<String>(company.getAddress()));
+ addressesModel.setAddresses(addresses);
+ emailsModel.setEmails(company.getEmails());
+ phonesModel.setPhones(company.getPhones());
}
protected void removeCompanyAddresses() {
- List<String> ids = companyData.getRemovedAddresses();
- for (String id : ids) {
- companyData.getCompany().removeAddress(id);
+ for (String id : removedAddresses) {
+ company.removeAddress(id);
}
}
protected void saveAddresses() {
- List<Address> addresses = model.createAddresses(companyData.getAddressesModel().getAddresses());
- if (!companyData.getRemovedAddresses().isEmpty()) {
- model.deleteAddressesByIds(companyData.getRemovedAddresses());
+ List<Address> addresses = model.createAddresses(addressesModel.getAddresses());
+ if (!removedAddresses.isEmpty()) {
+ model.deleteAddressesByIds(removedAddresses);
removeCompanyAddresses();
}
for (Address address : addresses) {
- companyData.getCompany().addAddress(address.getWikittyId());
+ company.addAddress(address.getWikittyId());
}
}
protected void saveEmails() {
- String emails = companyData.getEmailsModelAsString();
- companyData.getCompany().setEmails(emails);
+ String emails = emailsModel.getEmailsAsString();
+ company.setEmails(emails);
}
protected void savePhones() {
- String phones = companyData.getPhonesModelAsString();
- companyData.getCompany().setPhones(phones);
+ String phones = phonesModel.getPhonesAsString();
+ company.setPhones(phones);
}
/*
* Events
*/
+ public void onClose() {
+ Events.postEvent(EVENT_ON_CLOSE_COMPANY, this.self, null);
+ }
+
public void onClick$addAddress() {
Address address = new AddressImpl();
- companyData.getAddressesModel().addData(address);
+ addressesModel.addData(address);
}
public void onClick$deleteAddress() {
int size = addressListbox.getItemCount();
if (size > 1) {
- Address address = (Address) companyData.getAddressesModel().getElementAt(size -1);
- companyData.getAddressesModel().removeData(address);
+ Address address = (Address) addressesModel.getElementAt(size -1);
+ addressesModel.removeData(address);
String id = address.getWikittyId();
if (!id.isEmpty()) {
- companyData.getRemovedAddresses().add(id);
+ removedAddresses.add(id);
}
}
}
public void onClick$addPhone() {
Phone phone = new Phone();
- companyData.getPhonesModel().addData(phone);
+ phonesModel.addData(phone);
}
public void onClick$deletePhone() {
int size = phoneListbox.getItemCount();
if (size > 1) {
- Phone phone = (Phone) companyData.getPhonesModel().getElementAt(size -1);
- companyData.getPhonesModel().removeData(phone);
+ Phone phone = (Phone) phonesModel.getElementAt(size -1);
+ phonesModel.removeData(phone);
}
}
public void onClick$addEmail() {
Email email = new Email();
- companyData.getEmailsModel().addData(email);
+ emailsModel.addData(email);
}
public void onClick$deleteEmail() {
int size = emailListbox.getItemCount();
if (size > 1) {
- Email email = (Email) companyData.getEmailsModel().getElementAt(size - 1);
- companyData.getEmailsModel().removeData(email);
+ Email email = (Email) emailsModel.getElementAt(size - 1);
+ emailsModel.removeData(email);
}
}
@@ -167,11 +186,9 @@
saveEmails();
saveAddresses();
- Company company = model.updateCompany(companyData.getCompany());
-
- companyData.setCompany(company);
+ company = model.updateCompany(company);
- Events.postEvent(EVENT_ON_SAVE_COMPANY, this.self, companyData);
+ Events.postEvent(EVENT_ON_SAVE_COMPANY, this.self, company);
this.self.detach();
}
@@ -179,7 +196,19 @@
/*
* Getters
*/
- public CompanyData getCompanyData() {
- return companyData;
+ public Company getCompany() {
+ return company;
}
+
+ public AddressesModel getAddressesModel() {
+ return addressesModel;
+ }
+
+ public PhonesModel getPhonesModel() {
+ return phonesModel;
+ }
+
+ public EmailsModel getEmailsModel() {
+ return emailsModel;
+ }
}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyModel.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyModel.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -25,57 +25,117 @@
import java.util.ArrayList;
import java.util.List;
+
+import org.chorem.data.bonzoms.Company;
+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;
/**
*
- * @author sherkhan
+ * @author bbrossaud
*/
public class CompanyModel extends AbstractListModel implements BindingListModel {
- protected List<CompanyData> companies = new ArrayList<CompanyData>();
-
+
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected Criteria criteria = null;
+ protected int itemsByPage = 1;
+ protected int size = 0;
+ protected int currentPage = 0;
+ protected List<Company> companies = new ArrayList<Company>();
+
+ public CompanyModel(int itemsByPage) {
+ this.itemsByPage = itemsByPage;
+ size = getSize();
+ createList();
+ }
+
@Override
public Object getElementAt(int index) {
- return companies.get(index);
+ pageChange(index);
+ int indexList = index % itemsByPage;
+ Company Company = companies.get(indexList);
+ return Company;
}
@Override
public int getSize() {
- return companies.size();
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<Company> result = proxy.findAllByCriteria(Company.class, criteria);
+ return result.getNumFound();
}
-
- @Override
- public int indexOf(Object obj) {
- return companies.indexOf(obj);
+
+ @Override
+ public int indexOf(Object obj) {
+ int index = 0;
+ String id = ((Company) obj).getWikittyId();
+ for (Company data : companies) {
+ String dataId = data.getWikittyId();
+ if (id.equals(dataId)) {
+ index = companies.indexOf(data) + (itemsByPage * currentPage);
+ break;
+ }
+ }
+ return index;
+ }
+
+ public void addData(Company newData) {
+ size = getSize();
+ fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
}
- public void setCompanies(List<CompanyData> companies) {
- this.companies = companies;
- fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
- }
-
- public void addData(CompanyData newData) {
- companies.add(newData);
- fireEvent(ListDataEvent.INTERVAL_ADDED, companies.size() - 1, companies.size() - 1);
- }
-
- public void removeData(CompanyData data) {
- int interval = companies.indexOf(data);
- companies.remove(data);
+ public void removeData(Company data) {
+ int interval = companies.indexOf(data) + (itemsByPage * currentPage);
+ proxy.delete(data.getWikittyId());
fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
}
public void reloadContent(int rowIndex) {
+ int indexList = rowIndex % itemsByPage;
+ Company Company = companies.get(indexList);
+ Company = proxy.restore(Company.class, Company.getWikittyId());
fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
}
public void reload() {
+ createList();
+ size = getSize();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
-
- public List<CompanyData> getCompanies() {
- return companies;
+
+ public Criteria getCriteria() {
+ return criteria;
}
+
+ public void setCriteria(Criteria criteria) {
+ if (criteria != null) {
+ this.criteria = criteria;
+ reload();
+ }
+ }
+
+ public void pageChange(int index) {
+ int item = index;
+ int page = item / itemsByPage;
+ if (page != currentPage ) {
+ currentPage = page;
+ createList();
+ }
+ }
+
+ protected void createList() {
+ if (criteria != null) {
+ int first = currentPage * itemsByPage;
+ int end = first + (itemsByPage - 1);
+ Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
+ List<Company> Companies = proxy.findAllByCriteria(Company.class, criteria).getAll();
+ this.companies = new ArrayList<Company>(Companies);
+ }
+ }
}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractController.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractController.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,16 +1,19 @@
package org.chorem.bonzoms.ui;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import org.chorem.data.bonzoms.EmploymentContract;
+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.zul.Button;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
@@ -22,44 +25,29 @@
*/
public class ContractController extends GenericForwardComposer {
- protected Model model = new Model();
- protected ContractsModel contractsModel = new ContractsModel();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected ContractModel contractModel = new ContractModel(20);
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- List<EmploymentContract> contracts = model.retrieveAllContracts();
- if (contracts != null) {
- contractsModel.setContracts(contracts);
- }
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT).criteria();
+ contractModel.setCriteria(criteria);
}
- protected void createWindowContractForm(EmploymentContract contract) throws InterruptedException {
- Map<String, Object> map = new HashMap<String, Object>();
- if (contract != null) {
- map.put("contract", contract);
- }
- Window win = (Window) Executions.createComponents("contractFormPage.zul", null, map);
-
+ protected void createWindowContractForm(String id) throws InterruptedException {
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ map.put("contractId", id);
+ }
+ Window win = (Window) Executions.createComponents("contractFormPage.zul", null, map);
win.addEventListener(ContractFormController.EVENT_ON_SAVE_CONTRACT, new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
- EmploymentContract data = (EmploymentContract) event.getData();
- if (data != null) {
- int rowIndex = contractsModel.indexOf(data);
- if (rowIndex == -1) {
- contractsModel.addData(data);
- } else {
- contractsModel.reloadContent(rowIndex);
- }
- }
+ contractModel.reload();
}
});
-
- win.setPage(page);
- win.setPosition("center");
- win.doModal();
}
/*
@@ -79,14 +67,11 @@
Listcell advantages = new Listcell(contract.getAdvantages());
Listcell description = new Listcell(contract.getDescription());
- Listcell details = new Listcell();
- Button button = new Button("details");
- details.appendChild(button);
- button.addEventListener("onClick", new EventListener() {
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
- createWindowContractForm(contract);
+ createWindowContractForm(contract.getWikittyId());
}
});
@@ -95,7 +80,6 @@
item.appendChild(workingTime);
item.appendChild(advantages);
item.appendChild(description);
- item.appendChild(details);
}
};
}
@@ -114,8 +98,8 @@
/*
* Getters
*/
- public ContractsModel getContractsModel() {
- return contractsModel;
+ public ContractModel getContractModel() {
+ return contractModel;
}
/*
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-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractFormController.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -3,10 +3,12 @@
import org.chorem.data.bonzoms.EmploymentContract;
import org.chorem.data.bonzoms.EmploymentContractImpl;
import org.zkoss.zk.ui.Component;
+import org.zkoss.zk.ui.Executions;
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.Window;
/**
*
@@ -16,15 +18,23 @@
protected Model model = new Model();
protected EmploymentContract contract = new EmploymentContractImpl();
- public final static String EVENT_ON_SAVE_CONTRACT = "onSaveContract";
+
+ 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 {
super.doAfterCompose(comp);
- EmploymentContract data = (EmploymentContract) arg.get("contract");
- if (data != null) {
- this.contract = data;
+ Window win = (Window) self;
+ win.doModal();
+ win.setPosition("center");
+ String contractId = Executions.getCurrent().getParameter("contractId");
+ if (contractId == null) {
+ contractId = (String) arg.get("contractId");
}
+ if (contractId != null) {
+ contract = model.retrieveContractById(contractId);
+ }
DataBinder binder = new AnnotateDataBinder(comp);
binder.bindBean("composer", this);
binder.loadAll();
@@ -33,6 +43,10 @@
/*
* Events
*/
+ public void onClose() {
+ Events.postEvent(EVENT_ON_CLOSE_CONTRACT, this.self, null);
+ }
+
public void onClick$saveContract() {
contract = model.createContract(contract);
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractModel.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractModel.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -0,0 +1,147 @@
+/*
+ * #%L
+ * Bonzoms : bonzoms-zk
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package org.chorem.bonzoms.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.chorem.data.bonzoms.EmploymentContract;
+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;
+
+/**
+ *
+ * @author sherkhan
+ */
+public class ContractModel extends AbstractListModel implements BindingListModel {
+
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected Criteria criteria = null;
+ protected int itemsByPage = 1;
+ protected int size = 0;
+ protected int currentPage = 0;
+ protected List<EmploymentContract> contracts = new ArrayList<EmploymentContract>();
+
+ public ContractModel(int itemsByPage) {
+ this.itemsByPage = itemsByPage;
+ size = getSize();
+ createList();
+ }
+
+ @Override
+ public Object getElementAt(int index) {
+ pageChange(index);
+ int indexList = index % itemsByPage;
+ EmploymentContract contract = contracts.get(indexList);
+ return contract;
+ }
+
+ @Override
+ public int getSize() {
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<EmploymentContract> result = proxy.findAllByCriteria(EmploymentContract.class, criteria);
+ return result.getNumFound();
+ }
+
+ @Override
+ public int indexOf(Object obj) {
+ int index = 0;
+ String id = ((EmploymentContract) obj).getWikittyId();
+ for (EmploymentContract data : contracts) {
+ String dataId = data.getWikittyId();
+ if (id.equals(dataId)) {
+ index = contracts.indexOf(data) + (itemsByPage * currentPage);
+ break;
+ }
+ }
+ return index;
+ }
+
+ public void addData(EmploymentContract newData, boolean store) {
+ if (store == true) {
+ proxy.store(newData);
+ }
+ size = getSize();
+ fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
+ }
+
+ public void removeData(EmploymentContract data, boolean delete) {
+ int interval = contracts.indexOf(data) + (itemsByPage * currentPage);
+ if (delete == true) {
+ proxy.delete(data.getWikittyId());
+ }
+ createList();
+ fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ }
+
+ public void reloadContent(int rowIndex) {
+ int indexList = rowIndex % itemsByPage;
+ EmploymentContract contract = contracts.get(indexList);
+ contract = proxy.restore(EmploymentContract.class, contract.getWikittyId());
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
+ }
+
+ public void reload() {
+ createList();
+ size = getSize();
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public Criteria getCriteria() {
+ return criteria;
+ }
+
+ public void setCriteria(Criteria criteria) {
+ if (criteria != null) {
+ this.criteria = criteria;
+ reload();
+ }
+ }
+
+ public void pageChange(int index) {
+ int item = index;
+ int page = item / itemsByPage;
+ if (page != currentPage ) {
+ currentPage = page;
+ createList();
+ }
+ }
+
+ protected void createList() {
+ if (criteria != null) {
+ int first = currentPage * itemsByPage;
+ int end = first + (itemsByPage - 1);
+ Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
+ List<EmploymentContract> contracts = proxy.findAllByCriteria(EmploymentContract.class, criteria).getAll();
+ this.contracts = new ArrayList<EmploymentContract>(contracts);
+ }
+ }
+}
Deleted: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsData.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsData.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsData.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,47 +0,0 @@
-package org.chorem.bonzoms.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.chorem.data.bonzoms.EmploymentContract;
-
-/**
- *
- * @author sherkhan
- */
-public class ContractsData {
-
- protected ContractsModel contractsModel = new ContractsModel();
- protected List<String> removedContracts = new ArrayList<String>();
-
- public ContractsData() {}
-
- public ContractsData(List<EmploymentContract> contracts) {
- if (contracts != null) {
- contractsModel.setContracts(contracts);
- }
- }
-
- /*
- * Setters
- */
-
- public void setContractsList(List<EmploymentContract> contracts) {
- contractsModel.setContracts(contracts);
- }
-
- /*
- * Getters
- */
-
- public ContractsModel getContractsModel() {
- return contractsModel;
- }
-
- public List<EmploymentContract> getContractsList() {
- return contractsModel.getContracts();
- }
-
- public List<String> getRemovedContracts() {
- return removedContracts;
- }
-}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsFormController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsFormController.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsFormController.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -4,12 +4,17 @@
import java.util.List;
import org.chorem.data.bonzoms.EmploymentContract;
import org.chorem.data.bonzoms.EmploymentContractImpl;
+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.Events;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zkplus.databind.AnnotateDataBinder;
import org.zkoss.zkplus.databind.DataBinder;
import org.zkoss.zul.Listbox;
+import org.zkoss.zul.Window;
/**
*
@@ -17,69 +22,84 @@
*/
public class ContractsFormController extends GenericForwardComposer {
- protected ContractsData contractsData = new ContractsData();
- protected List<EmploymentContract> save = new ArrayList<EmploymentContract>();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
+
+ protected ContractModel contractModel = new ContractModel(20);
+ protected List<String> removedContracts = new ArrayList<String>();
+ protected String employeeId = null;
+
protected Listbox contractListbox;
- public final static String EVENT_ON_SAVE_CONTRACTS = "onSaveContracts";
+ public final static String EVENT_ON_SAVE_CONTRACTS = "onSaveContracts";
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- ContractsData data = (ContractsData) arg.get("contractsData");
- if (data != null) {
- initContracts(data);
- } else {
- initDefaultContracts();
+ Window win = (Window) self;
+ win.doModal();
+ win.setPosition("center");
+ String employeeId = Executions.getCurrent().getParameter("employeeId");
+ if (employeeId == null) {
+ employeeId = (String) arg.get("employeeId");
}
+ this.employeeId = employeeId;
DataBinder binder = new AnnotateDataBinder(comp);
binder.bindBean("composer", this);
binder.loadAll();
}
+ protected void init() {
+ if (employeeId != null) {
+ initContracts();
+ } else {
+ initDefaultContracts();
+ }
+ }
+
protected void initDefaultContracts() {
EmploymentContract contract = new EmploymentContractImpl();
- contractsData.getContractsModel().addData(contract);
+ contract.setEmployee(employeeId);
+ contractModel.addData(contract, false);
}
- protected void initContracts(ContractsData data) {
- contractsData = data;
- save = new ArrayList<EmploymentContract>(contractsData.getContractsList());
+ protected void initContracts() {
+ if (employeeId != null) {
+ Criteria criteria = Search.query().eq(EmploymentContract.FQ_FIELD_EMPLOYEE, employeeId).criteria();
+ contractModel.setCriteria(criteria);
+ }
}
-
+
/*
* Events
*/
public void onClick$addContract() {
EmploymentContract contract = new EmploymentContractImpl();
- contractsData.getContractsModel().addData(contract);
+ contract.setEmployee(employeeId);
+ contractModel.addData(contract, false);
}
public void onClick$deleteContract() {
- int size = contractListbox.getItemCount();
- if (size > 1) {
- EmploymentContract contract = (EmploymentContract) contractsData.getContractsModel().getElementAt(size -1);
- contractsData.getContractsModel().removeData(contract);
- String id = contract.getWikittyId();
- if (!id.isEmpty()) {
- contractsData.getRemovedContracts().add(id);
- }
- }
+// int size = contractListbox.getItemCount();
+// if (size > 1) {
+// EmploymentContract contract = (EmploymentContract) contractModel.getElementAt(size -1);
+// contractModel.removeData(contract);
+// String id = contract.getWikittyId();
+// if (!id.isEmpty()) {
+// removedContracts.add(id);
+// }
+// }
}
public void onClick$saveContracts() {
- Events.postEvent(EVENT_ON_SAVE_CONTRACTS, this.self, contractsData);
+ proxy.delete(removedContracts);
+ Events.postEvent(EVENT_ON_SAVE_CONTRACTS, this.self, null);
self.detach();
}
- public void onClose() {
- contractsData.setContractsList(save);
- }
-
/*
* Getters
*/
- public ContractsModel getContractsModel() {
- return contractsData.getContractsModel();
+ public ContractModel getContractModel() {
+ return contractModel;
}
}
Deleted: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsModel.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsModel.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,83 +0,0 @@
-/*
- * #%L
- * Bonzoms : bonzoms-zk
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package org.chorem.bonzoms.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.chorem.data.bonzoms.EmploymentContract;
-import org.zkoss.zkplus.databind.BindingListModel;
-import org.zkoss.zul.AbstractListModel;
-import org.zkoss.zul.event.ListDataEvent;
-
-/**
- *
- * @author sherkhan
- */
-public class ContractsModel extends AbstractListModel implements BindingListModel {
-
- List<EmploymentContract> contracts = new ArrayList<EmploymentContract>();
-
- @Override
- public Object getElementAt(int index) {
- return contracts.get(index);
- }
-
- @Override
- public int getSize() {
- return contracts.size();
- }
-
- @Override
- public int indexOf(Object obj) {
- return contracts.indexOf(obj);
- }
-
- public void setContracts(List<EmploymentContract> contracts) {
- this.contracts = contracts;
- fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
- }
-
- public void addData(EmploymentContract newData) {
- contracts.add(newData);
- fireEvent(ListDataEvent.INTERVAL_ADDED, contracts.size() - 1, contracts.size() - 1);
- }
-
- public void removeData(EmploymentContract data) {
- int interval = contracts.indexOf(data);
- contracts.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<EmploymentContract> getContracts() {
- return contracts;
- }
-}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeController.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeController.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -24,20 +24,21 @@
package org.chorem.bonzoms.ui;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
-import org.chorem.data.bonzoms.Address;
+
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.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.SuspendNotAllowedException;
-import org.zkoss.zk.ui.event.CreateEvent;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
-import org.zkoss.zk.ui.event.ForwardEvent;
+import org.zkoss.zk.ui.event.Events;
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;
@@ -45,61 +46,33 @@
/**
*
- * @author sherkhan
+ * @author bbrossaud
*/
public class EmployeeController extends GenericForwardComposer {
- protected Model model = new Model();
- protected EmployeeModel employeeModel = new EmployeeModel();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected EmployeeModel employeeModel = new EmployeeModel(20);
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- List<Employee> employees = model.retrieveAllEmployees();
- createEmployeeDataList(employees);
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Employee.EXT_EMPLOYEE).criteria();
+ employeeModel.setCriteria(criteria);
}
- public void createEmployeeDataList(List<Employee> employees) {
- for (Employee employee : employees) {
- Address address = model.retrieveAddressById(employee.getAddress());
- EmployeeData data = new EmployeeData(employee, address);
-
- Person person = model.retrievePersonById(employee.getPerson());
- if (person != null) {
- PersonData personData = new PersonData(person, null);
- data.setPersonData(personData);
- }
- employeeModel.addData(data);
- }
- }
-
- public void createWindowEmployeeForm(final EmployeeData employeeData) throws SuspendNotAllowedException, InterruptedException {
- Map<String, Object> map = new HashMap<String, Object>();
- if (employeeData != null) {
- map.put("employeeData", employeeData);
- }
- Window win = (Window) Executions.createComponents("employeeFormPage.zul", null, map);
-
+ public void createWindowEmployeeForm(String id) throws SuspendNotAllowedException, InterruptedException {
+ 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 {
- EmployeeData data = (EmployeeData) event.getData();
- if (data != null) {
- int rowIndex = employeeModel.indexOf(data);
- if (rowIndex == -1) {
- employeeModel.addData(data);
- } else {
- employeeModel.reloadContent(rowIndex);
- }
- }
+ employeeModel.reload();
}
});
-
- win.setPage(page);
- win.setPosition("center");
-// win.doOverlapped();
- win.doModal();
}
/*
@@ -111,27 +84,28 @@
@Override
public void render(Listitem item, Object data) throws Exception {
item.setValue(data);
- final EmployeeData employeeData = (EmployeeData) data;
+ final Employee employee = (Employee) data;
String firstName = "";
String lastName = "";
- if (employeeData.getPersonData() != null) {
- firstName = employeeData.getPerson().getFirstName();
- lastName = employeeData.getPerson().getLastName();
+ String personId = employee.getPerson();
+ if (personId != null) {
+ Person person = proxy.restore(Person.class, employee.getPerson());
+ if (person != null) {
+ firstName = person.getFirstName();
+ lastName = person.getLastName();
+ }
}
Listcell firstNameCell = new Listcell(firstName);
Listcell lastNameCell = new Listcell(lastName);
- Listcell emailCell = new Listcell(employeeData.getEmployee().getWorkingEmail());
- Listcell phoneCell = new Listcell(employeeData.getEmployee().getWorkingPhone());
+ Listcell emailCell = new Listcell(employee.getWorkingEmail());
+ Listcell phoneCell = new Listcell(employee.getWorkingPhone());
- Listcell detailsCell = new Listcell();
- Button details = new Button("details");
- detailsCell.appendChild(details);
- details.addEventListener("onClick", new EventListener() {
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
- createWindowEmployeeForm(employeeData);
+ createWindowEmployeeForm(employee.getWikittyId());
}
});
@@ -139,7 +113,6 @@
item.appendChild(lastNameCell);
item.appendChild(emailCell);
item.appendChild(phoneCell);
- item.appendChild(detailsCell);
}
};
}
Deleted: 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-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeData.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,199 +0,0 @@
-/*
- * #%L
- * Bonzoms : bonzoms-zk
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package org.chorem.bonzoms.ui;
-
-import java.util.List;
-import org.chorem.data.bonzoms.Address;
-import org.chorem.data.bonzoms.AddressImpl;
-import org.chorem.data.bonzoms.Employee;
-import org.chorem.data.bonzoms.EmployeeImpl;
-import org.chorem.data.bonzoms.EmploymentContract;
-import org.chorem.data.bonzoms.Person;
-import org.chorem.data.bonzoms.Service;
-
-/**
- *
- * @author sherkhan
- */
-public class EmployeeData {
-
- protected Employee employee = new EmployeeImpl();
- protected Address workingAddress = new AddressImpl();
-
- protected PersonData personData = null;
- protected ServiceData serviceData = null;
-
- protected CompanyData companyData = null;
-
- protected ContractsData contractsData = null;
- public EmployeeData() {
- }
-
- public EmployeeData(Employee employee, Address address) {
- this.employee = employee;
- this.workingAddress = address;
- }
-
- /*
- * Setters
- */
- public void setEmployee(Employee employee) {
- this.employee = employee;
- }
-
- public void setPersonData(PersonData personData) {
- this.personData = personData;
- }
-
- public void setWorkingAddress(Address address) {
- this.workingAddress = address;
- }
-
- public void setContractsList(List<EmploymentContract> contracts) {
- contractsData.getContractsModel().setContracts(contracts);
- }
-
- public void setPersonPhonesModelList(String phones) {
- personData.setPhones(phones);
- }
-
- public void setPersonEmailsModelList(String emails) {
- personData.setEmails(emails);
- }
-
- public void setPerson(Person person) {
- personData.setPerson(person);
- }
-
- public void setPersonAddresses(List<Address> addresses) {
- personData.setAddresses(addresses);
- }
-
- public void setService(Service service) {
- serviceData.setService(service);
- }
-
- public void setServiceAddress(Address address) {
- serviceData.setAddress(address);
- }
-
- public void setContractsData(ContractsData contractsData) {
- this.contractsData = contractsData;
- }
-
- public void setServiceData(ServiceData serviceData) {
- this.serviceData = serviceData;
- }
-
- public void setCompanyData(CompanyData companyData) {
- this.companyData = companyData;
- }
-
- /*
- * Getters
- */
- public Employee getEmployee() {
- return employee;
- }
-
- public PersonData getPersonData() {
- return personData;
- }
-
- public Address getWorkingAddress() {
- return workingAddress;
- }
-
- public ContractsModel getContractsModel() {
- return contractsData.getContractsModel();
- }
-
- public List<EmploymentContract> getContractsList() {
- return contractsData.getContractsList();
- }
-
- public List<String> getRemovedContracts() {
- return contractsData.getRemovedContracts();
- }
-
- public Person getPerson() {
- return personData.getPerson();
- }
-
- public AddressesModel getPersonAddressesModel() {
- return personData.getAddressesModel();
- }
-
- public List<Address> getPersonAddresses() {
- return personData.getAddresses();
- }
-
- public PhonesModel getPersonPhonesModel() {
- return personData.getPhonesModel();
- }
-
- public List<Phone> getPersonPhones() {
- return personData.getPhones();
- }
-
- public EmailsModel getPersonEmailsModel() {
- return personData.getEmailsModel();
- }
-
- public List<Email> getPersonEmails() {
- return personData.getEmails();
- }
-
- public List<String> getPersonRemovedAddresses() {
- return personData.getRemovedAddresses();
- }
-
- public ServiceData getServiceData() {
- return serviceData;
- }
-
- public Service getService() {
- return serviceData.getService();
- }
-
- public Address getServiceAddress() {
- return serviceData.getAddress();
- }
-
- public ContractsData getContractsData() {
- return contractsData;
- }
-
- public String getPersonPhonesModelAsString() {
- return personData.getPhonesAsString();
- }
-
- public String getPersonEmailsModelAsString() {
- return personData.getEmailsAsString();
- }
-
- public CompanyData getCompanyData() {
- return companyData;
- }
-}
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-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeFormController.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -23,19 +23,20 @@
*/
package org.chorem.bonzoms.ui;
-import java.util.ArrayList;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
-import java.util.Set;
+
import org.chorem.data.bonzoms.Address;
+import org.chorem.data.bonzoms.AddressImpl;
import org.chorem.data.bonzoms.Company;
-import org.chorem.data.bonzoms.CompanyImpl;
import org.chorem.data.bonzoms.Employee;
-import org.chorem.data.bonzoms.EmploymentContract;
+import org.chorem.data.bonzoms.EmployeeImpl;
import org.chorem.data.bonzoms.Person;
import org.chorem.data.bonzoms.Service;
-import org.chorem.data.bonzoms.ServiceImpl;
+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;
@@ -45,7 +46,9 @@
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.Listbox;
+import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
import org.zkoss.zul.Window;
@@ -56,313 +59,297 @@
*/
public class EmployeeFormController extends GenericForwardComposer {
- protected Model model = new Model();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
- protected EmployeeData employeeData = new EmployeeData();
+ 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 CompanyModel companyModel = new CompanyModel();
- protected ServiceModel serviceModel = new ServiceModel();
-
+ protected Bandbox companyBandbox;
+ protected Bandbox serviceBandbox;
+ protected Bandbox personBandbox;
+
protected Listbox companyListbox;
protected Listbox serviceListbox;
+ protected Listbox personListbox;
- public final static String EVENT_ON_SAVE_EMPLOYEE = "onSaveEmployee";
+ 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 {
super.doAfterCompose(comp);
- EmployeeData data = (EmployeeData) arg.get("employeeData");
- initCompanyModel();
- initServiceModel();
- if (data != null) {
- initEmployee(data);
+ Window win = (Window) self;
+ win.doModal();
+ win.setPosition("center");
+ String employeeId = Executions.getCurrent().getParameter("employeeId");
+ if (employeeId == null) {
+ employeeId = (String) arg.get("employeeId");
}
+ init(employeeId);
DataBinder binder = new AnnotateDataBinder(comp);
binder.bindBean("composer", this);
binder.loadAll();
}
- protected void initCompanyModel() {
- Company newCompany = new CompanyImpl();
- newCompany.setName("New company");
- companyModel.addData(new CompanyData(newCompany, null));
- List<Company> companies = model.retrieveAllCompanies();
- for (Company company : companies) {
- CompanyData data = new CompanyData(company, null);
- companyModel.addData(data);
+ protected void init(String employeeId) {
+ if (employeeId != null && !employeeId.isEmpty()) {
+ initEmployee(employeeId);
}
+ if (employeeId == null || employeeId.isEmpty()) {
+ 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());
+ }
protected void initServiceModel() {
- Service newService = new ServiceImpl();
- newService.setType("New service");
- serviceModel.addData(new ServiceData(newService, null));
- List<Service> services = model.retrieveAllServices();
- for (Service service : services) {
- ServiceData data = new ServiceData(service, null);
- serviceModel.addData(data);
- }
+ onOK$serviceBandbox();
+ String serviceId = employee.getService();
+ if (serviceId != null && !serviceId.isEmpty()) {
+ Service service = proxy.restore(Service.class, serviceId);
+ serviceBandbox.setValue(service.getType());
+ }
}
-
- protected void initPerson() {
- Person person = model.retrievePersonById(employeeData.getEmployee().getPerson());
- if (person != null) {
- PersonData personData = new PersonData(person, null);
- employeeData.setPersonData(personData);
- }
+
+ 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());
+ }
}
-
- protected void initService() {
- Service service = model.retrieveServiceById(employeeData.getEmployee().getService());
- if (service != null) {
- ServiceData serviceData = new ServiceData(service, null);
- employeeData.setServiceData(serviceData);
- }
+
+ 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);
+ }
}
-
- protected void initContracts() {
- Set<String> contractIds = employeeData.getEmployee().getEmploymentContract();
- if (contractIds != null && !contractIds.isEmpty()) {
- List<String> ids = new ArrayList<String>(contractIds);
- List<EmploymentContract> contracts = model.retrieveContractsByIds(ids);
- ContractsData contractsData = new ContractsData(contracts);
- employeeData.setContractsData(contractsData);
- }
- }
-
- protected void initEmployee(EmployeeData employee) {
- employeeData = employee;
- Address workingAddress = model.retrieveAddressById(employee.getEmployee().getAddress());
- employeeData.setWorkingAddress(workingAddress);
-
- initPerson();
-
- initService();
-
- 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 saveEmployeeContracts() {
- if (employeeData.getContractsData() != null) {
- List<EmploymentContract> contracts = model.createContracts(employeeData.getContractsList());
- if (!employeeData.getRemovedContracts().isEmpty()) {
- model.deleteContractsByIds(employeeData.getRemovedContracts());
- removeEmployeeContracts();
- }
- for (EmploymentContract contract : contracts) {
- employeeData.getEmployee().addEmploymentContract(contract.getWikittyId());
- }
- }
- }
-
+
/*
* Renderers
*/
-
- public ListitemRenderer getCompanyDataRenderer() {
+ public ListitemRenderer getCompanyRenderer() {
return new ListitemRenderer() {
@Override
public void render(Listitem item, Object data) throws Exception {
item.setValue(data);
- CompanyData companyData = (CompanyData) data;
- String id = employeeData.getEmployee().getCompany();
- String companyId = companyData.getCompany().getWikittyId();
- item.setLabel(companyData.getCompany().getName());
- if (id != null && id.equals(companyId)) {
- companyListbox.setSelectedItem(item);
- employeeData.setCompanyData(companyData);
- }
+ 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 getServiceDataRenderer() {
+ public ListitemRenderer getServiceRenderer() {
return new ListitemRenderer() {
@Override
public void render(Listitem item, Object data) throws Exception {
item.setValue(data);
- ServiceData serviceData = (ServiceData) data;
- String id = employeeData.getEmployee().getService();
- String serviceId = serviceData.getService().getWikittyId();
- item.setLabel(serviceData.getService().getType());
- if (id != null && id.equals(serviceId)) {
- serviceListbox.setSelectedItem(item);
- employeeData.setServiceData(serviceData);
- }
+ 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() {
- Address workingAddress = model.updateAddress(employeeData.getWorkingAddress());
- employeeData.getEmployee().setAddress(workingAddress.getWikittyId());
+ workingAddress = proxy.store(workingAddress);
+ employee.setAddress(workingAddress.getWikittyId());
- saveEmployeeContracts();
+ employee = proxy.store(employee);
- Employee employee = model.createEmployee(employeeData.getEmployee());
- employeeData.setEmployee(employee);
-
- Events.postEvent(EVENT_ON_SAVE_EMPLOYEE, this.self, employeeData);
+ Events.postEvent(EVENT_ON_SAVE_EMPLOYEE, this.self, null);
this.self.detach();
}
- public void onSelect$companyListbox() {
- int index = companyListbox.getSelectedIndex();
- if (index != -1) {
- if (index == 0) {
- employeeData.setCompanyData(null);
- } else {
- CompanyData data = (CompanyData) companyModel.getElementAt(index);
- employeeData.setCompanyData(data);
- employeeData.getEmployee().setCompany(data.getCompany().getWikittyId());
- }
- }
- }
-
-
- public void onSelect$serviceListbox() {
- int index = serviceListbox.getSelectedIndex();
- if (index != -1) {
- if (index == 0) {
- employeeData.setServiceData(null);
- } else {
- ServiceData data = (ServiceData) serviceModel.getElementAt(index);
- employeeData.setServiceData(data);
- employeeData.getEmployee().setService(data.getService().getWikittyId());
- }
- }
- }
-
public void onClick$editPerson() throws SuspendNotAllowedException, InterruptedException {
- Map<String, Object> map = new HashMap<String, Object>();
- if (employeeData.getPersonData() != null) {
- map.put("personData", employeeData.getPersonData());
- }
- Window win = (Window) Executions.createComponents("personFormPage.zul", null, map);
-
+ 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 {
- PersonData data = (PersonData) event.getData();
- if (data != null) {
- employeeData.setPersonData(data);
- employeeData.getEmployee().setPerson(data.getPerson().getWikittyId());
+ Person person = (Person) event.getData();
+ if (person != null) {
+ employee.setPerson(person.getWikittyId());
+ String name = person.getFirstName() + " " + person.getLastName();
+ personBandbox.setValue(name);
}
+ personModel.reload();
}
});
-
- win.setPage(page);
- win.setPosition("center");
- win.doModal();
}
public void onClick$editCompany() throws InterruptedException {
- Map<String, Object> map = new HashMap<String, Object>();
- if (employeeData.getCompanyData() != null){
- map.put("companyData", employeeData.getCompanyData());
- }
- Window win = (Window) Executions.createComponents("companyFormPage.zul", null, map);
-
+ if (companyBandbox.getValue().isEmpty()) {
+ employee.setCompany(null);
+ }
+ 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 {
- CompanyData data = (CompanyData) event.getData();
- if (data != null) {
- if (employeeData.getCompanyData() == null) {
- companyModel.addData(data);
- int index = companyModel.indexOf(data);
- companyListbox.setSelectedIndex(index);
- }
- employeeData.setCompanyData(data);
- employeeData.getEmployee().setCompany(data.getCompany().getWikittyId());
- }
+ Company company = (Company) event.getData();
+ if (company != null) {
+ employee.setCompany(company.getWikittyId());
+ companyBandbox.setValue(company.getName());
+ }
+ companyModel.reload();
}
});
-
- win.setPage(page);
- win.setPosition("center");
- win.doModal();
}
- public void onClick$editContracts() throws SuspendNotAllowedException, InterruptedException {
- Map<String, Object> map = new HashMap<String, Object>();
- if (employeeData.getContractsData() != null) {
- map.put("contractsData", employeeData.getContractsData());
- }
- Window win = (Window) Executions.createComponents("contractsFormPage.zul", null, map);
-
- win.addEventListener(ContractsFormController.EVENT_ON_SAVE_CONTRACTS, new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- ContractsData data = (ContractsData) event.getData();
- if (data != null) {
- employeeData.setContractsData(data);
- }
- }
- });
-
- win.setPage(page);
- win.setPosition("center");
- win.doModal();
- }
-
public void onClick$editService() throws SuspendNotAllowedException, InterruptedException {
- Map<String, Object> map = new HashMap<String, Object>();
- if (employeeData.getServiceData() != null){
- map.put("serviceData", employeeData.getServiceData());
- }
- Window win = (Window) Executions.createComponents("serviceFormPage.zul", null, map);
-
+ if (serviceBandbox.getValue().isEmpty()) {
+ employee.setService(null);
+ }
+ 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 {
- ServiceData data = (ServiceData) event.getData();
- if (data != null) {
- if (employeeData.getServiceData() == null) {
- serviceModel.addData(data);
- int index = serviceModel.indexOf(data);
- serviceListbox.setSelectedIndex(index);
- }
- employeeData.setServiceData(data);
- employeeData.getEmployee().setService(data.getService().getWikittyId());
+ Service service = (Service) event.getData();
+ if (service != null) {
+ employee.setService(service.getWikittyId());
+ serviceBandbox.setValue(service.getType());
}
+ serviceModel.reload();
}
});
- win.setPage(page);
- win.setPosition("center");
- win.doModal();
}
+ public void onClick$editContracts() throws SuspendNotAllowedException, InterruptedException {
+ Map<String, Object> map = new HashMap<String, Object>();
+ String id = employee.getWikittyId();
+ if (id != null && !id.isEmpty()) {
+ map.put("employeeId", id);
+ }
+ Executions.createComponents("contractsFormPage.zul", null, map);
+ }
+
/*
* Getters
*/
- public EmployeeData getEmployeeData() {
- return employeeData;
+ public Employee getEmployee() {
+ return employee;
}
public CompanyModel getCompanyModel() {
@@ -372,4 +359,8 @@
public ServiceModel getServiceModel() {
return serviceModel;
}
+
+ public Address getWorkingAddress() {
+ return workingAddress;
+ }
}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeModel.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeModel.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -25,6 +25,11 @@
import java.util.ArrayList;
import java.util.List;
+
+import org.chorem.data.bonzoms.Employee;
+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;
@@ -34,44 +39,104 @@
* @author sherkhan
*/
public class EmployeeModel extends AbstractListModel implements BindingListModel {
- protected List<EmployeeData> employees = new ArrayList<EmployeeData>();
-
+
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected Criteria criteria = null;
+ protected int itemsByPage = 1;
+ protected int size = 0;
+ protected int currentPage = 0;
+ protected List<Employee> employees = new ArrayList<Employee>();
+
+ public EmployeeModel(int itemsByPage) {
+ this.itemsByPage = itemsByPage;
+ size = getSize();
+ createList();
+ }
+
@Override
public Object getElementAt(int index) {
- return employees.get(index);
+ pageChange(index);
+ int indexList = index % itemsByPage;
+ Employee employee = employees.get(indexList);
+ return employee;
}
@Override
public int getSize() {
- return employees.size();
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<Employee> result = proxy.findAllByCriteria(Employee.class, criteria);
+ return result.getNumFound();
}
-
- @Override
- public int indexOf(Object obj) {
- return employees.indexOf(obj);
+
+ @Override
+ public int indexOf(Object obj) {
+ int index = 0;
+ Employee employee = (Employee) obj;
+ String id = employee.getWikittyId();
+ for (Employee data : employees) {
+ String dataId = data.getWikittyId();
+ if (id.equals(dataId)) {
+ index = employees.indexOf(data) + (itemsByPage * currentPage);
+ break;
+ }
+ }
+ return index;
+ }
+
+ public void addData(Employee newData) {
+ size = getSize();
+ fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
}
- public void setEmployees(List<EmployeeData> employees) {
- this.employees = employees;
- fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
- }
-
- public void addData(EmployeeData newData) {
- employees.add(newData);
- fireEvent(ListDataEvent.INTERVAL_ADDED, employees.size() - 1, employees.size() - 1);
- }
-
- public void removeData(EmployeeData data) {
- int interval = employees.indexOf(data);
- employees.remove(data);
+ public void removeData(Employee data) {
+ int interval = employees.indexOf(data) + (itemsByPage * currentPage);
+ proxy.delete(data.getWikittyId());
fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
}
public void reloadContent(int rowIndex) {
+ int indexList = rowIndex % itemsByPage;
+ Employee employee = employees.get(indexList);
+ employee = proxy.restore(Employee.class, employee.getWikittyId());
fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
}
public void reload() {
+ createList();
+ size = getSize();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
+
+ public Criteria getCriteria() {
+ return criteria;
+ }
+
+ public void setCriteria(Criteria criteria) {
+ if (criteria != null) {
+ this.criteria = criteria;
+ reload();
+ }
+ }
+
+ public void pageChange(int index) {
+ int item = index;
+ int page = item / itemsByPage;
+ if (page != currentPage ) {
+ currentPage = page;
+ createList();
+ }
+ }
+
+ protected void createList() {
+ if (criteria != null) {
+ int first = currentPage * itemsByPage;
+ int end = first + (itemsByPage - 1);
+ Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
+ List<Employee> employees = proxy.findAllByCriteria(Employee.class, criteria).getAll();
+ this.employees = new ArrayList<Employee>(employees);
+ }
+ }
}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/MainController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/MainController.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/MainController.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -23,13 +23,9 @@
*/
package org.chorem.bonzoms.ui;
-import java.util.HashMap;
-import java.util.Map;
-import org.zkoss.zk.ui.Component;
-import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Textbox;
-import org.zkoss.zul.Vbox;
+import org.zkoss.zul.Include;
/**
*
@@ -37,82 +33,14 @@
*/
public class MainController extends GenericForwardComposer {
- protected Vbox content;
protected Textbox searchBox;
-
- public final static String COMPANY_WINDOW_ID = "company";
- public final static String EMPLOYEE_WINDOW_ID ="employee";
- public final static String PERSON_WINDOW_ID = "person";
- public final static String SERVICE_WINDOW_ID = "service";
-
- @Override
- public void doAfterCompose(Component comp) throws Exception {
- super.doAfterCompose(comp);
-// createEmployeesPage();
- }
-
- protected void createEmployeesPage() {
- removeAllContentPage();
- Component newContent = Executions.createComponents("employeePage.zul", null, null);
- content.appendChild(newContent);
- }
-
- protected void createPersonsPage() {
- removeAllContentPage();
- Component newContent = Executions.createComponents("personPage.zul", null, null);
- content.appendChild(newContent);
- }
-
- protected void createCompaniesPage() {
- removeAllContentPage();
- Component newContent = Executions.createComponents("companyPage.zul", null, null);
- content.appendChild(newContent);
- }
-
- protected void createServicesPage() {
- removeAllContentPage();
- Component newContent = Executions.createComponents("servicePage.zul", null, null);
- content.appendChild(newContent);
- }
-
- protected void createContractsPage() {
- removeAllContentPage();
- Component newContent = Executions.createComponents("contractPage.zul", null, null);
- content.appendChild(newContent);
- }
-
- protected void removeAllContentPage() {
- content.getLastChild().detach();
- }
-
- protected Map<String, Object> initMap() {
- String search = searchBox.getValue();
- Map<String, Object> map = new HashMap<String, Object>();
- if (search != null && !search.isEmpty()) {
- map.put("search", searchBox.getValue());
- }
- return map;
- }
-
+ protected Include include;
/*
* Events
*/
public void onOK$searchBox() {
-// Component win = content.getLastChild();
-// String id = win.getId();
-// Map<String, Object> map = initMap();
-// if (id.equals(EMPLOYEE_WINDOW_ID)) {
-// createEmployeesPage(map);
-// } else if (id.equals(COMPANY_WINDOW_ID)) {
-// createCompaniesPage(map);
-// } else if (id.equals(PERSON_WINDOW_ID)) {
-// createPersonsPage(map);
-// } else if (id.equals(SERVICE_WINDOW_ID)) {
-// createServicesPage(map);
-// }
- removeAllContentPage();
- Component newContent = Executions.createComponents("resultPage.zul", null, initMap());
- content.appendChild(newContent);
+ String search = searchBox.getValue();
+ include.setSrc("resultPage.zul?search=" + search);
}
public void onClick$searchButton() {
@@ -120,22 +48,22 @@
}
public void onClick$employees() {
- createEmployeesPage();
+ include.setSrc("employeePage.zul");
}
public void onClick$persons() {
- createPersonsPage();
+ include.setSrc("personPage.zul");
}
public void onClick$companies() {
- createCompaniesPage();
+ include.setSrc("companyPage.zul");
}
public void onClick$services() {
- createServicesPage();
+ include.setSrc("servicePage.zul");
}
public void onClick$contracts() {
- createContractsPage();
+ include.setSrc("contractPage.zul");
}
}
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-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Model.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -115,6 +115,13 @@
return services;
}
+ public List<EmploymentContract> retrieveContractsByEmployeeId(String id) {
+ Criteria criteria = Search.query().eq(EmploymentContract.FQ_FIELD_EMPLOYEE, id).criteria();
+ List<EmploymentContract> contracts = proxy.findAllByCriteria(EmploymentContract.class, criteria).getAll();
+ contracts = new ArrayList<EmploymentContract>(contracts);
+ return contracts;
+ }
+
public Person retrievePersonById(String id) {
if (id == null) {
return null;
@@ -202,10 +209,12 @@
}
Criteria criteria = search.criteria();
+
WikittyService service = proxy.getWikittyService();
- PagedResult result = service.findAllByCriteria(null, criteria);
+ String securityToken = proxy.getSecurityToken();
+ PagedResult<?> result = service.findAllByCriteria(securityToken, criteria);
if (result != null) {
- wikitties = result.cast(null, proxy.getWikittyService()).getAll();
+ wikitties = result.cast(securityToken, service).getAll();
wikitties = new ArrayList<Wikitty>(wikitties);
}
return wikitties;
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-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonController.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -25,20 +25,21 @@
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.nuiton.wikitty.Criteria;
+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.zul.Button;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
@@ -52,51 +53,28 @@
protected Model model = new Model();
- protected PersonModel personModel = new PersonModel();
+ protected PersonModel personModel = new PersonModel(20);
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- List<Person> persons = model.retrieveAllPersons();
- createPersonsData(persons);
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Person.EXT_PERSON).criteria();
+ personModel.setCriteria(criteria);
}
-
- 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);
-
+
+ public void createWindowPersonForm(String id) throws SuspendNotAllowedException, InterruptedException {
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ 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 {
- PersonData data = (PersonData) event.getData();
- if (data != null) {
- int rowIndex = personModel.indexOf(data);
- if (rowIndex == -1) {
- personModel.addData(data);
- } else {
- personModel.reloadContent(rowIndex);
- }
- }
+ personModel.reload();
}
});
-
- win.setPage(page);
-// win.doHighlighted();
- win.setPosition("center");
-// win.doOverlapped();
- win.doModal();
}
/*
@@ -115,32 +93,28 @@
@Override
public void render(Listitem item, Object data) throws Exception {
item.setValue(data);
- final PersonData personData = (PersonData) data;
+ final Person person = (Person) data;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
- Listcell firstNameCell = new Listcell(personData.getPerson().getFirstName());
- Listcell lastNameCell = new Listcell(personData.getPerson().getLastName());
+ Listcell firstNameCell = new Listcell(person.getFirstName());
+ Listcell lastNameCell = new Listcell(person.getLastName());
String birthday = "";
- Date date = personData.getPerson().getBirthDay();
+ Date date = person.getBirthDay();
if (date != null) {
birthday = sdf.format(date);
}
Listcell dateCell = new Listcell(birthday);
- Listcell detailsCell = new Listcell();
- Button details = new Button("details");
- detailsCell.appendChild(details);
- details.addEventListener("onClick", new EventListener() {
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
- createWindowPersonForm(personData);
+ createWindowPersonForm(person.getWikittyId());
}
});
item.appendChild(firstNameCell);
item.appendChild(lastNameCell);
item.appendChild(dateCell);
- item.appendChild(detailsCell);
}
};
}
Deleted: 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-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonData.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,143 +0,0 @@
-/*
- * #%L
- * Bonzoms : bonzoms-zk
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package org.chorem.bonzoms.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.chorem.data.bonzoms.Address;
-import org.chorem.data.bonzoms.Person;
-import org.chorem.data.bonzoms.PersonImpl;
-
-/**
- *
- * @author sherkhan
- */
-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(Person person, List<Address> addresses) {
- setPerson(person);
- setAddresses(addresses);
- }
-
- /*
- * Getters
- */
- public Person getPerson() {
- return person;
- }
-
- public List<Address> getAddresses() {
- return addressesModel.getAddresses();
- }
-
- public List<Phone> getPhones() {
- return phonesModel.getPhones();
- }
-
- public List<Email> getEmails() {
- return emailsModel.getEmails();
- }
-
- public EmailsModel getEmailsModel() {
- return emailsModel;
- }
-
- public PhonesModel getPhonesModel() {
- return phonesModel;
- }
-
- public List<String> getRemovedAddresses() {
- return removedAddresses;
- }
-
- public AddressesModel getAddressesModel() {
- return addressesModel;
- }
-
- public String getEmailsAsString() {
- return emailsModel.getEmailsAsString();
- }
-
- public String getPhonesAsString() {
- return phonesModel.getPhonesAsString();
- }
-
- /*
- * Setters
- */
- public void setPerson(Person obj) {
- if (obj != null) {
- person = obj;
- }
- }
-
- public void setAddresses(List<Address> list) {
- if (list != null) {
- addressesModel.setAddresses(list);
- }
- }
-
- public void setEmails(String str) {
- if (str != null) {
- emailsModel.setEmails(str);
- }
- }
-
- public void setEmails(List<Email> emails) {
- if (emails != null) {
- emailsModel.setEmails(emails);
- }
- }
-
- public void setPhones(List<Phone> phones) {
- if (phones != null) {
- phonesModel.setPhones(phones);
- }
- }
-
- public void setPhones(String str) {
- if (str != null) {
- phonesModel.setPhones(str);
- }
- }
-
- public void setRemovedAddresses(List<String> list) {
- if (list != null) {
- removedAddresses = list;
- }
- }
-
- public void setAddressesModel(AddressesModel addr) {
- addressesModel = addr;
- }
-}
Modified: 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 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonFormController.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -5,12 +5,15 @@
import org.chorem.data.bonzoms.Address;
import org.chorem.data.bonzoms.AddressImpl;
import org.chorem.data.bonzoms.Person;
+import org.chorem.data.bonzoms.PersonImpl;
import org.zkoss.zk.ui.Component;
+import org.zkoss.zk.ui.Executions;
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.Listbox;
+import org.zkoss.zul.Window;
/**
*
@@ -20,139 +23,164 @@
protected Model model = new Model();
- protected PersonData personData = new PersonData();
+ protected Person person = new PersonImpl();
+ protected AddressesModel addressesModel = new AddressesModel();
+ protected EmailsModel emailsModel = new EmailsModel();
+ protected PhonesModel phonesModel = new PhonesModel();
+ List<String> removedAddresses = new ArrayList<String>();
protected Listbox addressListbox;
protected Listbox phoneListbox;
protected Listbox emailListbox;
- public final static String EVENT_ON_SAVE_PERSON = "onSavePerson";
+ public static final String EVENT_ON_SAVE_PERSON = "onSavePerson";
+ public static final String EVENT_ON_CLOSE_PERSON = "onClosePerson";
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- PersonData person = (PersonData) arg.get("personData");
- init(person);
+ Window win = (Window) self;
+ win.doModal();
+ win.setPosition("center");
+ String personId = Executions.getCurrent().getParameter("personId");
+ if (personId == null) {
+ personId = (String) arg.get("personId");
+ }
+ init(personId);
DataBinder binder = new AnnotateDataBinder(comp);
binder.bindBean("composer", this);
binder.loadAll();
}
- protected void init(PersonData personData) {
- if (personData == null) {
+ protected void init(String personId) {
+ if (personId == null) {
initDefaultPerson();
} else {
- initPerson(personData);
+ initPerson(personId);
}
}
protected void initDefaultPerson() {
Address address = new AddressImpl();
- personData.getAddressesModel().addData(address);
+ addressesModel.addData(address);
Phone phone = new Phone();
- personData.getPhonesModel().addData(phone);
+ phonesModel.addData(phone);
Email email = new Email();
- personData.getEmailsModel().addData(email);
+ emailsModel.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());
+ protected void initPerson(String personId) {
+ person = model.retrievePersonById(personId);
+ List<Address> addresses = model.retrieveAddressesByIds(new ArrayList<String>(person.getAddress()));
+ addressesModel.setAddresses(addresses);
+ emailsModel.setEmails(person.getEmails());
+ phonesModel.setPhones(person.getPhones());
}
protected void removeAddresses() {
- List<String> ids = personData.getRemovedAddresses();
- for (String id : ids) {
- personData.getPerson().removeAddress(id);
+ for (String id : removedAddresses) {
+ person.removeAddress(id);
}
}
protected void saveAddresses() {
- List<Address> addresses = model.createAddresses(personData.getAddresses());
- if (!personData.getRemovedAddresses().isEmpty()) {
- model.deleteAddressesByIds(personData.getRemovedAddresses());
+ List<Address> addresses = model.createAddresses(addressesModel.getAddresses());
+ if (!removedAddresses.isEmpty()) {
+ model.deleteAddressesByIds(removedAddresses);
removeAddresses();
}
for (Address address : addresses) {
- personData.getPerson().addAddress(address.getWikittyId());
+ person.addAddress(address.getWikittyId());
}
}
protected void saveEmails() {
- String emails = personData.getEmailsAsString();
- personData.getPerson().setEmails(emails);
+ String emails = emailsModel.getEmailsAsString();
+ person.setEmails(emails);
}
protected void savePhones() {
- String phones = personData.getPhonesAsString();
- personData.getPerson().setPhones(phones);
+ String phones = phonesModel.getPhonesAsString();
+ person.setPhones(phones);
}
/*
* Events
*/
+ public void onClose() {
+ Events.postEvent(EVENT_ON_CLOSE_PERSON, this.self, null);
+ }
+
public void onClick$savePerson() {
saveAddresses();
savePhones();
saveEmails();
- Person person = model.createPerson(personData.getPerson());
- personData.setPerson(person);
- Events.postEvent(EVENT_ON_SAVE_PERSON, this.self, personData);
+ person = model.createPerson(person);
+ Events.postEvent(EVENT_ON_SAVE_PERSON, this.self, person);
self.detach();
}
public void onClick$addAddress() {
Address address = new AddressImpl();
- personData.getAddressesModel().addData(address);
+ addressesModel.addData(address);
}
public void onClick$deleteAddress() {
int size = addressListbox.getItemCount();
if (size > 1) {
- Address address = (Address) personData.getAddressesModel().getElementAt(size -1);
- personData.getAddressesModel().removeData(address);
+ Address address = (Address) addressesModel.getElementAt(size -1);
+ addressesModel.removeData(address);
String id = address.getWikittyId();
if (!id.isEmpty()) {
- personData.getRemovedAddresses().add(id);
+ removedAddresses.add(id);
}
}
}
public void onClick$addPhone() {
Phone phone = new Phone();
- personData.getPhonesModel().addData(phone);
+ phonesModel.addData(phone);
}
public void onClick$deletePhone() {
int size = phoneListbox.getItemCount();
if (size > 1) {
- Phone phone = (Phone) personData.getPhonesModel().getElementAt(size -1);
- personData.getPhonesModel().removeData(phone);
+ Phone phone = (Phone) phonesModel.getElementAt(size -1);
+ phonesModel.removeData(phone);
}
}
public void onClick$addEmail() {
Email email = new Email();
- personData.getEmailsModel().addData(email);
+ emailsModel.addData(email);
}
public void onClick$deleteEmail() {
int size = emailListbox.getItemCount();
if (size > 1) {
- Email email = (Email) personData.getEmailsModel().getElementAt(size -1);
- personData.getEmailsModel().removeData(email);
+ Email email = (Email) emailsModel.getElementAt(size -1);
+ emailsModel.removeData(email);
}
}
/*
* Getters
*/
- public PersonData getPersonData() {
- return personData;
+ public Person getPerson() {
+ return person;
}
+
+ public AddressesModel getAddressesModel() {
+ return addressesModel;
+ }
+
+ public PhonesModel getPhonesModel() {
+ return phonesModel;
+ }
+
+ public EmailsModel getEmailsModel() {
+ return emailsModel;
+ }
}
Modified: 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 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonModel.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -2,6 +2,11 @@
import java.util.ArrayList;
import java.util.List;
+
+import org.chorem.data.bonzoms.Person;
+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;
@@ -12,42 +17,102 @@
*/
public class PersonModel extends AbstractListModel implements BindingListModel {
- protected List<PersonData> persons = new ArrayList<PersonData>();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected Criteria criteria = null;
+ protected int itemsByPage = 1;
+ protected int size = 0;
+ protected int currentPage = 0;
+ protected List<Person> persons = new ArrayList<Person>();
+
+ public PersonModel(int itemsByPage) {
+ this.itemsByPage = itemsByPage;
+ size = getSize();
+ createList();
+ }
+
@Override
public Object getElementAt(int index) {
- return persons.get(index);
+ pageChange(index);
+ int indexList = index % itemsByPage;
+ Person Person = persons.get(indexList);
+ return Person;
}
@Override
public int getSize() {
- return persons.size();
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<Person> result = proxy.findAllByCriteria(Person.class, criteria);
+ return result.getNumFound();
}
-
- @Override
- public int indexOf(Object obj) {
- return persons.indexOf(obj);
+
+ @Override
+ public int indexOf(Object obj) {
+ int index = 0;
+ String id = ((Person) obj).getWikittyId();
+ for (Person data : persons) {
+ String dataId = data.getWikittyId();
+ if (id.equals(dataId)) {
+ index = persons.indexOf(data) + (itemsByPage * currentPage);
+ break;
+ }
+ }
+ return index;
+ }
+
+ public void addData(Person newData) {
+ size = getSize();
+ fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
}
- 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);
+ public void removeData(Person data) {
+ int interval = persons.indexOf(data) + (itemsByPage * currentPage);
+ proxy.delete(data.getWikittyId());
fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
}
public void reloadContent(int rowIndex) {
+ int indexList = rowIndex % itemsByPage;
+ Person Person = persons.get(indexList);
+ Person = proxy.restore(Person.class, Person.getWikittyId());
fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
}
public void reload() {
+ createList();
+ size = getSize();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
+
+ public Criteria getCriteria() {
+ return criteria;
+ }
+
+ public void setCriteria(Criteria criteria) {
+ if (criteria != null) {
+ this.criteria = criteria;
+ reload();
+ }
+ }
+
+ public void pageChange(int index) {
+ int item = index;
+ int page = item / itemsByPage;
+ if (page != currentPage ) {
+ currentPage = page;
+ createList();
+ }
+ }
+
+ protected void createList() {
+ if (criteria != null) {
+ int first = currentPage * itemsByPage;
+ int end = first + (itemsByPage - 1);
+ Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
+ List<Person> persons = proxy.findAllByCriteria(Person.class, criteria).getAll();
+ this.persons = new ArrayList<Person>(persons);
+ }
+ }
}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ResultController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ResultController.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ResultController.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -27,6 +27,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+
import org.chorem.data.bonzoms.Address;
import org.chorem.data.bonzoms.Company;
import org.chorem.data.bonzoms.Employee;
@@ -35,8 +36,13 @@
import org.chorem.data.bonzoms.Service;
import org.nuiton.util.StringUtil;
import org.nuiton.wikitty.FieldType.TYPE;
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Search;
+import org.nuiton.wikitty.Criteria;
import org.nuiton.wikitty.Wikitty;
import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyService;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.SuspendNotAllowedException;
@@ -49,7 +55,6 @@
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
import org.zkoss.zul.Toolbarbutton;
-import org.zkoss.zul.Window;
/**
*
@@ -57,73 +62,78 @@
*/
public class ResultController extends GenericForwardComposer {
- protected Model model = new Model();
- protected WikittyModel wikittyModel = new WikittyModel();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyModel wikittyModel = new WikittyModel(10);
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- String search = (String) arg.get("search");
- if (search == null) {
- search = "";
- }
- List<Wikitty> wikitties = model.retrieveAllBySearch(search);
- wikittyModel.setWikitties(wikitties);
+ String str = Executions.getCurrent().getParameter("search");
+
+ Criteria criteria = getCriteriaBySearch(str);
+ wikittyModel.setCriteria(criteria);
}
- protected void createPage(Map<String, Object> map, String zulFile)
- throws SuspendNotAllowedException, InterruptedException {
- Window win = (Window) Executions.createComponents(zulFile, null, map);
- win.setPage(page);
- win.setPosition("center");
- win.doModal();
+ protected Criteria getCriteriaBySearch(String str) {
+ Search search = Search.query().eq(Element.ELT_EXTENSION, Person.EXT_PERSON);
+ search = search.or().eq(Element.ELT_EXTENSION, Company.EXT_COMPANY);
+ search = search.eq(Element.ELT_EXTENSION, Employee.EXT_EMPLOYEE);
+ search = search.eq(Element.ELT_EXTENSION, Service.EXT_SERVICE);
+ search = search.eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT);
+ search = search.eq(Element.ELT_EXTENSION, Address.EXT_ADDRESS);
+ if (str != null && !str.isEmpty()) {
+ search = search.and().keyword(str);
+ }
+ Criteria criteria = search.criteria();
+ return criteria;
}
-
-
- protected void createEmploymentContractPage(String id) throws SuspendNotAllowedException, InterruptedException {
- EmploymentContract contract = model.retrieveContractById(id);
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("contract", contract);
- createPage(map, "contractFormPage.zul");
+
+ protected void createEmploymentContractPage(String id) throws SuspendNotAllowedException, InterruptedException {
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ map.put("contractId", id);
+ }
+ Executions.createComponents("contractFormPage.zul", null, map);
}
protected void createPersonPage(String id) throws SuspendNotAllowedException, InterruptedException {
- Person person = model.retrievePersonById(id);
- PersonData data = new PersonData(person, null);
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("personData", data);
- createPage(map, "personFormPage.zul");
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ map.put("personId", id);
+ }
+ Executions.createComponents("personFormPage.zul", null, map);
}
protected void createEmployeePage(String id) throws SuspendNotAllowedException, InterruptedException {
- Employee employee = model.retrieveEmployeeById(id);
- EmployeeData data = new EmployeeData(employee, null);
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("employeeData", data);
- createPage(map, "employeeFormPage.zul");
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ map.put("employeeId", id);
+ }
+ Executions.createComponents("employeeFormPage.zul", null, map);
}
protected void createAddressPage(String id) throws SuspendNotAllowedException, InterruptedException {
- Address address = model.retrieveAddressById(id);
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("address", address);
- createPage(map, "addressFormPage.zul");
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ map.put("addressId", id);
+ }
+ Executions.createComponents("addressFormPage.zul", null, map);
}
protected void createServicePage(String id) throws SuspendNotAllowedException, InterruptedException {
- Service service = model.retrieveServiceById(id);
- ServiceData data = new ServiceData(service, null);
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("serviceData", data);
- createPage(map, "serviceFormPage.zul");
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ map.put("serviceId", id);
+ }
+ Executions.createComponents("serviceFormPage.zul", null, map);
}
protected void createCompanyPage(String id) throws SuspendNotAllowedException, InterruptedException {
- Company company = model.retrieveCompanyById(id);
- CompanyData data = new CompanyData(company, null);
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("companyData", data);
- createPage(map, "companyFormPage.zul");
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ map.put("companyId", id);
+ }
+ Executions.createComponents("companyFormPage.zul", null, map);
}
protected void createPageByWikitty(Wikitty wikitty) throws SuspendNotAllowedException, InterruptedException {
@@ -169,7 +179,9 @@
@Override
public void onEvent(Event event) throws Exception {
- Wikitty wikitty = model.retrieveWikittyById(id);
+ WikittyService service = proxy.getWikittyService();
+ String securityToken = proxy.getSecurityToken();
+ Wikitty wikitty = service.restore(securityToken, id);
createPageByWikitty(wikitty);
}
});
@@ -190,7 +202,9 @@
@Override
public void onEvent(Event event) throws Exception {
- Wikitty wikitty = model.retrieveWikittyById(id);
+ WikittyService service = proxy.getWikittyService();
+ String securityToken = proxy.getSecurityToken();
+ Wikitty wikitty = service.restore(securityToken, id);
createPageByWikitty(wikitty);
}
});
@@ -240,7 +254,10 @@
protected Listcell dependanciesRenderer(String id) {
Listcell cell = new Listcell();
- List<Wikitty> wikitties = model.retrieveAllBySearch(id);
+ WikittyService service = proxy.getWikittyService();
+ String securityToken = proxy.getSecurityToken();
+ Criteria criteria = getCriteriaBySearch(id);
+ List<Wikitty> wikitties = service.findAllByCriteria(securityToken, criteria).cast(securityToken, service).getAll();
for (final Wikitty wikitty : wikitties) {
Collection<String> extensions = wikitty.getExtensionNames();
String str = StringUtil.join(extensions, ", ", false);
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceController.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceController.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,17 +1,19 @@
package org.chorem.bonzoms.ui;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import org.chorem.data.bonzoms.Address;
import org.chorem.data.bonzoms.Service;
+import org.nuiton.wikitty.Criteria;
+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.zul.Button;
import org.zkoss.zul.Label;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
@@ -26,61 +28,32 @@
protected Model model = new Model();
- protected ServiceModel serviceModel = new ServiceModel();
+ protected ServiceModel serviceModel = new ServiceModel(20);
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- String search = (String) arg.get("search");
- List<Service> services;
- if (search != null && !search.isEmpty()) {
- services = model.retrieveServicesBySearch(search);
- } else {
- services = model.retrieveAllServices();
- }
- createServicesData(services);
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Service.EXT_SERVICE).criteria();
+ serviceModel.setCriteria(criteria);
}
- public void createServicesData(List<Service> services) {
- for (Service service : services) {
- Address address = model.retrieveAddressById(service.getAddress());
- ServiceData data = new ServiceData(service, address);
- serviceModel.addData(data);
- }
- }
-
- public void createWindowServiceForm(ServiceData serviceData) throws SuspendNotAllowedException, InterruptedException {
- Map<String, Object> map = new HashMap<String, Object>();
- if (serviceData != null) {
- map.put("serviceData", serviceData);
- }
- Window win = (Window) Executions.createComponents("serviceFormPage.zul", null, map);
-
+ public void createWindowServiceForm(String id) throws SuspendNotAllowedException, InterruptedException {
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ 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 {
- ServiceData data = (ServiceData) event.getData();
- if (data != null) {
- int rowIndex = serviceModel.indexOf(data);
- if (rowIndex == -1) {
- serviceModel.addData(data);
- } else {
- serviceModel.reloadContent(rowIndex);
- }
- }
+ serviceModel.reload();
}
});
-
- win.setPage(page);
-// win.doHighlighted();
- win.setPosition("center");
-// win.doOverlapped();
- win.doModal();
}
- protected Listcell addressesRenderer(ServiceData serviceData) {
- Address address = serviceData.getAddress();
+ protected Listcell addressesRenderer(Service service) {
+ Address address = model.retrieveAddressById(service.getAddress());
String render = address.getName() + " (" + address.getCountry() + ") :\n";
render += address.getAddress1() + " " + address.getAddress2() + "\n";
render += address.getZipCode() + " " + address.getCity() + "\n";
@@ -107,27 +80,22 @@
@Override
public void render(Listitem item, Object data) throws Exception {
item.setValue(data);
- final ServiceData serviceData = (ServiceData) data;
+ final Service service = (Service) data;
- Listcell typeCell = new Listcell(serviceData.getService().getType());
+ Listcell typeCell = new Listcell(service.getType());
- Listcell addressCell = addressesRenderer(serviceData);
+ Listcell addressCell = addressesRenderer(service);
- Listcell detailsCell = new Listcell();
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
- Button details = new Button("details");
- detailsCell.appendChild(details);
- details.addEventListener("onClick", new EventListener() {
-
@Override
public void onEvent(Event event) throws Exception {
- createWindowServiceForm(serviceData);
+ createWindowServiceForm(service.getWikittyId());
}
});
item.appendChild(typeCell);
item.appendChild(addressCell);
- item.appendChild(detailsCell);
}
};
}
Deleted: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceData.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceData.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceData.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,72 +0,0 @@
-/*
- * #%L
- * Bonzoms : bonzoms-zk
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package org.chorem.bonzoms.ui;
-
-import org.chorem.data.bonzoms.Address;
-import org.chorem.data.bonzoms.AddressImpl;
-import org.chorem.data.bonzoms.Service;
-import org.chorem.data.bonzoms.ServiceImpl;
-
-/**
- *
- * @author sherkhan
- */
-public class ServiceData {
-
- protected Service service = new ServiceImpl();
- protected Address address = new AddressImpl();
-
- public ServiceData() {}
-
- public ServiceData(Service service, Address address) {
- if (service != null) {
- this.service = service;
- }
- if (address != null) {
- this.address = address;
- }
- }
-
- /*
- * Setters
- */
- public void setService(Service service) {
- this.service = service;
- }
-
- public void setAddress(Address address) {
- this.address = address;
- }
-
- /*
- * Getters
- */
- public Service getService() {
- return service;
- }
-
- public Address getAddress() {
- return address;
- }
-}
Modified: 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 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceFormController.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,12 +1,16 @@
package org.chorem.bonzoms.ui;
import org.chorem.data.bonzoms.Address;
+import org.chorem.data.bonzoms.AddressImpl;
import org.chorem.data.bonzoms.Service;
+import org.chorem.data.bonzoms.ServiceImpl;
import org.zkoss.zk.ui.Component;
+import org.zkoss.zk.ui.Executions;
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.Window;
/**
*
@@ -16,51 +20,62 @@
protected Model model = new Model();
- protected ServiceData serviceData = new ServiceData();
+ protected Service service = new ServiceImpl();
+ protected Address address = new AddressImpl();
- public final static String EVENT_ON_SAVE_SERVICE = "onSaveService";
+ public static final String EVENT_ON_SAVE_SERVICE = "onSaveService";
+ public static final String EVENT_ON_CLOSE_SERVICE = "onCloseService";
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- ServiceData data = (ServiceData) arg.get("serviceData");
- if (data != null) {
- initService(data);
+ Window win = (Window) self;
+ win.doModal();
+ win.setPosition("center");
+ String serviceId = Executions.getCurrent().getParameter("serviceId");
+ if (serviceId == null) {
+ serviceId = (String) arg.get("serviceId");
}
+ if (serviceId != null) {
+ initService(serviceId);
+ }
DataBinder binder = new AnnotateDataBinder(comp);
binder.bindBean("composer", this);
binder.loadAll();
}
- protected void initService(ServiceData data) {
- String id = data.getService().getAddress();
- Address address = model.retrieveAddressById(id);
- if (address != null) {
- data.setAddress(address);
- }
- serviceData = data;
+ protected void initService(String id) {
+ service = model.retrieveServiceById(id);
+ address = model.retrieveAddressById(service.getAddress());
}
/*
* Events
*/
+ public void onClose() {
+ System.out.println("CLOSE");
+ Events.postEvent(EVENT_ON_CLOSE_SERVICE, this.self, null);
+ }
+
public void onClick$saveService() {
- Address address = model.createAddress(serviceData.getAddress());
- serviceData.getService().setAddress(address.getWikittyId());
- serviceData.setAddress(address);
+ address = model.createAddress(address);
+ service.setAddress(address.getWikittyId());
- Service service = model.updateService(serviceData.getService());
- serviceData.setService(service);
+ service = model.updateService(service);
- Events.postEvent(EVENT_ON_SAVE_SERVICE, this.self, serviceData);
-
+ Events.postEvent(EVENT_ON_SAVE_SERVICE, this.self, service);
+ System.out.println(this.self.getParent());
self.detach();
}
/*
* Getters
*/
- public ServiceData getServiceData() {
- return serviceData;
+ public Service getService() {
+ return service;
}
+
+ public Address getAddress() {
+ return address;
+ }
}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceModel.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceModel.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -2,6 +2,11 @@
import java.util.ArrayList;
import java.util.List;
+
+import org.chorem.data.bonzoms.Service;
+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;
@@ -12,42 +17,102 @@
*/
public class ServiceModel extends AbstractListModel implements BindingListModel {
- protected List<ServiceData> services = new ArrayList<ServiceData>();
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected Criteria criteria = null;
+ protected int itemsByPage = 1;
+ protected int size = 0;
+ protected int currentPage = 0;
+ protected List<Service> services = new ArrayList<Service>();
+
+ public ServiceModel(int itemsByPage) {
+ this.itemsByPage = itemsByPage;
+ size = getSize();
+ createList();
+ }
+
@Override
public Object getElementAt(int index) {
- return services.get(index);
+ pageChange(index);
+ int indexList = index % itemsByPage;
+ Service Service = services.get(indexList);
+ return Service;
}
@Override
public int getSize() {
- return services.size();
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<Service> result = proxy.findAllByCriteria(Service.class, criteria);
+ return result.getNumFound();
}
-
- @Override
- public int indexOf(Object obj) {
- return services.indexOf(obj);
+
+ @Override
+ public int indexOf(Object obj) {
+ int index = 0;
+ String id = ((Service) obj).getWikittyId();
+ for (Service data : services) {
+ String dataId = data.getWikittyId();
+ if (id.equals(dataId)) {
+ index = services.indexOf(data) + (itemsByPage * currentPage);
+ break;
+ }
+ }
+ return index;
+ }
+
+ public void addData(Service newData) {
+ size = getSize();
+ fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
}
- public void setServices(List<ServiceData> services) {
- this.services = services;
- fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
- }
-
- public void addData(ServiceData newData) {
- services.add(newData);
- }
-
- public void removeData(ServiceData data) {
- int interval = services.indexOf(data);
- services.remove(data);
+ public void removeData(Service data) {
+ int interval = services.indexOf(data) + (itemsByPage * currentPage);
+ proxy.delete(data.getWikittyId());
fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
}
public void reloadContent(int rowIndex) {
+ int indexList = rowIndex % itemsByPage;
+ Service Service = services.get(indexList);
+ Service = proxy.restore(Service.class, Service.getWikittyId());
fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
}
public void reload() {
+ createList();
+ size = getSize();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
+
+ public Criteria getCriteria() {
+ return criteria;
+ }
+
+ public void setCriteria(Criteria criteria) {
+ if (criteria != null) {
+ this.criteria = criteria;
+ reload();
+ }
+ }
+
+ public void pageChange(int index) {
+ int item = index;
+ int page = item / itemsByPage;
+ if (page != currentPage ) {
+ currentPage = page;
+ createList();
+ }
+ }
+
+ protected void createList() {
+ if (criteria != null) {
+ int first = currentPage * itemsByPage;
+ int end = first + (itemsByPage - 1);
+ Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
+ List<Service> Services = proxy.findAllByCriteria(Service.class, criteria).getAll();
+ this.services = new ArrayList<Service>(Services);
+ }
+ }
}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/WikittyModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/WikittyModel.java 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/WikittyModel.java 2010-08-04 16:27:57 UTC (rev 121)
@@ -2,7 +2,12 @@
import java.util.ArrayList;
import java.util.List;
+
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.PagedResult;
import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyService;
import org.zkoss.zkplus.databind.BindingListModel;
import org.zkoss.zul.AbstractListModel;
import org.zkoss.zul.event.ListDataEvent;
@@ -13,44 +18,108 @@
*/
public class WikittyModel extends AbstractListModel implements BindingListModel {
- protected List<Wikitty> wikitties = new ArrayList<Wikitty>();
-
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected Criteria criteria = null;
+ protected int itemsByPage = 1;
+ protected int size = 0;
+ protected int currentPage = 0;
+ protected List<Wikitty> wikitties = new ArrayList<Wikitty>();
+
+ public WikittyModel(int itemsByPage) {
+ this.itemsByPage = itemsByPage;
+ size = getSize();
+ createList();
+ }
+
@Override
public Object getElementAt(int index) {
- return wikitties.get(index);
+ pageChange(index);
+ int indexList = index % itemsByPage;
+ Wikitty Wikitty = wikitties.get(indexList);
+ return Wikitty;
}
@Override
public int getSize() {
- return wikitties.size();
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ WikittyService service = proxy.getWikittyService();
+ String securityToken = proxy.getSecurityToken();
+ PagedResult<?> result = service.findAllByCriteria(securityToken, criteria);
+ return result.getNumFound();
}
-
- @Override
- public int indexOf(Object obj) {
- return wikitties.indexOf(obj);
- }
-
- public void setWikitties(List<Wikitty> companies) {
- wikitties = companies;
- fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
- }
-
+
+ @Override
+ public int indexOf(Object obj) {
+ int index = 0;
+ String id = ((Wikitty) obj).getId();
+ for (Wikitty data : wikitties) {
+ String dataId = data.getId();
+ if (id.equals(dataId)) {
+ index = wikitties.indexOf(data) + (itemsByPage * currentPage);
+ break;
+ }
+ }
+ return index;
+ }
+
public void addData(Wikitty newData) {
- wikitties.add(newData);
- fireEvent(ListDataEvent.INTERVAL_ADDED, wikitties.size() - 1, wikitties.size() - 1);
+ size = getSize();
+ fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
}
public void removeData(Wikitty data) {
- int interval = wikitties.indexOf(data);
- wikitties.remove(data);
+ int interval = wikitties.indexOf(data) + (itemsByPage * currentPage);
+ proxy.delete(data.getId());
fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
}
public void reloadContent(int rowIndex) {
+ int indexList = rowIndex % itemsByPage;
+ Wikitty wikitty = wikitties.get(indexList);
+ WikittyService service = proxy.getWikittyService();
+ String securityToken = proxy.getSecurityToken();
+ wikitty = service.restore(securityToken, wikitty.getId());
fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
}
public void reload() {
+ createList();
+ size = getSize();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
+
+ public Criteria getCriteria() {
+ return criteria;
+ }
+
+ public void setCriteria(Criteria criteria) {
+ if (criteria != null) {
+ this.criteria = criteria;
+ reload();
+ }
+ }
+
+ public void pageChange(int index) {
+ int item = index;
+ int page = item / itemsByPage;
+ if (page != currentPage ) {
+ currentPage = page;
+ createList();
+ }
+ }
+
+ protected void createList() {
+ if (criteria != null) {
+ int first = currentPage * itemsByPage;
+ int end = first + (itemsByPage - 1);
+ Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
+ WikittyService service = proxy.getWikittyService();
+ String securityToken = proxy.getSecurityToken();
+ PagedResult<?> result = service.findAllByCriteria(securityToken, criteria);
+ this.wikitties = new ArrayList<Wikitty>(result.cast(securityToken, service).getAll());
+ }
+ }
}
Modified: trunk/bonzoms-ui-zk/src/main/resources/wikitty-jdbc-config.properties
===================================================================
--- trunk/bonzoms-ui-zk/src/main/resources/wikitty-jdbc-config.properties 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/resources/wikitty-jdbc-config.properties 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,5 +1,5 @@
#Connection parameters
jdbc.con.driver=org.h2.Driver
-jdbc.con.host=jdbc:h2:file:~/.bonzoms/localdb/localdb
+jdbc.con.host=jdbc:h2:file:~/.chorem-data/localdb/localdb
jdbc.con.userName=sa
jdbc.con.password=
Modified: trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/webapp/companyFormPage.zul 2010-08-04 16:27:57 UTC (rev 121)
@@ -11,23 +11,23 @@
<vbox>
<label value="Name" />
- <textbox value="@{composer.companyData.company.name, save-when='saveCompany.onClick'}" />
+ <textbox value="@{composer.company.name, save-when='saveCompany.onClick'}" />
<label value="Type" />
- <textbox value="@{composer.companyData.company.type, save-when='saveCompany.onClick'}" />
+ <textbox value="@{composer.company.type, save-when='saveCompany.onClick'}" />
<label value="Fax" />
- <textbox value="@{composer.companyData.company.fax, save-when='saveCompany.onClick'}" />
+ <textbox value="@{composer.company.fax, save-when='saveCompany.onClick'}" />
<label value="Web site" />
- <textbox value="@{composer.companyData.company.webSite, save-when='saveCompany.onClick'}" />
+ <textbox value="@{composer.company.webSite, save-when='saveCompany.onClick'}" />
</vbox>
<space />
<vbox>
- <listbox id="addressListbox" model="@{composer.companyData.addressesModel}" width="200px">
+ <listbox id="addressListbox" model="@{composer.addressesModel}" width="200px">
<listitem self="@{each='address'}">
<listcell>
<groupbox>
@@ -69,7 +69,7 @@
<groupbox>
<caption label="Phones" />
- <listbox id="phoneListbox" model="@{composer.companyData.phonesModel}" width="310px">
+ <listbox id="phoneListbox" model="@{composer.phonesModel}" width="310px">
<listhead sizable="true">
<listheader label="Name" />
<listheader label="Phone Number" />
@@ -96,7 +96,7 @@
<groupbox>
<caption label="Emails" />
- <listbox id="emailListbox" model="@{composer.companyData.emailsModel}" width="310px">
+ <listbox id="emailListbox" model="@{composer.emailsModel}" width="310px">
<listhead sizable="true">
<listheader label="Name" />
<listheader label="Email" />
Modified: trunk/bonzoms-ui-zk/src/main/webapp/companyPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/companyPage.zul 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/webapp/companyPage.zul 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,11 +1,11 @@
<?page id="company" title="Company" 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="company"?>
+<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./company"?>
<window id="company" apply="org.chorem.bonzoms.ui.CompanyController">
Companies: <toolbarbutton id="newCompany" label="Add new company" />
<listbox autopaging="true" mold="paging" id="companyListBox" rows="20" model="@{company$composer.companyModel}"
- itemRenderer="@{company$composer.companyDataRenderer}">
+ itemRenderer="@{company$composer.companyRenderer}">
<listhead>
<listheader label="Name" />
<listheader label="Web site" />
@@ -13,7 +13,6 @@
<listheader label="Emails" />
<listheader label="Address" />
<listheader label="Type" />
- <listheader label="details" />
</listhead>
</listbox>
</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-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul 2010-08-04 16:27:57 UTC (rev 121)
@@ -27,8 +27,6 @@
<space />
<vbox>
- <label value="Name" />
- <textbox value="@{composer.contract.name, save-when='saveContract.onClick'}" />
<label value="Start" />
<datebox format="yyyy/MM/dd" value="@{composer.contract.start, save-when='saveContract.onClick'}" />
Modified: trunk/bonzoms-ui-zk/src/main/webapp/contractPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/contractPage.zul 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/webapp/contractPage.zul 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,9 +1,9 @@
<?page id="contract" title="Contract" 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="contract"?>
+<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./contract"?>
<window id="contract" apply="org.chorem.bonzoms.ui.ContractController">
- Employees: <toolbarbutton id="newContract" label="Add new contract" />
+ Contracts: <toolbarbutton id="newContract" label="Add new contract" />
<listbox autopaging="true" mold="paging" id="contractListBox" rows="20" model="@{contract$composer.contractsModel}"
itemRenderer="@{contract$composer.contractRenderer}">
<listhead>
@@ -12,7 +12,6 @@
<listheader label="Working time" />
<listheader label="Advantages" />
<listheader label="Description" />
- <listheader label="Details" />
</listhead>
</listbox>
</window>
\ No newline at end of file
Modified: trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul 2010-08-04 16:27:57 UTC (rev 121)
@@ -38,8 +38,6 @@
<space />
<vbox>
- <label value="Name" />
- <textbox value="@{contract.name, save-when='save.onClick'}" />
<label value="Start" />
<datebox format="yyyy/MM/dd" value="@{contract.start, save-when='save.onClick'}" />
@@ -67,5 +65,5 @@
</hbox>
</groupbox>
<button id="save" label="Save" />
-
+ <include id="openContract" />
</window>
\ No newline at end of file
Modified: trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul 2010-08-04 16:27:57 UTC (rev 121)
@@ -14,20 +14,50 @@
<separator />
<label value="email" />
- <textbox value="@{composer.employeeData.employee.workingEmail, save-when='saveEmployee.onClick'}" constraint="/.+@.+\.[a-z]+/" />
+ <textbox value="@{composer.employee.workingEmail, save-when='saveEmployee.onClick'}" constraint="/.+@.+\.[a-z]+/" />
<label value="Phone number" />
- <textbox value="@{composer.employeeData.employee.workingPhone, save-when='saveEmployee.onClick'}" />
+ <textbox value="@{composer.employee.workingPhone, save-when='saveEmployee.onClick'}" />
<toolbarbutton id="editService" label="Edit service :" />
- <listbox id="serviceListbox" width="100px" model="@{composer.serviceModel}" mold="select" itemRenderer="@{composer.serviceDataRenderer}">
- </listbox>
+ <bandbox id="serviceBandbox" mold="rounded">
+ <bandpopup>
+ <vbox>
+ <listbox width="200px" id="serviceListbox" model="@{composer.serviceModel}" itemRenderer="@{composer.serviceRenderer}">
+
+ </listbox>
+ </vbox>
+ </bandpopup>
+ </bandbox>
+
<toolbarbutton id="editCompany" label="Edit company :" />
- <listbox id="companyListbox" width="100px" model="@{composer.companyModel}" mold="select" itemRenderer="@{composer.companyDataRenderer}">
- </listbox>
-
+ <bandbox id="companyBandbox" mold="rounded">
+ <bandpopup>
+ <vbox>
+ <listbox id="companyListbox" width="200px" model="@{composer.companyModel}" itemRenderer="@{composer.companyRenderer}">
+ <listhead>
+ <listheader label="Name" />
+ <listheader label="Type" />
+ </listhead>
+ </listbox>
+ </vbox>
+ </bandpopup>
+ </bandbox>
+
<toolbarbutton id="editPerson" label="Edit person" />
+ <bandbox id="personBandbox" mold="rounded">
+ <bandpopup>
+ <vbox>
+ <listbox id="personListbox" width="200px" model="@{composer.personModel}" itemRenderer="@{composer.personRenderer}">
+ <listhead>
+ <listheader label="First name" />
+ <listheader label="Last name" />
+ </listhead>
+ </listbox>
+ </vbox>
+ </bandpopup>
+ </bandbox>
<toolbarbutton id="editContracts" label="Edit contracts" />
@@ -40,19 +70,19 @@
<caption label="Working address" />
<vbox>
<label value="Adress1" />
- <textbox value="@{composer.employeeData.workingAddress.address1, save-when='saveEmployee.onClick'}" />
+ <textbox value="@{composer.workingAddress.address1, save-when='saveEmployee.onClick'}" />
<label value="Adress2" />
- <textbox value="@{composer.employeeData.workingAddress.address2, save-when='saveEmployee.onClick'}" />
+ <textbox value="@{composer.workingAddress.address2, save-when='saveEmployee.onClick'}" />
<label value="Zip code" />
- <textbox value="@{composer.employeeData.workingAddress.zipCode, save-when='saveEmployee.onClick'}" />
+ <textbox value="@{composer.workingAddress.zipCode, save-when='saveEmployee.onClick'}" />
<label value="City" />
- <textbox value="@{composer.employeeData.workingAddress.city, save-when='saveEmployee.onClick'}" />
+ <textbox value="@{composer.workingAddress.city, save-when='saveEmployee.onClick'}" />
<label value="Country" />
- <textbox value="@{composer.employeeData.workingAddress.country, save-when='saveEmployee.onClick'}" />
+ <textbox value="@{composer.workingAddress.country, save-when='saveEmployee.onClick'}" />
</vbox>
</groupbox>
Modified: trunk/bonzoms-ui-zk/src/main/webapp/employeePage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/employeePage.zul 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/webapp/employeePage.zul 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,17 +1,16 @@
<?page id="employee" title="Employee" 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="employee"?>
+<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./employee"?>
<window id="employee" apply="org.chorem.bonzoms.ui.EmployeeController">
Employees: <toolbarbutton id="newEmployee" label="Add new employee" />
- <listbox autopaging="true" mold="paging" id="employeeListBox" rows="20" model="@{employee$composer.employeeModel}"
+ <listbox autopaging="true" mold="paging" id="employeeListbox" rows="20" model="@{employee$composer.employeeModel}"
itemRenderer="@{employee$composer.employeeRenderer}">
<listhead>
<listheader label="First name" />
<listheader label="Last name" />
<listheader label="email" />
<listheader label="Working phone" />
- <listheader label="Details" />
</listhead>
</listbox>
</window>
\ No newline at end of file
Modified: trunk/bonzoms-ui-zk/src/main/webapp/index.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/index.zul 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/webapp/index.zul 2010-08-04 16:27:57 UTC (rev 121)
@@ -17,9 +17,9 @@
<vbox id="content" >
<hbox>
Search: <textbox id="searchBox" /> <button label="Search" id="searchButton" />
- <include src="employeePage.zul" />
</hbox>
<separator bar="true" />
+ <include id="include" src="employeePage.zul" />
</vbox>
</hbox>
</window>
\ No newline at end of file
Modified: trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul 2010-08-04 16:27:57 UTC (rev 121)
@@ -5,17 +5,17 @@
<hbox>
<vbox>
<label value="First name" />
- <textbox value="@{composer.personData.person.firstName, save-when='savePerson.onClick'}" />
+ <textbox value="@{composer.person.firstName, save-when='savePerson.onClick'}" />
<label value="Last name" />
- <textbox value="@{composer.personData.person.lastName, save-when='savePerson.onClick'}" />
+ <textbox value="@{composer.person.lastName, save-when='savePerson.onClick'}" />
<label value="Birthday" />
- <datebox format="yyyy/MM/dd" value="@{composer.personData.person.birthDay, save-when='savePerson.onClick'}" />
+ <datebox format="yyyy/MM/dd" value="@{composer.person.birthDay, save-when='savePerson.onClick'}" />
</vbox>
<space />
<vbox>
- <listbox id="addressListbox" model="@{composer.personData.addressesModel}" width="200px">
+ <listbox id="addressListbox" model="@{composer.addressesModel}" width="200px">
<listitem self="@{each='address'}">
<listcell>
<groupbox>
@@ -60,7 +60,7 @@
<caption label="Phones" />
- <listbox id="phoneListbox" model="@{composer.personData.phonesModel}" width="310px">
+ <listbox id="phoneListbox" model="@{composer.phonesModel}" width="310px">
<listhead sizable="true">
<listheader label="Name" />
<listheader label="Phone Number" />
@@ -87,7 +87,7 @@
<caption label="Emails" />
- <listbox id="emailListbox" model="@{composer.personData.emailsModel}" width="310px">
+ <listbox id="emailListbox" model="@{composer.emailsModel}" width="310px">
<listhead sizable="true">
<listheader label="Name" />
<listheader label="Email" />
Modified: trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,16 +1,15 @@
<?page id="person" title="Person" 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="person"?>
+<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./person"?>
<window id="person" apply="org.chorem.bonzoms.ui.PersonController">
- Companies: <toolbarbutton id="newPerson" label="Add new person" />
+ Persons: <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
Modified: trunk/bonzoms-ui-zk/src/main/webapp/resultPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/resultPage.zul 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/webapp/resultPage.zul 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,6 +1,6 @@
<?page id="result" title="Result" 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="result"?>
+<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./result"?>
<window id="result" apply="org.chorem.bonzoms.ui.ResultController">
<listbox autopaging="true" mold="paging" id="wikittyListBox" rows="10" model="@{result$composer.wikittyModel}"
Modified: trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul 2010-08-04 16:27:57 UTC (rev 121)
@@ -10,25 +10,25 @@
<vbox>
<label value="Type" />
- <textbox value="@{composer.serviceData.service.type, save-when='saveService.onClick'}" />
+ <textbox value="@{composer.service.type, save-when='saveService.onClick'}" />
<label value="Name" />
- <textbox value="@{composer.serviceData.address.name, save-when='saveService.onClick'}" />
+ <textbox value="@{composer.address.name, save-when='saveService.onClick'}" />
<label value="Address 1" />
- <textbox value="@{composer.serviceData.address.address1, save-when='saveService.onClick'}" />
+ <textbox value="@{composer.address.address1, save-when='saveService.onClick'}" />
<label value="Address 2" />
- <textbox value="@{composer.serviceData.address.address2, save-when='saveService.onClick'}" />
+ <textbox value="@{composer.address.address2, save-when='saveService.onClick'}" />
<label value="Zip code" />
- <textbox value="@{composer.serviceData.address.zipCode, save-when='saveService.onClick'}" />
+ <textbox value="@{composer.address.zipCode, save-when='saveService.onClick'}" />
<label value="City" />
- <textbox value="@{composer.serviceData.address.city, save-when='saveService.onClick'}" />
+ <textbox value="@{composer.address.city, save-when='saveService.onClick'}" />
<label value="Country" />
- <textbox value="@{composer.serviceData.address.country, save-when='saveService.onClick'}" />
+ <textbox value="@{composer.address.country, save-when='saveService.onClick'}" />
</vbox>
Modified: trunk/bonzoms-ui-zk/src/main/webapp/servicePage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/servicePage.zul 2010-07-27 12:55:07 UTC (rev 120)
+++ trunk/bonzoms-ui-zk/src/main/webapp/servicePage.zul 2010-08-04 16:27:57 UTC (rev 121)
@@ -1,15 +1,14 @@
<?page id="service" title="service" 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="service"?>
+<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./service"?>
<window id="service" apply="org.chorem.bonzoms.ui.ServiceController">
- Employees: <toolbarbutton id="newService" label="Add new service" />
+ Services: <toolbarbutton id="newService" label="Add new service" />
<listbox autopaging="true" mold="paging" id="serviceListBox" rows="20" model="@{service$composer.serviceModel}"
itemRenderer="@{service$composer.serviceDataRenderer}">
<listhead>
<listheader label="Type" />
<listheader label="Address" />
- <listheader label="Details" />
</listhead>
</listbox>
</window>
\ No newline at end of file
1
0