From 3899010e1677abea137ae103681d06c83e6ab6e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= Date: Mon, 12 Apr 2010 13:59:38 +0200 Subject: [PATCH] ItEr53S10AdaptacionServiciosRESTItEr52S10: Extended the effect of the 'generate code' checkbox to criterion tree. Now the column 'code' is enabled/disabled and the code is regenerated for unsaved criteria. --- .../criterion/CriterionAdminController_V2.java | 10 ++++++++-- .../criterion/CriterionTreeController.java | 11 +++++++++++ .../web/resources/criterion/CriterionTreeModel.java | 13 +++++++++++++ .../resources/criterion/ICriterionTreeModel.java | 2 ++ 4 files changed, 34 insertions(+), 2 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionAdminController_V2.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionAdminController_V2.java index 4742709e7..ad213e6c5 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionAdminController_V2.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionAdminController_V2.java @@ -91,9 +91,9 @@ public class CriterionAdminController_V2 extends GenericForwardComposer { public void goToCreateForm() { try{ + criterionsModel_V2.prepareForCreate(); setupCriterionTreeController(createComponent); onlyOneVisible.showOnly(createComponent); - criterionsModel_V2.prepareForCreate(); setResourceComboboxValue((Combobox) createComponent.getFellowIfAny("resourceCombobox")); Util.reloadBindings(createComponent); }catch(Exception e){ @@ -105,9 +105,9 @@ public class CriterionAdminController_V2 extends GenericForwardComposer { public void goToEditForm(CriterionType criterionType) { try{ + criterionsModel_V2.prepareForEdit(criterionType); setupCriterionTreeController(editComponent); onlyOneVisible.showOnly(editComponent); - criterionsModel_V2.prepareForEdit(criterionType); setResourceComboboxValue((Combobox) editComponent.getFellowIfAny("resourceCombobox")); Util.reloadBindings(editComponent); }catch(Exception e){ @@ -333,6 +333,8 @@ public class CriterionAdminController_V2 extends GenericForwardComposer { private void setupCriterionTreeController(Component comp)throws Exception { editionTree = new CriterionTreeController(criterionsModel_V2); + editionTree.setCriterionCodeEditionDisabled( + ((CriterionType)criterionsModel_V2.getCriterionType()).getGenerateCode()); editionTree.doAfterCompose(comp.getFellow( "criterionsTree")); } @@ -345,6 +347,10 @@ public class CriterionAdminController_V2 extends GenericForwardComposer { ((CriterionType)criterionsModel_V2.getCriterionType()).setCodeAutogenerated(); Util.reloadBindings(createComponent); } + editionTree.regenerateCodeForUnsavedCriteria(); } + //disable code field in criterion tree controller + editionTree.setCriterionCodeEditionDisabled(ce.isChecked()); + editionTree.reloadTree(); } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionTreeController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionTreeController.java index 55dee42dc..8e98cf1f2 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionTreeController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionTreeController.java @@ -66,6 +66,8 @@ public class CriterionTreeController extends GenericForwardComposer { private Textbox criterionName; + private boolean codeEditionDisabled; + public CriterionTreeitemRenderer getRenderer() { return renderer; } @@ -179,6 +181,7 @@ public class CriterionTreeController extends GenericForwardComposer { Treecell cellForCode = new Treecell(); cellForCode.setStyle("center"); Textbox codeLabel = new Textbox(); + codeLabel.setDisabled(codeEditionDisabled); cellForCode.appendChild(Util.bind(codeLabel, new Util.Getter() { @@ -378,6 +381,14 @@ public class CriterionTreeController extends GenericForwardComposer { reloadTree(); } + public void setCriterionCodeEditionDisabled(boolean disabled) { + codeEditionDisabled = disabled; + } + + public void regenerateCodeForUnsavedCriteria() { + getModel().regenerateCodeForUnsavedCriteria(); + } + public void reloadTree(){ Util.reloadBindings(tree); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionTreeModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionTreeModel.java index c674eb2ac..f4cd16814 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionTreeModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionTreeModel.java @@ -428,4 +428,17 @@ public class CriterionTreeModel implements ICriterionTreeModel{ } return false; } + + public void regenerateCodeForUnsavedCriteria() { + regenerateCodeForUnsavedCriteria(criterionRootDTO.getChildren()); + } + + private void regenerateCodeForUnsavedCriteria(List criterionDTOs){ + for(CriterionDTO criterionDTO : criterionDTOs){ + if(criterionDTO.getCriterion().isNewObject()) { + criterionDTO.getCriterion().setCodeAutogenerated(); + } + regenerateCodeForUnsavedCriteria(criterionDTO.getChildren()); + } + } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/ICriterionTreeModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/ICriterionTreeModel.java index 8a550dbf3..946a4a4c6 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/ICriterionTreeModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/ICriterionTreeModel.java @@ -68,4 +68,6 @@ public interface ICriterionTreeModel { void indent(CriterionDTO nodeToIndent); void unindent(CriterionDTO nodeToIndent); + + void regenerateCodeForUnsavedCriteria(); }