ItEr52S13CUCreacionRecursosLimitantes: Added isLimitedResource filter in resourceFilter (for workers list)
This commit is contained in:
parent
d712de0b15
commit
e94e74c7ac
3 changed files with 63 additions and 5 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue