From 906c9763d986e9e00ef33f1892a214cebbb90769 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Thu, 21 May 2009 14:12:38 +0200 Subject: [PATCH] ItEr09S09AdministracionGrupos: Shows the resources for a criterion --- .../resources/CriterionAdminController.java | 10 +++ .../web/resources/CriterionsModel.java | 26 ++++++-- .../web/resources/ICriterionsModel.java | 8 ++- .../webapp/resources/criterions/_edition.zul | 66 +++++++++++++++---- .../main/webapp/resources/worker/_edition.zul | 3 +- 5 files changed, 93 insertions(+), 20 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/CriterionAdminController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/CriterionAdminController.java index a2570bbdd..068d1c666 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/CriterionAdminController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/CriterionAdminController.java @@ -5,6 +5,7 @@ import java.util.List; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.ICriterionType; +import org.navalplanner.business.resources.entities.Worker; import org.navalplanner.web.common.IMessagesForUser; import org.navalplanner.web.common.MessagesForUser; import org.navalplanner.web.common.OnlyOneVisible; @@ -116,6 +117,15 @@ public class CriterionAdminController extends GenericForwardComposer { return criterionsModel.isEditing(); } + public boolean isApplyableToWorkers() { + return criterionsModel.isApplyableToWorkers(); + } + + public List getWorkersForCurrentCriterion() { + return criterionsModel + .getResourcesSatisfyingCurrentCriterionOfType(Worker.class); + } + public boolean isCriterionActive() { return criterionsModel.isCriterionActive(); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/CriterionsModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/CriterionsModel.java index 5395fedee..12b2f3d78 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/CriterionsModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/CriterionsModel.java @@ -1,5 +1,6 @@ package org.navalplanner.web.resources; +import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -10,6 +11,8 @@ import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.resources.bootstrap.ICriterionsBootstrap; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.ICriterionType; +import org.navalplanner.business.resources.entities.Resource; +import org.navalplanner.business.resources.entities.Worker; import org.navalplanner.business.resources.services.CriterionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; @@ -34,7 +37,7 @@ public class CriterionsModel implements ICriterionsModel { @Autowired private CriterionService criterionService; - private ICriterionType criterionType; + private ICriterionType criterionType; private Criterion criterion; @@ -63,7 +66,7 @@ public class CriterionsModel implements ICriterionsModel { } @Override - public void prepareForCreate(ICriterionType criterionType) { + public void prepareForCreate(ICriterionType criterionType) { this.criterionType = criterionType; this.criterion = null; } @@ -72,7 +75,7 @@ public class CriterionsModel implements ICriterionsModel { public void prepareForEdit(Criterion criterion) { Validate.notNull(criterion); this.criterion = criterion; - this.criterionType = null; + this.criterionType = getTypeFor(criterion); } @Override @@ -101,7 +104,8 @@ public class CriterionsModel implements ICriterionsModel { } private void create() throws ValidationException { - Criterion criterion = criterionType.createCriterion(nameForCriterion); + Criterion criterion = (Criterion) criterionType + .createCriterion(nameForCriterion); InvalidValue[] invalidValues = criterionValidator .getInvalidValues(criterion); if (invalidValues.length > 0) @@ -133,4 +137,18 @@ public class CriterionsModel implements ICriterionsModel { public void setCriterionActive(boolean active) { criterion.setActive(active); } + + @Override + public boolean isApplyableToWorkers() { + return criterionType != null + && criterionType.criterionCanBeRelatedTo(Worker.class); + } + + @Override + public List getResourcesSatisfyingCurrentCriterionOfType( + Class klass) { + if (criterion == null) + return new ArrayList(); + return criterionService.getResourcesSatisfying(klass, criterion); + } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/ICriterionsModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/ICriterionsModel.java index 3a9b675c7..484326529 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/ICriterionsModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/ICriterionsModel.java @@ -6,6 +6,7 @@ import java.util.List; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.ICriterionType; +import org.navalplanner.business.resources.entities.Resource; /** * CriterionsModel contract
@@ -19,7 +20,7 @@ public interface ICriterionsModel { Criterion getCriterion(); - void prepareForCreate(ICriterionType criterionType); + void prepareForCreate(ICriterionType criterionType); void prepareForEdit(Criterion criterion); @@ -37,4 +38,9 @@ public interface ICriterionsModel { void setCriterionActive(boolean active); + boolean isApplyableToWorkers(); + + List getResourcesSatisfyingCurrentCriterionOfType( + Class klass); + } diff --git a/navalplanner-webapp/src/main/webapp/resources/criterions/_edition.zul b/navalplanner-webapp/src/main/webapp/resources/criterions/_edition.zul index 88fed7388..c1bec10a4 100644 --- a/navalplanner-webapp/src/main/webapp/resources/criterions/_edition.zul +++ b/navalplanner-webapp/src/main/webapp/resources/criterions/_edition.zul @@ -1,15 +1,55 @@ - - - - - + + + + + + + + \ No newline at end of file diff --git a/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul b/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul index e671ad010..4baf083ed 100644 --- a/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul +++ b/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul @@ -20,8 +20,7 @@