diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/AllocationSelector.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/AllocationSelector.java index 3cfc2e622..7e04ee9ee 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/AllocationSelector.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/AllocationSelector.java @@ -20,6 +20,7 @@ package org.navalplanner.web.common.components; +import org.navalplanner.business.resources.entities.ResourceType; import org.navalplanner.business.resources.entities.Worker; import org.navalplanner.web.planner.allocation.INewAllocationsAdder; import org.navalplanner.web.resources.search.AllocationSelectorController; @@ -51,8 +52,8 @@ public abstract class AllocationSelector extends HtmlMacroComponent { } } - public void setLimitingResourceFilter(boolean limitingResource) { - getController().setLimitingResourceFilter(limitingResource); + public void setResourceTypeFilter(ResourceType type) { + getController().setResourceTypeFilter(type); } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/GenericAllocationRow.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/GenericAllocationRow.java index 7f532fea2..22ee5960a 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/GenericAllocationRow.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/GenericAllocationRow.java @@ -38,6 +38,7 @@ import org.navalplanner.business.planner.entities.allocationalgorithms.Resources import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.Resource; import org.navalplanner.business.resources.entities.ResourceEnum; +import org.navalplanner.business.resources.entities.ResourceType; import org.navalplanner.business.workingday.ResourcesPerDay; import org.navalplanner.web.resources.search.IResourceSearchModel; @@ -78,11 +79,15 @@ public class GenericAllocationRow extends AllocationRow { result.setNonConsolidatedResourcesPerDay(resourceAllocation .getNonConsolidatedResourcePerDay()); + ResourceType type = resourceAllocation.isLimiting() ? + ResourceType.LIMITING_RESOURCE : + ResourceType.NON_LIMITING_RESOURCE; + result.criterions = resourceAllocation.getCriterions(); result.resources = new ArrayList(searchModel .searchBy(resourceAllocation.getResourceType()) .byCriteria(resourceAllocation.getCriterions()) - .byLimiting(resourceAllocation.isLimiting()).execute()); + .byResourceType(type).execute()); result.setName(Criterion .getCaptionForCriterionsFrom(resourceAllocation)); return result; diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java index 208fd341f..984f6e454 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java @@ -36,6 +36,7 @@ import org.navalplanner.business.planner.entities.DerivedAllocation; import org.navalplanner.business.planner.entities.ResourceAllocation; import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.business.resources.entities.ResourceEnum; +import org.navalplanner.business.resources.entities.ResourceType; import org.navalplanner.web.I18nHelper; import org.navalplanner.web.common.IMessagesForUser; import org.navalplanner.web.common.Util; @@ -150,8 +151,8 @@ public class ResourceAllocationController extends GenericForwardComposer { super.doAfterCompose(comp); allResourcesPerDay = new Decimalbox(); allResourcesPerDay.setWidth("80px"); - newAllocationSelector.setLimitingResourceFilter(false); - newAllocationSelectorCombo.setLimitingResourceFilter(false); + newAllocationSelector.setResourceTypeFilter(ResourceType.NON_LIMITING_RESOURCE); + newAllocationSelectorCombo.setResourceTypeFilter(ResourceType.NON_LIMITING_RESOURCE); newAllocationSelector.allowSelectMultipleResources(true); initAllocationLabels(); makeReadyInputsForCalculationTypes(); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/limiting/allocation/LimitingResourceAllocationController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/limiting/allocation/LimitingResourceAllocationController.java index 6e47f9a67..318425a0b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/limiting/allocation/LimitingResourceAllocationController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/limiting/allocation/LimitingResourceAllocationController.java @@ -25,6 +25,7 @@ import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.navalplanner.business.planner.entities.ResourceAllocation; +import org.navalplanner.business.resources.entities.ResourceType; import org.navalplanner.web.common.IMessagesForUser; import org.navalplanner.web.common.Util; import org.navalplanner.web.common.components.AllocationSelector; @@ -87,8 +88,8 @@ public class LimitingResourceAllocationController extends GenericForwardComposer @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); - limitingNewAllocationSelector.setLimitingResourceFilter(true); - limitingNewAllocationSelectorCombo.setLimitingResourceFilter(true); + limitingNewAllocationSelector.setResourceTypeFilter(ResourceType.LIMITING_RESOURCE); + limitingNewAllocationSelectorCombo.setResourceTypeFilter(ResourceType.LIMITING_RESOURCE); limitingNewAllocationSelector.allowSelectMultipleResources(false); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/AllocationSelectorController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/AllocationSelectorController.java index 5f855c8ef..54b80634f 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/AllocationSelectorController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/AllocationSelectorController.java @@ -24,6 +24,7 @@ import java.util.List; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.Resource; +import org.navalplanner.business.resources.entities.ResourceType; import org.navalplanner.web.planner.allocation.INewAllocationsAdder; import org.springframework.beans.factory.annotation.Autowired; import org.zkoss.zk.ui.util.GenericForwardComposer; @@ -38,7 +39,7 @@ public abstract class AllocationSelectorController extends @Autowired protected IResourceSearchModel resourceSearchModel; - protected boolean limitingResource = false; + protected ResourceType type = ResourceType.NON_LIMITING_RESOURCE; public AllocationSelectorController() { @@ -57,8 +58,8 @@ public abstract class AllocationSelectorController extends public abstract void addTo(INewAllocationsAdder allocationsAdder); - public void setLimitingResourceFilter(boolean limitingResource) { - this.limitingResource = limitingResource; + public void setResourceTypeFilter(ResourceType type) { + this.type = type; } } \ No newline at end of file diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/IResourceSearchModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/IResourceSearchModel.java index 7e1f12746..2e8c18ed4 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/IResourceSearchModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/IResourceSearchModel.java @@ -30,6 +30,7 @@ import org.navalplanner.business.resources.entities.CriterionType; import org.navalplanner.business.resources.entities.Machine; import org.navalplanner.business.resources.entities.Resource; import org.navalplanner.business.resources.entities.ResourceEnum; +import org.navalplanner.business.resources.entities.ResourceType; import org.navalplanner.business.resources.entities.Worker; /** @@ -60,13 +61,13 @@ public interface IResourceSearchModel { IResourcesQuery byCriteria(Collection criteria); /** - * Restrict resources to the ones having the provided limiting value. By - * default, if this method is not called, the resources are restricted - * to the ones not limiting. - * @param limiting + * Restrict resources to the ones having the provided type. By default + * if this method is not called, the resources are restricted to the + * type NON_LIMITING_RESOURCE. + * @param type * @return this same object in order to cascade calls */ - IResourcesQuery byLimiting(boolean limiting); + IResourcesQuery byResourceType(ResourceType type); /** * Retrieve the list of resources that match the restrictions specified. diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorComboController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorComboController.java index 1fd0d4fb0..756b12982 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorComboController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorComboController.java @@ -26,6 +26,7 @@ import java.util.List; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.Resource; import org.navalplanner.business.resources.entities.ResourceEnum; +import org.navalplanner.business.resources.entities.ResourceType; import org.navalplanner.web.common.components.bandboxsearch.BandboxMultipleSearch; import org.navalplanner.web.common.components.finders.FilterPair; import org.navalplanner.web.common.components.finders.ResourceAllocationFilterEnum; @@ -42,8 +43,6 @@ public class NewAllocationSelectorComboController extends private BandboxMultipleSearch bdLimitingAllocationSelector; - private boolean limitingResource = false; - public NewAllocationSelectorComboController() { } @@ -60,7 +59,7 @@ public class NewAllocationSelectorComboController extends */ private List searchResources(List criterions) { return query(inferType(criterions)).byCriteria(criterions) - .byLimiting(limitingResource).execute(); + .byResourceType(type).execute(); } private static ResourceEnum inferType(List criterions) { @@ -138,17 +137,17 @@ public class NewAllocationSelectorComboController extends } @Override - public void setLimitingResourceFilter(boolean limitingResource) { - this.limitingResource = limitingResource; + public void setResourceTypeFilter(ResourceType type) { + super.setResourceTypeFilter(type); setResourceFinder(); } private void setResourceFinder() { - if (limitingResource) { + if (type == ResourceType.LIMITING_RESOURCE) { bdLimitingAllocationSelector .setFinder("limitingResourceAllocationMultipleFiltersFinder"); - } else { + } else if (type == ResourceType.NON_LIMITING_RESOURCE) { bdLimitingAllocationSelector .setFinder("nonLimitingResourceAllocationMultipleFiltersFinder"); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorController.java index 669732927..fb610e482 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorController.java @@ -157,7 +157,7 @@ public class NewAllocationSelectorController extends } private List getAllResources() { - return query().byLimiting(limitingResource).execute(); + return query().byResourceType(type).execute(); } private IResourcesQuery query() { @@ -189,7 +189,7 @@ public class NewAllocationSelectorController extends List criteria = getSelectedCriterions(); List selectedWorkers = getSelectedWorkers(); refreshListBoxResources(query().byCriteria(criteria) - .byLimiting(limitingResource).execute()); + .byResourceType(type).execute()); listBoxResources.renderAll(); // force render so list items has the // value property so the resources can be // selected @@ -262,7 +262,7 @@ public class NewAllocationSelectorController extends private void searchResources(String name, List criterions) { final List resources = query().byName(name) .byCriteria(criterions) - .byLimiting(limitingResource) + .byResourceType(type) .execute(); refreshListBoxResources(resources); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/ResourceSearchModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/ResourceSearchModel.java index 78dcf868a..cda1ae492 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/ResourceSearchModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/ResourceSearchModel.java @@ -86,7 +86,7 @@ public class ResourceSearchModel implements IResourceSearchModel { private List criteria = null; - private boolean limiting = false; + private ResourceType type = ResourceType.NON_LIMITING_RESOURCE; public Query(Class klass) { this.klass = klass; @@ -107,8 +107,8 @@ public class ResourceSearchModel implements IResourceSearchModel { } @Override - public IResourcesQuery byLimiting(boolean limiting) { - this.limiting = limiting; + public IResourcesQuery byResourceType(ResourceType type) { + this.type = type; return this; } @@ -130,7 +130,7 @@ public class ResourceSearchModel implements IResourceSearchModel { private Criteria buildCriteria(Session session) { Criteria result = session.createCriteria(klass); - result.add(eq("limitingResource", limiting)); + result.add(eq("resourceType", type)); addQueryByName(result); addFindRelatedWithSomeOfTheCriterions(result); result.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); @@ -222,9 +222,9 @@ public class ResourceSearchModel implements IResourceSearchModel { } @Override - public IResourcesQuery byLimiting(boolean limiting) { - searchWorkers.byLimiting(limiting); - searchMachines.byLimiting(limiting); + public IResourcesQuery byResourceType(ResourceType type) { + searchWorkers.byResourceType(type); + searchMachines.byResourceType(type); return this; } @@ -271,4 +271,4 @@ public class ResourceSearchModel implements IResourceSearchModel { }; } -} \ No newline at end of file +}