diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java index 2c68da68f..d0e1c3268 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java @@ -48,6 +48,9 @@ public class CriterionType extends IntegrationEntity implements return create(new CriterionType()); } + public static CriterionType create(String code) { + return create(new CriterionType(), code); + } public static CriterionType createUnvalidated(String code, String name, String description, Boolean allowHierarchy, @@ -140,6 +143,8 @@ public class CriterionType extends IntegrationEntity implements private int numCriterions; + private Boolean generateCode = false; + /** * Constructor for hibernate. Do not use! */ @@ -469,4 +474,12 @@ public class CriterionType extends IntegrationEntity implements return Registry.getCriterionTypeDAO(); } + public Boolean getGenerateCode() { + return generateCode; + } + + public void setGenerateCode(Boolean generateCode) { + this.generateCode = generateCode; + } + } diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml index 676ff1810..7faba6d40 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml @@ -122,6 +122,7 @@ + org.navalplanner.business.resources.entities.ResourceEnum 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 7a7c0212c..4742709e7 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 @@ -38,6 +38,8 @@ import org.navalplanner.web.common.MessagesForUser; import org.navalplanner.web.common.OnlyOneVisible; import org.navalplanner.web.common.Util; import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.CheckEvent; +import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.Checkbox; import org.zkoss.zul.Combobox; @@ -334,4 +336,15 @@ public class CriterionAdminController_V2 extends GenericForwardComposer { editionTree.doAfterCompose(comp.getFellow( "criterionsTree")); } + + public void onCheckGenerateCode(Event e) { + CheckEvent ce = (CheckEvent) e; + if(ce.isChecked()) { + //we have to auto-generate the code for new objects + if(((CriterionType)criterionsModel_V2.getCriterionType()).isNewObject()) { + ((CriterionType)criterionsModel_V2.getCriterionType()).setCodeAutogenerated(); + Util.reloadBindings(createComponent); + } + } + } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionsModel_V2.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionsModel_V2.java index 1867e2cee..7fcc6c580 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionsModel_V2.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionsModel_V2.java @@ -29,6 +29,7 @@ import java.util.List; import org.apache.commons.lang.Validate; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.navalplanner.business.common.daos.IConfigurationDAO; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.resources.daos.ICriterionDAO; @@ -66,6 +67,9 @@ public class CriterionsModel_V2 implements ICriterionsModel_V2 { @Autowired private IResourceDAO resourceDAO; + @Autowired + private IConfigurationDAO configurationDAO; + private CriterionType criterionType; private Criterion criterion; @@ -100,8 +104,16 @@ public class CriterionsModel_V2 implements ICriterionsModel_V2 { } @Override + @Transactional(readOnly=true) public void prepareForCreate() { - this.criterionType = CriterionType.create(); + boolean generateCode = configurationDAO.getConfiguration().getGenerateCodeForCriterion(); + if(generateCode) { + this.criterionType = CriterionType.create(); + } + else { + this.criterionType = CriterionType.create(""); + } + this.criterionType.setGenerateCode(generateCode); this.criterionTreeModel = new CriterionTreeModel(criterionType); } diff --git a/navalplanner-webapp/src/main/webapp/resources/criterions/_edition-V2.zul b/navalplanner-webapp/src/main/webapp/resources/criterions/_edition-V2.zul index 6ccf31e47..5c171fe03 100644 --- a/navalplanner-webapp/src/main/webapp/resources/criterions/_edition-V2.zul +++ b/navalplanner-webapp/src/main/webapp/resources/criterions/_edition-V2.zul @@ -63,8 +63,14 @@