Added popup in filters to use or not labels inheritance
FEA: ItEr75S15FilteringByLabelsPlanningGantt
This commit is contained in:
parent
4222ca684b
commit
b29a3f013f
5 changed files with 87 additions and 15 deletions
|
|
@ -565,6 +565,15 @@ public abstract class OrderElement extends IntegrationEntity implements
|
|||
return Collections.unmodifiableSet(labels);
|
||||
}
|
||||
|
||||
public Set<Label> getAllLabels() {
|
||||
Set<Label> allLabels = new HashSet<Label>();
|
||||
allLabels.addAll(this.labels);
|
||||
if (parent != null) {
|
||||
allLabels.addAll(parent.getAllLabels());
|
||||
}
|
||||
return allLabels;
|
||||
}
|
||||
|
||||
public void setLabels(Set<Label> labels) {
|
||||
this.labels = labels;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ package org.navalplanner.web.orders;
|
|||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.navalplanner.business.labels.entities.Label;
|
||||
|
|
@ -49,12 +50,15 @@ public class OrderElementPredicate implements IPredicate {
|
|||
|
||||
private String name;
|
||||
|
||||
private boolean ignoreLabelsInheritance;
|
||||
|
||||
public OrderElementPredicate(List<FilterPair> filters, Date startDate,
|
||||
Date finishDate, String name) {
|
||||
Date finishDate, String name, boolean ignoreLabelsInheritance) {
|
||||
this.filters = filters;
|
||||
this.startDate = startDate;
|
||||
this.finishDate = finishDate;
|
||||
this.name = name;
|
||||
this.ignoreLabelsInheritance = ignoreLabelsInheritance;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -153,7 +157,13 @@ public class OrderElementPredicate implements IPredicate {
|
|||
|
||||
private boolean existLabelInOrderElement(Label filterLabel,
|
||||
OrderElement order) {
|
||||
for(Label label : order.getLabels()){
|
||||
Set<Label> labels;
|
||||
if (ignoreLabelsInheritance) {
|
||||
labels = order.getLabels();
|
||||
} else {
|
||||
labels = order.getAllLabels();
|
||||
}
|
||||
for (Label label : labels) {
|
||||
if(label.getId().equals(filterLabel.getId())){
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,8 +60,10 @@ import org.zkoss.zk.ui.WrongValueException;
|
|||
import org.zkoss.zk.ui.event.Event;
|
||||
import org.zkoss.zk.ui.event.EventListener;
|
||||
import org.zkoss.zul.Button;
|
||||
import org.zkoss.zul.Checkbox;
|
||||
import org.zkoss.zul.Constraint;
|
||||
import org.zkoss.zul.Datebox;
|
||||
import org.zkoss.zul.Popup;
|
||||
import org.zkoss.zul.Tab;
|
||||
import org.zkoss.zul.Textbox;
|
||||
import org.zkoss.zul.Treechildren;
|
||||
|
|
@ -88,6 +90,8 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
|
||||
private Datebox filterFinishDateOrderElement;
|
||||
|
||||
private Checkbox labelsWithoutInheritance;
|
||||
|
||||
private Textbox filterNameOrderElement;
|
||||
|
||||
private OrderElementTreeitemRenderer renderer = new OrderElementTreeitemRenderer();
|
||||
|
|
@ -105,6 +109,8 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
|
||||
private final IMessagesForUser messagesForUser;
|
||||
|
||||
private Popup filterOptionsPopup;
|
||||
|
||||
public List<org.navalplanner.business.labels.entities.Label> getLabels() {
|
||||
return orderModel.getLabels();
|
||||
}
|
||||
|
|
@ -248,13 +254,18 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
filterComponent.setVariable("treeController", this, true);
|
||||
bdFiltersOrderElement = (BandboxMultipleSearch) filterComponent
|
||||
.getFellow("bdFiltersOrderElement");
|
||||
filterStartDateOrderElement = (Datebox) filterComponent
|
||||
filterOptionsPopup = (Popup) filterComponent
|
||||
.getFellow("filterOptionsPopup");
|
||||
filterStartDateOrderElement = (Datebox) filterOptionsPopup
|
||||
.getFellow("filterStartDateOrderElement");
|
||||
filterFinishDateOrderElement = (Datebox) filterComponent
|
||||
filterFinishDateOrderElement = (Datebox) filterOptionsPopup
|
||||
.getFellow("filterFinishDateOrderElement");
|
||||
labelsWithoutInheritance = (Checkbox) filterOptionsPopup
|
||||
.getFellow("labelsWithoutInheritance");
|
||||
filterNameOrderElement = (Textbox) filterComponent
|
||||
.getFellow("filterNameOrderElement");
|
||||
|
||||
labelsWithoutInheritance = (Checkbox) filterComponent
|
||||
.getFellow("labelsWithoutInheritance");
|
||||
templateFinderPopup = (TemplateFinderPopup) comp
|
||||
.getFellow("templateFinderPopupAtTree");
|
||||
operationsForOrderElement.tree(tree)
|
||||
|
|
@ -505,6 +516,8 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
.getSelectedElements();
|
||||
Date startDate = filterStartDateOrderElement.getValue();
|
||||
Date finishDate = filterFinishDateOrderElement.getValue();
|
||||
boolean ignoreLabelsInheritance = Boolean
|
||||
.valueOf(labelsWithoutInheritance.isChecked());
|
||||
String name = filterNameOrderElement.getValue();
|
||||
|
||||
if (listFilters.isEmpty() && startDate == null && finishDate == null
|
||||
|
|
@ -512,7 +525,7 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
return null;
|
||||
}
|
||||
return new OrderElementPredicate(listFilters, startDate, finishDate,
|
||||
name);
|
||||
name, ignoreLabelsInheritance);
|
||||
}
|
||||
|
||||
private void filterByPredicate(OrderElementPredicate predicate) {
|
||||
|
|
@ -703,4 +716,8 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
};
|
||||
}
|
||||
|
||||
public void toggleOptions() {
|
||||
filterOptionsPopup.open(300, 150);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,8 +62,10 @@ import org.zkoss.ganttz.util.ProfilingLogFactory;
|
|||
import org.zkoss.zk.ui.Executions;
|
||||
import org.zkoss.zk.ui.WrongValueException;
|
||||
import org.zkoss.zk.ui.util.Composer;
|
||||
import org.zkoss.zul.Checkbox;
|
||||
import org.zkoss.zul.Constraint;
|
||||
import org.zkoss.zul.Datebox;
|
||||
import org.zkoss.zul.Popup;
|
||||
import org.zkoss.zul.Textbox;
|
||||
import org.zkoss.zul.Vbox;
|
||||
|
||||
|
|
@ -111,9 +113,12 @@ public class OrderPlanningController implements Composer {
|
|||
private Vbox orderElementFilter;
|
||||
private Datebox filterStartDateOrderElement;
|
||||
private Datebox filterFinishDateOrderElement;
|
||||
private Checkbox labelsWithoutInheritance;
|
||||
private BandboxMultipleSearch bdFiltersOrderElement;
|
||||
private Textbox filterNameOrderElement;
|
||||
|
||||
private Popup filterOptionsPopup;
|
||||
|
||||
public OrderPlanningController() {
|
||||
}
|
||||
|
||||
|
|
@ -176,10 +181,14 @@ public class OrderPlanningController implements Composer {
|
|||
.createComponents("/orders/_orderElementTreeFilter.zul",
|
||||
orderElementFilter, new HashMap<String, String>());
|
||||
filterComponent.setVariable("treeController", this, true);
|
||||
filterStartDateOrderElement = (Datebox) filterComponent
|
||||
filterOptionsPopup = (Popup) filterComponent
|
||||
.getFellow("filterOptionsPopup");
|
||||
filterStartDateOrderElement = (Datebox) filterOptionsPopup
|
||||
.getFellow("filterStartDateOrderElement");
|
||||
filterFinishDateOrderElement = (Datebox) filterComponent
|
||||
filterFinishDateOrderElement = (Datebox) filterOptionsPopup
|
||||
.getFellow("filterFinishDateOrderElement");
|
||||
labelsWithoutInheritance = (Checkbox) filterOptionsPopup
|
||||
.getFellow("labelsWithoutInheritance");
|
||||
bdFiltersOrderElement = (BandboxMultipleSearch) filterComponent
|
||||
.getFellow("bdFiltersOrderElement");
|
||||
filterNameOrderElement = (Textbox) filterComponent
|
||||
|
|
@ -227,14 +236,24 @@ public class OrderPlanningController implements Composer {
|
|||
.getSelectedElements();
|
||||
Date startDate = filterStartDateOrderElement.getValue();
|
||||
Date finishDate = filterFinishDateOrderElement.getValue();
|
||||
boolean ignoreLabelsInheritance = labelsWithoutInheritance.isChecked();
|
||||
String name = filterNameOrderElement.getValue();
|
||||
|
||||
if (listFilters.isEmpty() && startDate == null && finishDate == null
|
||||
&& name == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return new OrderElementPredicate(listFilters, startDate, finishDate,
|
||||
name);
|
||||
name, ignoreLabelsInheritance);
|
||||
}
|
||||
|
||||
public Checkbox getLabelsWithoutInheritance() {
|
||||
return labelsWithoutInheritance;
|
||||
}
|
||||
|
||||
public void setLabelsWithoutInheritance(Checkbox labelsWithoutInheritance) {
|
||||
this.labelsWithoutInheritance = labelsWithoutInheritance;
|
||||
}
|
||||
|
||||
private void filterByPredicate(final OrderElementPredicate predicate) {
|
||||
|
|
@ -348,4 +367,7 @@ public class OrderPlanningController implements Composer {
|
|||
return advanceAssignmentPlanningController;
|
||||
}
|
||||
|
||||
public void toggleOptions() {
|
||||
filterOptionsPopup.open(300, 150);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,16 +24,30 @@
|
|||
tooltiptext="${i18n:_('Select required criteria set and press filter button')}"/>
|
||||
<bandboxMultipleSearch id="bdFiltersOrderElement" widthBandbox="300px" widthListbox="400px"
|
||||
finder="orderElementsMultipleFiltersFinder"/>
|
||||
<label value="${i18n:_('from')}"/>
|
||||
<datebox id="filterStartDateOrderElement" constraint = "@{treeController.checkConstraintStartDate}"
|
||||
width="65px" />
|
||||
<label value="${i18n:_('to')}"/>
|
||||
<datebox id="filterFinishDateOrderElement" constraint = "@{treeController.checkConstraintFinishDate}"
|
||||
width="65px" />
|
||||
<label value="${i18n:_('name')}"/>
|
||||
<textbox id="filterNameOrderElement" width="50px"
|
||||
onOK="treeController.onApplyFilter()" />
|
||||
<button label="options" style="margin-top: -4px"
|
||||
tooltiptext="${i18n:_('Set Filter Options')}"
|
||||
onClick="treeController.toggleOptions()"/>
|
||||
<button image="/common/img/ico_filter.png" style="margin-top: -4px"
|
||||
tooltiptext="${i18n:_('Apply filtering to tasks satisfying required criteria')}"
|
||||
onClick="treeController.onApplyFilter()"/>
|
||||
<popup id="filterOptionsPopup" width="220px" height="120px">
|
||||
<groupbox mold="3d" closable="true" width="200px" height="100px">
|
||||
<vbox>
|
||||
<hbox>
|
||||
<label value="${i18n:_('from')}"/>
|
||||
<datebox id="filterStartDateOrderElement" constraint = "@{treeController.checkConstraintStartDate}"
|
||||
width="65px" />
|
||||
<label value="${i18n:_('to')}"/>
|
||||
<datebox id="filterFinishDateOrderElement" constraint = "@{treeController.checkConstraintFinishDate}"
|
||||
width="65px" />
|
||||
</hbox>
|
||||
<hbox>
|
||||
<checkbox id="labelsWithoutInheritance" checked="false" label="${i18n:_('Labels without inheritance')}"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</groupbox>
|
||||
</popup>
|
||||
</hbox>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue