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