ItEr52S13CUCreacionRecursosLimitantes: Added isLimitedResource filter in resourceFilter (for workers list)

This commit is contained in:
Diego Pino Garcia 2010-04-05 02:18:15 +02:00 committed by Javier Moran Rua
parent d712de0b15
commit e94e74c7ac
3 changed files with 63 additions and 5 deletions

View file

@ -52,6 +52,8 @@ public class ResourcePredicate implements IPredicate {
private String[] personalFilters;
private Boolean isLimitedResource;
private List<Resource> assignedResourcesInIntervalDates;
public ResourcePredicate(List<FilterPair> filters, String personalFilters,
@ -63,6 +65,14 @@ public class ResourcePredicate implements IPredicate {
this.personalFilters = personalFilters.split(" ");
}
public ResourcePredicate(List<FilterPair> filters, String personalFilters,
LocalDate startDate,
LocalDate finishDate,
Boolean isLimitedResource) {
this(filters, personalFilters, startDate, finishDate);
this.isLimitedResource = isLimitedResource;
}
@Override
public boolean accepts(Object object) {
final Resource resource = (Resource) object;
@ -74,12 +84,16 @@ public class ResourcePredicate implements IPredicate {
return false;
}
if (acceptFilters(resource) && acceptPersonalFilters(resource)
&& acceptFiltersDates(resource)) {
&& acceptFiltersDates(resource) && acceptFilterIsLimitedResource(resource)) {
return true;
}
return false;
}
private boolean acceptFilterIsLimitedResource(Resource resource) {
return (isLimitedResource != null) ? isLimitedResource.equals(resource.isLimitedResource()) : true;
}
private boolean acceptFilters(Resource resource) {
if ((filters == null) || (filters.isEmpty())) {
return true;

View file

@ -22,8 +22,10 @@ package org.navalplanner.web.resources.worker;
import static org.navalplanner.web.I18nHelper._;
import java.util.Arrays;
import java.util.Date;
import java.util.EnumSet;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@ -109,6 +111,8 @@ public class WorkerCRUDController extends GenericForwardComposer implements
private Datebox filterFinishDate;
private Combobox filterLimitedResource;
private BandboxMultipleSearch bdFilters;
private Textbox txtfilter;
@ -293,6 +297,8 @@ public class WorkerCRUDController extends GenericForwardComposer implements
.getFellowIfAny("filterFinishDate");
this.filterStartDate = (Datebox) listWindow
.getFellowIfAny("filterStartDate");
this.filterLimitedResource = (Combobox) listWindow
.getFellowIfAny("filterLimitedResource");
this.bdFilters = (BandboxMultipleSearch) listWindow
.getFellowIfAny("bdFilters");
this.txtfilter = (Textbox) listWindow.getFellowIfAny("txtfilter");
@ -601,13 +607,18 @@ public class WorkerCRUDController extends GenericForwardComposer implements
finishDate = LocalDate.fromDateFields(filterFinishDate.getValue());
}
final Comboitem item = filterLimitedResource.getSelectedItem();
Boolean isLimitedResource = (item != null) ? LimitedResourceEnum
.valueOf((LimitedResourceEnum) item.getValue()) : null;
if (listFilters.isEmpty()
&& (personalFilter == null || personalFilter.isEmpty())
&& startDate == null && finishDate == null) {
&& startDate == null && finishDate == null
&& isLimitedResource == null) {
return null;
}
return new ResourcePredicate(listFilters, personalFilter, startDate,
finishDate);
finishDate, isLimitedResource);
}
private void filterByPredicate(ResourcePredicate predicate) {
@ -629,7 +640,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements
}
public enum LimitedResourceEnum {
ALL(""),
ALL(_("ALL")),
LIMITED_RESOURCE(_("LIMITED RESOURCE")),
NON_LIMITED_RESOURCE(_("NON LIMITED RESOURCE"));
@ -647,11 +658,32 @@ public class WorkerCRUDController extends GenericForwardComposer implements
return (isLimitedResource != null) ? LIMITED_RESOURCE : NON_LIMITED_RESOURCE;
}
public static Boolean valueOf(LimitedResourceEnum option) {
if (LIMITED_RESOURCE.equals(option)) {
return true;
} else if (NON_LIMITED_RESOURCE.equals(option)) {
return false;
} else {
return null;
}
}
public static Set<LimitedResourceEnum> getLimitedResourceOptionList() {
return EnumSet.of(
LimitedResourceEnum.LIMITED_RESOURCE,
LimitedResourceEnum.NON_LIMITED_RESOURCE);
}
public static Set<LimitedResourceEnum> getLimitedResourceFilterOptionList() {
return EnumSet.of(LimitedResourceEnum.ALL,
LimitedResourceEnum.LIMITED_RESOURCE,
LimitedResourceEnum.NON_LIMITED_RESOURCE);
}
}
public Set<LimitedResourceEnum> getLimitedResourceFilterOptionList() {
return LimitedResourceEnum.getLimitedResourceFilterOptionList();
}
public Set<LimitedResourceEnum> getLimitedResourceOptionList() {

View file

@ -1,15 +1,27 @@
<hbox align="end" sclass="filtering-area">
<!-- Multiple filter -->
<label value="${i18n:_('Filter by')}"
tooltiptext="${i18n:_('Select required criteria set and press filter button')}"/>
<bandboxMultipleSearch id="bdFilters" widthBandbox="285px" widthListbox="300px"
finder="resourcesMultipleFiltersFinder"/>
<!-- Personal details -->
<label value="${i18n:_('Personal details')}"/>
<textbox id="txtfilter" width="200px"/>
<!-- Limited resource -->
<label value="${i18n:_('Limited resource')}"/>
<combobox id="filterLimitedResource"
model="@{controller.limitedResourceFilterOptionList}" />
<!-- Filter by date -->
<label value="${i18n:_('Active period from')}"/>
<datebox id="filterStartDate" constraint = "@{controller.checkConstraintStartDate}"/>
<label value="${i18n:_('to')}"/>
<datebox id="filterFinishDate" constraint = "@{controller.checkConstraintFinishDate}"/>
<button label="${i18n:_('Filter')}" style="margin-top: -4px"
tooltiptext="${i18n:_('Apply filtering to machines satisfying required criteria')}"
onClick="controller.onApplyFilter()"/>
</hbox>
</hbox>