From 2b4ac1c3edf9eedca94c0fb00d523e0a278820ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenzo=20Tilve=20=C3=81lvaro?= Date: Thu, 6 Jun 2013 19:49:17 +0200 Subject: [PATCH] Linked cost category autocomplete widget to criteria edition window FEA: ItEr77S17AutomaticBudgeting --- .../criterion/CriterionTreeController.java | 49 +++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionTreeController.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionTreeController.java index d50c95829..1fa7d8d4d 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionTreeController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionTreeController.java @@ -29,10 +29,13 @@ import java.util.Set; import org.apache.commons.lang.Validate; import org.hibernate.validator.InvalidValue; import org.libreplan.business.common.exceptions.ValidationException; +import org.libreplan.business.costcategories.entities.CostCategory; +import org.libreplan.business.costcategories.entities.ResourcesCostCategoryAssignment; import org.libreplan.web.common.IMessagesForUser; import org.libreplan.web.common.Level; import org.libreplan.web.common.MessagesForUser; import org.libreplan.web.common.Util; +import org.libreplan.web.common.components.Autocomplete; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.DropEvent; import org.zkoss.zk.ui.event.Event; @@ -41,6 +44,8 @@ import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.Button; import org.zkoss.zul.Checkbox; +import org.zkoss.zul.Comboitem; +import org.zkoss.zul.Row; import org.zkoss.zul.Textbox; import org.zkoss.zul.TreeModel; import org.zkoss.zul.Treecell; @@ -179,10 +184,10 @@ public class CriterionTreeController extends GenericForwardComposer { tr.setDraggable("true"); tr.setDroppable("true"); - // Treecell with the code of the Criterion + // Treecell with the cost category of the Criterion Treecell cellForCostCategory = new Treecell(); - Textbox costCategoryLabel = new Textbox("Cost category combo"); - cellForCostCategory.appendChild(costCategoryLabel); + criterionForThisRow.getCriterion().getCostCategory(); + cellForCostCategory.appendChild(appendAutocompleteType(item)); // Treecell with the code of the Criterion Treecell cellForCode = new Treecell(); @@ -290,6 +295,44 @@ public class CriterionTreeController extends GenericForwardComposer { } } + private CostCategory getCostCategory(Treeitem listitem) { + + return ((CriterionDTO) listitem.getValue()).getCriterion() + .getCostCategory(); + } + + private Autocomplete appendAutocompleteType(final Treeitem row) { + final Autocomplete autocomplete = new Autocomplete(); + autocomplete.setAutodrop(true); + autocomplete.applyProperties(); + autocomplete.setFinder("CostCategoryFinder"); + + // Getter, show type selected + if (getCostCategory(row) != null) { + autocomplete.setSelectedItem(getCostCategory(row)); + } + + // Setter, set type selected to HourCost.type + autocomplete.addEventListener("onSelect", new EventListener() { + + @Override + public void onEvent(Event event) { + final Comboitem comboitem = autocomplete.getSelectedItem(); + + if (comboitem != null) { + // Update resourcesCostCategoryAssignment + CriterionDTO assignment = (CriterionDTO) row + .getValue(); + assignment.getCriterion().setCostCategory( + (CostCategory) comboitem + .getValue()); + row.setValue(assignment); + } + } + }); + return autocomplete; + } + private Button createButtonUnindent(){ Button unindentbutton; if( this.criterionsModel.getCriterionType().allowHierarchy()){