Bonzoms-commits
Threads by month
- ----- 2026 -----
- August
- July
- 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-29 16:22:27 +0200 (Sun, 29 Aug 2010)
New Revision: 136
Url: http://chorem.org/repositories/revision/bonzoms/136
Log:
Utilisation de mavenpom4redmine 2.2.4
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-08-23 14:58:23 UTC (rev 135)
+++ trunk/pom.xml 2010-08-29 14:22:27 UTC (rev 136)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>2.2.3</version>
+ <version>2.2.4</version>
</parent>
<groupId>org.chorem</groupId>
1
0
r135 - trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui
by bbrossaud@users.chorem.org Aug. 23, 2010
by bbrossaud@users.chorem.org Aug. 23, 2010
Aug. 23, 2010
Author: bbrossaud
Date: 2010-08-23 16:58:23 +0200 (Mon, 23 Aug 2010)
New Revision: 135
Url: http://chorem.org/repositories/revision/bonzoms/135
Log:
change listbox functionne
Modified:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemListboxMacro.java
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemListboxMacro.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemListboxMacro.java 2010-08-23 10:37:30 UTC (rev 134)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemListboxMacro.java 2010-08-23 14:58:23 UTC (rev 135)
@@ -69,7 +69,6 @@
}
}
});
-
}
protected void initListbox() {
1
0
r134 - in trunk/bonzoms-ui-zk/src/main: java/org/chorem/bonzoms/ui webapp webapp/WEB-INF webapp/macros
by bbrossaud@users.chorem.org Aug. 23, 2010
by bbrossaud@users.chorem.org Aug. 23, 2010
Aug. 23, 2010
Author: bbrossaud
Date: 2010-08-23 12:37:30 +0200 (Mon, 23 Aug 2010)
New Revision: 134
Url: http://chorem.org/repositories/revision/bonzoms/134
Log:
replace export by expense and remove bugs with expense report ==> refresh works
Added:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CategoryBandboxMacro.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CategoryModel.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemListboxMacro.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemModel.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportMacro.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportModel.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/SubCategoryModel.java
trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/sun-web.xml
trunk/bonzoms-ui-zk/src/main/webapp/expenseReportFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/expenseReportItemFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/expenseReportPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/macros/categoryBandboxMacro.zul
trunk/bonzoms-ui-zk/src/main/webapp/macros/expenseReportItemListboxMacro.zul
Removed:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemListboxMacro.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportMacro.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportModel.java
trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/exportReportItemFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/macros/exportReportItemListboxMacro.zul
Modified:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyController.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/EmployeeController.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/ResultController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceController.java
trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml
trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul
trunk/bonzoms-ui-zk/src/main/webapp/macros/personBandboxMacro.zul
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -24,6 +24,7 @@
package org.chorem.bonzoms.ui;
import org.zkoss.zk.ui.util.GenericForwardComposer;
+import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Include;
@@ -35,13 +36,20 @@
protected Textbox searchBox;
protected Include include;
+ protected Checkbox allCheckbox;
+
+ protected String src = "employeePage.zul";
+
/*
* Events
*/
public void onOK$searchBox() {
String search = searchBox.getValue();
+ if (allCheckbox.isChecked()) {
+ src = "resultPage.zul";
+ }
include.setSrc(null);
- include.setSrc("resultPage.zul?search=" + search);
+ include.setSrc(src + "?search=" + search);
}
public void onClick$searchButton() {
@@ -50,31 +58,37 @@
public void onClick$employees() {
include.setSrc(null);
- include.setSrc("employeePage.zul");
+ src = "employeePage.zul";
+ include.setSrc(src);
}
public void onClick$persons() {
include.setSrc(null);
- include.setSrc("personPage.zul");
+ src = "personPage.zul";
+ include.setSrc(src);
}
public void onClick$companies() {
include.setSrc(null);
- include.setSrc("companyPage.zul");
+ src = "companyPage.zul";
+ include.setSrc(src);
}
public void onClick$services() {
include.setSrc(null);
- include.setSrc("servicePage.zul");
+ src = "servicePage.zul";
+ include.setSrc(src);
}
public void onClick$contracts() {
include.setSrc(null);
- include.setSrc("contractPage.zul");
+ src = "contractPage.zul";
+ include.setSrc(src);
}
- public void onClick$exportReports() {
+ public void onClick$expenseReports() {
include.setSrc(null);
- include.setSrc("exportReportPage.zul");
+ src = "expenseReportPage.zul";
+ include.setSrc(src);
}
}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CategoryBandboxMacro.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CategoryBandboxMacro.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CategoryBandboxMacro.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,180 @@
+package org.chorem.bonzoms.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import org.chorem.data.bonzoms.Category;
+import org.chorem.data.bonzoms.SubCategory;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Search;
+import org.zkoss.zk.ui.HtmlMacroComponent;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zk.ui.event.EventListener;
+import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zul.Bandbox;
+import org.zkoss.zul.Grid;
+import org.zkoss.zul.Listbox;
+import org.zkoss.zul.Listcell;
+import org.zkoss.zul.Listhead;
+import org.zkoss.zul.Listheader;
+import org.zkoss.zul.Listitem;
+import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Paging;
+import org.zkoss.zul.Row;
+import org.zkoss.zul.RowRenderer;
+import org.zkoss.zul.event.PagingEvent;
+
+public class CategoryBandboxMacro extends HtmlMacroComponent {
+
+ protected final int pageSize = 2;
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected CategoryModel categoryModel = new CategoryModel(pageSize);
+ protected String subCategoryId = null;
+
+ @Override
+ public void afterCompose() {
+ super.afterCompose();
+ initPaging();
+ initBandbox();
+ initGrid();
+ }
+
+ protected void initPaging() {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Category.EXT_CATEGORY).criteria();
+ categoryModel.setCriteria(criteria);
+ int totalSize = categoryModel.getTotalSize();
+ Paging categoryPaging = (Paging) getFellow("categoryPaging");
+ categoryPaging.setTotalSize(totalSize);
+ categoryPaging.setPageSize(pageSize);
+ categoryPaging.addEventListener("onPaging", new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ PagingEvent pagingEvent = (PagingEvent) event;
+ int activePage = pagingEvent.getActivePage();
+ categoryModel.setActivePage(activePage);
+ }
+ });
+ }
+
+ protected void initBandbox() {
+ final Bandbox categoryBandbox = (Bandbox) getFellow("categoryBandbox");
+ categoryBandbox.addEventListener(Events.ON_OK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String search = categoryBandbox.getValue();
+ Search query = Search.query().eq(Element.ELT_EXTENSION, Category.EXT_CATEGORY);
+ if (search != null && !search.isEmpty()) {
+ query = query.keyword(search);
+ }
+ Criteria criteria = query.criteria();
+ categoryModel.setCriteria(criteria);
+ int totalSize = categoryModel.getTotalSize();
+ Paging categoryPaging = (Paging) getFellow("categoryPaging");
+ categoryPaging.setTotalSize(totalSize);
+ categoryPaging.setActivePage(0);
+ categoryBandbox.open();
+ }
+ });
+ }
+
+ protected void initGrid() {
+ Grid categoryGrid = (Grid) getFellow("categoryGrid");
+ categoryGrid.setModel(categoryModel);
+ RowRenderer renderer = getCategoryRenderer();
+ categoryGrid.setRowRenderer(renderer);
+ }
+
+ /*
+ * Renderer
+ */
+ protected void setSubCategoryHeader(Listbox listbox, Category category) {
+ if (listbox != null) {
+ Listhead head = new Listhead();
+ listbox.appendChild(head);
+ String name = category.getName();
+ if (name == null) {
+ name = "";
+ }
+ Listheader header = new Listheader(name);
+ head.appendChild(header);
+ }
+ }
+
+ protected void createSubCategoryListbox(Listbox listbox, Set<String> subCategoryIds) {
+ if (subCategoryIds != null && !subCategoryIds.isEmpty()) {
+ List<SubCategory> subCategories = proxy.restore(SubCategory.class, new ArrayList<String>(subCategoryIds));
+ SubCategoryModel subCategoryModel = new SubCategoryModel();
+ subCategoryModel.setSubCategories(subCategories);
+ listbox.setModel(subCategoryModel);
+ listbox.setItemRenderer(new ListitemRenderer() {
+
+ @Override
+ public void render(Listitem item, Object data) throws Exception {
+ item.setValue(data);
+ final SubCategory subCategory = (SubCategory) data;
+ final String name = subCategory.getName();
+ Listcell cell = new Listcell(name);
+ item.appendChild(cell);
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ Bandbox categoryBandbox = (Bandbox) getFellow("categoryBandbox");
+ subCategoryId = subCategory.getWikittyId();
+ categoryBandbox.setValue(name);
+ categoryBandbox.close();
+ }
+ });
+ }
+ });
+ }
+ }
+
+ public RowRenderer getCategoryRenderer() {
+ return new RowRenderer() {
+
+ @Override
+ public void render(Row row, Object data) throws Exception {
+ row.setValue(data);
+ final Category category = (Category) data;
+ Set<String> subCategoryIds = category.getSubCategory();
+ Listbox listbox = new Listbox();
+ setSubCategoryHeader(listbox, category);
+ createSubCategoryListbox(listbox, subCategoryIds);
+ row.appendChild(listbox);
+
+ }
+ };
+ }
+
+ /*
+ * Setters
+ */
+ public void setSubCategoryId(String id) {
+ subCategoryId = id;
+ if (id != null) {
+ SubCategory subCategory = proxy.restore(SubCategory.class, id);
+ if (subCategory != null) {
+ Bandbox categoryBandbox = (Bandbox) getFellow("categoryBandbox");
+ String name = subCategory.getName();
+ if (name != null) {
+ categoryBandbox.setValue(name);
+ categoryBandbox.close();
+ }
+ }
+ }
+ }
+
+ /*
+ * Getters
+ */
+ public String getSubCategoryId() {
+ return subCategoryId;
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CategoryModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CategoryModel.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CategoryModel.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,116 @@
+package org.chorem.bonzoms.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.chorem.data.bonzoms.Category;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.PagedResult;
+import org.nuiton.wikitty.WikittyProxy;
+import org.zkoss.zkplus.databind.BindingListModel;
+import org.zkoss.zul.AbstractListModel;
+import org.zkoss.zul.event.ListDataEvent;
+
+public class CategoryModel extends AbstractListModel implements BindingListModel {
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected Criteria criteria = null;
+ protected int pageSize = 1;
+ protected int activePage = 0;
+ protected List<Category> categories = new ArrayList<Category>();
+
+ public CategoryModel(int pageSize) {
+ this.pageSize = pageSize;
+ createList();
+ }
+
+ @Override
+ public Object getElementAt(int index) {
+ Category category = categories.get(index);
+ return category;
+ }
+
+ @Override
+ public int getSize() {
+ return categories.size();
+ }
+
+ @Override
+ public int indexOf(Object obj) {
+ int index = -1;
+ String id = ((Category) obj).getWikittyId();
+ for (Category data : categories) {
+ String dataId = data.getWikittyId();
+ if (id.equals(dataId)) {
+ index = categories.indexOf(data);
+ break;
+ }
+ }
+ return index;
+ }
+
+ public int getTotalSize() {
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<Category> result = proxy.findAllByCriteria(Category.class, criteria);
+ return result.getNumFound();
+ }
+
+ public void addData(Category newData) {
+ int listSize = categories.size();
+ if (listSize < (pageSize)) {
+ categories.add(newData);
+ }
+ int size = getSize();
+ fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
+ }
+
+ public void removeData(Category data) {
+ int index = categories.indexOf(data);
+ if (index != -1) {
+ categories.remove(index);
+ fireEvent(ListDataEvent.INTERVAL_REMOVED, index, index);
+ }
+ }
+
+ public void reloadContent(int rowIndex) {
+ Category category = categories.get(rowIndex);
+ category = proxy.restore(Category.class, category.getWikittyId());
+ categories.set(rowIndex, category);
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
+ }
+
+ public void reload() {
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public Criteria getCriteria() {
+ return criteria;
+ }
+
+ public void setCriteria(Criteria criteria) {
+ if (criteria != null) {
+ this.criteria = criteria;
+ activePage = 0;
+ createList();
+ }
+ }
+
+ protected void createList() {
+ if (criteria != null) {
+ int first = activePage * pageSize;
+ int end = first + (pageSize - 1);
+ Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
+ List<Category> categories = proxy.findAllByCriteria(Category.class, criteria).getAll();
+ this.categories = new ArrayList<Category>(categories);
+ }
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public void setActivePage(int activePage) {
+ this.activePage = activePage;
+ createList();
+ }
+}
\ No newline at end of file
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-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyController.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -49,7 +49,12 @@
}
protected void initCompanyModel() {
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Company.EXT_COMPANY).criteria();
+ String search = Executions.getCurrent().getParameter("search");
+ 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);
}
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-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractController.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -49,12 +49,15 @@
super.doAfterCompose(comp);
initContractModel();
initPaging();
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT).criteria();
- contractModel.setCriteria(criteria);
}
protected void initContractModel() {
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT).criteria();
+ String search = Executions.getCurrent().getParameter("search");
+ Search query = Search.query().eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT);
+ if (search != null && !search.isEmpty()) {
+ query = query.keyword(search);
+ }
+ Criteria criteria = query.criteria();
contractModel.setCriteria(criteria);
}
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-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeController.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -31,6 +31,7 @@
import org.nuiton.wikitty.Criteria;
import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Keyword;
import org.nuiton.wikitty.search.Search;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
@@ -68,7 +69,12 @@
}
protected void initEmployeeModel() {
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Employee.EXT_EMPLOYEE).criteria();
+ String search = Executions.getCurrent().getParameter("search");
+ 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);
}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportController.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportController.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,227 @@
+package org.chorem.bonzoms.ui;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.chorem.data.bonzoms.ExpenseReport;
+import org.chorem.data.bonzoms.ExpenseReportItem;
+import org.chorem.data.bonzoms.Person;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Search;
+import org.zkoss.zk.ui.Component;
+import org.zkoss.zk.ui.Executions;
+import org.zkoss.zk.ui.SuspendNotAllowedException;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zk.ui.event.EventListener;
+import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zk.ui.event.ForwardEvent;
+import org.zkoss.zk.ui.util.GenericForwardComposer;
+import org.zkoss.zul.Listcell;
+import org.zkoss.zul.Listitem;
+import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Paging;
+import org.zkoss.zul.Window;
+import org.zkoss.zul.event.PagingEvent;
+
+public class ExpenseReportController extends GenericForwardComposer {
+
+ protected final int pageSize = 20;
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected ExpenseReportModel expenseReportModel = new ExpenseReportModel(pageSize);
+
+ protected Paging expenseReportPaging;
+ protected ExpenseReportItemListboxMacro expenseReportItemListboxMacro;
+
+ @Override
+ public void doAfterCompose(Component comp) throws Exception {
+ super.doAfterCompose(comp);
+ initEventMacro();
+ initExpenseReportModel();
+ initPaging();
+ }
+
+ protected void initEventMacro() {
+ expenseReportItemListboxMacro.addEventListener(ExpenseReportItemListboxMacro.EVENT_ON_ITEM_CHANGE, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String id = (String) event.getData();
+ if (id != null) {
+ ExpenseReport expenseReport = proxy.restore(ExpenseReport.class, id);
+ int rowIndex = expenseReportModel.indexOf(expenseReport);
+ if (rowIndex != -1) {
+ expenseReportModel.reloadContent(rowIndex);
+ }
+ }
+ }
+ });
+ }
+
+ protected void initExpenseReportModel() {
+ String search = Executions.getCurrent().getParameter("search");
+ Search query = Search.query().eq(Element.ELT_EXTENSION, ExpenseReport.EXT_EXPENSEREPORT);
+ if (search != null && !search.isEmpty()) {
+ query = query.keyword(search);
+ }
+ Criteria criteria = query.criteria();
+ expenseReportModel.setCriteria(criteria);
+ }
+
+ protected void initPaging() {
+ expenseReportPaging.setPageSize(pageSize);
+ int totalSize = expenseReportModel.getTotalSize();
+ expenseReportPaging.setTotalSize(totalSize);
+ }
+
+ protected void createWindowExpenseReportForm(String id) throws SuspendNotAllowedException, InterruptedException {
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ map.put("expenseReportId", id);
+ }
+ Window win = (Window) Executions.createComponents("expenseReportFormPage.zul", null, map);
+ win.addEventListener(ExpenseReportFormController.EVENT_ON_SAVE_EXPENSEREPORT, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String id = (String) event.getData();
+ ExpenseReport expenseReport = proxy.restore(ExpenseReport.class, id);
+ int rowIndex = expenseReportModel.indexOf(expenseReport);
+ if (rowIndex != -1) {
+ expenseReportModel.reloadContent(rowIndex);
+ } else {
+ expenseReportModel.addData(expenseReport);
+ }
+ int totalSize = expenseReportModel.getTotalSize();
+ expenseReportPaging.setTotalSize(totalSize);
+ }
+ });
+ }
+
+ protected Listcell getDateCell(Date date) {
+ Listcell cell = new Listcell();
+ if (date != null) {
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
+ String label = sdf.format(date);
+ cell.setLabel(label);
+ }
+ return cell;
+ }
+
+ protected Listcell getPersonCell(String id) {
+ Listcell cell = new Listcell();
+ if (id != null && !id.isEmpty()) {
+ Person person = proxy.restore(Person.class, id);
+ if (person != null) {
+ String name = "";
+ String str = person.getFirstName();
+ if (str != null) {
+ name += str + " ";
+ }
+ str = person.getLastName();
+ if (str != null) {
+ name += str;
+ }
+ cell.setLabel(name);
+ }
+ }
+ return cell;
+ }
+
+ protected Listcell getPriceCell(String id) {
+ Listcell cell = new Listcell();
+ if (id != null && !id.isEmpty()) {
+ Search search = Search.query().eq(Element.ELT_EXTENSION, ExpenseReportItem.EXT_EXPENSEREPORTITEM);
+ search = search.eq(ExpenseReportItem.FQ_FIELD_EXPENSEREPORTITEM_EXPENSEREPORT, id);
+ Criteria criteria = search.criteria();
+ List<ExpenseReportItem> items = proxy.findAllByCriteria(ExpenseReportItem.class, criteria).getAll();
+ double price = 0;
+ for (ExpenseReportItem item : items) {
+ Double amount = item.getTTCAmount();
+ if (amount != null) {
+ price += amount;
+ }
+ }
+ cell.setLabel(String.valueOf(price));
+ }
+ return cell;
+ }
+
+ /*
+ * Renderers
+ */
+ public ListitemRenderer getExpenseReportRenderer() {
+ return new ListitemRenderer() {
+
+ @Override
+ public void render(Listitem item, Object data) throws Exception {
+ item.setValue(data);
+ final ExpenseReport expenseReport = (ExpenseReport) data;
+
+ Listcell createdDateCell = getDateCell(expenseReport.getDate());
+ item.appendChild(createdDateCell);
+
+ Listcell numberCell = new Listcell(expenseReport.getNumber());
+ item.appendChild(numberCell);
+
+ Listcell stateCell = new Listcell(expenseReport.getState());
+ item.appendChild(stateCell);
+
+ Listcell personCell = getPersonCell(expenseReport.getPerson());
+ item.appendChild(personCell);
+
+ Listcell paymentDateCell = getDateCell(expenseReport.getPayment());
+ item.appendChild(paymentDateCell);
+
+ Listcell priceCell = getPriceCell(expenseReport.getWikittyId());
+ item.appendChild(priceCell);
+
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ createWindowExpenseReportForm(expenseReport.getWikittyId());
+ }
+ });
+
+ item.addEventListener(Events.ON_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ expenseReportItemListboxMacro.setExpenseReportId(expenseReport.getWikittyId());
+ }
+ });
+ }
+ };
+ }
+
+
+ /*
+ * Events
+ */
+ public void onClick$newExpenseReport() throws SuspendNotAllowedException, InterruptedException {
+ createWindowExpenseReportForm(null);
+ }
+
+ public void onPaging$expenseReportPaging(ForwardEvent event) {
+ PagingEvent pagingEvent = (PagingEvent) event.getOrigin();
+ int activePage = pagingEvent.getActivePage();
+ expenseReportModel.setActivePage(activePage);
+ }
+
+ /*
+ * Getters
+ */
+ public ExpenseReportModel getExpenseReportModel() {
+ return expenseReportModel;
+ }
+
+ /*
+ * Setters
+ */
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportFormController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportFormController.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportFormController.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,90 @@
+package org.chorem.bonzoms.ui;
+
+import java.util.Date;
+import java.util.List;
+
+import org.chorem.data.bonzoms.ExpenseReport;
+import org.chorem.data.bonzoms.ExpenseReportImpl;
+import org.nuiton.wikitty.WikittyProxy;
+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.Listitem;
+import org.zkoss.zul.Window;
+
+public class ExpenseReportFormController extends GenericForwardComposer {
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected ExpenseReport expenseReport = new ExpenseReportImpl();
+
+ protected PersonBandboxMacro personBandboxMacro;
+ protected Listbox stateListbox;
+
+ public static final String EVENT_ON_SAVE_EXPENSEREPORT = "onSaveExpenseReport";
+
+ @Override
+ public void doAfterCompose(Component comp) throws Exception {
+ super.doAfterCompose(comp);
+ Window win = (Window) self;
+ win.doModal();
+ win.setPosition("center");
+ String expenseReportId = Executions.getCurrent().getParameter("expenseReportId");
+ if (expenseReportId == null) {
+ expenseReportId = (String) arg.get("expenseReportId");
+ }
+ init(expenseReportId);
+ DataBinder binder = new AnnotateDataBinder(comp);
+ binder.bindBean("composer", this);
+ binder.loadAll();
+ }
+
+ protected void init(String id) {
+ if (id != null) {
+ ExpenseReport tmp = proxy.restore(ExpenseReport.class, id);
+ if (tmp != null) {
+ expenseReport = tmp;
+ }
+ } else {
+ expenseReport.setDate(new Date());
+ }
+ personBandboxMacro.setPersonId(expenseReport.getPerson());
+ List<Listitem> items = stateListbox.getItems();
+ String state = expenseReport.getState();
+ if (state != null) {
+ for (Listitem item : items) {
+ String label = item.getLabel();
+ if (state.equals(label)) {
+ stateListbox.setSelectedItem(item);
+ }
+ }
+ }
+ }
+
+ /*
+ * Events
+ */
+ public void onClick$saveExpenseReport() {
+ String id = personBandboxMacro.getPersonId();
+ expenseReport.setPerson(id);
+ expenseReport = proxy.store(expenseReport);
+ Events.postEvent(EVENT_ON_SAVE_EXPENSEREPORT, this.self, expenseReport.getWikittyId());
+ self.detach();
+ }
+
+ public void onSelect$stateListbox() {
+ Listitem item = stateListbox.getSelectedItem();
+ String state = item.getLabel();
+ expenseReport.setState(state);
+ }
+
+ /*
+ * Getters
+ */
+ public ExpenseReport getExpenseReport() {
+ return expenseReport;
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemFormController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemFormController.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemFormController.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,74 @@
+package org.chorem.bonzoms.ui;
+
+import org.chorem.data.bonzoms.ExpenseReportItem;
+import org.chorem.data.bonzoms.ExpenseReportItemImpl;
+import org.nuiton.wikitty.WikittyProxy;
+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;
+
+public class ExpenseReportItemFormController extends GenericForwardComposer {
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected ExpenseReportItem item = new ExpenseReportItemImpl();
+
+ protected CompanyBandboxMacro companyBandboxMacro;
+ protected ProjectBandboxMacro projectBandboxMacro;
+ protected CategoryBandboxMacro categoryBandboxMacro;
+
+ public static final String EVENT_ON_SAVE_EXPENSEREPORTITEM = "onSaveExpenseReportItem";
+
+ @Override
+ public void doAfterCompose(Component comp) throws Exception {
+ super.doAfterCompose(comp);
+ Window win = (Window) self;
+ win.doModal();
+ win.setPosition("center");
+ String id = Executions.getCurrent().getParameter("expenseReportItemId");
+ if (id == null) {
+ id = (String) arg.get("expenseReportItemId");
+ }
+ init(id);
+ DataBinder binder = new AnnotateDataBinder(comp);
+ binder.bindBean("composer", this);
+ binder.loadAll();
+ }
+
+ protected void init(String id) {
+ if (id != null) {
+ ExpenseReportItem obj = proxy.restore(ExpenseReportItem.class, id);
+ if (obj != null) {
+ item = obj;
+ }
+ }
+ projectBandboxMacro.setProjectId(item.getProject());
+ companyBandboxMacro.setCompanyId(item.getCompany());
+ categoryBandboxMacro.setSubCategoryId(item.getSubCategory());
+ }
+
+ /*
+ * Events
+ */
+ public void onClick$saveItem() {
+ String id = projectBandboxMacro.getProjectId();
+ item.setProject(id);
+ id = companyBandboxMacro.getCompanyId();
+ item.setCompany(id);
+ id = categoryBandboxMacro.getSubCategoryId();
+ item.setSubCategory(id);
+ item = proxy.store(item);
+ Events.postEvent(EVENT_ON_SAVE_EXPENSEREPORTITEM, this.self, item.getWikittyId());
+ self.detach();
+ }
+
+ /*
+ * Getter
+ */
+ public ExpenseReportItem getItem() {
+ return item;
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemListboxMacro.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemListboxMacro.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemListboxMacro.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,198 @@
+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.ExpenseReportItem;
+import org.chorem.data.bonzoms.SubCategory;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.search.Search;
+import org.zkoss.zk.ui.Executions;
+import org.zkoss.zk.ui.HtmlMacroComponent;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zk.ui.event.EventListener;
+import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zul.Button;
+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;
+
+public class ExpenseReportItemListboxMacro extends HtmlMacroComponent {
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected String expenseReportId = null;
+ protected ExpenseReportItemModel itemsModel = new ExpenseReportItemModel();
+
+ public static final String EVENT_ON_ITEM_CHANGE = "onItemChange";
+
+ @Override
+ public void afterCompose() {
+ super.afterCompose();
+ initButton();
+ initListbox();
+ }
+
+ protected void initButton() {
+ Button button = (Button) getFellow("deleteItem");
+ button.addEventListener(Events.ON_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ if (itemsModel.getSize() > 1) {
+ Listbox itemListbox = (Listbox) getFellow("itemListbox");
+ Listitem item = itemListbox.getSelectedItem();
+ if (item != null) {
+ ExpenseReportItem expenseReportItem = (ExpenseReportItem) item.getValue();
+ if (expenseReportItem != null) {
+ itemsModel.removeData(expenseReportItem);
+ String id = expenseReportItem.getWikittyId();
+ proxy.delete(id);
+ itemListbox.setSelectedIndex(0);
+ }
+ }
+ }
+ }
+ });
+ Button newItem = (Button) getFellow("newItem");
+ newItem.addEventListener(Events.ON_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ if (expenseReportId != null) {
+ createExpenseReportItemFormWindow(expenseReportId);
+ }
+ }
+ });
+
+ }
+
+ protected void initListbox() {
+ initItemsModel();
+ Listbox listbox = (Listbox) getFellow("itemListbox");
+ listbox.setModel(itemsModel);
+ ListitemRenderer renderer = getExpenseReportItemRenderer();
+ listbox.setItemRenderer(renderer);
+ }
+
+ protected void initItemsModel() {
+ if (expenseReportId != null) {
+ Criteria criteria = Search.query().eq(ExpenseReportItem.FQ_FIELD_EXPENSEREPORTITEM_EXPENSEREPORT, expenseReportId).criteria();
+ List<ExpenseReportItem> items = proxy.findAllByCriteria(ExpenseReportItem.class, criteria).getAll();
+ items = new ArrayList<ExpenseReportItem>(items);
+ itemsModel.setItems(items);
+ }
+ }
+
+ protected void sendItemEvent() {
+ Events.postEvent(EVENT_ON_ITEM_CHANGE, this, expenseReportId);
+ }
+
+ protected void createExpenseReportItemFormWindow(String id) {
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ map.put("expenseReportItemId", id);
+ }
+ Window win = (Window) Executions.createComponents("expenseReportItemFormPage.zul", null, map);
+ win.addEventListener(ExpenseReportItemFormController.EVENT_ON_SAVE_EXPENSEREPORTITEM, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String id = (String) event.getData();
+ ExpenseReportItem item = proxy.restore(ExpenseReportItem.class, id);
+ if (item.getExpenseReport() == null || item.getExpenseReport().isEmpty()) {
+ item.setExpenseReport(expenseReportId);
+ item = proxy.store(item);
+ }
+ int rowIndex = itemsModel.indexOf(item);
+ if (rowIndex != -1) {
+ itemsModel.reloadContent(rowIndex, item);
+ } else {
+ itemsModel.addData(item);
+ }
+ sendItemEvent();
+ }
+ });
+ }
+
+ protected Listcell getDateCell(Date date) {
+ Listcell cell = new Listcell();
+ if (date != null) {
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
+ String label = sdf.format(date);
+ cell.setLabel(label);
+ }
+ return cell;
+ }
+
+ protected Listcell getJustifyNumberCell(String number) {
+ Listcell cell = new Listcell();
+ if (number != null) {
+ cell.setLabel(number);
+ }
+ return cell;
+ }
+
+ protected Listcell getSubCategoryCell(String id) {
+ Listcell cell = new Listcell();
+ if (id != null) {
+ SubCategory sub = proxy.restore(SubCategory.class, id);
+ if (sub != null) {
+ cell.setLabel(sub.getName());
+ }
+ }
+ return cell;
+ }
+
+ /*
+ * Renderers
+ */
+ protected ListitemRenderer getExpenseReportItemRenderer() {
+ return new ListitemRenderer() {
+
+ @Override
+ public void render(Listitem item, Object data) throws Exception {
+ item.setValue(data);
+ final ExpenseReportItem expenseReportitem = (ExpenseReportItem) data;
+
+ Listcell date = getDateCell(expenseReportitem.getDate());
+ item.appendChild(date);
+
+ Listcell justifyNumber = getJustifyNumberCell(expenseReportitem.getJustifyNumber());
+ item.appendChild(justifyNumber);
+
+ Listcell subCategory = getSubCategoryCell(expenseReportitem.getSubCategory());
+ item.appendChild(subCategory);
+
+ Listcell HT = new Listcell(String.valueOf(expenseReportitem.getHTAmount()));
+ item.appendChild(HT);
+
+ Listcell TVA = new Listcell(String.valueOf(expenseReportitem.getTVA()));
+ item.appendChild(TVA);
+
+ Listcell TTC = new Listcell(String.valueOf(expenseReportitem.getTTCAmount()));
+ item.appendChild(TTC);
+
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ createExpenseReportItemFormWindow(expenseReportitem.getWikittyId());
+ }
+ });
+ }
+ };
+ }
+
+ public void setExpenseReportId(String id) {
+ if (id != null) {
+ expenseReportId = id;
+ initListbox();
+ }
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemModel.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportItemModel.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,68 @@
+package org.chorem.bonzoms.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.chorem.data.bonzoms.Company;
+import org.chorem.data.bonzoms.ExpenseReportItem;
+import org.zkoss.zkplus.databind.BindingListModel;
+import org.zkoss.zul.AbstractListModel;
+import org.zkoss.zul.event.ListDataEvent;
+
+public class ExpenseReportItemModel extends AbstractListModel implements BindingListModel {
+
+ List<ExpenseReportItem> items = new ArrayList<ExpenseReportItem>();
+
+ @Override
+ public Object getElementAt(int index) {
+ return items.get(index);
+ }
+
+ @Override
+ public int getSize() {
+ return items.size();
+ }
+
+ @Override
+ public int indexOf(Object obj) {
+ int index = -1;
+ String id = ((ExpenseReportItem) obj).getWikittyId();
+ for (ExpenseReportItem data : items) {
+ String dataId = data.getWikittyId();
+ if (id.equals(dataId)) {
+ index = items.indexOf(data);
+ break;
+ }
+ }
+ return index;
+ }
+
+ public void setItems(List<ExpenseReportItem> items) {
+ this.items = items;
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public void addData(ExpenseReportItem newData) {
+ items.add(newData);
+ fireEvent(ListDataEvent.INTERVAL_ADDED, items.size() - 1, items.size() - 1);
+ }
+
+ public void removeData(ExpenseReportItem data) {
+ int interval = items.indexOf(data);
+ items.remove(data);
+ fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ }
+
+ public void reloadContent(int rowIndex, ExpenseReportItem item) {
+ items.set(rowIndex, item);
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
+ }
+
+ public void reload() {
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public List<ExpenseReportItem> getItems() {
+ return items;
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportMacro.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportMacro.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportMacro.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,15 @@
+package org.chorem.bonzoms.ui;
+
+import org.nuiton.wikitty.WikittyProxy;
+import org.zkoss.zk.ui.HtmlMacroComponent;
+
+public class ExpenseReportMacro extends HtmlMacroComponent {
+
+ protected String id = null;
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
+
+ @Override
+ public void afterCompose() {
+ super.afterCompose();
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportModel.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExpenseReportModel.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,117 @@
+package org.chorem.bonzoms.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.chorem.bonzoms.ui.ChoremDataProxy;
+import org.chorem.data.bonzoms.ExpenseReport;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.PagedResult;
+import org.nuiton.wikitty.WikittyProxy;
+import org.zkoss.zkplus.databind.BindingListModel;
+import org.zkoss.zul.AbstractListModel;
+import org.zkoss.zul.event.ListDataEvent;
+
+public class ExpenseReportModel extends AbstractListModel implements BindingListModel {
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected Criteria criteria = null;
+ protected int activePage = 0;
+ protected int pageSize = 1;
+ protected List<ExpenseReport> expenseReports = new ArrayList<ExpenseReport>();
+
+ public ExpenseReportModel(int pageSize) {
+ this.pageSize = pageSize;
+ createList();
+ }
+
+ @Override
+ public Object getElementAt(int index) {
+ ExpenseReport expenseReport = expenseReports.get(index);
+ return expenseReport;
+ }
+
+ @Override
+ public int getSize() {
+ return expenseReports.size();
+ }
+
+ @Override
+ public int indexOf(Object obj) {
+ int index = -1;
+ String id = ((ExpenseReport) obj).getWikittyId();
+ for (ExpenseReport data : expenseReports) {
+ String dataId = data.getWikittyId();
+ if (id.equals(dataId)) {
+ index = expenseReports.indexOf(data);
+ break;
+ }
+ }
+ return index;
+ }
+
+ public int getTotalSize() {
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<ExpenseReport> result = proxy.findAllByCriteria(ExpenseReport.class, criteria);
+ return result.getNumFound();
+ }
+
+ public void addData(ExpenseReport newData) {
+ int listSize = expenseReports.size();
+ if (listSize < (pageSize)) {
+ expenseReports.add(newData);
+ }
+ int size = getSize();
+ fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
+ }
+
+ public void removeData(ExpenseReport data) {
+ int interval = expenseReports.indexOf(data);
+ if (interval != -1) {
+ expenseReports.remove(interval);
+ fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ }
+ }
+
+ public void reloadContent(int rowIndex) {
+ ExpenseReport expenseReport = expenseReports.get(rowIndex);
+ expenseReport = proxy.restore(ExpenseReport.class, expenseReport.getWikittyId());
+ expenseReports.set(rowIndex, expenseReport);
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
+ }
+
+ public void reload() {
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public Criteria getCriteria() {
+ return criteria;
+ }
+
+ public void setCriteria(Criteria criteria) {
+ if (criteria != null) {
+ this.criteria = criteria;
+ activePage = 0;
+ createList();
+ }
+ }
+
+ protected void createList() {
+ if (criteria != null) {
+ int first = activePage * pageSize;
+ int end = first + (pageSize - 1);
+ Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
+ List<ExpenseReport> expenseReports = proxy.findAllByCriteria(ExpenseReport.class, criteria).getAll();
+ this.expenseReports = new ArrayList<ExpenseReport>(expenseReports);
+ }
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public void setActivePage(int activePage) {
+ this.activePage = activePage;
+ createList();
+ }
+}
\ No newline at end of file
Deleted: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -1,204 +0,0 @@
-package org.chorem.bonzoms.ui;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.chorem.data.bonzoms.ExportReport;
-import org.chorem.data.bonzoms.ExportReportItem;
-import org.chorem.data.bonzoms.Person;
-import org.nuiton.wikitty.Criteria;
-import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.search.Element;
-import org.nuiton.wikitty.search.Search;
-import org.zkoss.zk.ui.Component;
-import org.zkoss.zk.ui.Executions;
-import org.zkoss.zk.ui.SuspendNotAllowedException;
-import org.zkoss.zk.ui.event.Event;
-import org.zkoss.zk.ui.event.EventListener;
-import org.zkoss.zk.ui.event.Events;
-import org.zkoss.zk.ui.event.ForwardEvent;
-import org.zkoss.zk.ui.util.GenericForwardComposer;
-import org.zkoss.zul.Listcell;
-import org.zkoss.zul.Listitem;
-import org.zkoss.zul.ListitemRenderer;
-import org.zkoss.zul.Paging;
-import org.zkoss.zul.Window;
-import org.zkoss.zul.event.PagingEvent;
-
-public class ExportReportController extends GenericForwardComposer {
-
- protected final int pageSize = 20;
-
- protected WikittyProxy proxy = ChoremDataProxy.getInstance();
- protected ExportReportModel exportReportModel = new ExportReportModel(pageSize);
-
- protected Paging exportReportPaging;
- protected ExportReportItemListboxMacro exportReportItemListboxMacro;
-
- @Override
- public void doAfterCompose(Component comp) throws Exception {
- super.doAfterCompose(comp);
- initExportReportModel();
- initPaging();
- }
-
- protected void initExportReportModel() {
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, ExportReport.EXT_EXPORTREPORT).criteria();
- exportReportModel.setCriteria(criteria);
- }
-
- protected void initPaging() {
- exportReportPaging.setPageSize(pageSize);
- int totalSize = exportReportModel.getTotalSize();
- exportReportPaging.setTotalSize(totalSize);
- }
-
- protected void createWindowExportReportForm(String id) throws SuspendNotAllowedException, InterruptedException {
- Map<String, Object> map = new HashMap<String, Object>();
- if (id != null) {
- map.put("exportReportId", id);
- }
- Window win = (Window) Executions.createComponents("exportReportFormPage.zul", null, map);
- win.addEventListener(ExportReportFormController.EVENT_ON_SAVE_EXPORTREPORT, new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- String id = (String) event.getData();
- ExportReport exportReport = proxy.restore(ExportReport.class, id);
- int rowIndex = exportReportModel.indexOf(exportReport);
- if (rowIndex != -1) {
- exportReportModel.reloadContent(rowIndex);
- } else {
- exportReportModel.addData(exportReport);
- }
- int totalSize = exportReportModel.getTotalSize();
- exportReportPaging.setTotalSize(totalSize);
- }
- });
- }
-
- protected Listcell getDateCell(Date date) {
- Listcell cell = new Listcell();
- if (date != null) {
- SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
- String label = sdf.format(date);
- cell.setLabel(label);
- }
- return cell;
- }
-
- protected Listcell getPersonCell(String id) {
- Listcell cell = new Listcell();
- if (id != null && !id.isEmpty()) {
- Person person = proxy.restore(Person.class, id);
- if (person != null) {
- String name = "";
- String str = person.getFirstName();
- if (str != null) {
- name += str + " ";
- }
- str = person.getLastName();
- if (str != null) {
- name += str;
- }
- cell.setLabel(name);
- }
- }
- return cell;
- }
-
- protected Listcell getPriceCell(String id) {
- Listcell cell = new Listcell();
- if (id != null && !id.isEmpty()) {
- Search search = Search.query().eq(Element.ELT_EXTENSION, ExportReportItem.EXT_EXPORTREPORTITEM);
- search = search.eq(ExportReportItem.FQ_FIELD_EXPORTREPORTITEM_EXPORTREPORT, id);
- Criteria criteria = search.criteria();
- List<ExportReportItem> items = proxy.findAllByCriteria(ExportReportItem.class, criteria).getAll();
- double price = 0;
- for (ExportReportItem item : items) {
- Double amount = item.getTTCAmount();
- if (amount != null) {
- price += amount;
- }
- }
- cell.setLabel(String.valueOf(price));
- }
- return cell;
- }
-
- /*
- * Renderers
- */
- public ListitemRenderer getExportReportRenderer() {
- return new ListitemRenderer() {
-
- @Override
- public void render(Listitem item, Object data) throws Exception {
- item.setValue(data);
- final ExportReport exportReport = (ExportReport) data;
-
- Listcell createdDateCell = getDateCell(exportReport.getDate());
- item.appendChild(createdDateCell);
-
- Listcell numberCell = new Listcell(exportReport.getNumber());
- item.appendChild(numberCell);
-
- Listcell stateCell = new Listcell(exportReport.getState());
- item.appendChild(stateCell);
-
- Listcell personCell = getPersonCell(exportReport.getPerson());
- item.appendChild(personCell);
-
- Listcell paymentDateCell = getDateCell(exportReport.getPayment());
- item.appendChild(paymentDateCell);
-
- Listcell priceCell = getPriceCell(exportReport.getWikittyId());
- item.appendChild(priceCell);
-
- item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- createWindowExportReportForm(exportReport.getWikittyId());
- }
- });
-
- item.addEventListener(Events.ON_CLICK, new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- exportReportItemListboxMacro.setExportReportId(exportReport.getWikittyId());
- }
- });
- }
- };
- }
-
-
- /*
- * Events
- */
- public void onClick$newExportReport() throws SuspendNotAllowedException, InterruptedException {
- createWindowExportReportForm(null);
- }
-
- public void onPaging$exportReportPaging(ForwardEvent event) {
- PagingEvent pagingEvent = (PagingEvent) event.getOrigin();
- int activePage = pagingEvent.getActivePage();
- exportReportModel.setActivePage(activePage);
- }
-
- /*
- * Getters
- */
- public ExportReportModel getExportReportModel() {
- return exportReportModel;
- }
-
- /*
- * Setters
- */
-}
Deleted: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -1,66 +0,0 @@
-package org.chorem.bonzoms.ui;
-
-import org.chorem.data.bonzoms.ExportReport;
-import org.chorem.data.bonzoms.ExportReportImpl;
-import org.nuiton.wikitty.WikittyProxy;
-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;
-
-public class ExportReportFormController extends GenericForwardComposer {
-
- protected WikittyProxy proxy = ChoremDataProxy.getInstance();
- protected ExportReport exportReport = new ExportReportImpl();
-
- protected PersonBandboxMacro personBandboxMacro;
-
- public static final String EVENT_ON_SAVE_EXPORTREPORT = "onSaveExportReport";
-
- @Override
- public void doAfterCompose(Component comp) throws Exception {
- super.doAfterCompose(comp);
- Window win = (Window) self;
- win.doModal();
- win.setPosition("center");
- String exportReportId = Executions.getCurrent().getParameter("exportReportId");
- if (exportReportId == null) {
- exportReportId = (String) arg.get("exportReportId");
- }
- init(exportReportId);
- DataBinder binder = new AnnotateDataBinder(comp);
- binder.bindBean("composer", this);
- binder.loadAll();
- }
-
- protected void init(String id) {
- if (id != null) {
- ExportReport tmp = proxy.restore(ExportReport.class, id);
- if (tmp != null) {
- exportReport = tmp;
- }
- }
- personBandboxMacro.setPersonId(exportReport.getPerson());
- }
-
- /*
- * Events
- */
- public void onClick$saveExportReport() {
- String id = personBandboxMacro.getPersonId();
- exportReport.setPerson(id);
- exportReport = proxy.store(exportReport);
- Events.postEvent(EVENT_ON_SAVE_EXPORTREPORT, this.self, exportReport.getWikittyId());
- self.detach();
- }
-
- /*
- * Getters
- */
- public ExportReport getExportReport() {
- return exportReport;
- }
-}
Deleted: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemFormController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemFormController.java 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemFormController.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -1,70 +0,0 @@
-package org.chorem.bonzoms.ui;
-
-import org.chorem.data.bonzoms.ExportReportItem;
-import org.chorem.data.bonzoms.ExportReportItemImpl;
-import org.nuiton.wikitty.WikittyProxy;
-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;
-
-public class ExportReportItemFormController extends GenericForwardComposer {
-
- protected WikittyProxy proxy = ChoremDataProxy.getInstance();
- protected ExportReportItem item = new ExportReportItemImpl();
-
- protected CompanyBandboxMacro companyBandboxMacro;
- protected ProjectBandboxMacro projectBandboxMacro;
-
- public static final String EVENT_ON_SAVE_EXPORTREPORTITEM = "onSaveExportReportItem";
-
- @Override
- public void doAfterCompose(Component comp) throws Exception {
- super.doAfterCompose(comp);
- Window win = (Window) self;
- win.doModal();
- win.setPosition("center");
- String id = Executions.getCurrent().getParameter("exportReportItemId");
- if (id == null) {
- id = (String) arg.get("exportReportItemId");
- }
- init(id);
- DataBinder binder = new AnnotateDataBinder(comp);
- binder.bindBean("composer", this);
- binder.loadAll();
- }
-
- protected void init(String id) {
- if (id != null) {
- ExportReportItem obj = proxy.restore(ExportReportItem.class, id);
- if (obj != null) {
- item = obj;
- }
- }
- projectBandboxMacro.setProjectId(item.getProject());
- companyBandboxMacro.setCompanyId(item.getCompany());
- }
-
- /*
- * Events
- */
- public void onClick$saveItem() {
- String id = projectBandboxMacro.getProjectId();
- item.setProject(id);
- id = companyBandboxMacro.getCompanyId();
- item.setCompany(id);
- item = proxy.store(item);
- Events.postEvent(EVENT_ON_SAVE_EXPORTREPORTITEM, this.self, item.getWikittyId());
- self.detach();
- }
-
- /*
- * Getter
- */
- public ExportReportItem getItem() {
- return item;
- }
-}
Deleted: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemListboxMacro.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemListboxMacro.java 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemListboxMacro.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -1,176 +0,0 @@
-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.ExportReportItem;
-import org.nuiton.wikitty.Criteria;
-import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.search.Search;
-import org.zkoss.zk.ui.Executions;
-import org.zkoss.zk.ui.HtmlMacroComponent;
-import org.zkoss.zk.ui.event.Event;
-import org.zkoss.zk.ui.event.EventListener;
-import org.zkoss.zk.ui.event.Events;
-import org.zkoss.zul.Button;
-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;
-
-public class ExportReportItemListboxMacro extends HtmlMacroComponent {
-
- protected WikittyProxy proxy = ChoremDataProxy.getInstance();
- protected String exportReportId = null;
- protected ExportReportItemModel itemsModel = new ExportReportItemModel();
-
- @Override
- public void afterCompose() {
- super.afterCompose();
- initButton();
- initListbox();
- }
-
- protected void initButton() {
- Button button = (Button) getFellow("deleteItem");
- button.addEventListener(Events.ON_CLICK, new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- if (itemsModel.getSize() > 1) {
- Listbox itemListbox = (Listbox) getFellow("itemListbox");
- Listitem item = itemListbox.getSelectedItem();
- if (item != null) {
- ExportReportItem exportReportItem = (ExportReportItem) item.getValue();
- if (exportReportItem != null) {
- itemsModel.removeData(exportReportItem);
- String id = exportReportItem.getWikittyId();
- proxy.delete(id);
- itemListbox.setSelectedIndex(0);
- }
- }
- }
- }
- });
- Button newItem = (Button) getFellow("newItem");
- newItem.addEventListener(Events.ON_CLICK, new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- if (exportReportId != null) {
- createExportReportItemFormWindow(null);
- }
- }
- });
-
- }
-
- protected void initListbox() {
- initItemsModel();
- Listbox listbox = (Listbox) getFellow("itemListbox");
- listbox.setModel(itemsModel);
- ListitemRenderer renderer = getExportReportItemRenderer();
- listbox.setItemRenderer(renderer);
- }
-
- protected void initItemsModel() {
- if (exportReportId != null) {
- Criteria criteria = Search.query().eq(ExportReportItem.FQ_FIELD_EXPORTREPORTITEM_EXPORTREPORT, exportReportId).criteria();
- List<ExportReportItem> items = proxy.findAllByCriteria(ExportReportItem.class, criteria).getAll();
- items = new ArrayList<ExportReportItem>(items);
- itemsModel.setItems(items);
- }
- }
-
- protected void createExportReportItemFormWindow(String id) {
- Map<String, Object> map = new HashMap<String, Object>();
- if (id != null) {
- map.put("exportReportItemId", id);
- }
- Window win = (Window) Executions.createComponents("exportReportItemFormPage.zul", null, map);
- win.addEventListener(ExportReportItemFormController.EVENT_ON_SAVE_EXPORTREPORTITEM, new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- String id = (String) event.getData();
- ExportReportItem item = proxy.restore(ExportReportItem.class, id);
- if (item.getExportReport() == null || item.getExportReport().isEmpty()) {
- item.setExportReport(exportReportId);
- item = proxy.store(item);
- }
- int rowIndex = itemsModel.indexOf(item);
- if (rowIndex != -1) {
- itemsModel.reloadContent(rowIndex);
- } else {
- itemsModel.addData(item);
- }
- }
- });
- }
-
- protected Listcell getDateCell(Date date) {
- Listcell cell = new Listcell();
- if (date != null) {
- SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
- String label = sdf.format(date);
- cell.setLabel(label);
- }
- return cell;
- }
-
- protected Listcell getJustifyNumberCell(String number) {
- Listcell cell = new Listcell();
- if (number != null) {
- cell.setLabel(number);
- }
- return cell;
- }
-
- /*
- * Renderers
- */
- protected ListitemRenderer getExportReportItemRenderer() {
- return new ListitemRenderer() {
-
- @Override
- public void render(Listitem item, Object data) throws Exception {
- item.setValue(data);
- final ExportReportItem exportReportitem = (ExportReportItem) data;
-
- Listcell date = getDateCell(exportReportitem.getDate());
- item.appendChild(date);
-
- Listcell justifyNumber = getJustifyNumberCell(exportReportitem.getJustifyNumber());
- item.appendChild(justifyNumber);
-
- Listcell HT = new Listcell(String.valueOf(exportReportitem.getHTAmount()));
- item.appendChild(HT);
-
- Listcell TVA = new Listcell(String.valueOf(exportReportitem.getTVA()));
- item.appendChild(TVA);
-
- Listcell TTC = new Listcell(String.valueOf(exportReportitem.getTTCAmount()));
- item.appendChild(TTC);
-
- item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- createExportReportItemFormWindow(exportReportitem.getWikittyId());
- }
- });
- }
- };
- }
-
- public void setExportReportId(String id) {
- if (id != null) {
- exportReportId = id;
- initListbox();
- }
- }
-}
Deleted: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -1,67 +0,0 @@
-package org.chorem.bonzoms.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.chorem.data.bonzoms.Employee;
-import org.chorem.data.bonzoms.ExportReportItem;
-import org.zkoss.zkplus.databind.BindingListModel;
-import org.zkoss.zul.AbstractListModel;
-import org.zkoss.zul.event.ListDataEvent;
-
-public class ExportReportItemModel extends AbstractListModel implements BindingListModel {
-
- List<ExportReportItem> items = new ArrayList<ExportReportItem>();
-
- @Override
- public Object getElementAt(int index) {
- return items.get(index);
- }
-
- @Override
- public int getSize() {
- return items.size();
- }
-
- @Override
- public int indexOf(Object obj) {
- int index = -1;
- String id = ((ExportReportItem) obj).getWikittyId();
- for (ExportReportItem data : items) {
- String dataId = data.getWikittyId();
- if (id.equals(dataId)) {
- index = items.indexOf(data);
- break;
- }
- }
- return index;
- }
-
- public void setItems(List<ExportReportItem> items) {
- this.items = items;
- fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
- }
-
- public void addData(ExportReportItem newData) {
- items.add(newData);
- fireEvent(ListDataEvent.INTERVAL_ADDED, items.size() - 1, items.size() - 1);
- }
-
- public void removeData(ExportReportItem data) {
- int interval = items.indexOf(data);
- items.remove(data);
- fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
- }
-
- public void reloadContent(int rowIndex) {
- fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
- }
-
- public void reload() {
- fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
- }
-
- public List<ExportReportItem> getItems() {
- return items;
- }
-}
Deleted: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportMacro.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportMacro.java 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportMacro.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -1,15 +0,0 @@
-package org.chorem.bonzoms.ui;
-
-import org.nuiton.wikitty.WikittyProxy;
-import org.zkoss.zk.ui.HtmlMacroComponent;
-
-public class ExportReportMacro extends HtmlMacroComponent {
-
- protected String id = null;
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
-
- @Override
- public void afterCompose() {
- super.afterCompose();
- }
-}
Deleted: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportModel.java 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportModel.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -1,117 +0,0 @@
-package org.chorem.bonzoms.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.chorem.bonzoms.ui.ChoremDataProxy;
-import org.chorem.data.bonzoms.ExportReport;
-import org.nuiton.wikitty.Criteria;
-import org.nuiton.wikitty.PagedResult;
-import org.nuiton.wikitty.WikittyProxy;
-import org.zkoss.zkplus.databind.BindingListModel;
-import org.zkoss.zul.AbstractListModel;
-import org.zkoss.zul.event.ListDataEvent;
-
-public class ExportReportModel extends AbstractListModel implements BindingListModel {
-
- protected WikittyProxy proxy = ChoremDataProxy.getInstance();
- protected Criteria criteria = null;
- protected int activePage = 0;
- protected int pageSize = 1;
- protected List<ExportReport> exportReports = new ArrayList<ExportReport>();
-
- public ExportReportModel(int pageSize) {
- this.pageSize = pageSize;
- createList();
- }
-
- @Override
- public Object getElementAt(int index) {
- ExportReport exportReport = exportReports.get(index);
- return exportReport;
- }
-
- @Override
- public int getSize() {
- return exportReports.size();
- }
-
- @Override
- public int indexOf(Object obj) {
- int index = -1;
- String id = ((ExportReport) obj).getWikittyId();
- for (ExportReport data : exportReports) {
- String dataId = data.getWikittyId();
- if (id.equals(dataId)) {
- index = exportReports.indexOf(data);
- break;
- }
- }
- return index;
- }
-
- public int getTotalSize() {
- if (criteria == null) {
- return 0;
- }
- Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
- PagedResult<ExportReport> result = proxy.findAllByCriteria(ExportReport.class, criteria);
- return result.getNumFound();
- }
-
- public void addData(ExportReport newData) {
- int listSize = exportReports.size();
- if (listSize < (pageSize)) {
- exportReports.add(newData);
- }
- int size = getSize();
- fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
- }
-
- public void removeData(ExportReport data) {
- int interval = exportReports.indexOf(data);
- if (interval != -1) {
- exportReports.remove(interval);
- fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
- }
- }
-
- public void reloadContent(int rowIndex) {
- ExportReport exportReport = exportReports.get(rowIndex);
- exportReport = proxy.restore(ExportReport.class, exportReport.getWikittyId());
- exportReports.set(rowIndex, exportReport);
- fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
- }
-
- public void reload() {
- fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
- }
-
- public Criteria getCriteria() {
- return criteria;
- }
-
- public void setCriteria(Criteria criteria) {
- if (criteria != null) {
- this.criteria = criteria;
- activePage = 0;
- createList();
- }
- }
-
- protected void createList() {
- if (criteria != null) {
- int first = activePage * pageSize;
- int end = first + (pageSize - 1);
- Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
- List<ExportReport> exportReports = proxy.findAllByCriteria(ExportReport.class, criteria).getAll();
- this.exportReports = new ArrayList<ExportReport>(exportReports);
- }
- fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
- }
-
- public void setActivePage(int activePage) {
- this.activePage = activePage;
- createList();
- }
-}
\ No newline at end of file
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-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonController.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -70,7 +70,12 @@
}
protected void initPersonModel() {
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Person.EXT_PERSON).criteria();
+ String search = Executions.getCurrent().getParameter("search");
+ 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);
}
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-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ResultController.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -32,6 +32,8 @@
import org.chorem.data.bonzoms.Company;
import org.chorem.data.bonzoms.Employee;
import org.chorem.data.bonzoms.EmploymentContract;
+import org.chorem.data.bonzoms.ExpenseReport;
+import org.chorem.data.bonzoms.ExpenseReportItem;
import org.chorem.data.bonzoms.Person;
import org.chorem.data.bonzoms.Service;
import org.nuiton.util.StringUtil;
@@ -93,6 +95,8 @@
searchOr = searchOr.eq(Element.ELT_EXTENSION, Service.EXT_SERVICE);
searchOr = searchOr.eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT);
searchOr = searchOr.eq(Element.ELT_EXTENSION, Address.EXT_ADDRESS);
+ searchOr = searchOr.eq(Element.ELT_EXTENSION, ExpenseReport.EXT_EXPENSEREPORT);
+ searchOr = searchOr.eq(Element.ELT_EXTENSION, ExpenseReportItem.EXT_EXPENSEREPORTITEM);
if (str != null && !str.isEmpty()) {
Search searchAnd = search.and();
@@ -107,6 +111,19 @@
int totalSize = wikittyModel.getTotalSize();
wikittyPaging.setTotalSize(totalSize);
}
+
+ protected void modifyModelByEvent(Event event) {
+ String id = (String) event.getData();
+ Wikitty wikitty = proxy.restore(id);
+ int rowIndex = wikittyModel.indexOf(wikitty);
+ if (rowIndex != -1) {
+ wikittyModel.reloadContent(rowIndex);
+ } else {
+ wikittyModel.addData(wikitty);
+ }
+ int totalSize = wikittyModel.getTotalSize();
+ wikittyPaging.setTotalSize(totalSize);
+ }
protected void createEmploymentContractPage(String id) throws SuspendNotAllowedException, InterruptedException {
Map<String, Object> map = new HashMap<String, Object>();
@@ -118,16 +135,7 @@
@Override
public void onEvent(Event event) throws Exception {
- String id = (String) event.getData();
- Wikitty wikitty = proxy.restore(id);
- int rowIndex = wikittyModel.indexOf(wikitty);
- if (rowIndex != -1) {
- wikittyModel.reloadContent(rowIndex);
- } else {
- wikittyModel.addData(wikitty);
- }
- int totalSize = wikittyModel.getTotalSize();
- wikittyPaging.setTotalSize(totalSize);
+ modifyModelByEvent(event);
}
});
}
@@ -142,16 +150,7 @@
@Override
public void onEvent(Event event) throws Exception {
- String id = (String) event.getData();
- Wikitty wikitty = proxy.restore(id);
- int rowIndex = wikittyModel.indexOf(wikitty);
- if (rowIndex != -1) {
- wikittyModel.reloadContent(rowIndex);
- } else {
- wikittyModel.addData(wikitty);
- }
- int totalSize = wikittyModel.getTotalSize();
- wikittyPaging.setTotalSize(totalSize);
+ modifyModelByEvent(event);
}
});
}
@@ -166,16 +165,7 @@
@Override
public void onEvent(Event event) throws Exception {
- String id = (String) event.getData();
- Wikitty wikitty = proxy.restore(id);
- int rowIndex = wikittyModel.indexOf(wikitty);
- if (rowIndex != -1) {
- wikittyModel.reloadContent(rowIndex);
- } else {
- wikittyModel.addData(wikitty);
- }
- int totalSize = wikittyModel.getTotalSize();
- wikittyPaging.setTotalSize(totalSize);
+ modifyModelByEvent(event);
}
});
}
@@ -190,16 +180,7 @@
@Override
public void onEvent(Event event) throws Exception {
- String id = (String) event.getData();
- Wikitty wikitty = proxy.restore(id);
- int rowIndex = wikittyModel.indexOf(wikitty);
- if (rowIndex != -1) {
- wikittyModel.reloadContent(rowIndex);
- } else {
- wikittyModel.addData(wikitty);
- }
- int totalSize = wikittyModel.getTotalSize();
- wikittyPaging.setTotalSize(totalSize);
+ modifyModelByEvent(event);
}
});
}
@@ -214,16 +195,7 @@
@Override
public void onEvent(Event event) throws Exception {
- String id = (String) event.getData();
- Wikitty wikitty = proxy.restore(id);
- int rowIndex = wikittyModel.indexOf(wikitty);
- if (rowIndex != -1) {
- wikittyModel.reloadContent(rowIndex);
- } else {
- wikittyModel.addData(wikitty);
- }
- int totalSize = wikittyModel.getTotalSize();
- wikittyPaging.setTotalSize(totalSize);
+ modifyModelByEvent(event);
}
});
}
@@ -238,20 +210,41 @@
@Override
public void onEvent(Event event) throws Exception {
- String id = (String) event.getData();
- Wikitty wikitty = proxy.restore(id);
- int rowIndex = wikittyModel.indexOf(wikitty);
- if (rowIndex != -1) {
- wikittyModel.reloadContent(rowIndex);
- } else {
- wikittyModel.addData(wikitty);
- }
- int totalSize = wikittyModel.getTotalSize();
- wikittyPaging.setTotalSize(totalSize);
+ modifyModelByEvent(event);
}
});
}
+
+ protected void createExpenseReportPage(String id) throws SuspendNotAllowedException, InterruptedException {
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ map.put("expenseReportId", id);
+ }
+ Window win = (Window) Executions.createComponents("expenseReportFormPage.zul", null, map);
+ win.addEventListener(ExpenseReportFormController.EVENT_ON_SAVE_EXPENSEREPORT, new EventListener() {
+ @Override
+ public void onEvent(Event event) throws Exception {
+ modifyModelByEvent(event);
+ }
+ });
+ }
+
+ protected void createExpenseReportItemPage(String id) throws SuspendNotAllowedException, InterruptedException {
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ map.put("expenseReportItemId", id);
+ }
+ Window win = (Window) Executions.createComponents("expenseReportItemFormPage.zul", null, map);
+ win.addEventListener(ExpenseReportItemFormController.EVENT_ON_SAVE_EXPENSEREPORTITEM, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ modifyModelByEvent(event);
+ }
+ });
+ }
+
protected void createPageByWikitty(Wikitty wikitty) throws SuspendNotAllowedException, InterruptedException {
Collection<String> extensions = wikitty.getExtensionNames();
if (extensions.contains(EmploymentContract.EXT_EMPLOYMENTCONTRACT)) {
@@ -266,6 +259,10 @@
createServicePage(wikitty.getId());
} else if (extensions.contains(Company.EXT_COMPANY)) {
createCompanyPage(wikitty.getId());
+ } else if (extensions.contains(ExpenseReport.EXT_EXPENSEREPORT)) {
+ createExpenseReportPage(wikitty.getId());
+ } else if (extensions.contains(ExpenseReportItem.EXT_EXPENSEREPORTITEM)) {
+ createExpenseReportItemPage(wikitty.getId());
}
}
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-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceController.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -45,7 +45,12 @@
}
protected void initServiceModel() {
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Service.EXT_SERVICE).criteria();
+ String search = Executions.getCurrent().getParameter("search");
+ 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);
}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/SubCategoryModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/SubCategoryModel.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/SubCategoryModel.java 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,68 @@
+package org.chorem.bonzoms.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.chorem.data.bonzoms.Invoice;
+import org.chorem.data.bonzoms.SubCategory;
+import org.zkoss.zkplus.databind.BindingListModel;
+import org.zkoss.zul.AbstractListModel;
+import org.zkoss.zul.event.ListDataEvent;
+
+public class SubCategoryModel extends AbstractListModel implements BindingListModel {
+
+ List<SubCategory> subCategories = new ArrayList<SubCategory>();
+
+ @Override
+ public Object getElementAt(int index) {
+ return subCategories.get(index);
+ }
+
+ @Override
+ public int getSize() {
+ return subCategories.size();
+ }
+
+ @Override
+ public int indexOf(Object obj) {
+ int index = -1;
+ String id = ((SubCategory) obj).getWikittyId();
+ for (SubCategory data : subCategories) {
+ String dataId = data.getWikittyId();
+ if (id.equals(dataId)) {
+ index = subCategories.indexOf(data);
+ break;
+ }
+ }
+ return index;
+ }
+
+ public void setSubCategories(List<SubCategory> subCategories) {
+ this.subCategories = subCategories;
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public void addData(SubCategory newData) {
+ subCategories.add(newData);
+ fireEvent(ListDataEvent.INTERVAL_ADDED, subCategories.size() - 1, subCategories.size() - 1);
+ }
+
+ public void removeData(SubCategory data) {
+ int interval = subCategories.indexOf(data);
+ subCategories.remove(data);
+ fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ }
+
+ public void reloadContent(int rowIndex, SubCategory sub) {
+ subCategories.set(rowIndex, sub);
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
+ }
+
+ public void reload() {
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public List<SubCategory> getSubCategories() {
+ return subCategories;
+ }
+}
Modified: trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml 2010-08-23 10:37:30 UTC (rev 134)
@@ -40,11 +40,18 @@
<macro-uri>macros/projectBandboxMacro.zul</macro-uri>
</component>
- <!-- exportReportItemListbox macro -->
+ <!-- expenseReportItemListbox macro -->
<component>
- <component-name>exportReportItemListboxMacro</component-name>
- <component-class>org.chorem.bonzoms.ui.ExportReportItemListboxMacro</component-class>
- <macro-uri>macros/exportReportItemListboxMacro.zul</macro-uri>
+ <component-name>expenseReportItemListboxMacro</component-name>
+ <component-class>org.chorem.bonzoms.ui.ExpenseReportItemListboxMacro</component-class>
+ <macro-uri>macros/expenseReportItemListboxMacro.zul</macro-uri>
</component>
+
+ <!-- categoryBandbox macro -->
+ <component>
+ <component-name>categoryBandboxMacro</component-name>
+ <component-class>org.chorem.bonzoms.ui.CategoryBandboxMacro</component-class>
+ <macro-uri>macros/categoryBandboxMacro.zul</macro-uri>
+ </component>
</language-addon>
Added: trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/sun-web.xml
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/sun-web.xml (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/sun-web.xml 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd">
+<sun-web-app error-url="">
+ <context-root>/bonzoms-ui-zk-2.0-SNAPSHOT</context-root>
+ <class-loader delegate="true"/>
+ <jsp-config>
+ <property name="keepgenerated" value="true">
+ <description>Keep a copy of the generated servlet class' java code.</description>
+ </property>
+ </jsp-config>
+</sun-web-app>
Modified: trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul 2010-08-23 10:37:30 UTC (rev 134)
@@ -8,19 +8,19 @@
<caption label="Menu" />
<vbox>
<toolbarbutton id="companies" label="Companies" />
+ <toolbarbutton id="services" label="Services" />
+ <toolbarbutton id="persons" label="Persons" />
+ <toolbarbutton id="employees" label="Employees" />
<toolbarbutton id="contracts" label="Contracts" />
- <toolbarbutton id="employees" label="Employees" />
- <toolbarbutton id="exportReports" label="Export reports" />
- <toolbarbutton id="persons" label="Persons" />
- <toolbarbutton id="services" label="Services" />
+ <toolbarbutton id="expenseReports" label="Expense reports" />
</vbox>
</groupbox>
<vbox id="content" >
<hbox>
- Search: <textbox id="searchBox" /> <button label="Search" id="searchButton" />
+ Search: <textbox id="searchBox" /> <button label="Search" id="searchButton" /> <checkbox id="allCheckbox" label="all" />
</hbox>
<separator bar="true" />
- <include id="include" src="employeePage.zul" />
+ <include id="include" src="companyPage.zul" />
</vbox>
</hbox>
</window>
\ No newline at end of file
Added: trunk/bonzoms-ui-zk/src/main/webapp/expenseReportFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/expenseReportFormPage.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/expenseReportFormPage.zul 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,29 @@
+<?page id="expenseReportForm" title="Expense report form" cacheable="false" language="xul/html" zscriptLanguage="Java"?>
+<?meta content="text/html; charset=UTF-8" pageEncoding="UTF-8"?>
+
+<window closable="true" maximizable="true" sizable="true" width="650px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ExpenseReportFormController">
+ <caption label="Expense report"/>
+ <groupbox>
+ <caption label="Expense report" />
+ <vbox>
+ State
+ <listbox id="stateListbox" mold="select">
+ <listitem label="Writing" />
+ <listitem label="Waiting for payment" />
+ <listitem label="Waiting for validation" />
+ <listitem label="Payed" />
+ </listbox>
+
+ Payment date
+ <datebox value="@{composer.expenseReport.payment, save-when='saveExpenseReport.onClick'}" />
+
+ Number
+ <textbox value="@{composer.expenseReport.number, save-when='saveExpenseReport.onClick'}" />
+
+ <personBandboxMacro id="personBandboxMacro" />
+
+ </vbox>
+
+ </groupbox>
+ <button id="saveExpenseReport" label="Save" />
+</window>
Added: trunk/bonzoms-ui-zk/src/main/webapp/expenseReportItemFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/expenseReportItemFormPage.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/expenseReportItemFormPage.zul 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,39 @@
+<?page title="new page title" contentType="text/html;charset=UTF-8"?>
+<window closable="true" maximizable="true" sizable="true" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ExpenseReportItemFormController">
+ <caption label="Item"/>
+ <groupbox>
+ <caption label="Item" />
+ <vbox>
+
+ Date
+ <datebox id="expenseReportDate" value="@{composer.item.date, save-when='saveItem.onClick'}" />
+
+ Justify number
+ <textbox id="expenseReportJustifyNumber" value="@{composer.item.justifyNumber, save-when='saveItem.onClick'}" />
+
+ HT amount
+ <doublebox id="expenseReportHTAmount" value="@{composer.item.hTAmount, save-when='saveItem.onClick'}" />
+
+ TVA
+ <doublebox id="expenseReportTVA" value="@{composer.item.tVA, save-when='saveItem.onClick'}" />
+
+ TTC amount
+ <doublebox id="expenseReportTTCAmount" value="@{composer.item.tTCAmount, save-when='saveItem.onClick'}" />
+
+
+ <companyBandboxMacro id="companyBandboxMacro" />
+
+ <projectBandboxMacro id="projectBandboxMacro" />
+
+ <categoryBandboxMacro id="categoryBandboxMacro" />
+
+ Description
+ <textbox id="expenseReportDescription" value="@{composer.item.description, save-when='saveItem.onClick'}" rows="5" />
+
+ <space />
+
+ <separator />
+ <button id="saveItem" label="Save" />
+ </vbox>
+ </groupbox>
+</window>
Added: trunk/bonzoms-ui-zk/src/main/webapp/expenseReportPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/expenseReportPage.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/expenseReportPage.zul 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,26 @@
+<?page id="expenseReport" title="Expense report" cacheable="false" language="xul/html" zscriptLanguage="Java"?>
+<?meta content="text/html; charset=UTF-8" pageEncoding="UTF-8"?>
+<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./expenseReport"?>
+
+<window id="expenseReport" apply="org.chorem.bonzoms.ui.ExpenseReportController">
+ Expense report: <toolbarbutton id="newExpenseReport" label="Add new expense report" />
+ <hbox>
+ <vbox>
+ <listbox id="expenseReportListbox" rows="20" model="@{expenseReport$composer.expenseReportModel}"
+ itemRenderer="@{expenseReport$composer.expenseReportRenderer}">
+ <listhead>
+ <listheader label="Creation Date" />
+ <listheader label="Number" />
+ <listheader label="State" />
+ <listheader label="Person" />
+ <listheader label="Payment date" />
+ <listheader label="TTC Price" />
+ </listhead>
+ </listbox>
+ <paging id="expenseReportPaging" />
+ </vbox>
+
+ <expenseReportItemListboxMacro id="expenseReportItemListboxMacro" />
+ </hbox>
+
+</window>
\ No newline at end of file
Deleted: trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul 2010-08-23 10:37:30 UTC (rev 134)
@@ -1,34 +0,0 @@
-<?page id="exportReportForm" title="Export report form" cacheable="false" language="xul/html" zscriptLanguage="Java"?>
-<?meta content="text/html; charset=UTF-8" pageEncoding="UTF-8"?>
-
-<window closable="true" maximizable="true" sizable="true" width="650px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ExportReportFormController">
- <caption label="Export report"/>
- <groupbox>
- <caption label="Export report" />
- <vbox>
-
- State
- <listbox id="stateListbox" mold="select">
- <listitem label="Writing" />
- <listitem label="Waiting for payment" />
- <listitem label="Waiting for validation" />
- <listitem label="Payed" />
- </listbox>
-
- <space />
-
- Payment date
- <datebox value="@{composer.exportReport.payment, save-when='saveExportReport.onClick'}" />
-
- <space />
-
- Number
- <textbox value="@{composer.exportReport.number, save-when='saveExportReport.onClick'}" />
-
- <personBandboxMacro id="personBandboxMacro" />
-
- </vbox>
-
- </groupbox>
- <button id="saveExportReport" label="Save" />
-</window>
Deleted: trunk/bonzoms-ui-zk/src/main/webapp/exportReportItemFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/exportReportItemFormPage.zul 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/webapp/exportReportItemFormPage.zul 2010-08-23 10:37:30 UTC (rev 134)
@@ -1,33 +0,0 @@
-<?page title="new page title" contentType="text/html;charset=UTF-8"?>
-<window closable="true" maximizable="true" sizable="true" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ExportReportItemFormController">
- <caption label="Item"/>
- <groupbox>
- <caption label="Item" />
- <vbox>
-
- Date
- <datebox id="exportReportDate" value="@{composer.item.date, save-when='saveItem.onClick'}" />
-
- Justify number
- <textbox id="exportReportJustifyNumber" value="@{composer.item.justifyNumber, save-when='saveItem.onClick'}" />
-
- HT amount
- <doublebox id="exportReportHTAmount" value="@{composer.item.hTAmount, save-when='saveItem.onClick'}" />
-
- TVA
- <doublebox id="exportReportTVA" value="@{composer.item.tVA, save-when='saveItem.onClick'}" />
-
- TTC amount
- <doublebox id="exportReportTTCAmount" value="@{composer.item.tTCAmount, save-when='saveItem.onClick'}" />
-
- <companyBandboxMacro id="companyBandboxMacro" />
-
- <projectBandboxMacro id="projectBandboxMacro" />
-
- <space />
-
- <separator />
- <button id="saveItem" label="Save" />
- </vbox>
- </groupbox>
-</window>
Deleted: trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul 2010-08-23 10:37:30 UTC (rev 134)
@@ -1,26 +0,0 @@
-<?page id="exportReport" title="Export report" cacheable="false" language="xul/html" zscriptLanguage="Java"?>
-<?meta content="text/html; charset=UTF-8" pageEncoding="UTF-8"?>
-<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./exportReport"?>
-
-<window id="exportReport" apply="org.chorem.bonzoms.ui.ExportReportController">
- Export report: <toolbarbutton id="newExportReport" label="Add new export report" />
- <hbox>
- <vbox>
- <listbox id="exportReportListbox" rows="20" model="@{exportReport$composer.exportReportModel}"
- itemRenderer="@{exportReport$composer.exportReportRenderer}">
- <listhead>
- <listheader label="Creation Date" />
- <listheader label="Number" />
- <listheader label="State" />
- <listheader label="Person" />
- <listheader label="Payment date" />
- <listheader label="TTC Price" />
- </listhead>
- </listbox>
- <paging id="exportReportPaging" />
- </vbox>
-
- <exportReportItemListboxMacro id="exportReportItemListboxMacro" />
- </hbox>
-
-</window>
\ No newline at end of file
Added: trunk/bonzoms-ui-zk/src/main/webapp/macros/categoryBandboxMacro.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/macros/categoryBandboxMacro.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/macros/categoryBandboxMacro.zul 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,13 @@
+<?page title="new page title" contentType="text/html;charset=UTF-8"?>
+<zk>
+ Sub category:
+ <bandbox id="categoryBandbox" mold="rounded">
+ <bandpopup>
+ <vbox>
+ <grid id="categoryGrid" width="200px">
+ </grid>
+ <paging id="categoryPaging" width="200px"/>
+ </vbox>
+ </bandpopup>
+ </bandbox>
+</zk>
\ No newline at end of file
Added: trunk/bonzoms-ui-zk/src/main/webapp/macros/expenseReportItemListboxMacro.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/macros/expenseReportItemListboxMacro.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/macros/expenseReportItemListboxMacro.zul 2010-08-23 10:37:30 UTC (rev 134)
@@ -0,0 +1,19 @@
+<?page title="Expense report item" contentType="text/html;charset=UTF-8"?>
+<zk>
+ <vbox>
+ <listbox id="itemListbox" autopaging="true" mold="paging" rows="20">
+ <listhead>
+ <listheader label="Date" />
+ <listheader label="Justify number" />
+ <listheader label="Sub category" />
+ <listheader label="HT amount" />
+ <listheader label="TVA" />
+ <listheader label="TTC amount" />
+ </listhead>
+ </listbox>
+ <hbox>
+ <button id="newItem" label="Add new item" />
+ <button id="deleteItem" label="Delete item" />
+ </hbox>
+ </vbox>
+</zk>
\ No newline at end of file
Deleted: trunk/bonzoms-ui-zk/src/main/webapp/macros/exportReportItemListboxMacro.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/macros/exportReportItemListboxMacro.zul 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/webapp/macros/exportReportItemListboxMacro.zul 2010-08-23 10:37:30 UTC (rev 134)
@@ -1,18 +0,0 @@
-<?page title="Export report item" contentType="text/html;charset=UTF-8"?>
-<zk>
- <vbox>
- <listbox id="itemListbox" autopaging="true" mold="paging" rows="20">
- <listhead>
- <listheader label="Date" />
- <listheader label="Justify number" />
- <listheader label="HT amount" />
- <listheader label="TVA" />
- <listheader label="TTC amount" />
- </listhead>
- </listbox>
- <hbox>
- <button id="newItem" label="Add new item" />
- <button id="deleteItem" label="Delete item" />
- </hbox>
- </vbox>
-</zk>
\ No newline at end of file
Modified: trunk/bonzoms-ui-zk/src/main/webapp/macros/personBandboxMacro.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/macros/personBandboxMacro.zul 2010-08-19 16:58:08 UTC (rev 133)
+++ trunk/bonzoms-ui-zk/src/main/webapp/macros/personBandboxMacro.zul 2010-08-23 10:37:30 UTC (rev 134)
@@ -1,17 +1,19 @@
<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<zk>
- Person:
- <bandbox id="personBandbox" mold="rounded">
- <bandpopup>
- <vbox>
- <listbox id="personListbox" rows="5" width="200px">
- <listhead>
- <listheader label="First name" />
- <listheader label="Last name" />
- </listhead>
- </listbox>
- <paging id="personPaging" width="200px"/>
- </vbox>
- </bandpopup>
- </bandbox>
+ <vbox>
+ Person:
+ <bandbox id="personBandbox" mold="rounded">
+ <bandpopup>
+ <vbox>
+ <listbox id="personListbox" rows="5" width="200px">
+ <listhead>
+ <listheader label="First name" />
+ <listheader label="Last name" />
+ </listhead>
+ </listbox>
+ <paging id="personPaging" width="200px"/>
+ </vbox>
+ </bandpopup>
+ </bandbox>
+ </vbox>
</zk>
\ No newline at end of file
1
0
r133 - in trunk/bonzoms-ui-zk/src/main: java/org/chorem/bonzoms/ui webapp webapp/WEB-INF webapp/macros
by bbrossaud@users.chorem.org Aug. 19, 2010
by bbrossaud@users.chorem.org Aug. 19, 2010
Aug. 19, 2010
Author: bbrossaud
Date: 2010-08-19 18:58:08 +0200 (Thu, 19 Aug 2010)
New Revision: 133
Url: http://chorem.org/repositories/revision/bonzoms/133
Log:
addition macro
Added:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemListboxMacro.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ProjectBandboxMacro.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ProjectModel.java
trunk/bonzoms-ui-zk/src/main/webapp/exportReportItemFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/macros/exportReportItemListboxMacro.zul
trunk/bonzoms-ui-zk/src/main/webapp/macros/projectBandboxMacro.zul
Modified:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java
trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml
trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java 2010-08-18 15:17:57 UTC (rev 132)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java 2010-08-19 16:58:08 UTC (rev 133)
@@ -36,6 +36,7 @@
protected ExportReportModel exportReportModel = new ExportReportModel(pageSize);
protected Paging exportReportPaging;
+ protected ExportReportItemListboxMacro exportReportItemListboxMacro;
@Override
public void doAfterCompose(Component comp) throws Exception {
@@ -164,6 +165,14 @@
createWindowExportReportForm(exportReport.getWikittyId());
}
});
+
+ item.addEventListener(Events.ON_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ exportReportItemListboxMacro.setExportReportId(exportReport.getWikittyId());
+ }
+ });
}
};
}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java 2010-08-18 15:17:57 UTC (rev 132)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java 2010-08-19 16:58:08 UTC (rev 133)
@@ -1,45 +1,23 @@
package org.chorem.bonzoms.ui;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
import org.chorem.data.bonzoms.ExportReport;
import org.chorem.data.bonzoms.ExportReportImpl;
-import org.chorem.data.bonzoms.ExportReportItem;
-import org.chorem.data.bonzoms.ExportReportItemImpl;
-import org.nuiton.wikitty.Criteria;
import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.search.Search;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
-import org.zkoss.zk.ui.event.Event;
-import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zkplus.databind.AnnotateDataBinder;
import org.zkoss.zkplus.databind.DataBinder;
-import org.zkoss.zul.Datebox;
-import org.zkoss.zul.Doublebox;
-import org.zkoss.zul.Listbox;
-import org.zkoss.zul.Listcell;
-import org.zkoss.zul.Listitem;
-import org.zkoss.zul.ListitemRenderer;
import org.zkoss.zul.Window;
-import org.zkoss.zul.api.Textbox;
public class ExportReportFormController extends GenericForwardComposer {
protected WikittyProxy proxy = ChoremDataProxy.getInstance();
-
protected ExportReport exportReport = new ExportReportImpl();
- protected ExportReportItemModel itemsModel = new ExportReportItemModel();
- protected ExportReportItem selectedItem = null;
- protected List<String> removedItems = new ArrayList<String>();
+
+ protected PersonBandboxMacro personBandboxMacro;
- protected Listbox itemListbox;
-
public static final String EVENT_ON_SAVE_EXPORTREPORT = "onSaveExportReport";
@Override
@@ -58,177 +36,31 @@
binder.loadAll();
}
- protected void init(String exportReportId) {
- if (exportReportId == null) {
- initDefaultExportReport();
- } else {
- initExportReport(exportReportId);
+ protected void init(String id) {
+ if (id != null) {
+ ExportReport tmp = proxy.restore(ExportReport.class, id);
+ if (tmp != null) {
+ exportReport = tmp;
+ }
}
+ personBandboxMacro.setPersonId(exportReport.getPerson());
}
- protected void initDefaultExportReport() {
- ExportReportItem item = newItem();
- itemsModel.addData(item);
- selectedItem = item;
- }
-
- protected void initExportReport(String id) {
- exportReport = proxy.restore(ExportReport.class, id);
- Criteria criteria = Search.query().eq(ExportReportItem.FQ_FIELD_EXPORTREPORTITEM_EXPORTREPORT, id).criteria();
- List<ExportReportItem> items = proxy.findAllByCriteria(ExportReportItem.class, criteria).getAll();
- items = new ArrayList<ExportReportItem>(items);
- if (items.size() == 0) {
- ExportReportItem item = newItem();
- items.add(item);
- }
- selectedItem = items.get(0);
- itemsModel.setItems(items);
- }
-
- protected ExportReportItem newItem() {
- ExportReportItem item = new ExportReportItemImpl();
- item.setCompany("");
- item.setDate(new Date());
- return item;
- }
-
- protected void saveItems() {
- List<ExportReportItem> items = itemsModel.getItems();
- for (ExportReportItem item : items) {
- item.setExportReport(exportReport.getWikittyId());
- }
- proxy.store(items);
- proxy.delete(removedItems);
- }
-
- protected void setItemBox() {
- Textbox textbox = (Textbox) self.getFellow("exportReportJustifyNumber");
- textbox.setValue(selectedItem.getJustifyNumber());
-
- Doublebox doublebox = (Doublebox) self.getFellow("exportReportHTAmount");
- doublebox.setValue(selectedItem.getHTAmount());
-
- doublebox = (Doublebox) self.getFellow("exportReportTTCAmount");
- doublebox.setValue(selectedItem.getTTCAmount());
-
- doublebox = (Doublebox) self.getFellow("exportReportTVA");
- doublebox.setValue(selectedItem.getTVA());
-
- Datebox datebox = (Datebox) self.getFellow("exportReportDate");
- datebox.setValue(selectedItem.getDate());
- }
-
- protected Listcell getDateCell(Date date) {
- Listcell cell = new Listcell();
- if (date != null) {
- SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
- String label = sdf.format(date);
- cell.setLabel(label);
- }
- return cell;
- }
-
- protected Listcell getJustifyNumberCell(String number) {
- Listcell cell = new Listcell();
- if (number != null) {
- cell.setLabel(number);
- }
- return cell;
- }
-
/*
- * Renderers
- */
- public ListitemRenderer getExportReportItemRenderer() {
- return new ListitemRenderer() {
-
- @Override
- public void render(Listitem item, Object data) throws Exception {
- item.setValue(data);
- final ExportReportItem exportReportitem = (ExportReportItem) data;
-
- Listcell date = getDateCell(exportReportitem.getDate());
- item.appendChild(date);
-
- Listcell justifyNumber = getJustifyNumberCell(exportReportitem.getJustifyNumber());
- item.appendChild(justifyNumber);
-
- Listcell HT = new Listcell(String.valueOf(exportReportitem.getHTAmount()));
- item.appendChild(HT);
-
- Listcell TVA = new Listcell(String.valueOf(exportReportitem.getTVA()));
- item.appendChild(TVA);
-
- Listcell TTC = new Listcell(String.valueOf(exportReportitem.getTTCAmount()));
- item.appendChild(TTC);
-
- item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- selectedItem = exportReportitem;
- setItemBox();
- }
- });
- }
- };
- }
-
- /*
* Events
*/
- public void onClick$saveItem() {
- if (selectedItem != null) {
- int rowIndex = itemsModel.indexOf(selectedItem);
- itemsModel.reloadContent(rowIndex);
- }
- }
-
public void onClick$saveExportReport() {
+ String id = personBandboxMacro.getPersonId();
+ exportReport.setPerson(id);
exportReport = proxy.store(exportReport);
- saveItems();
Events.postEvent(EVENT_ON_SAVE_EXPORTREPORT, this.self, exportReport.getWikittyId());
self.detach();
}
- public void onClick$addItem() {
- ExportReportItem item = newItem();
- selectedItem = item;
- setItemBox();
- itemsModel.addData(item);
- }
-
- public void onClick$deleteItem() {
- if (itemsModel.getSize() > 1) {
- Listitem item = itemListbox.getSelectedItem();
- if (item != null) {
- ExportReportItem exportReportItem = (ExportReportItem) item.getValue();
- if (exportReportItem != null) {
- itemsModel.removeData(exportReportItem);
- String id = exportReportItem.getWikittyId();
- if (id != null && !id.isEmpty()) {
- removedItems.add(id);
- }
- selectedItem = (ExportReportItem) itemsModel.getElementAt(0);
- setItemBox();
- itemListbox.setSelectedIndex(0);
- }
- }
- }
- }
-
/*
* Getters
*/
public ExportReport getExportReport() {
return exportReport;
}
-
- public ExportReportItemModel getItemsModel() {
- return itemsModel;
- }
-
- public ExportReportItem getSelectedItem() {
- return selectedItem;
- }
}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemFormController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemFormController.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemFormController.java 2010-08-19 16:58:08 UTC (rev 133)
@@ -0,0 +1,70 @@
+package org.chorem.bonzoms.ui;
+
+import org.chorem.data.bonzoms.ExportReportItem;
+import org.chorem.data.bonzoms.ExportReportItemImpl;
+import org.nuiton.wikitty.WikittyProxy;
+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;
+
+public class ExportReportItemFormController extends GenericForwardComposer {
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected ExportReportItem item = new ExportReportItemImpl();
+
+ protected CompanyBandboxMacro companyBandboxMacro;
+ protected ProjectBandboxMacro projectBandboxMacro;
+
+ public static final String EVENT_ON_SAVE_EXPORTREPORTITEM = "onSaveExportReportItem";
+
+ @Override
+ public void doAfterCompose(Component comp) throws Exception {
+ super.doAfterCompose(comp);
+ Window win = (Window) self;
+ win.doModal();
+ win.setPosition("center");
+ String id = Executions.getCurrent().getParameter("exportReportItemId");
+ if (id == null) {
+ id = (String) arg.get("exportReportItemId");
+ }
+ init(id);
+ DataBinder binder = new AnnotateDataBinder(comp);
+ binder.bindBean("composer", this);
+ binder.loadAll();
+ }
+
+ protected void init(String id) {
+ if (id != null) {
+ ExportReportItem obj = proxy.restore(ExportReportItem.class, id);
+ if (obj != null) {
+ item = obj;
+ }
+ }
+ projectBandboxMacro.setProjectId(item.getProject());
+ companyBandboxMacro.setCompanyId(item.getCompany());
+ }
+
+ /*
+ * Events
+ */
+ public void onClick$saveItem() {
+ String id = projectBandboxMacro.getProjectId();
+ item.setProject(id);
+ id = companyBandboxMacro.getCompanyId();
+ item.setCompany(id);
+ item = proxy.store(item);
+ Events.postEvent(EVENT_ON_SAVE_EXPORTREPORTITEM, this.self, item.getWikittyId());
+ self.detach();
+ }
+
+ /*
+ * Getter
+ */
+ public ExportReportItem getItem() {
+ return item;
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemListboxMacro.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemListboxMacro.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemListboxMacro.java 2010-08-19 16:58:08 UTC (rev 133)
@@ -0,0 +1,176 @@
+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.ExportReportItem;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.search.Search;
+import org.zkoss.zk.ui.Executions;
+import org.zkoss.zk.ui.HtmlMacroComponent;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zk.ui.event.EventListener;
+import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zul.Button;
+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;
+
+public class ExportReportItemListboxMacro extends HtmlMacroComponent {
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected String exportReportId = null;
+ protected ExportReportItemModel itemsModel = new ExportReportItemModel();
+
+ @Override
+ public void afterCompose() {
+ super.afterCompose();
+ initButton();
+ initListbox();
+ }
+
+ protected void initButton() {
+ Button button = (Button) getFellow("deleteItem");
+ button.addEventListener(Events.ON_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ if (itemsModel.getSize() > 1) {
+ Listbox itemListbox = (Listbox) getFellow("itemListbox");
+ Listitem item = itemListbox.getSelectedItem();
+ if (item != null) {
+ ExportReportItem exportReportItem = (ExportReportItem) item.getValue();
+ if (exportReportItem != null) {
+ itemsModel.removeData(exportReportItem);
+ String id = exportReportItem.getWikittyId();
+ proxy.delete(id);
+ itemListbox.setSelectedIndex(0);
+ }
+ }
+ }
+ }
+ });
+ Button newItem = (Button) getFellow("newItem");
+ newItem.addEventListener(Events.ON_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ if (exportReportId != null) {
+ createExportReportItemFormWindow(null);
+ }
+ }
+ });
+
+ }
+
+ protected void initListbox() {
+ initItemsModel();
+ Listbox listbox = (Listbox) getFellow("itemListbox");
+ listbox.setModel(itemsModel);
+ ListitemRenderer renderer = getExportReportItemRenderer();
+ listbox.setItemRenderer(renderer);
+ }
+
+ protected void initItemsModel() {
+ if (exportReportId != null) {
+ Criteria criteria = Search.query().eq(ExportReportItem.FQ_FIELD_EXPORTREPORTITEM_EXPORTREPORT, exportReportId).criteria();
+ List<ExportReportItem> items = proxy.findAllByCriteria(ExportReportItem.class, criteria).getAll();
+ items = new ArrayList<ExportReportItem>(items);
+ itemsModel.setItems(items);
+ }
+ }
+
+ protected void createExportReportItemFormWindow(String id) {
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ map.put("exportReportItemId", id);
+ }
+ Window win = (Window) Executions.createComponents("exportReportItemFormPage.zul", null, map);
+ win.addEventListener(ExportReportItemFormController.EVENT_ON_SAVE_EXPORTREPORTITEM, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String id = (String) event.getData();
+ ExportReportItem item = proxy.restore(ExportReportItem.class, id);
+ if (item.getExportReport() == null || item.getExportReport().isEmpty()) {
+ item.setExportReport(exportReportId);
+ item = proxy.store(item);
+ }
+ int rowIndex = itemsModel.indexOf(item);
+ if (rowIndex != -1) {
+ itemsModel.reloadContent(rowIndex);
+ } else {
+ itemsModel.addData(item);
+ }
+ }
+ });
+ }
+
+ protected Listcell getDateCell(Date date) {
+ Listcell cell = new Listcell();
+ if (date != null) {
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
+ String label = sdf.format(date);
+ cell.setLabel(label);
+ }
+ return cell;
+ }
+
+ protected Listcell getJustifyNumberCell(String number) {
+ Listcell cell = new Listcell();
+ if (number != null) {
+ cell.setLabel(number);
+ }
+ return cell;
+ }
+
+ /*
+ * Renderers
+ */
+ protected ListitemRenderer getExportReportItemRenderer() {
+ return new ListitemRenderer() {
+
+ @Override
+ public void render(Listitem item, Object data) throws Exception {
+ item.setValue(data);
+ final ExportReportItem exportReportitem = (ExportReportItem) data;
+
+ Listcell date = getDateCell(exportReportitem.getDate());
+ item.appendChild(date);
+
+ Listcell justifyNumber = getJustifyNumberCell(exportReportitem.getJustifyNumber());
+ item.appendChild(justifyNumber);
+
+ Listcell HT = new Listcell(String.valueOf(exportReportitem.getHTAmount()));
+ item.appendChild(HT);
+
+ Listcell TVA = new Listcell(String.valueOf(exportReportitem.getTVA()));
+ item.appendChild(TVA);
+
+ Listcell TTC = new Listcell(String.valueOf(exportReportitem.getTTCAmount()));
+ item.appendChild(TTC);
+
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ createExportReportItemFormWindow(exportReportitem.getWikittyId());
+ }
+ });
+ }
+ };
+ }
+
+ public void setExportReportId(String id) {
+ if (id != null) {
+ exportReportId = id;
+ initListbox();
+ }
+ }
+}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java 2010-08-18 15:17:57 UTC (rev 132)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java 2010-08-19 16:58:08 UTC (rev 133)
@@ -3,6 +3,7 @@
import java.util.ArrayList;
import java.util.List;
+import org.chorem.data.bonzoms.Employee;
import org.chorem.data.bonzoms.ExportReportItem;
import org.zkoss.zkplus.databind.BindingListModel;
import org.zkoss.zul.AbstractListModel;
@@ -24,7 +25,16 @@
@Override
public int indexOf(Object obj) {
- return items.indexOf(obj);
+ int index = -1;
+ String id = ((ExportReportItem) obj).getWikittyId();
+ for (ExportReportItem data : items) {
+ String dataId = data.getWikittyId();
+ if (id.equals(dataId)) {
+ index = items.indexOf(data);
+ break;
+ }
+ }
+ return index;
}
public void setItems(List<ExportReportItem> items) {
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ProjectBandboxMacro.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ProjectBandboxMacro.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ProjectBandboxMacro.java 2010-08-19 16:58:08 UTC (rev 133)
@@ -0,0 +1,135 @@
+package org.chorem.bonzoms.ui;
+
+import org.chorem.data.bonzoms.Project;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Search;
+import org.zkoss.zk.ui.HtmlMacroComponent;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zk.ui.event.EventListener;
+import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zul.Bandbox;
+import org.zkoss.zul.Listbox;
+import org.zkoss.zul.Listcell;
+import org.zkoss.zul.Listitem;
+import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Paging;
+import org.zkoss.zul.event.PagingEvent;
+
+public class ProjectBandboxMacro extends HtmlMacroComponent {
+
+ private final int pageSize = 5;
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected ProjectModel projectModel = new ProjectModel(pageSize);
+ protected String projectId = null;
+
+ @Override
+ public void afterCompose() {
+ super.afterCompose();
+ initPaging();
+ initBandbox();
+ initListbox();
+ }
+
+ protected void initPaging() {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Project.EXT_PROJECT).criteria();
+ projectModel.setCriteria(criteria);
+
+ int totalSize = projectModel.getTotalSize();
+ Paging projectPaging = (Paging) getFellow("projectPaging");
+ projectPaging.setTotalSize(totalSize);
+ projectPaging.setPageSize(pageSize);
+ projectPaging.addEventListener("onPaging", new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ PagingEvent pagingEvent = (PagingEvent) event;
+ int activePage = pagingEvent.getActivePage();
+ projectModel.setActivePage(activePage);
+ }
+ });
+ }
+
+ protected void initBandbox() {
+ final Bandbox projectBandbox = (Bandbox) getFellow("projectBandbox");
+ projectBandbox.addEventListener(Events.ON_OK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String search = projectBandbox.getValue();
+ Search query = Search.query().eq(Element.ELT_EXTENSION, Project.EXT_PROJECT);
+ if (search != null && !search.isEmpty()) {
+ query = query.keyword(search);
+ }
+ Criteria criteria = query.criteria();
+ projectModel.setCriteria(criteria);
+ int totalSize = projectModel.getTotalSize();
+ Paging projectPaging = (Paging) getFellow("projectPaging");
+ projectPaging.setTotalSize(totalSize);
+ projectPaging.setActivePage(0);
+ projectBandbox.open();
+ }
+ });
+ }
+
+ protected void initListbox() {
+ Listbox projectListbox = (Listbox) getFellow("projectListbox");
+ projectListbox.setModel(projectModel);
+ ListitemRenderer renderer = getProjectRenderer();
+ projectListbox.setItemRenderer(renderer);
+ }
+
+ /*
+ * Renderers
+ */
+ public ListitemRenderer getProjectRenderer() {
+ return new ListitemRenderer() {
+
+ @Override
+ public void render(Listitem item, Object data) throws Exception {
+ item.setValue(data);
+ final Project project = (Project) data;
+ final String name = project.getName();
+ Listcell cell = new Listcell(name);
+ item.appendChild(cell);
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ projectId = project.getWikittyId();
+ Bandbox projectBandbox = (Bandbox) getFellow("projectBandbox");
+ projectBandbox.setValue(name);
+ projectBandbox.close();
+ }
+ });
+ }
+ };
+ }
+
+ /*
+ * Setters
+ */
+ public void setProjectId(String id) {
+ projectId = id;
+ if (id != null) {
+ Project project = proxy.restore(Project.class, id);
+ if (project != null) {
+ Bandbox projectBandbox = (Bandbox) getFellow("projectBandbox");
+ String name = project.getName();
+ if (name != null) {
+ projectBandbox.setValue(name);
+ projectBandbox.close();
+ }
+ }
+ }
+ }
+
+ /*
+ * Getters
+ */
+ public String getProjectId() {
+ return projectId;
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ProjectModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ProjectModel.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ProjectModel.java 2010-08-19 16:58:08 UTC (rev 133)
@@ -0,0 +1,115 @@
+package org.chorem.bonzoms.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.chorem.data.bonzoms.Project;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.PagedResult;
+import org.nuiton.wikitty.WikittyProxy;
+import org.zkoss.zkplus.databind.BindingListModel;
+import org.zkoss.zul.AbstractListModel;
+import org.zkoss.zul.event.ListDataEvent;
+
+public class ProjectModel extends AbstractListModel implements BindingListModel {
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected Criteria criteria = null;
+ protected int activePage = 0;
+ protected int pageSize = 1;
+ protected List<Project> projects = new ArrayList<Project>();
+
+ public ProjectModel(int pageSize) {
+ this.pageSize = pageSize;
+ createList();
+ }
+
+ @Override
+ public Object getElementAt(int index) {
+ Project Project = projects.get(index);
+ return Project;
+ }
+
+ @Override
+ public int getSize() {
+ return projects.size();
+ }
+
+ @Override
+ public int indexOf(Object obj) {
+ int index = -1;
+ String id = ((Project) obj).getWikittyId();
+ for (Project data : projects) {
+ String dataId = data.getWikittyId();
+ if (id.equals(dataId)) {
+ index = projects.indexOf(data);
+ break;
+ }
+ }
+ return index;
+ }
+
+ public int getTotalSize() {
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<Project> result = proxy.findAllByCriteria(Project.class, criteria);
+ return result.getNumFound();
+ }
+
+ public void addData(Project newData) {
+ int listSize = projects.size();
+ if (listSize < (pageSize)) {
+ projects.add(newData);
+ }
+ int size = getSize();
+ fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
+ }
+
+ public void removeData(Project data) {
+ int interval = projects.indexOf(data);
+ if (interval != -1) {
+ projects.remove(interval);
+ fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ }
+ }
+
+ public void reloadContent(int rowIndex) {
+ Project project = projects.get(rowIndex);
+ project = proxy.restore(Project.class, project.getWikittyId());
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
+ }
+
+ public void reload() {
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public Criteria getCriteria() {
+ return criteria;
+ }
+
+ public void setCriteria(Criteria criteria) {
+ if (criteria != null) {
+ this.criteria = criteria;
+ activePage = 0;
+ createList();
+ }
+ }
+
+ protected void createList() {
+ if (criteria != null) {
+ int first = activePage * pageSize;
+ int end = first + (pageSize - 1);
+ Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
+ List<Project> projects = proxy.findAllByCriteria(Project.class, criteria).getAll();
+ this.projects = new ArrayList<Project>(projects);
+ }
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public void setActivePage(int activePage) {
+ this.activePage = activePage;
+ createList();
+ }
+}
Modified: trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml 2010-08-18 15:17:57 UTC (rev 132)
+++ trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml 2010-08-19 16:58:08 UTC (rev 133)
@@ -32,5 +32,19 @@
<component-class>org.chorem.bonzoms.ui.ServiceBandboxMacro</component-class>
<macro-uri>macros/serviceBandboxMacro.zul</macro-uri>
</component>
+
+ <!-- project macro -->
+ <component>
+ <component-name>projectBandboxMacro</component-name>
+ <component-class>org.chorem.bonzoms.ui.ProjectBandboxMacro</component-class>
+ <macro-uri>macros/projectBandboxMacro.zul</macro-uri>
+ </component>
+ <!-- exportReportItemListbox macro -->
+ <component>
+ <component-name>exportReportItemListboxMacro</component-name>
+ <component-class>org.chorem.bonzoms.ui.ExportReportItemListboxMacro</component-class>
+ <macro-uri>macros/exportReportItemListboxMacro.zul</macro-uri>
+ </component>
+
</language-addon>
Modified: trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul 2010-08-18 15:17:57 UTC (rev 132)
+++ trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul 2010-08-19 16:58:08 UTC (rev 133)
@@ -3,93 +3,32 @@
<window closable="true" maximizable="true" sizable="true" width="650px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ExportReportFormController">
<caption label="Export report"/>
- <vbox>
-
<groupbox>
<caption label="Export report" />
- <hbox>
+ <vbox>
- <vbox>
- State
- <listbox id="stateListbox" mold="select">
- <listitem label="Writing" />
- <listitem label="Waiting for payment" />
- <listitem label="Waiting for validation" />
- <listitem label="Payed" />
- </listbox>
- </vbox>
+ State
+ <listbox id="stateListbox" mold="select">
+ <listitem label="Writing" />
+ <listitem label="Waiting for payment" />
+ <listitem label="Waiting for validation" />
+ <listitem label="Payed" />
+ </listbox>
<space />
- <vbox>
- Payment date
- <datebox value="@{composer.exportReport.payment, save-when='saveExportReport.onClick'}" />
- </vbox>
+ Payment date
+ <datebox value="@{composer.exportReport.payment, save-when='saveExportReport.onClick'}" />
<space />
- <vbox>
- Number
- <textbox value="@{composer.exportReport.number, save-when='saveExportReport.onClick'}" />
- </vbox>
-
- </hbox>
- </groupbox>
-
-
- <groupbox>
- <caption label="Items" />
- <hbox>
- <vbox>
- Date
- <datebox id="exportReportDate" value="@{composer.selectedItem.date, save-when='saveItem.onClick'}" />
- </vbox>
+ Number
+ <textbox value="@{composer.exportReport.number, save-when='saveExportReport.onClick'}" />
- <vbox>
- Justify number
- <textbox id="exportReportJustifyNumber" value="@{composer.selectedItem.justifyNumber, save-when='saveItem.onClick'}" />
- </vbox>
-
- <vbox>
- HT amount
- <doublebox id="exportReportHTAmount" value="@{composer.selectedItem.hTAmount, save-when='saveItem.onClick'}" />
- </vbox>
-
- <vbox>
- TVA
- <doublebox id="exportReportTVA" value="@{composer.selectedItem.tVA, save-when='saveItem.onClick'}" />
- </vbox>
-
- <vbox>
- TTC amount
- <doublebox id="exportReportTTCAmount" value="@{composer.selectedItem.tTCAmount, save-when='saveItem.onClick'}" />
- </vbox>
- <space />
- <vbox>
- <separator />
- <button id="saveItem" label="Save" />
- </vbox>
- </hbox>
-
- <vbox>
- <separator />
- <listbox id="itemListbox" model="@{composer.itemsModel}" itemRenderer="@{composer.exportReportItemRenderer}" autopaging="true" mold="paging" rows="5" >
- <listhead>
- <listheader label="Date" />
- <listheader label="Justify number" />
- <listheader label="HT amount" />
- <listheader label="TVA" />
- <listheader label="TTC amount" />
- </listhead>
- </listbox>
- <hbox>
- <button id="addItem" label="Add item" />
- <space />
- <button id="deleteItem" label="Delete item" />
- </hbox>
+ <personBandboxMacro id="personBandboxMacro" />
+
</vbox>
+
</groupbox>
-
- </vbox>
<button id="saveExportReport" label="Save" />
</window>
Added: trunk/bonzoms-ui-zk/src/main/webapp/exportReportItemFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/exportReportItemFormPage.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/exportReportItemFormPage.zul 2010-08-19 16:58:08 UTC (rev 133)
@@ -0,0 +1,33 @@
+<?page title="new page title" contentType="text/html;charset=UTF-8"?>
+<window closable="true" maximizable="true" sizable="true" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ExportReportItemFormController">
+ <caption label="Item"/>
+ <groupbox>
+ <caption label="Item" />
+ <vbox>
+
+ Date
+ <datebox id="exportReportDate" value="@{composer.item.date, save-when='saveItem.onClick'}" />
+
+ Justify number
+ <textbox id="exportReportJustifyNumber" value="@{composer.item.justifyNumber, save-when='saveItem.onClick'}" />
+
+ HT amount
+ <doublebox id="exportReportHTAmount" value="@{composer.item.hTAmount, save-when='saveItem.onClick'}" />
+
+ TVA
+ <doublebox id="exportReportTVA" value="@{composer.item.tVA, save-when='saveItem.onClick'}" />
+
+ TTC amount
+ <doublebox id="exportReportTTCAmount" value="@{composer.item.tTCAmount, save-when='saveItem.onClick'}" />
+
+ <companyBandboxMacro id="companyBandboxMacro" />
+
+ <projectBandboxMacro id="projectBandboxMacro" />
+
+ <space />
+
+ <separator />
+ <button id="saveItem" label="Save" />
+ </vbox>
+ </groupbox>
+</window>
Modified: trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul 2010-08-18 15:17:57 UTC (rev 132)
+++ trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul 2010-08-19 16:58:08 UTC (rev 133)
@@ -2,19 +2,25 @@
<?meta content="text/html; charset=UTF-8" pageEncoding="UTF-8"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./exportReport"?>
-
<window id="exportReport" apply="org.chorem.bonzoms.ui.ExportReportController">
Export report: <toolbarbutton id="newExportReport" label="Add new export report" />
- <listbox id="exportReportListbox" rows="20" model="@{exportReport$composer.exportReportModel}"
- itemRenderer="@{exportReport$composer.exportReportRenderer}">
- <listhead>
- <listheader label="Creation Date" />
- <listheader label="Number" />
- <listheader label="State" />
- <listheader label="Person" />
- <listheader label="Payment date" />
- <listheader label="TTC Price" />
- </listhead>
- </listbox>
- <paging id="exportReportPaging" />
+ <hbox>
+ <vbox>
+ <listbox id="exportReportListbox" rows="20" model="@{exportReport$composer.exportReportModel}"
+ itemRenderer="@{exportReport$composer.exportReportRenderer}">
+ <listhead>
+ <listheader label="Creation Date" />
+ <listheader label="Number" />
+ <listheader label="State" />
+ <listheader label="Person" />
+ <listheader label="Payment date" />
+ <listheader label="TTC Price" />
+ </listhead>
+ </listbox>
+ <paging id="exportReportPaging" />
+ </vbox>
+
+ <exportReportItemListboxMacro id="exportReportItemListboxMacro" />
+ </hbox>
+
</window>
\ No newline at end of file
Added: trunk/bonzoms-ui-zk/src/main/webapp/macros/exportReportItemListboxMacro.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/macros/exportReportItemListboxMacro.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/macros/exportReportItemListboxMacro.zul 2010-08-19 16:58:08 UTC (rev 133)
@@ -0,0 +1,18 @@
+<?page title="Export report item" contentType="text/html;charset=UTF-8"?>
+<zk>
+ <vbox>
+ <listbox id="itemListbox" autopaging="true" mold="paging" rows="20">
+ <listhead>
+ <listheader label="Date" />
+ <listheader label="Justify number" />
+ <listheader label="HT amount" />
+ <listheader label="TVA" />
+ <listheader label="TTC amount" />
+ </listhead>
+ </listbox>
+ <hbox>
+ <button id="newItem" label="Add new item" />
+ <button id="deleteItem" label="Delete item" />
+ </hbox>
+ </vbox>
+</zk>
\ No newline at end of file
Added: trunk/bonzoms-ui-zk/src/main/webapp/macros/projectBandboxMacro.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/macros/projectBandboxMacro.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/macros/projectBandboxMacro.zul 2010-08-19 16:58:08 UTC (rev 133)
@@ -0,0 +1,16 @@
+<?page title="new page title" contentType="text/html;charset=UTF-8"?>
+<zk>
+ Project:
+ <bandbox id="projectBandbox" mold="rounded">
+ <bandpopup>
+ <vbox>
+ <listbox rows="5" id="projectListbox" width="200px">
+ <listhead>
+ <listheader label="Name" />
+ </listhead>
+ </listbox>
+ <paging id="projectPaging" width="200px"/>
+ </vbox>
+ </bandpopup>
+ </bandbox>
+</zk>
\ No newline at end of file
1
0
r132 - in trunk: . bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui bonzoms-ui-zk/src/main/webapp bonzoms-ui-zk/src/main/webapp/WEB-INF bonzoms-ui-zk/src/main/webapp/macros
by bbrossaud@users.chorem.org Aug. 18, 2010
by bbrossaud@users.chorem.org Aug. 18, 2010
Aug. 18, 2010
Author: bbrossaud
Date: 2010-08-18 17:17:57 +0200 (Wed, 18 Aug 2010)
New Revision: 132
Url: http://chorem.org/repositories/revision/bonzoms/132
Log:
addition macro and changing Model
Added:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyBandboxMacro.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeBandboxMacro.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportMacro.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportModel.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonBandboxMacro.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceBandboxMacro.java
trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml
trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/macros/
trunk/bonzoms-ui-zk/src/main/webapp/macros/companyBandboxMacro.zul
trunk/bonzoms-ui-zk/src/main/webapp/macros/employeeBandboxMacro.zul
trunk/bonzoms-ui-zk/src/main/webapp/macros/personBandboxMacro.zul
trunk/bonzoms-ui-zk/src/main/webapp/macros/serviceBandboxMacro.zul
Modified:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractFormController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeFormController.java
trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/zk.xml
trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul
trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul
trunk/pom.xml
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java 2010-08-16 10:16:48 UTC (rev 131)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java 2010-08-18 15:17:57 UTC (rev 132)
@@ -72,4 +72,9 @@
include.setSrc(null);
include.setSrc("contractPage.zul");
}
+
+ public void onClick$exportReports() {
+ include.setSrc(null);
+ include.setSrc("exportReportPage.zul");
+ }
}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyBandboxMacro.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyBandboxMacro.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyBandboxMacro.java 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,137 @@
+package org.chorem.bonzoms.ui;
+
+import org.chorem.data.bonzoms.Company;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Search;
+import org.zkoss.zk.ui.HtmlMacroComponent;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zk.ui.event.EventListener;
+import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zul.Bandbox;
+import org.zkoss.zul.Listbox;
+import org.zkoss.zul.Listcell;
+import org.zkoss.zul.Listitem;
+import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Paging;
+import org.zkoss.zul.event.PagingEvent;
+
+public class CompanyBandboxMacro extends HtmlMacroComponent {
+
+ protected final int pageSize = 5;
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected CompanyModel companyModel = new CompanyModel(pageSize);
+ protected String companyId = null;
+
+ @Override
+ public void afterCompose() {
+ super.afterCompose();
+ initPaging();
+ initBandbox();
+ initListbox();
+ }
+
+ protected void initPaging() {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Company.EXT_COMPANY).criteria();
+ companyModel.setCriteria(criteria);
+
+ int totalSize = companyModel.getTotalSize();
+ Paging companyPaging = (Paging) getFellow("companyPaging");
+ companyPaging.setTotalSize(totalSize);
+ companyPaging.setPageSize(pageSize);
+ companyPaging.addEventListener("onPaging", new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ PagingEvent pagingEvent = (PagingEvent) event;
+ int activePage = pagingEvent.getActivePage();
+ companyModel.setActivePage(activePage);
+ }
+ });
+ }
+
+ protected void initBandbox() {
+ final Bandbox companyBandbox = (Bandbox) getFellow("companyBandbox");
+ companyBandbox.addEventListener(Events.ON_OK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String search = companyBandbox.getValue();
+ Search query = Search.query().eq(Element.ELT_EXTENSION, Company.EXT_COMPANY);
+ if (search != null && !search.isEmpty()) {
+ query = query.keyword(search);
+ }
+ Criteria criteria = query.criteria();
+ companyModel.setCriteria(criteria);
+ int totalSize = companyModel.getTotalSize();
+ Paging companyPaging = (Paging) getFellow("companyPaging");
+ companyPaging.setTotalSize(totalSize);
+ companyPaging.setActivePage(0);
+ companyBandbox.open();
+ }
+ });
+ }
+
+ protected void initListbox() {
+ Listbox companyListbox = (Listbox) getFellow("companyListbox");
+ companyListbox.setModel(companyModel);
+ ListitemRenderer renderer = getCompanyRenderer();
+ companyListbox.setItemRenderer(renderer);
+ }
+
+ /*
+ * Renderer
+ */
+ public ListitemRenderer getCompanyRenderer() {
+ return new ListitemRenderer() {
+
+ @Override
+ public void render(Listitem item, Object data) throws Exception {
+ item.setValue(data);
+ final Company company = (Company) data;
+ final String name = company.getName();
+ Listcell cell1 = new Listcell(name);
+ Listcell cell2 = new Listcell(company.getType());
+ item.appendChild(cell1);
+ item.appendChild(cell2);
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ companyId = company.getWikittyId();
+ Bandbox companyBandbox = (Bandbox) getFellow("companyBandbox");
+ companyBandbox.setValue(name);
+ companyBandbox.close();
+ }
+ });
+ }
+ };
+ }
+
+ /*
+ * Setters
+ */
+ public void setCompanyId(String id) {
+ companyId = id;
+ if (id != null) {
+ Company company = proxy.restore(Company.class, id);
+ if (company != null) {
+ Bandbox companyBandbox = (Bandbox) getFellow("companyBandbox");
+ String name = company.getName();
+ if (name != null) {
+ companyBandbox.setValue(name);
+ companyBandbox.close();
+ }
+ }
+ }
+ }
+
+ /*
+ * Getters
+ */
+ public String getCompanyId() {
+ return companyId;
+ }
+}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractFormController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractFormController.java 2010-08-16 10:16:48 UTC (rev 131)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractFormController.java 2010-08-18 15:17:57 UTC (rev 132)
@@ -6,6 +6,7 @@
import org.chorem.data.bonzoms.Employee;
import org.chorem.data.bonzoms.EmploymentContract;
import org.chorem.data.bonzoms.EmploymentContractImpl;
+import org.chorem.data.bonzoms.Invoice;
import org.chorem.data.bonzoms.Person;
import org.nuiton.wikitty.Criteria;
import org.nuiton.wikitty.WikittyProxy;
@@ -34,13 +35,10 @@
protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected EmploymentContract contract = new EmploymentContractImpl();
- protected EmployeeModel employeeModel = new EmployeeModel(5);
- protected Bandbox employeeBandbox;
- protected Listbox employeeListbox;
+ EmployeeBandboxMacro employeeBandboxMacro;
public static final String EVENT_ON_SAVE_CONTRACT = "onSaveContract";
- public static final String EVENT_ON_CLOSE_CONTRACT = "onCloseContract";
@Override
public void doAfterCompose(Component comp) throws Exception {
@@ -54,116 +52,21 @@
}
if (contractId != null) {
contract = proxy.restore(EmploymentContract.class, contractId);
+ employeeBandboxMacro.setEmployeeId(contract.getEmployee());
}
- initEmployeeBandbox();
DataBinder binder = new AnnotateDataBinder(comp);
binder.bindBean("composer", this);
binder.loadAll();
}
- protected void initEmployeeBandbox() {
- onOK$employeeBandbox();
- initBandbox();
- }
-
- protected void initBandbox() {
- String employeeId = contract.getEmployee();
- if (employeeId != null && !employeeId.isEmpty()) {
- Employee employee = proxy.restore(Employee.class, employeeId);
- String personId = employee.getPerson();
- if (personId != null && !personId.isEmpty()) {
- Person person = proxy.restore(Person.class, personId);
- String name = person.getFirstName() + " " + person.getLastName();
- employeeBandbox.setValue(name);
- }
- }
- employeeBandbox.close();
- }
-
/*
- * Renderers
- */
- public ListitemRenderer getEmployeeRenderer() {
- return new ListitemRenderer() {
-
- @Override
- public void render(Listitem item, Object data) throws Exception {
- item.setValue(data);
- String firstName = "";
- String lastName = "";
- final Employee employee = (Employee) data;
- String personId = employee.getPerson();
- if (personId != null && !personId.isEmpty()) {
- Person person = proxy.restore(Person.class, personId);
- firstName = person.getFirstName();
- lastName = person.getLastName();
- }
- final String name = firstName + " " + lastName;
- Listcell fName = new Listcell(firstName);
- Listcell lName = new Listcell(lastName);
- item.appendChild(fName);
- item.appendChild(lName);
- item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- contract.setEmployee(employee.getWikittyId());
- employeeBandbox.setValue(name);
- employeeBandbox.close();
- }
- });
- }
- };
- }
-
- /*
* Events
*/
- public void onClick$newEmployee() {
- contract.setEmployee(null);
- employeeBandbox.setValue("");
- onClick$editEmployee();
- }
-
- public void onClick$editEmployee() {
- String id = contract.getEmployee();
- Map<String, Object> map = new HashMap<String, Object>();
- if (id != null) {
- map.put("employeeId", id);
- }
- Window win = (Window) Executions.createComponents("employeeFormPage.zul", null, map);
- win.addEventListener(EmployeeFormController.EVENT_ON_SAVE_EMPLOYEE, new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- String employeeId = (String) event.getData();
- if (employeeId != null) {
- contract.setEmployee(employeeId);
- initBandbox();
- employeeModel.reload();
- }
- }
- });
- }
-
- public void onOK$employeeBandbox() {
- String search = employeeBandbox.getValue();
- Search query = Search.query().eq(Element.ELT_EXTENSION, Employee.EXT_EMPLOYEE);
- if (search != null && !search.isEmpty()) {
- query = query.keyword(search);
- }
- Criteria criteria = query.criteria();
- employeeModel.setCriteria(criteria);
- employeeBandbox.open();
- }
-
- public void onClose() {
- Events.postEvent(EVENT_ON_CLOSE_CONTRACT, this.self, null);
- }
-
public void onClick$saveContract() {
+ String employeeId = employeeBandboxMacro.getEmployeeId();
+ contract.setEmployee(employeeId);
contract = proxy.store(contract);
-
+
Events.postEvent(EVENT_ON_SAVE_CONTRACT, this.self, contract.getWikittyId());
self.detach();
@@ -175,8 +78,4 @@
public EmploymentContract getContract() {
return contract;
}
-
- public EmployeeModel getEmployeeModel() {
- return employeeModel;
- }
}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeBandboxMacro.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeBandboxMacro.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeBandboxMacro.java 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,148 @@
+package org.chorem.bonzoms.ui;
+
+import org.chorem.data.bonzoms.Employee;
+import org.chorem.data.bonzoms.Person;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Search;
+import org.zkoss.zk.ui.HtmlMacroComponent;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zk.ui.event.EventListener;
+import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zul.Bandbox;
+import org.zkoss.zul.Listbox;
+import org.zkoss.zul.Listcell;
+import org.zkoss.zul.Listitem;
+import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Paging;
+import org.zkoss.zul.event.PagingEvent;
+
+public class EmployeeBandboxMacro extends HtmlMacroComponent {
+
+ private final int pageSize = 5;
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected EmployeeModel employeeModel = new EmployeeModel(pageSize);
+ protected String employeeId = null;
+
+ @Override
+ public void afterCompose() {
+ super.afterCompose();
+ initPaging();
+ initBandbox();
+ initListbox();
+ }
+
+ protected void initPaging() {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Employee.EXT_EMPLOYEE).criteria();
+ employeeModel.setCriteria(criteria);
+
+ int totalSize = employeeModel.getTotalSize();
+ Paging employeePaging = (Paging) getFellow("employeePaging");
+ employeePaging.setTotalSize(totalSize);
+ employeePaging.setPageSize(pageSize);
+ employeePaging.addEventListener("onPaging", new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ PagingEvent pagingEvent = (PagingEvent) event;
+ int activePage = pagingEvent.getActivePage();
+ employeeModel.setActivePage(activePage);
+ }
+ });
+ }
+
+ protected void initBandbox() {
+ final Bandbox employeeBandbox = (Bandbox) getFellow("employeeBandbox");
+ employeeBandbox.addEventListener(Events.ON_OK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String search = employeeBandbox.getValue();
+ Search query = Search.query().eq(Element.ELT_EXTENSION, Employee.EXT_EMPLOYEE);
+ if (search != null && !search.isEmpty()) {
+ query = query.keyword(search);
+ }
+ Criteria criteria = query.criteria();
+ employeeModel.setCriteria(criteria);
+ int totalSize = employeeModel.getTotalSize();
+ Paging paging = (Paging) getFellow("employeePaging");
+ paging.setTotalSize(totalSize);
+ paging.setActivePage(0);
+ employeeBandbox.open();
+ }
+ });
+ }
+
+ protected void initListbox() {
+ Listbox employeeListbox = (Listbox) getFellow("employeeListbox");
+ employeeListbox.setModel(employeeModel);
+ ListitemRenderer renderer = getEmployeeRenderer();
+ employeeListbox.setItemRenderer(renderer);
+ }
+
+ /*
+ * Renderers
+ */
+ public ListitemRenderer getEmployeeRenderer() {
+ return new ListitemRenderer() {
+
+ @Override
+ public void render(Listitem item, Object data) throws Exception {
+ item.setValue(data);
+ String firstName = "";
+ String lastName = "";
+ final Employee employee = (Employee) data;
+ String personId = employee.getPerson();
+ if (personId != null && !personId.isEmpty()) {
+ Person person = proxy.restore(Person.class, personId);
+ firstName = person.getFirstName();
+ lastName = person.getLastName();
+ }
+ final String name = firstName + " " + lastName;
+ Listcell fName = new Listcell(firstName);
+ Listcell lName = new Listcell(lastName);
+ item.appendChild(fName);
+ item.appendChild(lName);
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ employeeId = employee.getWikittyId();
+ Bandbox bandbox = (Bandbox) getFellow("employeeBandbox");
+ bandbox.setValue(name);
+ bandbox.close();
+ }
+ });
+ }
+ };
+ }
+
+ /*
+ * Setters
+ */
+ public void setEmployeeId(String id) {
+ employeeId = id;
+ if (id != null) {
+ Employee employee = proxy.restore(Employee.class, id);
+ if (employee != null) {
+ String personId = employee.getPerson();
+ Person person = proxy.restore(Person.class, personId);
+ if (person != null) {
+ String name = person.getFirstName() + " " + person.getLastName();
+ Bandbox bandbox = (Bandbox) getFellow("employeeBandbox");
+ bandbox.setValue(name);
+ bandbox.close();
+ }
+ }
+ }
+ }
+
+ /*
+ * Getters
+ */
+ public String getEmployeeId() {
+ return employeeId;
+ }
+}
Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeFormController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeFormController.java 2010-08-16 10:16:48 UTC (rev 131)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeFormController.java 2010-08-18 15:17:57 UTC (rev 132)
@@ -28,28 +28,16 @@
import org.chorem.data.bonzoms.Address;
import org.chorem.data.bonzoms.AddressImpl;
-import org.chorem.data.bonzoms.Company;
import org.chorem.data.bonzoms.Employee;
import org.chorem.data.bonzoms.EmployeeImpl;
-import org.chorem.data.bonzoms.Person;
-import org.chorem.data.bonzoms.Service;
-import org.nuiton.wikitty.Criteria;
import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.search.Element;
-import org.nuiton.wikitty.search.Search;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.SuspendNotAllowedException;
-import org.zkoss.zk.ui.event.Event;
-import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zkplus.databind.AnnotateDataBinder;
import org.zkoss.zkplus.databind.DataBinder;
-import org.zkoss.zul.Bandbox;
-import org.zkoss.zul.Listcell;
-import org.zkoss.zul.Listitem;
-import org.zkoss.zul.ListitemRenderer;
import org.zkoss.zul.Window;
/**
@@ -63,16 +51,11 @@
protected Employee employee = new EmployeeImpl();
protected Address workingAddress = new AddressImpl();
- protected CompanyModel companyModel = new CompanyModel(5);
- protected ServiceModel serviceModel = new ServiceModel(5);
- protected PersonModel personModel = new PersonModel(5);
+ protected CompanyBandboxMacro companyBandboxMacro;
+ protected ServiceBandboxMacro serviceBandboxMacro;
+ protected PersonBandboxMacro personBandboxMacro;
- protected Bandbox companyBandbox;
- protected Bandbox serviceBandbox;
- protected Bandbox personBandbox;
-
public static final String EVENT_ON_SAVE_EMPLOYEE = "onSaveEmployee";
- public static final String EVENT_ON_CLOSE_EMPLOYEE = "onCloseEmployee";
@Override
public void doAfterCompose(Component comp) throws Exception {
@@ -98,257 +81,144 @@
Component comp = self.getFellowIfAny("editContracts", false);
comp.setVisible(false);
}
- initServiceModel();
- initCompanyModel();
- initPersonModel();
}
protected void initEmployee(String employeeId) {
employee = proxy.restore(Employee.class, employeeId);
workingAddress = proxy.restore(Address.class, employee.getAddress());
+ companyBandboxMacro.setCompanyId(employee.getCompany());
+ serviceBandboxMacro.setServiceId(employee.getService());
+ personBandboxMacro.setPersonId(employee.getPerson());
}
- protected void initServiceModel() {
- onOK$serviceBandbox();
- String serviceId = employee.getService();
- if (serviceId != null && !serviceId.isEmpty()) {
- Service service = proxy.restore(Service.class, serviceId);
- serviceBandbox.setValue(service.getType());
- }
- serviceBandbox.close();
- }
-
- protected void initCompanyModel() {
- onOK$companyBandbox();
- String companyId = employee.getCompany();
- if (companyId != null && !companyId.isEmpty()) {
- Company company = proxy.restore(Company.class, companyId);
- companyBandbox.setValue(company.getName());
- }
- companyBandbox.close();
- }
-
- protected void initPersonModel() {
- onOK$personBandbox();
- String personId = employee.getPerson();
- if (personId != null && !personId.isEmpty()) {
- Person person = proxy.restore(Person.class, personId);
- String name = person.getFirstName() + " " + person.getLastName();
- personBandbox.setValue(name);
- }
- personBandbox.close();
- }
-
/*
- * Renderers
- */
- public ListitemRenderer getCompanyRenderer() {
- return new ListitemRenderer() {
-
- @Override
- public void render(Listitem item, Object data) throws Exception {
- item.setValue(data);
- final Company company = (Company) data;
- Listcell name = new Listcell(company.getName());
- Listcell type = new Listcell(company.getType());
- item.appendChild(name);
- item.appendChild(type);
- item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- employee.setCompany(company.getWikittyId());
- companyBandbox.setValue(company.getName());
- companyBandbox.close();
- }
- });
- }
- };
- }
-
- public ListitemRenderer getServiceRenderer() {
- return new ListitemRenderer() {
-
- @Override
- public void render(Listitem item, Object data) throws Exception {
- item.setValue(data);
- final Service service = (Service) data;
- Listcell name = new Listcell(service.getType());
- item.appendChild(name);
- item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- employee.setService(service.getWikittyId());
- serviceBandbox.setValue(service.getType());
- serviceBandbox.close();
- }
- });
- }
- };
- }
-
- public ListitemRenderer getPersonRenderer() {
- return new ListitemRenderer() {
-
- @Override
- public void render(Listitem item, Object data) throws Exception {
- item.setValue(data);
- final Person person = (Person) data;
- Listcell firstName = new Listcell(person.getFirstName());
- Listcell lastName = new Listcell(person.getLastName());
- item.appendChild(firstName);
- item.appendChild(lastName);
- item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- employee.setPerson(person.getWikittyId());
- String name = person.getFirstName() + " " + person.getLastName();
- personBandbox.setValue(name);
- personBandbox.close();
- }
- });
- }
- };
- }
-
- /*
* Events
*/
- public void onOK$companyBandbox() {
- String search = companyBandbox.getValue();
- Search query = Search.query().eq(Element.ELT_EXTENSION, Company.EXT_COMPANY);
- if (search != null && !search.isEmpty()) {
- query = query.keyword(search);
- }
- Criteria criteria = query.criteria();
- companyModel.setCriteria(criteria);
- companyBandbox.open();
- }
-
- public void onOK$serviceBandbox() {
- String search = serviceBandbox.getValue();
- Search query = Search.query().eq(Element.ELT_EXTENSION, Service.EXT_SERVICE);
- if (search != null && !search.isEmpty()) {
- query = query.keyword(search);
- }
- Criteria criteria = query.criteria();
- serviceModel.setCriteria(criteria);
- serviceBandbox.open();
- }
-
- public void onOK$personBandbox() {
- String search = personBandbox.getValue();
- Search query = Search.query().eq(Element.ELT_EXTENSION, Person.EXT_PERSON);
- if (search != null && !search.isEmpty()) {
- query = query.keyword(search);
- }
- Criteria criteria = query.criteria();
- personModel.setCriteria(criteria);
- personBandbox.open();
- }
-
- public void onClose() {
- Events.postEvent(EVENT_ON_CLOSE_EMPLOYEE, this.self, null);
- }
-
public void onClick$saveEmployee() {
-
+ employee.setCompany(companyBandboxMacro.getCompanyId());
+ employee.setPerson(personBandboxMacro.getPersonId());
+ employee.setService(serviceBandboxMacro.getServiceId());
workingAddress = proxy.store(workingAddress);
employee.setAddress(workingAddress.getWikittyId());
-
+
employee = proxy.store(employee);
Events.postEvent(EVENT_ON_SAVE_EMPLOYEE, this.self, employee.getWikittyId());
this.self.detach();
}
- public void onClick$newPerson() {
- employee.setPerson(null);
- personBandbox.setValue("");
- onClick$editPerson();
- }
-
- public void onClick$editPerson() {
- Map<String, Object> map = new HashMap<String, Object>();
- String id = employee.getPerson();
- if (id != null && !id.isEmpty()) {
- map.put("personId", id);
- }
- Window win = (Window) Executions.createComponents("personFormPage.zul", null, map);
- win.addEventListener(PersonFormController.EVENT_ON_SAVE_PERSON, new EventListener() {
+// public void onClick$newPerson() {
+// employee.setPerson(null);
+// personBandbox.setValue("");
+// onClick$editPerson();
+// }
+//
+// public void onClick$editPerson() {
+// Map<String, Object> map = new HashMap<String, Object>();
+// String id = employee.getPerson();
+// if (id != null && !id.isEmpty()) {
+// map.put("personId", id);
+// }
+// Window win = (Window) Executions.createComponents("personFormPage.zul", null, map);
+// win.addEventListener(PersonFormController.EVENT_ON_SAVE_PERSON, new EventListener() {
+//
+// @Override
+// public void onEvent(Event event) throws Exception {
+// String personId = (String) event.getData();
+// if (personId != null) {
+// employee.setPerson(personId);
+// Person person = proxy.restore(Person.class, personId);
+// String name = person.getFirstName() + " " + person.getLastName();
+// personBandbox.setValue(name);
+// }
+// personModel.reload();
+// }
+// });
+// } public void onClick$newService() {
+// employee.setService(null);
+// serviceBandbox.setValue("");
+// onClick$editService();
+//}
+//
+//public void onClick$editService() {
+// Map<String, Object> map = new HashMap<String, Object>();
+// String id = employee.getService();
+// if (id != null && !id.isEmpty()) {
+// map.put("serviceId", id);
+// }
+// Window win = (Window) Executions.createComponents("serviceFormPage.zul", null, map);
+// win.addEventListener(ServiceFormController.EVENT_ON_SAVE_SERVICE, new EventListener() {
+// @Override
+// public void onEvent(Event event) throws Exception {
+// String serviceId = (String) event.getData();
+// if (serviceId != null) {
+// employee.setService(serviceId);
+// Service service = proxy.restore(Service.class, serviceId);
+// serviceBandbox.setValue(service.getType());
+// }
+// serviceModel.reload();
+// }
+// });
+//
+//}
- @Override
- public void onEvent(Event event) throws Exception {
- String personId = (String) event.getData();
- if (personId != null) {
- employee.setPerson(personId);
- Person person = proxy.restore(Person.class, personId);
- String name = person.getFirstName() + " " + person.getLastName();
- personBandbox.setValue(name);
- }
- personModel.reload();
- }
- });
- }
- public void onClick$newCompany() {
- employee.setCompany(null);
- companyBandbox.setValue("");
- onClick$editCompany();
- }
-
- public void onClick$editCompany() {
- Map<String, Object> map = new HashMap<String, Object>();
- String id = employee.getCompany();
- if (id != null && !id.isEmpty()) {
- map.put("companyId", id);
- }
- Window win = (Window) Executions.createComponents("companyFormPage.zul", null, map);
- win.addEventListener(CompanyFormController.EVENT_ON_SAVE_COMPANY, new EventListener() {
+// public void onClick$newCompany() {
+// employee.setCompany(null);
+// companyBandbox.setValue("");
+// onClick$editCompany();
+// }
+//
+// public void onClick$editCompany() {
+// Map<String, Object> map = new HashMap<String, Object>();
+// String id = employee.getCompany();
+// if (id != null && !id.isEmpty()) {
+// map.put("companyId", id);
+// }
+// Window win = (Window) Executions.createComponents("companyFormPage.zul", null, map);
+// win.addEventListener(CompanyFormController.EVENT_ON_SAVE_COMPANY, new EventListener() {
+//
+// @Override
+// public void onEvent(Event event) throws Exception {
+// String companyId = (String) event.getData();
+// if (companyId != null) {
+// employee.setCompany(companyId);
+// Company company = proxy.restore(Company.class, companyId);
+// companyBandbox.setValue(company.getName());
+// }
+// companyModel.reload();
+// }
+// });
+// }
- @Override
- public void onEvent(Event event) throws Exception {
- String companyId = (String) event.getData();
- if (companyId != null) {
- employee.setCompany(companyId);
- Company company = proxy.restore(Company.class, companyId);
- companyBandbox.setValue(company.getName());
- }
- companyModel.reload();
- }
- });
- }
+// public void onClick$newService() {
+// employee.setService(null);
+// serviceBandbox.setValue("");
+// onClick$editService();
+// }
+//
+// public void onClick$editService() {
+// Map<String, Object> map = new HashMap<String, Object>();
+// String id = employee.getService();
+// if (id != null && !id.isEmpty()) {
+// map.put("serviceId", id);
+// }
+// Window win = (Window) Executions.createComponents("serviceFormPage.zul", null, map);
+// win.addEventListener(ServiceFormController.EVENT_ON_SAVE_SERVICE, new EventListener() {
+// @Override
+// public void onEvent(Event event) throws Exception {
+// String serviceId = (String) event.getData();
+// if (serviceId != null) {
+// employee.setService(serviceId);
+// Service service = proxy.restore(Service.class, serviceId);
+// serviceBandbox.setValue(service.getType());
+// }
+// serviceModel.reload();
+// }
+// });
+//
+// }
- public void onClick$newService() {
- employee.setService(null);
- serviceBandbox.setValue("");
- onClick$editService();
- }
-
- public void onClick$editService() {
- Map<String, Object> map = new HashMap<String, Object>();
- String id = employee.getService();
- if (id != null && !id.isEmpty()) {
- map.put("serviceId", id);
- }
- Window win = (Window) Executions.createComponents("serviceFormPage.zul", null, map);
- win.addEventListener(ServiceFormController.EVENT_ON_SAVE_SERVICE, new EventListener() {
- @Override
- public void onEvent(Event event) throws Exception {
- String serviceId = (String) event.getData();
- if (serviceId != null) {
- employee.setService(serviceId);
- Service service = proxy.restore(Service.class, serviceId);
- serviceBandbox.setValue(service.getType());
- }
- serviceModel.reload();
- }
- });
-
- }
-
public void onClick$editContracts() throws SuspendNotAllowedException, InterruptedException {
Map<String, Object> map = new HashMap<String, Object>();
String id = employee.getWikittyId();
@@ -365,18 +235,6 @@
return employee;
}
- public CompanyModel getCompanyModel() {
- return companyModel;
- }
-
- public PersonModel getPersonModel() {
- return personModel;
- }
-
- public ServiceModel getServiceModel() {
- return serviceModel;
- }
-
public Address getWorkingAddress() {
return workingAddress;
}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportController.java 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,195 @@
+package org.chorem.bonzoms.ui;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.chorem.data.bonzoms.ExportReport;
+import org.chorem.data.bonzoms.ExportReportItem;
+import org.chorem.data.bonzoms.Person;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Search;
+import org.zkoss.zk.ui.Component;
+import org.zkoss.zk.ui.Executions;
+import org.zkoss.zk.ui.SuspendNotAllowedException;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zk.ui.event.EventListener;
+import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zk.ui.event.ForwardEvent;
+import org.zkoss.zk.ui.util.GenericForwardComposer;
+import org.zkoss.zul.Listcell;
+import org.zkoss.zul.Listitem;
+import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Paging;
+import org.zkoss.zul.Window;
+import org.zkoss.zul.event.PagingEvent;
+
+public class ExportReportController extends GenericForwardComposer {
+
+ protected final int pageSize = 20;
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected ExportReportModel exportReportModel = new ExportReportModel(pageSize);
+
+ protected Paging exportReportPaging;
+
+ @Override
+ public void doAfterCompose(Component comp) throws Exception {
+ super.doAfterCompose(comp);
+ initExportReportModel();
+ initPaging();
+ }
+
+ protected void initExportReportModel() {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, ExportReport.EXT_EXPORTREPORT).criteria();
+ exportReportModel.setCriteria(criteria);
+ }
+
+ protected void initPaging() {
+ exportReportPaging.setPageSize(pageSize);
+ int totalSize = exportReportModel.getTotalSize();
+ exportReportPaging.setTotalSize(totalSize);
+ }
+
+ protected void createWindowExportReportForm(String id) throws SuspendNotAllowedException, InterruptedException {
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (id != null) {
+ map.put("exportReportId", id);
+ }
+ Window win = (Window) Executions.createComponents("exportReportFormPage.zul", null, map);
+ win.addEventListener(ExportReportFormController.EVENT_ON_SAVE_EXPORTREPORT, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String id = (String) event.getData();
+ ExportReport exportReport = proxy.restore(ExportReport.class, id);
+ int rowIndex = exportReportModel.indexOf(exportReport);
+ if (rowIndex != -1) {
+ exportReportModel.reloadContent(rowIndex);
+ } else {
+ exportReportModel.addData(exportReport);
+ }
+ int totalSize = exportReportModel.getTotalSize();
+ exportReportPaging.setTotalSize(totalSize);
+ }
+ });
+ }
+
+ protected Listcell getDateCell(Date date) {
+ Listcell cell = new Listcell();
+ if (date != null) {
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
+ String label = sdf.format(date);
+ cell.setLabel(label);
+ }
+ return cell;
+ }
+
+ protected Listcell getPersonCell(String id) {
+ Listcell cell = new Listcell();
+ if (id != null && !id.isEmpty()) {
+ Person person = proxy.restore(Person.class, id);
+ if (person != null) {
+ String name = "";
+ String str = person.getFirstName();
+ if (str != null) {
+ name += str + " ";
+ }
+ str = person.getLastName();
+ if (str != null) {
+ name += str;
+ }
+ cell.setLabel(name);
+ }
+ }
+ return cell;
+ }
+
+ protected Listcell getPriceCell(String id) {
+ Listcell cell = new Listcell();
+ if (id != null && !id.isEmpty()) {
+ Search search = Search.query().eq(Element.ELT_EXTENSION, ExportReportItem.EXT_EXPORTREPORTITEM);
+ search = search.eq(ExportReportItem.FQ_FIELD_EXPORTREPORTITEM_EXPORTREPORT, id);
+ Criteria criteria = search.criteria();
+ List<ExportReportItem> items = proxy.findAllByCriteria(ExportReportItem.class, criteria).getAll();
+ double price = 0;
+ for (ExportReportItem item : items) {
+ Double amount = item.getTTCAmount();
+ if (amount != null) {
+ price += amount;
+ }
+ }
+ cell.setLabel(String.valueOf(price));
+ }
+ return cell;
+ }
+
+ /*
+ * Renderers
+ */
+ public ListitemRenderer getExportReportRenderer() {
+ return new ListitemRenderer() {
+
+ @Override
+ public void render(Listitem item, Object data) throws Exception {
+ item.setValue(data);
+ final ExportReport exportReport = (ExportReport) data;
+
+ Listcell createdDateCell = getDateCell(exportReport.getDate());
+ item.appendChild(createdDateCell);
+
+ Listcell numberCell = new Listcell(exportReport.getNumber());
+ item.appendChild(numberCell);
+
+ Listcell stateCell = new Listcell(exportReport.getState());
+ item.appendChild(stateCell);
+
+ Listcell personCell = getPersonCell(exportReport.getPerson());
+ item.appendChild(personCell);
+
+ Listcell paymentDateCell = getDateCell(exportReport.getPayment());
+ item.appendChild(paymentDateCell);
+
+ Listcell priceCell = getPriceCell(exportReport.getWikittyId());
+ item.appendChild(priceCell);
+
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ createWindowExportReportForm(exportReport.getWikittyId());
+ }
+ });
+ }
+ };
+ }
+
+
+ /*
+ * Events
+ */
+ public void onClick$newExportReport() throws SuspendNotAllowedException, InterruptedException {
+ createWindowExportReportForm(null);
+ }
+
+ public void onPaging$exportReportPaging(ForwardEvent event) {
+ PagingEvent pagingEvent = (PagingEvent) event.getOrigin();
+ int activePage = pagingEvent.getActivePage();
+ exportReportModel.setActivePage(activePage);
+ }
+
+ /*
+ * Getters
+ */
+ public ExportReportModel getExportReportModel() {
+ return exportReportModel;
+ }
+
+ /*
+ * Setters
+ */
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportFormController.java 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,234 @@
+package org.chorem.bonzoms.ui;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.chorem.data.bonzoms.ExportReport;
+import org.chorem.data.bonzoms.ExportReportImpl;
+import org.chorem.data.bonzoms.ExportReportItem;
+import org.chorem.data.bonzoms.ExportReportItemImpl;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.search.Search;
+import org.zkoss.zk.ui.Component;
+import org.zkoss.zk.ui.Executions;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zk.ui.event.EventListener;
+import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zk.ui.util.GenericForwardComposer;
+import org.zkoss.zkplus.databind.AnnotateDataBinder;
+import org.zkoss.zkplus.databind.DataBinder;
+import org.zkoss.zul.Datebox;
+import org.zkoss.zul.Doublebox;
+import org.zkoss.zul.Listbox;
+import org.zkoss.zul.Listcell;
+import org.zkoss.zul.Listitem;
+import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Window;
+import org.zkoss.zul.api.Textbox;
+
+public class ExportReportFormController extends GenericForwardComposer {
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+
+ protected ExportReport exportReport = new ExportReportImpl();
+ protected ExportReportItemModel itemsModel = new ExportReportItemModel();
+ protected ExportReportItem selectedItem = null;
+ protected List<String> removedItems = new ArrayList<String>();
+
+ protected Listbox itemListbox;
+
+ public static final String EVENT_ON_SAVE_EXPORTREPORT = "onSaveExportReport";
+
+ @Override
+ public void doAfterCompose(Component comp) throws Exception {
+ super.doAfterCompose(comp);
+ Window win = (Window) self;
+ win.doModal();
+ win.setPosition("center");
+ String exportReportId = Executions.getCurrent().getParameter("exportReportId");
+ if (exportReportId == null) {
+ exportReportId = (String) arg.get("exportReportId");
+ }
+ init(exportReportId);
+ DataBinder binder = new AnnotateDataBinder(comp);
+ binder.bindBean("composer", this);
+ binder.loadAll();
+ }
+
+ protected void init(String exportReportId) {
+ if (exportReportId == null) {
+ initDefaultExportReport();
+ } else {
+ initExportReport(exportReportId);
+ }
+ }
+
+ protected void initDefaultExportReport() {
+ ExportReportItem item = newItem();
+ itemsModel.addData(item);
+ selectedItem = item;
+ }
+
+ protected void initExportReport(String id) {
+ exportReport = proxy.restore(ExportReport.class, id);
+ Criteria criteria = Search.query().eq(ExportReportItem.FQ_FIELD_EXPORTREPORTITEM_EXPORTREPORT, id).criteria();
+ List<ExportReportItem> items = proxy.findAllByCriteria(ExportReportItem.class, criteria).getAll();
+ items = new ArrayList<ExportReportItem>(items);
+ if (items.size() == 0) {
+ ExportReportItem item = newItem();
+ items.add(item);
+ }
+ selectedItem = items.get(0);
+ itemsModel.setItems(items);
+ }
+
+ protected ExportReportItem newItem() {
+ ExportReportItem item = new ExportReportItemImpl();
+ item.setCompany("");
+ item.setDate(new Date());
+ return item;
+ }
+
+ protected void saveItems() {
+ List<ExportReportItem> items = itemsModel.getItems();
+ for (ExportReportItem item : items) {
+ item.setExportReport(exportReport.getWikittyId());
+ }
+ proxy.store(items);
+ proxy.delete(removedItems);
+ }
+
+ protected void setItemBox() {
+ Textbox textbox = (Textbox) self.getFellow("exportReportJustifyNumber");
+ textbox.setValue(selectedItem.getJustifyNumber());
+
+ Doublebox doublebox = (Doublebox) self.getFellow("exportReportHTAmount");
+ doublebox.setValue(selectedItem.getHTAmount());
+
+ doublebox = (Doublebox) self.getFellow("exportReportTTCAmount");
+ doublebox.setValue(selectedItem.getTTCAmount());
+
+ doublebox = (Doublebox) self.getFellow("exportReportTVA");
+ doublebox.setValue(selectedItem.getTVA());
+
+ Datebox datebox = (Datebox) self.getFellow("exportReportDate");
+ datebox.setValue(selectedItem.getDate());
+ }
+
+ protected Listcell getDateCell(Date date) {
+ Listcell cell = new Listcell();
+ if (date != null) {
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
+ String label = sdf.format(date);
+ cell.setLabel(label);
+ }
+ return cell;
+ }
+
+ protected Listcell getJustifyNumberCell(String number) {
+ Listcell cell = new Listcell();
+ if (number != null) {
+ cell.setLabel(number);
+ }
+ return cell;
+ }
+
+ /*
+ * Renderers
+ */
+ public ListitemRenderer getExportReportItemRenderer() {
+ return new ListitemRenderer() {
+
+ @Override
+ public void render(Listitem item, Object data) throws Exception {
+ item.setValue(data);
+ final ExportReportItem exportReportitem = (ExportReportItem) data;
+
+ Listcell date = getDateCell(exportReportitem.getDate());
+ item.appendChild(date);
+
+ Listcell justifyNumber = getJustifyNumberCell(exportReportitem.getJustifyNumber());
+ item.appendChild(justifyNumber);
+
+ Listcell HT = new Listcell(String.valueOf(exportReportitem.getHTAmount()));
+ item.appendChild(HT);
+
+ Listcell TVA = new Listcell(String.valueOf(exportReportitem.getTVA()));
+ item.appendChild(TVA);
+
+ Listcell TTC = new Listcell(String.valueOf(exportReportitem.getTTCAmount()));
+ item.appendChild(TTC);
+
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ selectedItem = exportReportitem;
+ setItemBox();
+ }
+ });
+ }
+ };
+ }
+
+ /*
+ * Events
+ */
+ public void onClick$saveItem() {
+ if (selectedItem != null) {
+ int rowIndex = itemsModel.indexOf(selectedItem);
+ itemsModel.reloadContent(rowIndex);
+ }
+ }
+
+ public void onClick$saveExportReport() {
+ exportReport = proxy.store(exportReport);
+ saveItems();
+ Events.postEvent(EVENT_ON_SAVE_EXPORTREPORT, this.self, exportReport.getWikittyId());
+ self.detach();
+ }
+
+ public void onClick$addItem() {
+ ExportReportItem item = newItem();
+ selectedItem = item;
+ setItemBox();
+ itemsModel.addData(item);
+ }
+
+ public void onClick$deleteItem() {
+ if (itemsModel.getSize() > 1) {
+ Listitem item = itemListbox.getSelectedItem();
+ if (item != null) {
+ ExportReportItem exportReportItem = (ExportReportItem) item.getValue();
+ if (exportReportItem != null) {
+ itemsModel.removeData(exportReportItem);
+ String id = exportReportItem.getWikittyId();
+ if (id != null && !id.isEmpty()) {
+ removedItems.add(id);
+ }
+ selectedItem = (ExportReportItem) itemsModel.getElementAt(0);
+ setItemBox();
+ itemListbox.setSelectedIndex(0);
+ }
+ }
+ }
+ }
+
+ /*
+ * Getters
+ */
+ public ExportReport getExportReport() {
+ return exportReport;
+ }
+
+ public ExportReportItemModel getItemsModel() {
+ return itemsModel;
+ }
+
+ public ExportReportItem getSelectedItem() {
+ return selectedItem;
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportItemModel.java 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,57 @@
+package org.chorem.bonzoms.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.chorem.data.bonzoms.ExportReportItem;
+import org.zkoss.zkplus.databind.BindingListModel;
+import org.zkoss.zul.AbstractListModel;
+import org.zkoss.zul.event.ListDataEvent;
+
+public class ExportReportItemModel extends AbstractListModel implements BindingListModel {
+
+ List<ExportReportItem> items = new ArrayList<ExportReportItem>();
+
+ @Override
+ public Object getElementAt(int index) {
+ return items.get(index);
+ }
+
+ @Override
+ public int getSize() {
+ return items.size();
+ }
+
+ @Override
+ public int indexOf(Object obj) {
+ return items.indexOf(obj);
+ }
+
+ public void setItems(List<ExportReportItem> items) {
+ this.items = items;
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public void addData(ExportReportItem newData) {
+ items.add(newData);
+ fireEvent(ListDataEvent.INTERVAL_ADDED, items.size() - 1, items.size() - 1);
+ }
+
+ public void removeData(ExportReportItem data) {
+ int interval = items.indexOf(data);
+ items.remove(data);
+ fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ }
+
+ public void reloadContent(int rowIndex) {
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
+ }
+
+ public void reload() {
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public List<ExportReportItem> getItems() {
+ return items;
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportMacro.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportMacro.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportMacro.java 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,15 @@
+package org.chorem.bonzoms.ui;
+
+import org.nuiton.wikitty.WikittyProxy;
+import org.zkoss.zk.ui.HtmlMacroComponent;
+
+public class ExportReportMacro extends HtmlMacroComponent {
+
+ protected String id = null;
+ protected WikittyProxy proxy = BonzomsProxy.getInstance();
+
+ @Override
+ public void afterCompose() {
+ super.afterCompose();
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportModel.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportModel.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ExportReportModel.java 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,117 @@
+package org.chorem.bonzoms.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.chorem.bonzoms.ui.ChoremDataProxy;
+import org.chorem.data.bonzoms.ExportReport;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.PagedResult;
+import org.nuiton.wikitty.WikittyProxy;
+import org.zkoss.zkplus.databind.BindingListModel;
+import org.zkoss.zul.AbstractListModel;
+import org.zkoss.zul.event.ListDataEvent;
+
+public class ExportReportModel extends AbstractListModel implements BindingListModel {
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected Criteria criteria = null;
+ protected int activePage = 0;
+ protected int pageSize = 1;
+ protected List<ExportReport> exportReports = new ArrayList<ExportReport>();
+
+ public ExportReportModel(int pageSize) {
+ this.pageSize = pageSize;
+ createList();
+ }
+
+ @Override
+ public Object getElementAt(int index) {
+ ExportReport exportReport = exportReports.get(index);
+ return exportReport;
+ }
+
+ @Override
+ public int getSize() {
+ return exportReports.size();
+ }
+
+ @Override
+ public int indexOf(Object obj) {
+ int index = -1;
+ String id = ((ExportReport) obj).getWikittyId();
+ for (ExportReport data : exportReports) {
+ String dataId = data.getWikittyId();
+ if (id.equals(dataId)) {
+ index = exportReports.indexOf(data);
+ break;
+ }
+ }
+ return index;
+ }
+
+ public int getTotalSize() {
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<ExportReport> result = proxy.findAllByCriteria(ExportReport.class, criteria);
+ return result.getNumFound();
+ }
+
+ public void addData(ExportReport newData) {
+ int listSize = exportReports.size();
+ if (listSize < (pageSize)) {
+ exportReports.add(newData);
+ }
+ int size = getSize();
+ fireEvent(ListDataEvent.INTERVAL_ADDED, size - 1, size - 1);
+ }
+
+ public void removeData(ExportReport data) {
+ int interval = exportReports.indexOf(data);
+ if (interval != -1) {
+ exportReports.remove(interval);
+ fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
+ }
+ }
+
+ public void reloadContent(int rowIndex) {
+ ExportReport exportReport = exportReports.get(rowIndex);
+ exportReport = proxy.restore(ExportReport.class, exportReport.getWikittyId());
+ exportReports.set(rowIndex, exportReport);
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
+ }
+
+ public void reload() {
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public Criteria getCriteria() {
+ return criteria;
+ }
+
+ public void setCriteria(Criteria criteria) {
+ if (criteria != null) {
+ this.criteria = criteria;
+ activePage = 0;
+ createList();
+ }
+ }
+
+ protected void createList() {
+ if (criteria != null) {
+ int first = activePage * pageSize;
+ int end = first + (pageSize - 1);
+ Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
+ List<ExportReport> exportReports = proxy.findAllByCriteria(ExportReport.class, criteria).getAll();
+ this.exportReports = new ArrayList<ExportReport>(exportReports);
+ }
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
+ }
+
+ public void setActivePage(int activePage) {
+ this.activePage = activePage;
+ createList();
+ }
+}
\ No newline at end of file
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonBandboxMacro.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonBandboxMacro.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonBandboxMacro.java 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,136 @@
+package org.chorem.bonzoms.ui;
+
+import org.chorem.data.bonzoms.Person;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Search;
+import org.zkoss.zk.ui.HtmlMacroComponent;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zk.ui.event.EventListener;
+import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zul.Bandbox;
+import org.zkoss.zul.Listbox;
+import org.zkoss.zul.Listcell;
+import org.zkoss.zul.Listitem;
+import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Paging;
+import org.zkoss.zul.event.PagingEvent;
+
+public class PersonBandboxMacro extends HtmlMacroComponent {
+
+ protected final int pageSize = 5;
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected PersonModel personModel = new PersonModel(pageSize);
+ protected String personId = null;
+
+ @Override
+ public void afterCompose() {
+ super.afterCompose();
+ initPaging();
+ initBandbox();
+ initListbox();
+ }
+
+ protected void initPaging() {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Person.EXT_PERSON).criteria();
+ personModel.setCriteria(criteria);
+
+ int totalSize = personModel.getTotalSize();
+ Paging paging = (Paging) getFellow("personPaging");
+ paging.setTotalSize(totalSize);
+ paging.setPageSize(pageSize);
+ paging.addEventListener("onPaging", new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ PagingEvent pagingEvent = (PagingEvent) event;
+ int activePage = pagingEvent.getActivePage();
+ personModel.setActivePage(activePage);
+ }
+ });
+ }
+
+ protected void initBandbox() {
+ final Bandbox bandbox = (Bandbox) getFellow("personBandbox");
+ bandbox.addEventListener(Events.ON_OK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String search = bandbox.getValue();
+ Search query = Search.query().eq(Element.ELT_EXTENSION, Person.EXT_PERSON);
+ if (search != null && !search.isEmpty()) {
+ query = query.keyword(search);
+ }
+ Criteria criteria = query.criteria();
+ personModel.setCriteria(criteria);
+ int totalSize = personModel.getTotalSize();
+ Paging paging = (Paging) getFellow("personPaging");
+ paging.setTotalSize(totalSize);
+ paging.setActivePage(0);
+ bandbox.open();
+ }
+ });
+ }
+
+ protected void initListbox() {
+ Listbox listbox = (Listbox) getFellow("personListbox");
+ listbox.setModel(personModel);
+ ListitemRenderer renderer = getPersonRenderer();
+ listbox.setItemRenderer(renderer);
+ }
+
+ /*
+ * Renderer
+ */
+ public ListitemRenderer getPersonRenderer() {
+ return new ListitemRenderer() {
+
+ @Override
+ public void render(Listitem item, Object data) throws Exception {
+ item.setValue(data);
+ final Person person = (Person) data;
+ Listcell firstName = new Listcell(person.getFirstName());
+ Listcell lastName = new Listcell(person.getLastName());
+ item.appendChild(firstName);
+ item.appendChild(lastName);
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ personId = person.getWikittyId();
+ Bandbox bandbox = (Bandbox) getFellow("personBandbox");
+ bandbox.setValue(person.getFirstName() + " " + person.getLastName());
+ bandbox.close();
+ }
+ });
+ }
+ };
+ }
+
+ /*
+ * Setters
+ */
+ public void setPersonId(String id) {
+ personId = id;
+ if (id != null) {
+ Person person = proxy.restore(Person.class, id);
+ if (person != null) {
+ Bandbox bandbox = (Bandbox) getFellow("personBandbox");
+ String name = person.getFirstName() + " " + person.getLastName();
+ if (name != null) {
+ bandbox.setValue(name);
+ bandbox.close();
+ }
+ }
+ }
+ }
+
+ /*
+ * Getters
+ */
+ public String getPersonId() {
+ return personId;
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceBandboxMacro.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceBandboxMacro.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceBandboxMacro.java 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,135 @@
+package org.chorem.bonzoms.ui;
+
+import org.chorem.data.bonzoms.Service;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Search;
+import org.zkoss.zk.ui.HtmlMacroComponent;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zk.ui.event.EventListener;
+import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zul.Bandbox;
+import org.zkoss.zul.Listbox;
+import org.zkoss.zul.Listcell;
+import org.zkoss.zul.Listitem;
+import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Paging;
+import org.zkoss.zul.event.PagingEvent;
+
+public class ServiceBandboxMacro extends HtmlMacroComponent {
+
+ protected final int pageSize = 5;
+
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected ServiceModel serviceModel = new ServiceModel(pageSize);
+ protected String serviceId = null;
+
+ @Override
+ public void afterCompose() {
+ super.afterCompose();
+ initPaging();
+ initBandbox();
+ initListbox();
+ }
+
+ protected void initPaging() {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Service.EXT_SERVICE).criteria();
+ serviceModel.setCriteria(criteria);
+
+ int totalSize = serviceModel.getTotalSize();
+ Paging paging = (Paging) getFellow("servicePaging");
+ paging.setTotalSize(totalSize);
+ paging.setPageSize(pageSize);
+ paging.addEventListener("onPaging", new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ PagingEvent pagingEvent = (PagingEvent) event;
+ int activePage = pagingEvent.getActivePage();
+ serviceModel.setActivePage(activePage);
+ }
+ });
+ }
+
+ protected void initBandbox() {
+ final Bandbox bandbox = (Bandbox) getFellow("serviceBandbox");
+ bandbox.addEventListener(Events.ON_OK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String search = bandbox.getValue();
+ Search query = Search.query().eq(Element.ELT_EXTENSION, Service.EXT_SERVICE);
+ if (search != null && !search.isEmpty()) {
+ query = query.keyword(search);
+ }
+ Criteria criteria = query.criteria();
+ serviceModel.setCriteria(criteria);
+ int totalSize = serviceModel.getTotalSize();
+ Paging paging = (Paging) getFellow("servicePaging");
+ paging.setTotalSize(totalSize);
+ paging.setActivePage(0);
+ bandbox.open();
+ }
+ });
+ }
+
+ protected void initListbox() {
+ Listbox listbox = (Listbox) getFellow("serviceListbox");
+ listbox.setModel(serviceModel);
+ ListitemRenderer renderer = getPersonRenderer();
+ listbox.setItemRenderer(renderer);
+ }
+
+ /*
+ * Renderer
+ */
+ public ListitemRenderer getPersonRenderer() {
+ return new ListitemRenderer() {
+
+ @Override
+ public void render(Listitem item, Object data) throws Exception {
+ item.setValue(data);
+ item.setValue(data);
+ final Service service = (Service) data;
+ Listcell name = new Listcell(service.getType());
+ item.appendChild(name);
+ item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ serviceId = service.getWikittyId();
+ Bandbox bandbox = (Bandbox) getFellow("serviceBandbox");
+ bandbox.setValue(service.getType());
+ bandbox.close();
+ }
+ });
+ }
+ };
+ }
+
+ /*
+ * Setters
+ */
+ public void setServiceId(String id) {
+ serviceId = id;
+ if (id != null) {
+ Service service = proxy.restore(Service.class, id);
+ if (service != null) {
+ Bandbox bandbox = (Bandbox) getFellow("serviceBandbox");
+ String name = service.getType();
+ if (name != null) {
+ bandbox.setValue(name);
+ bandbox.close();
+ }
+ }
+ }
+ }
+
+ /*
+ * Getters
+ */
+ public String getServiceId() {
+ return serviceId;
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/lang-addon.xml 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<language-addon>
+
+ <addon-name>My macros</addon-name>
+ <language-name>xul/html</language-name>
+
+ <!-- employee macro -->
+ <component>
+ <component-name>employeeBandboxMacro</component-name>
+ <component-class>org.chorem.bonzoms.ui.EmployeeBandboxMacro</component-class>
+ <macro-uri>macros/employeeBandboxMacro.zul</macro-uri>
+ </component>
+
+ <!-- company macro -->
+ <component>
+ <component-name>companyBandboxMacro</component-name>
+ <component-class>org.chorem.bonzoms.ui.CompanyBandboxMacro</component-class>
+ <macro-uri>macros/companyBandboxMacro.zul</macro-uri>
+ </component>
+
+ <!-- person macro -->
+ <component>
+ <component-name>personBandboxMacro</component-name>
+ <component-class>org.chorem.bonzoms.ui.PersonBandboxMacro</component-class>
+ <macro-uri>macros/personBandboxMacro.zul</macro-uri>
+ </component>
+
+ <!-- service macro -->
+ <component>
+ <component-name>serviceBandboxMacro</component-name>
+ <component-class>org.chorem.bonzoms.ui.ServiceBandboxMacro</component-class>
+ <macro-uri>macros/serviceBandboxMacro.zul</macro-uri>
+ </component>
+
+</language-addon>
Modified: trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/zk.xml
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/zk.xml 2010-08-16 10:16:48 UTC (rev 131)
+++ trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/zk.xml 2010-08-18 15:17:57 UTC (rev 132)
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- Created by ZK Studio
--->
<zk>
+ <language-config>
+ <addon-uri>/WEB-INF/lang-addon.xml</addon-uri>
+ </language-config>
</zk>
\ No newline at end of file
Modified: trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul 2010-08-16 10:16:48 UTC (rev 131)
+++ trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul 2010-08-18 15:17:57 UTC (rev 132)
@@ -10,9 +10,10 @@
<toolbarbutton id="companies" label="Companies" />
<toolbarbutton id="contracts" label="Contracts" />
<toolbarbutton id="employees" label="Employees" />
+ <toolbarbutton id="exportReports" label="Export reports" />
<toolbarbutton id="persons" label="Persons" />
<toolbarbutton id="services" label="Services" />
- </vbox>
+ </vbox>
</groupbox>
<vbox id="content" >
<hbox>
Modified: trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul 2010-08-16 10:16:48 UTC (rev 131)
+++ trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul 2010-08-18 15:17:57 UTC (rev 132)
@@ -22,24 +22,8 @@
<label value="Advantages" />
<textbox value="@{composer.contract.advantages, save-when='saveContract.onClick'}" />
- <hbox>
- <toolbarbutton id="editEmployee" label="Edit employee" /> / <toolbarbutton id="newEmployee" label="New employee" />
- </hbox>
+ <employeeBandboxMacro id="employeeBandboxMacro" />
- <bandbox id="employeeBandbox" mold="rounded">
- <bandpopup>
- <vbox>
- <listbox autopaging="true" mold="paging" id="personListbox" rows="5" width="200px" model="@{composer.employeeModel}"
- itemRenderer="@{composer.employeeRenderer}">
- <listhead>
- <listheader label="First name" />
- <listheader label="Last name" />
- </listhead>
- </listbox>
- </vbox>
- </bandpopup>
- </bandbox>
-
</vbox>
<space />
Modified: trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul 2010-08-16 10:16:48 UTC (rev 131)
+++ trunk/bonzoms-ui-zk/src/main/webapp/employeeFormPage.zul 2010-08-18 15:17:57 UTC (rev 132)
@@ -19,56 +19,11 @@
<label value="Phone number" />
<textbox value="@{composer.employee.workingPhone, save-when='saveEmployee.onClick'}" />
- <hbox>
- <toolbarbutton id="editService" label="Edit service" /> / <toolbarbutton id="newService" label="New service" />
- </hbox>
- <bandbox id="serviceBandbox" mold="rounded">
- <bandpopup>
- <vbox>
- <listbox autopaging="true" mold="paging" id="serviceListbox" rows="5" width="200px" model="@{composer.serviceModel}"
- itemRenderer="@{composer.serviceRenderer}">
- <listhead>
- <listheader label="Name"/>
- </listhead>
- </listbox>
- </vbox>
- </bandpopup>
- </bandbox>
-
- <hbox>
- <toolbarbutton id="editCompany" label="Edit company" /> / <toolbarbutton id="newCompany" label="New company" />
- </hbox>
-
- <bandbox id="companyBandbox" mold="rounded">
- <bandpopup>
- <vbox>
- <listbox autopaging="true" mold="paging" id="companyListbox" rows="5" width="200px" model="@{composer.companyModel}"
- itemRenderer="@{composer.companyRenderer}">
- <listhead>
- <listheader label="Name" />
- <listheader label="Type" />
- </listhead>
- </listbox>
- </vbox>
- </bandpopup>
- </bandbox>
+ <personBandboxMacro id="personBandboxMacro" />
- <hbox>
- <toolbarbutton id="editPerson" label="Edit person" /> / <toolbarbutton id="newPerson" label="New person" />
- </hbox>
- <bandbox id="personBandbox" mold="rounded">
- <bandpopup>
- <vbox>
- <listbox autopaging="true" mold="paging" id="personListbox" rows="5" width="200px" model="@{composer.personModel}"
- itemRenderer="@{composer.personRenderer}">
- <listhead>
- <listheader label="First name" />
- <listheader label="Last name" />
- </listhead>
- </listbox>
- </vbox>
- </bandpopup>
- </bandbox>
+ <companyBandboxMacro id="companyBandboxMacro" />
+
+ <serviceBandboxMacro id="serviceBandboxMacro" />
<toolbarbutton id="editContracts" label="Edit contracts" />
Added: trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/exportReportFormPage.zul 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,95 @@
+<?page id="exportReportForm" title="Export report form" cacheable="false" language="xul/html" zscriptLanguage="Java"?>
+<?meta content="text/html; charset=UTF-8" pageEncoding="UTF-8"?>
+
+<window closable="true" maximizable="true" sizable="true" width="650px" contentStyle="overflow:auto" apply="org.chorem.bonzoms.ui.ExportReportFormController">
+ <caption label="Export report"/>
+ <vbox>
+
+ <groupbox>
+ <caption label="Export report" />
+ <hbox>
+
+ <vbox>
+ State
+ <listbox id="stateListbox" mold="select">
+ <listitem label="Writing" />
+ <listitem label="Waiting for payment" />
+ <listitem label="Waiting for validation" />
+ <listitem label="Payed" />
+ </listbox>
+ </vbox>
+
+ <space />
+
+ <vbox>
+ Payment date
+ <datebox value="@{composer.exportReport.payment, save-when='saveExportReport.onClick'}" />
+ </vbox>
+
+ <space />
+
+ <vbox>
+ Number
+ <textbox value="@{composer.exportReport.number, save-when='saveExportReport.onClick'}" />
+ </vbox>
+
+ </hbox>
+ </groupbox>
+
+
+ <groupbox>
+ <caption label="Items" />
+ <hbox>
+ <vbox>
+ Date
+ <datebox id="exportReportDate" value="@{composer.selectedItem.date, save-when='saveItem.onClick'}" />
+ </vbox>
+
+ <vbox>
+ Justify number
+ <textbox id="exportReportJustifyNumber" value="@{composer.selectedItem.justifyNumber, save-when='saveItem.onClick'}" />
+ </vbox>
+
+ <vbox>
+ HT amount
+ <doublebox id="exportReportHTAmount" value="@{composer.selectedItem.hTAmount, save-when='saveItem.onClick'}" />
+ </vbox>
+
+ <vbox>
+ TVA
+ <doublebox id="exportReportTVA" value="@{composer.selectedItem.tVA, save-when='saveItem.onClick'}" />
+ </vbox>
+
+ <vbox>
+ TTC amount
+ <doublebox id="exportReportTTCAmount" value="@{composer.selectedItem.tTCAmount, save-when='saveItem.onClick'}" />
+ </vbox>
+ <space />
+ <vbox>
+ <separator />
+ <button id="saveItem" label="Save" />
+ </vbox>
+ </hbox>
+
+ <vbox>
+ <separator />
+ <listbox id="itemListbox" model="@{composer.itemsModel}" itemRenderer="@{composer.exportReportItemRenderer}" autopaging="true" mold="paging" rows="5" >
+ <listhead>
+ <listheader label="Date" />
+ <listheader label="Justify number" />
+ <listheader label="HT amount" />
+ <listheader label="TVA" />
+ <listheader label="TTC amount" />
+ </listhead>
+ </listbox>
+ <hbox>
+ <button id="addItem" label="Add item" />
+ <space />
+ <button id="deleteItem" label="Delete item" />
+ </hbox>
+ </vbox>
+ </groupbox>
+
+ </vbox>
+ <button id="saveExportReport" label="Save" />
+</window>
Added: trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/exportReportPage.zul 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,20 @@
+<?page id="exportReport" title="Export report" cacheable="false" language="xul/html" zscriptLanguage="Java"?>
+<?meta content="text/html; charset=UTF-8" pageEncoding="UTF-8"?>
+<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./exportReport"?>
+
+
+<window id="exportReport" apply="org.chorem.bonzoms.ui.ExportReportController">
+ Export report: <toolbarbutton id="newExportReport" label="Add new export report" />
+ <listbox id="exportReportListbox" rows="20" model="@{exportReport$composer.exportReportModel}"
+ itemRenderer="@{exportReport$composer.exportReportRenderer}">
+ <listhead>
+ <listheader label="Creation Date" />
+ <listheader label="Number" />
+ <listheader label="State" />
+ <listheader label="Person" />
+ <listheader label="Payment date" />
+ <listheader label="TTC Price" />
+ </listhead>
+ </listbox>
+ <paging id="exportReportPaging" />
+</window>
\ No newline at end of file
Added: trunk/bonzoms-ui-zk/src/main/webapp/macros/companyBandboxMacro.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/macros/companyBandboxMacro.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/macros/companyBandboxMacro.zul 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,17 @@
+<?page title="new page title" contentType="text/html;charset=UTF-8"?>
+<zk>
+ Company:
+ <bandbox id="companyBandbox" mold="rounded">
+ <bandpopup>
+ <vbox>
+ <listbox rows="5" id="companyListbox" width="200px" >
+ <listhead>
+ <listheader label="Name" />
+ <listheader label="Type" />
+ </listhead>
+ </listbox>
+ <paging id="companyPaging" width="200px"/>
+ </vbox>
+ </bandpopup>
+ </bandbox>
+</zk>
\ No newline at end of file
Added: trunk/bonzoms-ui-zk/src/main/webapp/macros/employeeBandboxMacro.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/macros/employeeBandboxMacro.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/macros/employeeBandboxMacro.zul 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,17 @@
+<?page title="new page title" contentType="text/html;charset=UTF-8"?>
+<zk>
+ Employee:
+ <bandbox id="employeeBandbox" mold="rounded">
+ <bandpopup>
+ <vbox>
+ <listbox id="employeeListbox" rows="5" width="200px">
+ <listhead>
+ <listheader label="First name" />
+ <listheader label="Last name" />
+ </listhead>
+ </listbox>
+ <paging id="employeePaging" width="200px"/>
+ </vbox>
+ </bandpopup>
+ </bandbox>
+</zk>
\ No newline at end of file
Added: trunk/bonzoms-ui-zk/src/main/webapp/macros/personBandboxMacro.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/macros/personBandboxMacro.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/macros/personBandboxMacro.zul 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,17 @@
+<?page title="new page title" contentType="text/html;charset=UTF-8"?>
+<zk>
+ Person:
+ <bandbox id="personBandbox" mold="rounded">
+ <bandpopup>
+ <vbox>
+ <listbox id="personListbox" rows="5" width="200px">
+ <listhead>
+ <listheader label="First name" />
+ <listheader label="Last name" />
+ </listhead>
+ </listbox>
+ <paging id="personPaging" width="200px"/>
+ </vbox>
+ </bandpopup>
+ </bandbox>
+</zk>
\ No newline at end of file
Added: trunk/bonzoms-ui-zk/src/main/webapp/macros/serviceBandboxMacro.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/macros/serviceBandboxMacro.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/macros/serviceBandboxMacro.zul 2010-08-18 15:17:57 UTC (rev 132)
@@ -0,0 +1,16 @@
+<?page title="new page title" contentType="text/html;charset=UTF-8"?>
+<zk>
+ Service:
+ <bandbox id="serviceBandbox" mold="rounded">
+ <bandpopup>
+ <vbox>
+ <listbox id="serviceListbox" rows="5" width="200px">
+ <listhead>
+ <listheader label="Type" />
+ </listhead>
+ </listbox>
+ <paging id="servicePaging" width="200px"/>
+ </vbox>
+ </bandpopup>
+ </bandbox>
+</zk>
\ No newline at end of file
Modified: trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul 2010-08-16 10:16:48 UTC (rev 131)
+++ trunk/bonzoms-ui-zk/src/main/webapp/serviceFormPage.zul 2010-08-18 15:17:57 UTC (rev 132)
@@ -12,7 +12,7 @@
<label value="Type" />
<textbox value="@{composer.service.type, save-when='saveService.onClick'}" />
- <label value="Name" />
+ <label value="Address name" />
<textbox value="@{composer.address.name, save-when='saveService.onClick'}" />
<label value="Address 1" />
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-08-16 10:16:48 UTC (rev 131)
+++ trunk/pom.xml 2010-08-18 15:17:57 UTC (rev 132)
@@ -230,7 +230,7 @@
<projectId>bonzoms</projectId>
<chorem-data.version>0.1-SNAPSHOT</chorem-data.version>
- <zk.version>5.0.2</zk.version>
+ <zk.version>5.0.3</zk.version>
<wikitty.version>2.1-SNAPSHOT</wikitty.version>
<!-- Nuiton librairies -->
1
0
r131 - trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui
by bbrossaud@users.chorem.org Aug. 16, 2010
by bbrossaud@users.chorem.org Aug. 16, 2010
Aug. 16, 2010
Author: bbrossaud
Date: 2010-08-16 12:16:48 +0200 (Mon, 16 Aug 2010)
New Revision: 131
Url: http://chorem.org/repositories/revision/bonzoms/131
Log:
the all search works well now
Modified:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ResultController.java
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-08-13 15:20:22 UTC (rev 130)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ResultController.java 2010-08-16 10:16:48 UTC (rev 131)
@@ -84,14 +84,19 @@
}
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);
+ Search search = Search.query();
+
+ Search searchOr = search.or();
+ searchOr = searchOr.eq(Element.ELT_EXTENSION, Person.EXT_PERSON);
+ searchOr = searchOr.eq(Element.ELT_EXTENSION, Company.EXT_COMPANY);
+ searchOr = searchOr.eq(Element.ELT_EXTENSION, Employee.EXT_EMPLOYEE);
+ searchOr = searchOr.eq(Element.ELT_EXTENSION, Service.EXT_SERVICE);
+ searchOr = searchOr.eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT);
+ searchOr = searchOr.eq(Element.ELT_EXTENSION, Address.EXT_ADDRESS);
+
if (str != null && !str.isEmpty()) {
- search = search.and().keyword(str);
+ Search searchAnd = search.and();
+ searchAnd.keyword(str);
}
Criteria criteria = search.criteria();
return criteria;
1
0
r130 - in trunk: . bonzoms-ui-zk bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui bonzoms-ui-zk/src/main/webapp
by bbrossaud@users.chorem.org Aug. 13, 2010
by bbrossaud@users.chorem.org Aug. 13, 2010
Aug. 13, 2010
Author: bbrossaud
Date: 2010-08-13 17:20:22 +0200 (Fri, 13 Aug 2010)
New Revision: 130
Url: http://chorem.org/repositories/revision/bonzoms/130
Log:
modification pagination
Modified:
trunk/bonzoms-ui-zk/pom.xml
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/ContractModel.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/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/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/ServiceModel.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/WikittyModel.java
trunk/bonzoms-ui-zk/src/main/webapp/companyPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/contractPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/employeePage.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/servicePage.zul
trunk/pom.xml
Modified: trunk/bonzoms-ui-zk/pom.xml
===================================================================
--- trunk/bonzoms-ui-zk/pom.xml 2010-08-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/pom.xml 2010-08-13 15:20:22 UTC (rev 130)
@@ -74,6 +74,16 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-utils</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
</dependencies>
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-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyController.java 2010-08-13 15:20:22 UTC (rev 130)
@@ -1,26 +1,3 @@
-/*
- * #%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;
@@ -41,12 +18,15 @@
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zk.ui.event.ForwardEvent;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Label;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Paging;
import org.zkoss.zul.Window;
+import org.zkoss.zul.event.PagingEvent;
/**
*
@@ -54,17 +34,32 @@
*/
public class CompanyController extends GenericForwardComposer {
+ protected final int pageSize = 20;
+
protected WikittyProxy proxy = ChoremDataProxy.getInstance();
- protected CompanyModel companyModel = new CompanyModel(20);
+ protected CompanyModel companyModel = new CompanyModel(pageSize);
+
+ protected Paging companyPaging;
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Company.EXT_COMPANY).criteria();
+ initCompanyModel();
+ initPaging();
+ }
+
+ protected void initCompanyModel() {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Company.EXT_COMPANY).criteria();
companyModel.setCriteria(criteria);
}
-
- public void createWindowCompanyForm(String id) throws SuspendNotAllowedException, InterruptedException {
+
+ protected void initPaging() {
+ companyPaging.setPageSize(pageSize);
+ int totalSize = companyModel.getTotalSize();
+ companyPaging.setTotalSize(totalSize);
+ }
+
+ protected void createWindowCompanyForm(String id) throws SuspendNotAllowedException, InterruptedException {
Map<String, Object> map = new HashMap<String, Object>();
if (id != null) {
map.put("companyId", id);
@@ -74,7 +69,16 @@
@Override
public void onEvent(Event event) throws Exception {
- companyModel.reload();
+ String id = (String) event.getData();
+ Company company = proxy.restore(Company.class, id);
+ int rowIndex = companyModel.indexOf(company);
+ if (rowIndex != -1) {
+ companyModel.reloadContent(rowIndex);
+ } else {
+ companyModel.addData(company);
+ }
+ int totalSize = companyModel.getTotalSize();
+ companyPaging.setTotalSize(totalSize);
}
});
}
@@ -86,6 +90,12 @@
createWindowCompanyForm(null);
}
+ public void onPaging$companyPaging(ForwardEvent event) {
+ PagingEvent pagingEvent = (PagingEvent) event.getOrigin();
+ int activePage = pagingEvent.getActivePage();
+ companyModel.setActivePage(activePage);
+ }
+
/*
* Renderers
*/
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-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyFormController.java 2010-08-13 15:20:22 UTC (rev 130)
@@ -273,7 +273,7 @@
company = proxy.store(company);
- Events.postEvent(EVENT_ON_SAVE_COMPANY, this.self, company);
+ Events.postEvent(EVENT_ON_SAVE_COMPANY, this.self, company.getWikittyId());
this.self.detach();
}
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-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyModel.java 2010-08-13 15:20:22 UTC (rev 130)
@@ -1,31 +1,9 @@
-/*
- * #%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.bonzoms.ui.ChoremDataProxy;
import org.chorem.data.bonzoms.Company;
import org.nuiton.wikitty.Criteria;
import org.nuiton.wikitty.PagedResult;
@@ -34,58 +12,56 @@
import org.zkoss.zul.AbstractListModel;
import org.zkoss.zul.event.ListDataEvent;
-/**
- *
- * @author bbrossaud
- */
public class CompanyModel extends AbstractListModel implements BindingListModel {
protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Criteria criteria = null;
- protected int itemsByPage = 1;
- protected int currentPage = 0;
+ protected int activePage = 0;
+ protected int pageSize = 1;
protected List<Company> companies = new ArrayList<Company>();
- public CompanyModel(int itemsByPage) {
- this.itemsByPage = itemsByPage;
+ public CompanyModel(int pageSize) {
+ this.pageSize = pageSize;
createList();
}
@Override
public Object getElementAt(int index) {
- pageChange(index);
- int indexList = index % itemsByPage;
- Company Company = companies.get(indexList);
- return Company;
+ Company company = companies.get(index);
+ return company;
}
@Override
public int getSize() {
- if (criteria == null) {
- return 0;
- }
- Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
- PagedResult<Company> result = proxy.findAllByCriteria(Company.class, criteria);
- return result.getNumFound();
+ return companies.size();
}
@Override
public int indexOf(Object obj) {
- int index = 0;
+ int index = -1;
String id = ((Company) obj).getWikittyId();
for (Company data : companies) {
String dataId = data.getWikittyId();
if (id.equals(dataId)) {
- index = companies.indexOf(data) + (itemsByPage * currentPage);
+ index = companies.indexOf(data);
break;
}
}
return index;
}
+ public int getTotalSize() {
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<Company> result = proxy.findAllByCriteria(Company.class, criteria);
+ return result.getNumFound();
+ }
+
public void addData(Company newData) {
- int listSize = companies.size();
- if (listSize < (itemsByPage)) {
+ int listSize = companies.size();
+ if (listSize < (pageSize)) {
companies.add(newData);
}
int size = getSize();
@@ -93,23 +69,21 @@
}
public void removeData(Company data) {
- int index = companies.indexOf(data);
- if (index != -1) {
- companies.remove(index);
- int interval = index + (itemsByPage * currentPage);
+ int interval = companies.indexOf(data);
+ if (interval != -1) {
+ companies.remove(interval);
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());
+ Company company = companies.get(rowIndex);
+ company = proxy.restore(Company.class, company.getWikittyId());
+ companies.set(rowIndex, company);
fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
}
public void reload() {
- createList();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
@@ -120,26 +94,24 @@
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;
+ activePage = 0;
createList();
}
}
protected void createList() {
if (criteria != null) {
- int first = currentPage * itemsByPage;
- int end = first + (itemsByPage - 1);
+ int first = activePage * pageSize;
+ int end = first + (pageSize - 1);
Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
- List<Company> Companies = proxy.findAllByCriteria(Company.class, criteria).getAll();
- this.companies = new ArrayList<Company>(Companies);
+ List<Company> companies = proxy.findAllByCriteria(Company.class, criteria).getAll();
+ this.companies = new ArrayList<Company>(companies);
}
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
+
+ public void setActivePage(int activePage) {
+ this.activePage = activePage;
+ createList();
+ }
}
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-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractController.java 2010-08-13 15:20:22 UTC (rev 130)
@@ -20,12 +20,15 @@
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zk.ui.event.ForwardEvent;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Paging;
import org.zkoss.zul.Window;
+import org.zkoss.zul.event.PagingEvent;
/**
*
@@ -33,17 +36,34 @@
*/
public class ContractController extends GenericForwardComposer {
+ protected final int pageSize = 20;
+
protected WikittyProxy proxy = ChoremDataProxy.getInstance();
- protected ContractModel contractModel = new ContractModel(20);
+ protected ContractModel contractModel = new ContractModel(pageSize);
protected Checkbox checkbox1;
+
+ protected Paging contractPaging;
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
+ initContractModel();
+ initPaging();
Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT).criteria();
contractModel.setCriteria(criteria);
}
+ protected void initContractModel() {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT).criteria();
+ contractModel.setCriteria(criteria);
+ }
+
+ protected void initPaging() {
+ contractPaging.setPageSize(pageSize);
+ int totalSize = contractModel.getTotalSize();
+ contractPaging.setTotalSize(totalSize);
+ }
+
protected void createWindowContractForm(String id) throws InterruptedException {
Map<String, Object> map = new HashMap<String, Object>();
if (id != null) {
@@ -54,7 +74,16 @@
@Override
public void onEvent(Event event) throws Exception {
- contractModel.reload();
+ String id = (String) event.getData();
+ EmploymentContract contract = proxy.restore(EmploymentContract.class, id);
+ int rowIndex = contractModel.indexOf(contract);
+ if (rowIndex != -1) {
+ contractModel.reloadContent(rowIndex);
+ } else {
+ contractModel.addData(contract);
+ }
+ int totalSize = contractModel.getTotalSize();
+ contractPaging.setTotalSize(totalSize);
}
});
}
@@ -143,12 +172,15 @@
}
}
- public void onCreate$contract(Event event) {
- }
-
public void onClick$newContract() throws SuspendNotAllowedException, InterruptedException {
createWindowContractForm(null);
}
+
+ public void onPaging$contractPaging(ForwardEvent event) {
+ PagingEvent pagingEvent = (PagingEvent) event.getOrigin();
+ int activePage = pagingEvent.getActivePage();
+ contractModel.setActivePage(activePage);
+ }
/*
* Getters
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-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractModel.java 2010-08-13 15:20:22 UTC (rev 130)
@@ -1,26 +1,3 @@
-/*
- * #%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;
@@ -36,58 +13,58 @@
/**
*
- * @author sherkhan
+ * @author bbrossaud
*/
public class ContractModel extends AbstractListModel implements BindingListModel {
protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Criteria criteria = null;
- protected int itemsByPage = 1;
- protected int size = 0;
- protected int currentPage = 0;
+ protected int activePage = 0;
+ protected int pageSize = 1;
protected List<EmploymentContract> contracts = new ArrayList<EmploymentContract>();
- public ContractModel(int itemsByPage) {
- this.itemsByPage = itemsByPage;
- size = getSize();
+ public ContractModel(int pageSize) {
+ this.pageSize = pageSize;
createList();
}
@Override
public Object getElementAt(int index) {
- pageChange(index);
- int indexList = index % itemsByPage;
- EmploymentContract contract = contracts.get(indexList);
+ EmploymentContract contract = contracts.get(index);
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();
+ return contracts.size();
}
@Override
public int indexOf(Object obj) {
- int index = 0;
+ int index = -1;
String id = ((EmploymentContract) obj).getWikittyId();
for (EmploymentContract data : contracts) {
String dataId = data.getWikittyId();
if (id.equals(dataId)) {
- index = contracts.indexOf(data) + (itemsByPage * currentPage);
+ index = contracts.indexOf(data);
break;
}
}
return index;
}
+ public int getTotalSize() {
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<EmploymentContract> result = proxy.findAllByCriteria(EmploymentContract.class, criteria);
+ return result.getNumFound();
+ }
+
public void addData(EmploymentContract newData) {
- int listSize = contracts.size();
- if (listSize < (itemsByPage)) {
+ int listSize = contracts.size();
+ if (listSize < (pageSize)) {
contracts.add(newData);
}
int size = getSize();
@@ -95,24 +72,21 @@
}
public void removeData(EmploymentContract data) {
- int index = contracts.indexOf(data);
- if (index != -1) {
- contracts.remove(index);
- int interval = index + (itemsByPage * currentPage);
+ int interval = contracts.indexOf(data);
+ if (interval != -1) {
+ contracts.remove(interval);
fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
}
}
public void reloadContent(int rowIndex) {
- int indexList = rowIndex % itemsByPage;
- EmploymentContract contract = contracts.get(indexList);
+ EmploymentContract contract = contracts.get(rowIndex);
contract = proxy.restore(EmploymentContract.class, contract.getWikittyId());
+ contracts.set(rowIndex, contract);
fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
}
public void reload() {
- createList();
- size = getSize();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
@@ -123,26 +97,24 @@
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;
+ activePage = 0;
createList();
}
}
protected void createList() {
if (criteria != null) {
- int first = currentPage * itemsByPage;
- int end = first + (itemsByPage - 1);
+ int first = activePage * pageSize;
+ int end = first + (pageSize - 1);
Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
List<EmploymentContract> contracts = proxy.findAllByCriteria(EmploymentContract.class, criteria).getAll();
this.contracts = new ArrayList<EmploymentContract>(contracts);
}
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
-}
+
+ public void setActivePage(int activePage) {
+ this.activePage = activePage;
+ createList();
+ }
+}
\ No newline at end of file
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-08-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeController.java 2010-08-13 15:20:22 UTC (rev 130)
@@ -38,11 +38,14 @@
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zk.ui.event.ForwardEvent;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Paging;
import org.zkoss.zul.Window;
+import org.zkoss.zul.event.PagingEvent;
/**
*
@@ -50,17 +53,32 @@
*/
public class EmployeeController extends GenericForwardComposer {
+ protected final int pageSize = 20;
+
protected WikittyProxy proxy = ChoremDataProxy.getInstance();
- protected EmployeeModel employeeModel = new EmployeeModel(20);
+ protected EmployeeModel employeeModel = new EmployeeModel(pageSize);
+ protected Paging employeePaging;
+
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Employee.EXT_EMPLOYEE).criteria();
+ initEmployeeModel();
+ initPaging();
+ }
+
+ protected void initEmployeeModel() {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Employee.EXT_EMPLOYEE).criteria();
employeeModel.setCriteria(criteria);
}
-
- public void createWindowEmployeeForm(String id) throws SuspendNotAllowedException, InterruptedException {
+
+ protected void initPaging() {
+ employeePaging.setPageSize(pageSize);
+ int totalSize = employeeModel.getTotalSize();
+ employeePaging.setTotalSize(totalSize);
+ }
+
+ protected void createWindowEmployeeForm(String id) throws SuspendNotAllowedException, InterruptedException {
Map<String, Object> map = new HashMap<String, Object>();
if (id != null) {
map.put("employeeId", id);
@@ -70,7 +88,16 @@
@Override
public void onEvent(Event event) throws Exception {
- employeeModel.reload();
+ String id = (String) event.getData();
+ Employee employee = proxy.restore(Employee.class, id);
+ int rowIndex = employeeModel.indexOf(employee);
+ if (rowIndex != -1) {
+ employeeModel.reloadContent(rowIndex);
+ } else {
+ employeeModel.addData(employee);
+ }
+ int totalSize = employeeModel.getTotalSize();
+ employeePaging.setTotalSize(totalSize);
}
});
}
@@ -124,6 +151,12 @@
public void onClick$newEmployee() throws SuspendNotAllowedException, InterruptedException {
createWindowEmployeeForm(null);
}
+
+ public void onPaging$employeePaging(ForwardEvent event) {
+ PagingEvent pagingEvent = (PagingEvent) event.getOrigin();
+ int activePage = pagingEvent.getActivePage();
+ employeeModel.setActivePage(activePage);
+ }
/*
* Getters
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-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeModel.java 2010-08-13 15:20:22 UTC (rev 130)
@@ -42,51 +42,52 @@
protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Criteria criteria = null;
- protected int itemsByPage = 1;
- protected int currentPage = 0;
+ protected int activePage = 0;
+ protected int pageSize = 1;
protected List<Employee> employees = new ArrayList<Employee>();
- public EmployeeModel(int itemsByPage) {
- this.itemsByPage = itemsByPage;
+ public EmployeeModel(int pageSize) {
+ this.pageSize = pageSize;
createList();
}
@Override
public Object getElementAt(int index) {
- pageChange(index);
- int indexList = index % itemsByPage;
- Employee employee = employees.get(indexList);
+ Employee employee = employees.get(index);
return employee;
}
@Override
public int getSize() {
- if (criteria == null) {
- return 0;
- }
- Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
- PagedResult<Employee> result = proxy.findAllByCriteria(Employee.class, criteria);
- return result.getNumFound();
+ return employees.size();
}
@Override
public int indexOf(Object obj) {
- int index = 0;
- Employee employee = (Employee) obj;
- String id = employee.getWikittyId();
+ int index = -1;
+ String id = ((Employee) obj).getWikittyId();
for (Employee data : employees) {
String dataId = data.getWikittyId();
if (id.equals(dataId)) {
- index = employees.indexOf(data) + (itemsByPage * currentPage);
+ index = employees.indexOf(data);
break;
}
}
return index;
}
+ public int getTotalSize() {
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<Employee> result = proxy.findAllByCriteria(Employee.class, criteria);
+ return result.getNumFound();
+ }
+
public void addData(Employee newData) {
- int listSize = employees.size();
- if (listSize < (itemsByPage)) {
+ int listSize = employees.size();
+ if (listSize < (pageSize)) {
employees.add(newData);
}
int size = getSize();
@@ -94,23 +95,21 @@
}
public void removeData(Employee data) {
- int index = employees.indexOf(data);
- if (index != -1) {
- employees.remove(index);
- int interval = index + (itemsByPage * currentPage);
+ int interval = employees.indexOf(data);
+ if (interval != -1) {
+ employees.remove(interval);
fireEvent(ListDataEvent.INTERVAL_REMOVED, interval, interval);
}
}
public void reloadContent(int rowIndex) {
- int indexList = rowIndex % itemsByPage;
- Employee employee = employees.get(indexList);
+ Employee employee = employees.get(rowIndex);
employee = proxy.restore(Employee.class, employee.getWikittyId());
+ employees.set(rowIndex, employee);
fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
}
public void reload() {
- createList();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
@@ -121,26 +120,24 @@
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;
+ activePage = 0;
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);
+ int first = activePage * pageSize;
+ int end = first + (pageSize - 1);
+ Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
+ List<Employee> employees = proxy.findAllByCriteria(Employee.class, criteria).getAll();
+ this.employees = new ArrayList<Employee>(employees);
}
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
+
+ public void setActivePage(int activePage) {
+ this.activePage = activePage;
+ createList();
+ }
}
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-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonController.java 2010-08-13 15:20:22 UTC (rev 130)
@@ -40,11 +40,14 @@
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zk.ui.event.ForwardEvent;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Paging;
import org.zkoss.zul.Window;
+import org.zkoss.zul.event.PagingEvent;
/**
*
@@ -52,18 +55,32 @@
*/
public class PersonController extends GenericForwardComposer {
+ protected final int pageSize = 20;
+
protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected PersonModel personModel = new PersonModel(pageSize);
+
+ protected Paging personPaging;
- protected PersonModel personModel = new PersonModel(20);
-
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Person.EXT_PERSON).criteria();
+ initPersonModel();
+ initPaging();
+ }
+
+ protected void initPersonModel() {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Person.EXT_PERSON).criteria();
personModel.setCriteria(criteria);
}
- public void createWindowPersonForm(String id) throws SuspendNotAllowedException, InterruptedException {
+ protected void initPaging() {
+ personPaging.setPageSize(pageSize);
+ int totalSize = personModel.getTotalSize();
+ personPaging.setTotalSize(totalSize);
+ }
+
+ protected void createWindowPersonForm(String id) throws SuspendNotAllowedException, InterruptedException {
Map<String, Object> map = new HashMap<String, Object>();
if (id != null) {
map.put("personId", id);
@@ -73,7 +90,16 @@
@Override
public void onEvent(Event event) throws Exception {
- personModel.reload();
+ String id = (String) event.getData();
+ Person person = proxy.restore(Person.class, id);
+ int rowIndex = personModel.indexOf(person);
+ if (rowIndex != -1) {
+ personModel.reloadContent(rowIndex);
+ } else {
+ personModel.addData(person);
+ }
+ int totalSize = personModel.getTotalSize();
+ personPaging.setTotalSize(totalSize);
}
});
}
@@ -85,6 +111,12 @@
createWindowPersonForm(null);
}
+ public void onPaging$personPaging(ForwardEvent event) {
+ PagingEvent pagingEvent = (PagingEvent) event.getOrigin();
+ int activePage = pagingEvent.getActivePage();
+ personModel.setActivePage(activePage);
+ }
+
/*
* Renderers
*/
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-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonModel.java 2010-08-13 15:20:22 UTC (rev 130)
@@ -19,50 +19,52 @@
protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Criteria criteria = null;
- protected int itemsByPage = 1;
- protected int currentPage = 0;
+ protected int activePage = 0;
+ protected int pageSize = 1;
protected List<Person> persons = new ArrayList<Person>();
- public PersonModel(int itemsByPage) {
- this.itemsByPage = itemsByPage;
+ public PersonModel(int pageSize) {
+ this.pageSize = pageSize;
createList();
}
@Override
public Object getElementAt(int index) {
- pageChange(index);
- int indexList = index % itemsByPage;
- Person Person = persons.get(indexList);
- return Person;
+ Person person = persons.get(index);
+ return person;
}
@Override
public int getSize() {
- if (criteria == null) {
- return 0;
- }
- Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
- PagedResult<Person> result = proxy.findAllByCriteria(Person.class, criteria);
- return result.getNumFound();
+ return persons.size();
}
@Override
public int indexOf(Object obj) {
- int index = 0;
+ int index = -1;
String id = ((Person) obj).getWikittyId();
for (Person data : persons) {
String dataId = data.getWikittyId();
if (id.equals(dataId)) {
- index = persons.indexOf(data) + (itemsByPage * currentPage);
+ index = persons.indexOf(data);
break;
}
}
return index;
}
+ public int getTotalSize() {
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<Person> result = proxy.findAllByCriteria(Person.class, criteria);
+ return result.getNumFound();
+ }
+
public void addData(Person newData) {
int listSize = persons.size();
- if (listSize < (itemsByPage)) {
+ if (listSize < (pageSize)) {
persons.add(newData);
}
int size = getSize();
@@ -70,23 +72,21 @@
}
public void removeData(Person data) {
- int index = persons.indexOf(data);
- if (index != -1) {
- persons.remove(index);
- int interval = index + (itemsByPage * currentPage);
+ int interval = persons.indexOf(data);
+ if (interval != -1) {
+ persons.remove(interval);
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());
+ Person person = persons.get(rowIndex);
+ person = proxy.restore(Person.class, person.getWikittyId());
+ persons.set(rowIndex, person);
fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
}
public void reload() {
- createList();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
@@ -97,26 +97,24 @@
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;
+ activePage = 0;
createList();
}
}
protected void createList() {
if (criteria != null) {
- int first = currentPage * itemsByPage;
- int end = first + (itemsByPage - 1);
+ int first = activePage * pageSize;
+ int end = first + (pageSize - 1);
Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
List<Person> persons = proxy.findAllByCriteria(Person.class, criteria).getAll();
this.persons = new ArrayList<Person>(persons);
}
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
+
+ public void setActivePage(int activePage) {
+ this.activePage = activePage;
+ createList();
+ }
}
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-08-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ResultController.java 2010-08-13 15:20:22 UTC (rev 130)
@@ -49,12 +49,16 @@
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zk.ui.event.ForwardEvent;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Label;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Paging;
import org.zkoss.zul.Toolbarbutton;
+import org.zkoss.zul.Window;
+import org.zkoss.zul.event.PagingEvent;
/**
*
@@ -62,8 +66,12 @@
*/
public class ResultController extends GenericForwardComposer {
+ protected final int pageSize = 10;
+
protected WikittyProxy proxy = ChoremDataProxy.getInstance();
- protected WikittyModel wikittyModel = new WikittyModel(10);
+ protected WikittyModel wikittyModel = new WikittyModel(pageSize);
+
+ protected Paging wikittyPaging;
@Override
public void doAfterCompose(Component comp) throws Exception {
@@ -72,6 +80,7 @@
Criteria criteria = getCriteriaBySearch(str);
wikittyModel.setCriteria(criteria);
+ initPaging();
}
protected Criteria getCriteriaBySearch(String str) {
@@ -87,13 +96,35 @@
Criteria criteria = search.criteria();
return criteria;
}
+
+ protected void initPaging() {
+ wikittyPaging.setPageSize(pageSize);
+ int totalSize = wikittyModel.getTotalSize();
+ wikittyPaging.setTotalSize(totalSize);
+ }
- protected void createEmploymentContractPage(String id) throws SuspendNotAllowedException, InterruptedException {
+ 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);
+ 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 {
+ String id = (String) event.getData();
+ Wikitty wikitty = proxy.restore(id);
+ int rowIndex = wikittyModel.indexOf(wikitty);
+ if (rowIndex != -1) {
+ wikittyModel.reloadContent(rowIndex);
+ } else {
+ wikittyModel.addData(wikitty);
+ }
+ int totalSize = wikittyModel.getTotalSize();
+ wikittyPaging.setTotalSize(totalSize);
+ }
+ });
}
protected void createPersonPage(String id) throws SuspendNotAllowedException, InterruptedException {
@@ -101,7 +132,23 @@
if (id != null) {
map.put("personId", id);
}
- Executions.createComponents("personFormPage.zul", null, map);
+ Window win = (Window) Executions.createComponents("personFormPage.zul", null, map);
+ win.addEventListener(PersonFormController.EVENT_ON_SAVE_PERSON, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String id = (String) event.getData();
+ Wikitty wikitty = proxy.restore(id);
+ int rowIndex = wikittyModel.indexOf(wikitty);
+ if (rowIndex != -1) {
+ wikittyModel.reloadContent(rowIndex);
+ } else {
+ wikittyModel.addData(wikitty);
+ }
+ int totalSize = wikittyModel.getTotalSize();
+ wikittyPaging.setTotalSize(totalSize);
+ }
+ });
}
protected void createEmployeePage(String id) throws SuspendNotAllowedException, InterruptedException {
@@ -109,7 +156,23 @@
if (id != null) {
map.put("employeeId", id);
}
- Executions.createComponents("employeeFormPage.zul", null, map);
+ 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 id = (String) event.getData();
+ Wikitty wikitty = proxy.restore(id);
+ int rowIndex = wikittyModel.indexOf(wikitty);
+ if (rowIndex != -1) {
+ wikittyModel.reloadContent(rowIndex);
+ } else {
+ wikittyModel.addData(wikitty);
+ }
+ int totalSize = wikittyModel.getTotalSize();
+ wikittyPaging.setTotalSize(totalSize);
+ }
+ });
}
protected void createAddressPage(String id) throws SuspendNotAllowedException, InterruptedException {
@@ -117,7 +180,23 @@
if (id != null) {
map.put("addressId", id);
}
- Executions.createComponents("addressFormPage.zul", null, map);
+ Window win = (Window) Executions.createComponents("addressFormPage.zul", null, map);
+ win.addEventListener(AddressFormController.EVENT_ON_SAVE_ADDRESS, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String id = (String) event.getData();
+ Wikitty wikitty = proxy.restore(id);
+ int rowIndex = wikittyModel.indexOf(wikitty);
+ if (rowIndex != -1) {
+ wikittyModel.reloadContent(rowIndex);
+ } else {
+ wikittyModel.addData(wikitty);
+ }
+ int totalSize = wikittyModel.getTotalSize();
+ wikittyPaging.setTotalSize(totalSize);
+ }
+ });
}
protected void createServicePage(String id) throws SuspendNotAllowedException, InterruptedException {
@@ -125,7 +204,23 @@
if (id != null) {
map.put("serviceId", id);
}
- Executions.createComponents("serviceFormPage.zul", null, map);
+ Window win = (Window) Executions.createComponents("serviceFormPage.zul", null, map);
+ win.addEventListener(ServiceFormController.EVENT_ON_SAVE_SERVICE, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String id = (String) event.getData();
+ Wikitty wikitty = proxy.restore(id);
+ int rowIndex = wikittyModel.indexOf(wikitty);
+ if (rowIndex != -1) {
+ wikittyModel.reloadContent(rowIndex);
+ } else {
+ wikittyModel.addData(wikitty);
+ }
+ int totalSize = wikittyModel.getTotalSize();
+ wikittyPaging.setTotalSize(totalSize);
+ }
+ });
}
protected void createCompanyPage(String id) throws SuspendNotAllowedException, InterruptedException {
@@ -133,7 +228,23 @@
if (id != null) {
map.put("companyId", id);
}
- Executions.createComponents("companyFormPage.zul", null, map);
+ Window win = (Window) Executions.createComponents("companyFormPage.zul", null, map);
+ win.addEventListener(CompanyFormController.EVENT_ON_SAVE_COMPANY, new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ String id = (String) event.getData();
+ Wikitty wikitty = proxy.restore(id);
+ int rowIndex = wikittyModel.indexOf(wikitty);
+ if (rowIndex != -1) {
+ wikittyModel.reloadContent(rowIndex);
+ } else {
+ wikittyModel.addData(wikitty);
+ }
+ int totalSize = wikittyModel.getTotalSize();
+ wikittyPaging.setTotalSize(totalSize);
+ }
+ });
}
protected void createPageByWikitty(Wikitty wikitty) throws SuspendNotAllowedException, InterruptedException {
@@ -158,6 +269,12 @@
* Events
*/
+ public void onPaging$wikittyPaging(ForwardEvent event) {
+ PagingEvent pagingEvent = (PagingEvent) event.getOrigin();
+ int activePage = pagingEvent.getActivePage();
+ wikittyModel.setActivePage(activePage);
+ }
+
/*
* Renderers
*/
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-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceController.java 2010-08-13 15:20:22 UTC (rev 130)
@@ -14,12 +14,15 @@
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zk.ui.event.ForwardEvent;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Label;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
+import org.zkoss.zul.Paging;
import org.zkoss.zul.Window;
+import org.zkoss.zul.event.PagingEvent;
/**
*
@@ -27,17 +30,31 @@
*/
public class ServiceController extends GenericForwardComposer {
+ protected final int pageSize = 20;
+
protected WikittyProxy proxy = ChoremDataProxy.getInstance();
+ protected ServiceModel serviceModel = new ServiceModel(pageSize);
+
+ protected Paging servicePaging;
- protected ServiceModel serviceModel = new ServiceModel(20);
-
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Service.EXT_SERVICE).criteria();
+ initServiceModel();
+ initPaging();
+ }
+
+ protected void initServiceModel() {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Service.EXT_SERVICE).criteria();
serviceModel.setCriteria(criteria);
}
-
+
+ protected void initPaging() {
+ servicePaging.setPageSize(pageSize);
+ int totalSize = serviceModel.getTotalSize();
+ servicePaging.setTotalSize(totalSize);
+ }
+
public void createWindowServiceForm(String id) throws SuspendNotAllowedException, InterruptedException {
Map<String, Object> map = new HashMap<String, Object>();
if (id != null) {
@@ -48,7 +65,16 @@
@Override
public void onEvent(Event event) throws Exception {
- serviceModel.reload();
+ String id = (String) event.getData();
+ Service service = proxy.restore(Service.class, id);
+ int rowIndex = serviceModel.indexOf(service);
+ if (rowIndex != -1) {
+ serviceModel.reloadContent(rowIndex);
+ } else {
+ serviceModel.addData(service);
+ }
+ int totalSize = serviceModel.getTotalSize();
+ servicePaging.setTotalSize(totalSize);
}
});
}
@@ -72,6 +98,12 @@
createWindowServiceForm(null);
}
+ public void onPaging$servicePaging(ForwardEvent event) {
+ PagingEvent pagingEvent = (PagingEvent) event.getOrigin();
+ int activePage = pagingEvent.getActivePage();
+ serviceModel.setActivePage(activePage);
+ }
+
/*
* Renderers
*/
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-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceModel.java 2010-08-13 15:20:22 UTC (rev 130)
@@ -19,50 +19,52 @@
protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Criteria criteria = null;
- protected int itemsByPage = 1;
- protected int currentPage = 0;
+ protected int activePage = 0;
+ protected int pageSize = 1;
protected List<Service> services = new ArrayList<Service>();
- public ServiceModel(int itemsByPage) {
- this.itemsByPage = itemsByPage;
+ public ServiceModel(int pageSize) {
+ this.pageSize = pageSize;
createList();
}
@Override
public Object getElementAt(int index) {
- pageChange(index);
- int indexList = index % itemsByPage;
- Service Service = services.get(indexList);
- return Service;
+ Service service = services.get(index);
+ return service;
}
@Override
public int getSize() {
- if (criteria == null) {
- return 0;
- }
- Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
- PagedResult<Service> result = proxy.findAllByCriteria(Service.class, criteria);
- return result.getNumFound();
+ return services.size();
}
@Override
public int indexOf(Object obj) {
- int index = 0;
+ int index = -1;
String id = ((Service) obj).getWikittyId();
for (Service data : services) {
String dataId = data.getWikittyId();
if (id.equals(dataId)) {
- index = services.indexOf(data) + (itemsByPage * currentPage);
+ index = services.indexOf(data);
break;
}
}
return index;
}
+ public int getTotalSize() {
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<Service> result = proxy.findAllByCriteria(Service.class, criteria);
+ return result.getNumFound();
+ }
+
public void addData(Service newData) {
- int listSize = services.size();
- if (listSize < (itemsByPage)) {
+ int listSize = services.size();
+ if (listSize < (pageSize)) {
services.add(newData);
}
int size = getSize();
@@ -70,23 +72,21 @@
}
public void removeData(Service data) {
- int index = services.indexOf(data);
- if (index != -1) {
- services.remove(index);
- int interval = index + (itemsByPage * currentPage);
+ int interval = services.indexOf(data);
+ if (interval != -1) {
+ services.remove(interval);
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());
+ Service service = services.get(rowIndex);
+ service = proxy.restore(Service.class, service.getWikittyId());
+ services.set(rowIndex, service);
fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
}
public void reload() {
- createList();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
@@ -97,26 +97,24 @@
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;
+ activePage = 0;
createList();
}
}
protected void createList() {
if (criteria != null) {
- int first = currentPage * itemsByPage;
- int end = first + (itemsByPage - 1);
+ int first = activePage * pageSize;
+ int end = first + (pageSize - 1);
Criteria criteria = this.criteria.setFirstIndex(first).setEndIndex(end);
- List<Service> Services = proxy.findAllByCriteria(Service.class, criteria).getAll();
- this.services = new ArrayList<Service>(Services);
+ List<Service> services = proxy.findAllByCriteria(Service.class, criteria).getAll();
+ this.services = new ArrayList<Service>(services);
}
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
+
+ public void setActivePage(int activePage) {
+ this.activePage = activePage;
+ createList();
+ }
}
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-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/WikittyModel.java 2010-08-13 15:20:22 UTC (rev 130)
@@ -7,7 +7,6 @@
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;
@@ -20,52 +19,52 @@
protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Criteria criteria = null;
- protected int itemsByPage = 1;
- protected int currentPage = 0;
+ protected int activePage = 0;
+ protected int pageSize = 1;
protected List<Wikitty> wikitties = new ArrayList<Wikitty>();
- public WikittyModel(int itemsByPage) {
- this.itemsByPage = itemsByPage;
+ public WikittyModel(int pageSize) {
+ this.pageSize = pageSize;
createList();
}
@Override
public Object getElementAt(int index) {
- pageChange(index);
- int indexList = index % itemsByPage;
- Wikitty Wikitty = wikitties.get(indexList);
- return Wikitty;
+ Wikitty wikitty = wikitties.get(index);
+ return wikitty;
}
@Override
public int getSize() {
- 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();
+ return wikitties.size();
}
@Override
public int indexOf(Object obj) {
- int index = 0;
+ int index = -1;
String id = ((Wikitty) obj).getId();
for (Wikitty data : wikitties) {
String dataId = data.getId();
if (id.equals(dataId)) {
- index = wikitties.indexOf(data) + (itemsByPage * currentPage);
+ index = wikitties.indexOf(data);
break;
}
}
return index;
}
+ public int getTotalSize() {
+ if (criteria == null) {
+ return 0;
+ }
+ Criteria criteria = this.criteria.setFirstIndex(0).setEndIndex(0);
+ PagedResult<Wikitty> result = proxy.findAllByCriteria(criteria);
+ return result.getNumFound();
+ }
+
public void addData(Wikitty newData) {
- int listSize = wikitties.size();
- if (listSize < (itemsByPage)) {
+ int listSize = wikitties.size();
+ if (listSize < (pageSize)) {
wikitties.add(newData);
}
int size = getSize();
@@ -73,25 +72,21 @@
}
public void removeData(Wikitty data) {
- int index = wikitties.indexOf(data);
- if (index != -1) {
- wikitties.remove(index);
- int interval = index + (itemsByPage * currentPage);
+ int interval = wikitties.indexOf(data);
+ if (interval != -1) {
+ wikitties.remove(interval);
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());
+ Wikitty wikitty = wikitties.get(rowIndex);
+ wikitty = proxy.restore(wikitty.getId());
+ wikitties.set(rowIndex, wikitty);
fireEvent(ListDataEvent.CONTENTS_CHANGED, rowIndex, rowIndex);
}
public void reload() {
- createList();
fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
@@ -102,28 +97,24 @@
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;
+ activePage = 0;
createList();
}
}
protected void createList() {
if (criteria != null) {
- int first = currentPage * itemsByPage;
- int end = first + (itemsByPage - 1);
+ int first = activePage * pageSize;
+ int end = first + (pageSize - 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());
+ List<Wikitty> wikitties = proxy.findAllByCriteria(criteria).getAll();
+ this.wikitties = new ArrayList<Wikitty>(wikitties);
}
+ fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1);
}
+
+ public void setActivePage(int activePage) {
+ this.activePage = activePage;
+ createList();
+ }
}
Modified: trunk/bonzoms-ui-zk/src/main/webapp/companyPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/companyPage.zul 2010-08-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/webapp/companyPage.zul 2010-08-13 15:20:22 UTC (rev 130)
@@ -4,7 +4,7 @@
<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}"
+ <listbox id="companyListBox" rows="20" model="@{company$composer.companyModel}"
itemRenderer="@{company$composer.companyRenderer}">
<listhead>
<listheader label="Name" />
@@ -15,4 +15,5 @@
<listheader label="Type" />
</listhead>
</listbox>
+ <paging id="companyPaging" />
</window>
\ No newline at end of file
Modified: trunk/bonzoms-ui-zk/src/main/webapp/contractPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/contractPage.zul 2010-08-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/webapp/contractPage.zul 2010-08-13 15:20:22 UTC (rev 130)
@@ -5,7 +5,7 @@
<window id="contract" apply="org.chorem.bonzoms.ui.ContractController">
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}"
+ <listbox id="contractListBox" rows="20" model="@{contract$composer.contractModel}"
itemRenderer="@{contract$composer.contractRenderer}">
<listhead>
<listheader label="Person name" />
@@ -18,4 +18,5 @@
<listheader label="End date" />
</listhead>
</listbox>
+ <paging id="contractPaging" />
</window>
\ No newline at end of file
Modified: trunk/bonzoms-ui-zk/src/main/webapp/employeePage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/employeePage.zul 2010-08-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/webapp/employeePage.zul 2010-08-13 15:20:22 UTC (rev 130)
@@ -4,7 +4,7 @@
<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 id="employeeListbox" rows="20" model="@{employee$composer.employeeModel}"
itemRenderer="@{employee$composer.employeeRenderer}">
<listhead>
<listheader label="First name" />
@@ -13,4 +13,5 @@
<listheader label="Working phone" />
</listhead>
</listbox>
+ <paging id="employeePaging" />
</window>
\ No newline at end of file
Modified: trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul 2010-08-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul 2010-08-13 15:20:22 UTC (rev 130)
@@ -4,7 +4,7 @@
<window id="person" apply="org.chorem.bonzoms.ui.PersonController">
Persons: <toolbarbutton id="newPerson" label="Add new person" />
- <listbox autopaging="true" mold="paging" id="personListBox" rows="20" model="@{person$composer.personModel}"
+ <listbox id="personListBox" rows="20" model="@{person$composer.personModel}"
itemRenderer="@{person$composer.personRenderer}">
<listhead>
<listheader label="First name" />
@@ -12,4 +12,5 @@
<listheader label="Birthday" />
</listhead>
</listbox>
+ <paging id="personPaging" />
</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-08-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/webapp/resultPage.zul 2010-08-13 15:20:22 UTC (rev 130)
@@ -3,7 +3,7 @@
<?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}"
+ <listbox id="wikittyListBox" rows="10" model="@{result$composer.wikittyModel}"
itemRenderer="@{result$composer.wikittyRenderer}">
<listhead>
<listheader label="Extensions" />
@@ -11,4 +11,5 @@
<listheader label="Dependances" />
</listhead>
</listbox>
+ <paging id="wikittyPaging" />
</window>
\ No newline at end of file
Modified: trunk/bonzoms-ui-zk/src/main/webapp/servicePage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/servicePage.zul 2010-08-13 12:15:16 UTC (rev 129)
+++ trunk/bonzoms-ui-zk/src/main/webapp/servicePage.zul 2010-08-13 15:20:22 UTC (rev 130)
@@ -11,4 +11,5 @@
<listheader label="Address" />
</listhead>
</listbox>
+ <paging id="servicePaging" />
</window>
\ No newline at end of file
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-08-13 12:15:16 UTC (rev 129)
+++ trunk/pom.xml 2010-08-13 15:20:22 UTC (rev 130)
@@ -100,6 +100,12 @@
<artifactId>data-bonzoms</artifactId>
<version>${chorem-data.version}</version>
</dependency>
+
+ <dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-utils</artifactId>
+ <version>${nuiton-utils.version}</version>
+ </dependency>
<dependency>
<groupId>jasperreports</groupId>
@@ -149,6 +155,7 @@
<artifactId>wikitty-jdbc-impl</artifactId>
<version>${wikitty.version}</version>
</dependency>
+
<dependency>
<groupId>com.h2database</groupId>
@@ -229,11 +236,12 @@
<!-- Nuiton librairies -->
<topia.version>2.2.0</topia.version>
<generator.version>1.0.0</generator.version>
+ <nuiton-utils.version>1.3.2-SNAPSHOT</nuiton-utils.version>
<!-- ChoReg -->
<choreg.version>1.0.0-alpha-2-SNAPSHOT</choreg.version>
<!-- commons-lang for ToPIA -->
- <lang.version>2.4</lang.version>
+ <lang.version>2.5</lang.version>
<!-- Hibernate for ToPIA -->
<hibernate.version>3.3.1.GA</hibernate.version>
1
0
r129 - in trunk/bonzoms-ui-zk/src/main: java/org/chorem/bonzoms/ui webapp
by bbrossaud@users.chorem.org Aug. 13, 2010
by bbrossaud@users.chorem.org Aug. 13, 2010
Aug. 13, 2010
Author: bbrossaud
Date: 2010-08-13 14:15:16 +0200 (Fri, 13 Aug 2010)
New Revision: 129
Url: http://chorem.org/repositories/revision/bonzoms/129
Log:
remove old files
Removed:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/MainController.java
trunk/bonzoms-ui-zk/src/main/webapp/index.zul
Deleted: 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-08-13 12:13:00 UTC (rev 128)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/MainController.java 2010-08-13 12:15:16 UTC (rev 129)
@@ -1,75 +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.zkoss.zk.ui.util.GenericForwardComposer;
-import org.zkoss.zul.Textbox;
-import org.zkoss.zul.Include;
-
-/**
- *
- * @author bbrossaud
- */
-public class MainController extends GenericForwardComposer {
-
- protected Textbox searchBox;
- protected Include include;
- /*
- * Events
- */
- public void onOK$searchBox() {
- String search = searchBox.getValue();
- include.setSrc(null);
- include.setSrc("resultPage.zul?search=" + search);
- }
-
- public void onClick$searchButton() {
- onOK$searchBox();
- }
-
- public void onClick$employees() {
- include.setSrc(null);
- include.setSrc("employeePage.zul");
- }
-
- public void onClick$persons() {
- include.setSrc(null);
- include.setSrc("personPage.zul");
- }
-
- public void onClick$companies() {
- include.setSrc(null);
- include.setSrc("companyPage.zul");
- }
-
- public void onClick$services() {
- include.setSrc(null);
- include.setSrc("servicePage.zul");
- }
-
- public void onClick$contracts() {
- include.setSrc(null);
- include.setSrc("contractPage.zul");
- }
-}
Deleted: trunk/bonzoms-ui-zk/src/main/webapp/index.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/index.zul 2010-08-13 12:13:00 UTC (rev 128)
+++ trunk/bonzoms-ui-zk/src/main/webapp/index.zul 2010-08-13 12:15:16 UTC (rev 129)
@@ -1,25 +0,0 @@
-<?page id="home" title="HOME" 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="win"?>
-
-<window id="win" title="Win" border="normal" apply="org.chorem.bonzoms.ui.MainController">
- <hbox>
- <groupbox height="800px" >
- <caption label="Menu" />
- <vbox>
- <toolbarbutton id="companies" label="Companies" />
- <toolbarbutton id="contracts" label="Contracts" />
- <toolbarbutton id="employees" label="Employees" />
- <toolbarbutton id="persons" label="Persons" />
- <toolbarbutton id="services" label="Services" />
- </vbox>
- </groupbox>
- <vbox id="content" >
- <hbox>
- Search: <textbox id="searchBox" /> <button label="Search" id="searchButton" />
- </hbox>
- <separator bar="true" />
- <include id="include" src="employeePage.zul" />
- </vbox>
- </hbox>
-</window>
\ No newline at end of file
1
0
r128 - in trunk/bonzoms-ui-zk/src/main: java/org/chorem/bonzoms/ui resources webapp webapp/WEB-INF
by bbrossaud@users.chorem.org Aug. 13, 2010
by bbrossaud@users.chorem.org Aug. 13, 2010
Aug. 13, 2010
Author: bbrossaud
Date: 2010-08-13 14:13:00 +0200 (Fri, 13 Aug 2010)
New Revision: 128
Url: http://chorem.org/repositories/revision/bonzoms/128
Log:
rename file
Added:
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ChoremDataConfig.java
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ChoremDataProxy.java
trunk/bonzoms-ui-zk/src/main/resources/choremData.properties
trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul
Modified:
trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/web.xml
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/BonzomsController.java 2010-08-13 12:13:00 UTC (rev 128)
@@ -0,0 +1,75 @@
+/*
+ * #%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.zkoss.zk.ui.util.GenericForwardComposer;
+import org.zkoss.zul.Textbox;
+import org.zkoss.zul.Include;
+
+/**
+ *
+ * @author bbrossaud
+ */
+public class BonzomsController extends GenericForwardComposer {
+
+ protected Textbox searchBox;
+ protected Include include;
+ /*
+ * Events
+ */
+ public void onOK$searchBox() {
+ String search = searchBox.getValue();
+ include.setSrc(null);
+ include.setSrc("resultPage.zul?search=" + search);
+ }
+
+ public void onClick$searchButton() {
+ onOK$searchBox();
+ }
+
+ public void onClick$employees() {
+ include.setSrc(null);
+ include.setSrc("employeePage.zul");
+ }
+
+ public void onClick$persons() {
+ include.setSrc(null);
+ include.setSrc("personPage.zul");
+ }
+
+ public void onClick$companies() {
+ include.setSrc(null);
+ include.setSrc("companyPage.zul");
+ }
+
+ public void onClick$services() {
+ include.setSrc(null);
+ include.setSrc("servicePage.zul");
+ }
+
+ public void onClick$contracts() {
+ include.setSrc(null);
+ include.setSrc("contractPage.zul");
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ChoremDataConfig.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ChoremDataConfig.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ChoremDataConfig.java 2010-08-13 12:13:00 UTC (rev 128)
@@ -0,0 +1,129 @@
+/*
+ * #%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%
+ */
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.chorem.bonzoms.ui;
+
+import static org.nuiton.i18n.I18n._;
+
+import java.io.File;
+import org.apache.commons.lang.UnhandledException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.ApplicationConfig;
+
+/**
+ *
+ * @author sherkhan
+ */
+public class ChoremDataConfig extends ApplicationConfig {
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(ChoremDataConfig.class);
+ /** Singleton instance. */
+ protected static ChoremDataConfig instance = null;
+
+ public ChoremDataConfig() {
+ super();
+
+ // set default option (included configuration file name : important)
+ for (Option o : Option.values()) {
+ if (o.defaultValue != null) {
+ setDefaultOption(o.key, o.defaultValue);
+ }
+ }
+ }
+
+ public static synchronized ChoremDataConfig getInstance() {
+ if (instance == null) {
+ try {
+ instance = new ChoremDataConfig();
+ instance.parse(new String[]{});
+ instance.setDataDirInSystemProps();
+ } catch (Exception e) {
+ throw new UnhandledException(e);
+ }
+ }
+ return instance;
+ }
+
+ /**
+ * Get version as string.
+ *
+ * @return version
+ */
+ public String getVersion() {
+ return getOption(Option.APPLICATION_VERSION.key);
+ }
+
+ public File getDataDirAsFile() {
+ File option = getOptionAsFile(Option.DATA_DIR.key);
+ return option;
+ }
+
+ /**
+ * Set {@code solr} and {@code jms} system configuration.
+ *
+ * This is the "only" way to configure embedded solr.
+ */
+ protected void setDataDirInSystemProps() {
+ String value = getOption(Option.DATA_DIR.key);
+ if (log.isInfoEnabled()) {
+ log.info("Setting system property " + Option.DATA_DIR.key + " : " + value);
+ }
+ System.setProperty(Option.DATA_DIR.key, value);
+ env.put(Option.DATA_DIR.key, value);
+ }
+
+ /**
+ * Vradi option definition.
+ */
+ public static enum Option {
+
+ CONFIG_FILE(CONFIG_FILE_NAME, _("bonzoms.config.configFileName.description"),
+ "choremData.properties", String.class, false, false),
+ 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") + "/.chorem-data/solr", String.class, false, false);
+ public final String key;
+ public final String description;
+ public final String defaultValue;
+ public final Class<?> type;
+ public final boolean isTransient;
+ public final boolean isFinal;
+
+ private Option(String key, String description, String defaultValue,
+ Class<?> type, boolean isTransient, boolean isFinal) {
+ this.key = key;
+ this.description = description;
+ this.defaultValue = defaultValue;
+ this.type = type;
+ this.isFinal = isFinal;
+ this.isTransient = isTransient;
+ }
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ChoremDataProxy.java
===================================================================
--- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ChoremDataProxy.java (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ChoremDataProxy.java 2010-08-13 12:13:00 UTC (rev 128)
@@ -0,0 +1,56 @@
+/*
+ * #%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%
+ */
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.chorem.bonzoms.ui;
+
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.WikittyServiceCached;
+import org.nuiton.wikitty.jdbc.WikittyServiceJDBC;
+
+/**
+ *
+ * @author sherkhan
+ */
+public class ChoremDataProxy extends WikittyProxy {
+
+ static protected ChoremDataProxy instance;
+
+ synchronized static public ChoremDataProxy getInstance() {
+ if (instance == null) {
+ ChoremDataConfig config = ChoremDataConfig.getInstance();
+ instance = new ChoremDataProxy(config);
+ }
+ return instance;
+ }
+
+ protected ChoremDataProxy(ChoremDataConfig config) {
+ WikittyService ws = new WikittyServiceJDBC(config.getFlatOptions());
+ ws = new WikittyServiceCached(ws);
+ setWikittyService(ws);
+ }
+}
Added: trunk/bonzoms-ui-zk/src/main/resources/choremData.properties
===================================================================
--- trunk/bonzoms-ui-zk/src/main/resources/choremData.properties (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/resources/choremData.properties 2010-08-13 12:13:00 UTC (rev 128)
@@ -0,0 +1 @@
+application.version=${project.version}
Modified: trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/web.xml 2010-08-13 08:20:26 UTC (rev 127)
+++ trunk/bonzoms-ui-zk/src/main/webapp/WEB-INF/web.xml 2010-08-13 12:13:00 UTC (rev 128)
@@ -52,6 +52,7 @@
</servlet-mapping>
<welcome-file-list>
+ <welcome-file>bonzoms.zul</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
Added: trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul (rev 0)
+++ trunk/bonzoms-ui-zk/src/main/webapp/bonzoms.zul 2010-08-13 12:13:00 UTC (rev 128)
@@ -0,0 +1,25 @@
+<?page id="home" title="Bonzoms" 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="win"?>
+
+<window id="win" title="Bonzoms" border="normal" apply="org.chorem.bonzoms.ui.BonzomsController">
+ <hbox>
+ <groupbox height="800px" >
+ <caption label="Menu" />
+ <vbox>
+ <toolbarbutton id="companies" label="Companies" />
+ <toolbarbutton id="contracts" label="Contracts" />
+ <toolbarbutton id="employees" label="Employees" />
+ <toolbarbutton id="persons" label="Persons" />
+ <toolbarbutton id="services" label="Services" />
+ </vbox>
+ </groupbox>
+ <vbox id="content" >
+ <hbox>
+ Search: <textbox id="searchBox" /> <button label="Search" id="searchButton" />
+ </hbox>
+ <separator bar="true" />
+ <include id="include" src="employeePage.zul" />
+ </vbox>
+ </hbox>
+</window>
\ No newline at end of file
1
0
r127 - in trunk: . bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui bonzoms-ui-zk/src/main/webapp
by bbrossaud@users.chorem.org Aug. 13, 2010
by bbrossaud@users.chorem.org Aug. 13, 2010
Aug. 13, 2010
Author: bbrossaud
Date: 2010-08-13 10:20:26 +0200 (Fri, 13 Aug 2010)
New Revision: 127
Url: http://chorem.org/repositories/revision/bonzoms/127
Log:
bonzoms modification for wikitty 2.1 SNAPSHOT
Modified:
trunk/
trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressFormController.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/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/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/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/webapp/contractFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul
trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul
trunk/pom.xml
Property changes on: trunk
___________________________________________________________________
Modified: svn:ignore
- target
nbactions.xml
*.ipr
*.iws
*.iml
+ target
nbactions.xml
*.ipr
*.iws
*.iml
.settings
.project
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/AddressFormController.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -17,7 +17,7 @@
*/
public class AddressFormController extends GenericForwardComposer {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Address address = new AddressImpl();
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyController.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -54,7 +54,7 @@
*/
public class CompanyController extends GenericForwardComposer {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected CompanyModel companyModel = new CompanyModel(20);
@Override
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyFormController.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -53,7 +53,7 @@
*/
public class CompanyFormController extends GenericForwardComposer {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Company company = new CompanyImpl();
protected AddressModel addressModel = new AddressModel();
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/CompanyModel.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -40,7 +40,7 @@
*/
public class CompanyModel extends AbstractListModel implements BindingListModel {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Criteria criteria = null;
protected int itemsByPage = 1;
protected int currentPage = 0;
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractController.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -1,5 +1,6 @@
package org.chorem.bonzoms.ui;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
@@ -32,7 +33,7 @@
*/
public class ContractController extends GenericForwardComposer {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected ContractModel contractModel = new ContractModel(20);
protected Checkbox checkbox1;
@@ -79,7 +80,7 @@
protected Listcell getDateCell(Date date) {
String cellDate = "";
if (date != null) {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
cellDate = sdf.format(date);
}
Listcell cell = new Listcell(cellDate);
@@ -129,12 +130,12 @@
/*
* Events
*/
- public void onCheck$checkbox1() {
+ public void onCheck$checkbox1() throws ParseException {
if (checkbox1.isChecked()) {
Date date = new Date();
- String formatDate = WikittyUtil.solrDateFormat.format(date);
+ String formatDate = WikittyUtil.formatDate(date);
Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT).
- and().gt(EmploymentContract.FQ_FIELD_END, formatDate).criteria();
+ and().gt(EmploymentContract.FQ_FIELD_EMPLOYMENTCONTRACT_END, formatDate).criteria();
contractModel.setCriteria(criteria);
} else {
Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, EmploymentContract.EXT_EMPLOYMENTCONTRACT).criteria();
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractFormController.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -32,7 +32,7 @@
*/
public class ContractFormController extends GenericForwardComposer {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected EmploymentContract contract = new EmploymentContractImpl();
protected EmployeeModel employeeModel = new EmployeeModel(5);
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractModel.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -40,7 +40,7 @@
*/
public class ContractModel extends AbstractListModel implements BindingListModel {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Criteria criteria = null;
protected int itemsByPage = 1;
protected int size = 0;
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ContractsFormController.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -34,7 +34,7 @@
*/
public class ContractsFormController extends GenericForwardComposer {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected ContractsModel contractsModel = new ContractsModel();
protected List<String> removedContracts = new ArrayList<String>();
@@ -80,7 +80,7 @@
protected void initContracts() {
if (employeeId != null) {
- Criteria criteria = Search.query().eq(EmploymentContract.FQ_FIELD_EMPLOYEE, employeeId).criteria();
+ Criteria criteria = Search.query().eq(EmploymentContract.FQ_FIELD_EMPLOYMENTCONTRACT_EMPLOYEE, employeeId).criteria();
List<EmploymentContract> contracts = proxy.findAllByCriteria(EmploymentContract.class, criteria).getAll();
contracts = new ArrayList<EmploymentContract>(contracts);
contractsModel.setContracts(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-08-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeController.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -50,7 +50,7 @@
*/
public class EmployeeController extends GenericForwardComposer {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected EmployeeModel employeeModel = new EmployeeModel(20);
@Override
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeFormController.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -47,7 +47,6 @@
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;
@@ -59,7 +58,7 @@
*/
public class EmployeeFormController extends GenericForwardComposer {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Employee employee = new EmployeeImpl();
protected Address workingAddress = new AddressImpl();
@@ -71,10 +70,6 @@
protected Bandbox companyBandbox;
protected Bandbox serviceBandbox;
protected Bandbox personBandbox;
-
- protected Listbox companyListbox;
- protected Listbox serviceListbox;
- protected Listbox personListbox;
public static final String EVENT_ON_SAVE_EMPLOYEE = "onSaveEmployee";
public static final String EVENT_ON_CLOSE_EMPLOYEE = "onCloseEmployee";
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/EmployeeModel.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -40,7 +40,7 @@
*/
public class EmployeeModel extends AbstractListModel implements BindingListModel {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Criteria criteria = null;
protected int itemsByPage = 1;
protected int currentPage = 0;
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-08-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/MainController.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -40,6 +40,7 @@
*/
public void onOK$searchBox() {
String search = searchBox.getValue();
+ include.setSrc(null);
include.setSrc("resultPage.zul?search=" + search);
}
@@ -48,22 +49,27 @@
}
public void onClick$employees() {
+ include.setSrc(null);
include.setSrc("employeePage.zul");
}
public void onClick$persons() {
+ include.setSrc(null);
include.setSrc("personPage.zul");
}
public void onClick$companies() {
+ include.setSrc(null);
include.setSrc("companyPage.zul");
}
public void onClick$services() {
+ include.setSrc(null);
include.setSrc("servicePage.zul");
}
public void onClick$contracts() {
+ include.setSrc(null);
include.setSrc("contractPage.zul");
}
}
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonController.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -52,7 +52,7 @@
*/
public class PersonController extends GenericForwardComposer {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected PersonModel personModel = new PersonModel(20);
@@ -88,7 +88,7 @@
/*
* Renderers
*/
- public ListitemRenderer getPersonDataRenderer() {
+ public ListitemRenderer getPersonRenderer() {
return new ListitemRenderer() {
@Override
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonFormController.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -29,7 +29,7 @@
*/
public class PersonFormController extends GenericForwardComposer {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Person person = new PersonImpl();
protected AddressModel addressModel = new AddressModel();
@@ -206,18 +206,20 @@
}
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);
+ 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);
}
- selectedAddress = (Address) addressModel.getElementAt(0);
- setAddressBox();
- addressListbox.setSelectedIndex(0);
}
}
}
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/PersonModel.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -17,7 +17,7 @@
*/
public class PersonModel extends AbstractListModel implements BindingListModel {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Criteria criteria = null;
protected int itemsByPage = 1;
protected int currentPage = 0;
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-08-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ResultController.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -62,7 +62,7 @@
*/
public class ResultController extends GenericForwardComposer {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected WikittyModel wikittyModel = new WikittyModel(10);
@Override
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceController.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -27,7 +27,7 @@
*/
public class ServiceController extends GenericForwardComposer {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected ServiceModel serviceModel = new ServiceModel(20);
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceFormController.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -19,7 +19,7 @@
*/
public class ServiceFormController extends GenericForwardComposer {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Service service = new ServiceImpl();
protected Address address = new AddressImpl();
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ServiceModel.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -17,7 +17,7 @@
*/
public class ServiceModel extends AbstractListModel implements BindingListModel {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Criteria criteria = null;
protected int itemsByPage = 1;
protected int currentPage = 0;
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-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/WikittyModel.java 2010-08-13 08:20:26 UTC (rev 127)
@@ -18,7 +18,7 @@
*/
public class WikittyModel extends AbstractListModel implements BindingListModel {
- protected WikittyProxy proxy = BonzomsProxy.getInstance();
+ protected WikittyProxy proxy = ChoremDataProxy.getInstance();
protected Criteria criteria = null;
protected int itemsByPage = 1;
protected int currentPage = 0;
Modified: trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul 2010-08-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/webapp/contractFormPage.zul 2010-08-13 08:20:26 UTC (rev 127)
@@ -47,10 +47,10 @@
<vbox>
<label value="Start" />
- <datebox format="yyyy/MM/dd" value="@{composer.contract.start, save-when='saveContract.onClick'}" />
+ <datebox format="dd/MM/yyyy" value="@{composer.contract.start, save-when='saveContract.onClick'}" />
<label value="End" />
- <datebox format="yyyy/MM/dd" value="@{composer.contract.end, save-when='saveContract.onClick'}" />
+ <datebox format="dd/MM/yyyy" value="@{composer.contract.end, save-when='saveContract.onClick'}" />
<label value="Description" />
<textbox rows="5" value="@{composer.contract.description, save-when='saveContract.onClick'}" />
Modified: trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul 2010-08-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/webapp/contractsFormPage.zul 2010-08-13 08:20:26 UTC (rev 127)
@@ -31,10 +31,10 @@
<space />
<vbox>
<label value="Start" />
- <datebox id="contractStart" format="yyyy/MM/dd" value="@{composer.selectedContract.start, save-when='saveContract.onClick'}" />
+ <datebox id="contractStart" format="dd/MM/yyyy" 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'}" />
+ <datebox id="contractEnd" format="dd/MM/yyyy" value="@{composer.selectedContract.end, save-when='saveContract.onClick'}" />
<label value="Description" />
<textbox id="contractDescription" rows="5" value="@{composer.selectedContract.description, save-when='saveContract.onClick'}" />
Modified: trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul 2010-08-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/webapp/personFormPage.zul 2010-08-13 08:20:26 UTC (rev 127)
@@ -9,7 +9,7 @@
<label value="Last name" />
<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'}" />
+ <datebox format="dd/MM/yyyy" value="@{composer.person.birthDay, save-when='savePerson.onClick'}" />
<separator />
Modified: trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul
===================================================================
--- trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul 2010-08-11 14:49:46 UTC (rev 126)
+++ trunk/bonzoms-ui-zk/src/main/webapp/personPage.zul 2010-08-13 08:20:26 UTC (rev 127)
@@ -5,7 +5,7 @@
<window id="person" apply="org.chorem.bonzoms.ui.PersonController">
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}">
+ itemRenderer="@{person$composer.personRenderer}">
<listhead>
<listheader label="First name" />
<listheader label="Last name" />
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-08-11 14:49:46 UTC (rev 126)
+++ trunk/pom.xml 2010-08-13 08:20:26 UTC (rev 127)
@@ -116,19 +116,19 @@
<dependency>
<groupId>org.zkoss.zk</groupId>
<artifactId>zk</artifactId>
- <version>5.0.2</version>
+ <version>${zk.version}</version>
</dependency>
<dependency>
<groupId>org.zkoss.zk</groupId>
<artifactId>zkplus</artifactId>
- <version>5.0.2</version>
+ <version>${zk.version}</version>
</dependency>
<dependency>
<groupId>org.zkoss.zk</groupId>
<artifactId>zul</artifactId>
- <version>5.0.2</version>
+ <version>${zk.version}</version>
</dependency>
<dependency>
@@ -141,13 +141,13 @@
<dependency>
<groupId>org.nuiton.wikitty</groupId>
<artifactId>wikitty-api</artifactId>
- <version>2.0-SNAPSHOT</version>
+ <version>${wikitty.version}</version>
</dependency>
<dependency>
<groupId>org.nuiton.wikitty</groupId>
<artifactId>wikitty-jdbc-impl</artifactId>
- <version>2.0-SNAPSHOT</version>
+ <version>${wikitty.version}</version>
</dependency>
<dependency>
@@ -223,6 +223,8 @@
<projectId>bonzoms</projectId>
<chorem-data.version>0.1-SNAPSHOT</chorem-data.version>
+ <zk.version>5.0.2</zk.version>
+ <wikitty.version>2.1-SNAPSHOT</wikitty.version>
<!-- Nuiton librairies -->
<topia.version>2.2.0</topia.version>
@@ -236,7 +238,7 @@
<hibernate.version>3.3.1.GA</hibernate.version>
<!-- test -->
- <junit.version>4.7</junit.version>
+ <junit.version>4.8.1</junit.version>
<!-- ui -->
<tapestry.version>5.1.0.5</tapestry.version>
1
0
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 Aug. 6, 2010
by bbrossaud@users.chorem.org Aug. 6, 2010
Aug. 6, 2010
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 Aug. 5, 2010
by bbrossaud@users.chorem.org Aug. 5, 2010
Aug. 5, 2010
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 Aug. 5, 2010
by bbrossaud@users.chorem.org Aug. 5, 2010
Aug. 5, 2010
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 Aug. 5, 2010
by bbrossaud@users.chorem.org Aug. 5, 2010
Aug. 5, 2010
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 Aug. 4, 2010
by bbrossaud@users.chorem.org Aug. 4, 2010
Aug. 4, 2010
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