Skip to content

Commit

Permalink
removing automatic refresh table after set value to search item field…
Browse files Browse the repository at this point in the history
… (MID-7407)
  • Loading branch information
skublik committed Nov 21, 2021
1 parent efa48fd commit 16b4035
Show file tree
Hide file tree
Showing 13 changed files with 71 additions and 350 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ public class DateIntervalSearchPanel extends PopoverSearchPanel {

private static final long serialVersionUID = 1L;

private IModel<XMLGregorianCalendar> fromDateModel;
private IModel<XMLGregorianCalendar> toDateModel;
private final IModel<XMLGregorianCalendar> fromDateModel;
private final IModel<XMLGregorianCalendar> toDateModel;

public DateIntervalSearchPanel(String id, IModel<XMLGregorianCalendar> fromDateModel, IModel<XMLGregorianCalendar> toDateModel) {
super(id);
Expand All @@ -39,7 +39,6 @@ protected PopoverSearchPopupPanel createPopupPopoverPanel(String id) {
@Override
protected void confirmPerformed(AjaxRequestTarget target) {
target.add(DateIntervalSearchPanel.this);
searchPerformed(target);
}

@Override
Expand All @@ -49,27 +48,20 @@ protected boolean isInterval() {
};
}

public void searchPerformed(AjaxRequestTarget target) {
}

@Override
public IModel<String> getTextValue() {
return new IModel<String>(){

@Override
public String getObject() {
StringBuilder sb = new StringBuilder();
if (fromDateModel != null && fromDateModel.getObject() != null) {
sb.append(WebComponentUtil.getLocalizedDate(fromDateModel.getObject(), DateLabelComponent.SHORT_SHORT_STYLE));
}
if (sb.length() > 0 && toDateModel != null && toDateModel.getObject() != null) {
sb.append("-");
}
if (toDateModel != null && toDateModel.getObject() != null) {
sb.append(WebComponentUtil.getLocalizedDate(toDateModel.getObject(), DateLabelComponent.SHORT_SHORT_STYLE));
}
return sb.toString();
return () -> {
StringBuilder sb = new StringBuilder();
if (fromDateModel != null && fromDateModel.getObject() != null) {
sb.append(WebComponentUtil.getLocalizedDate(fromDateModel.getObject(), DateLabelComponent.SHORT_SHORT_STYLE));
}
if (sb.length() > 0 && toDateModel != null && toDateModel.getObject() != null) {
sb.append("-");
}
if (toDateModel != null && toDateModel.getObject() != null) {
sb.append(WebComponentUtil.getLocalizedDate(toDateModel.getObject(), DateLabelComponent.SHORT_SHORT_STYLE));
}
return sb.toString();
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@
*/
package com.evolveum.midpoint.web.component.search;

import com.evolveum.midpoint.gui.api.component.path.ItemPathDto;
import com.evolveum.midpoint.schema.constants.ObjectTypes;

import com.evolveum.prism.xml.ns._public.types_3.ItemPathType;

import org.apache.wicket.ajax.AjaxRequestTarget;
Expand All @@ -34,25 +31,17 @@ protected PopoverSearchPopupPanel createPopupPopoverPanel(String id) {
@Override
protected void confirmPerformed(AjaxRequestTarget target) {
target.add(ItemPathSearchPanel.this);
searchPerformed(target);
}
};
}

public void searchPerformed(AjaxRequestTarget target) {
}

@Override
public IModel<String> getTextValue() {
return new IModel<String>() {

@Override
public String getObject() {
if (getModelObject() == null) {
return "";
}
return getModelObject().toString();
return () -> {
if (getModelObject() == null) {
return "";
}
return getModelObject().toString();
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,41 +37,39 @@ public ReferenceValueSearchPanel(String id, IModel<ObjectReferenceType> model, P

@Override
protected PopoverSearchPopupPanel createPopupPopoverPanel(String id) {
ReferenceValueSearchPopupPanel<?> value =
new ReferenceValueSearchPopupPanel(id, getModel()) {

private static final long serialVersionUID = 1L;

@Override
protected List<QName> getAllowedRelations() {
return ReferenceValueSearchPanel.this.getAllowedRelations();
}

@Override
protected List<QName> getSupportedTargetList() {
if (referenceDef != null) {
return WebComponentUtil.createSupportedTargetTypeList(referenceDef.getTargetTypeName());
}
return Collections.singletonList(ObjectType.COMPLEX_TYPE);
}

@Override
protected void confirmPerformed(AjaxRequestTarget target) {
target.add(ReferenceValueSearchPanel.this);
referenceValueUpdated(ReferenceValueSearchPanel.this.getModelObject(), target);
}

@Override
protected Boolean isItemPanelEnabled() {
return ReferenceValueSearchPanel.this.isItemPanelEnabled();
}

@Override
protected boolean isAllowedNotFoundObjectRef() {
return ReferenceValueSearchPanel.this.isAllowedNotFoundObjectRef();
}
};
return value;
return new ReferenceValueSearchPopupPanel(id, ReferenceValueSearchPanel.this.getModel()) {

private static final long serialVersionUID1 = 1L;

@Override
protected List<QName> getAllowedRelations() {
return ReferenceValueSearchPanel.this.getAllowedRelations();
}

@Override
protected List<QName> getSupportedTargetList() {
if (referenceDef != null) {
return WebComponentUtil.createSupportedTargetTypeList(referenceDef.getTargetTypeName());
}
return Collections.singletonList(ObjectType.COMPLEX_TYPE);
}

@Override
protected void confirmPerformed(AjaxRequestTarget target) {
target.add(ReferenceValueSearchPanel.this);
referenceValueUpdated(ReferenceValueSearchPanel.this.getModelObject(), target);
}

@Override
protected Boolean isItemPanelEnabled() {
return ReferenceValueSearchPanel.this.isItemPanelEnabled();
}

@Override
protected boolean isAllowedNotFoundObjectRef() {
return ReferenceValueSearchPanel.this.isAllowedNotFoundObjectRef();
}
};
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,15 @@

import com.evolveum.midpoint.gui.api.component.autocomplete.AutoCompleteTextPanel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.MutableItemDefinition;
import com.evolveum.midpoint.prism.MutablePrismReferenceDefinition;
import com.evolveum.midpoint.prism.Referencable;
import com.evolveum.midpoint.report.api.ReportConstants;
import com.evolveum.midpoint.util.DisplayableValue;
import com.evolveum.midpoint.web.component.input.CheckPanel;
import com.evolveum.midpoint.web.component.input.TextPanel;
import com.evolveum.midpoint.web.component.prism.InputPanel;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnBlurAjaxFormUpdatingBehaviour;

import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LookupTableType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ParameterType;

import com.evolveum.midpoint.xml.ns._public.common.common_3.SearchFilterParameterType;
Expand Down Expand Up @@ -66,7 +61,7 @@ protected void onUpdate(AjaxRequestTarget ajaxRequestTarget) {
}
});
checkPanel.getBaseFormComponent().add(new EmptyOnBlurAjaxFormUpdatingBehaviour());
checkPanel.add(new VisibleBehaviour(() -> canRemoveSearchItem()));
checkPanel.add(new VisibleBehaviour(this::canRemoveSearchItem));

checkPanel.setOutputMarkupId(true);
searchItemContainer.add(checkPanel);
Expand All @@ -93,13 +88,7 @@ protected void onUpdate(AjaxRequestTarget ajaxRequestTarget) {
def.setTargetTypeName(parameter.getTargetType());
}
inputPanel = new ReferenceValueSearchPanel(ID_SEARCH_ITEM_FIELD,
new PropertyModel<>(getModel(), FilterSearchItem.F_INPUT_VALUE),
def){
@Override
protected void referenceValueUpdated(ObjectReferenceType ort, AjaxRequestTarget target) {
searchPerformed(target);
}
};
new PropertyModel<>(getModel(), FilterSearchItem.F_INPUT_VALUE), def);
break;
case BOOLEAN:
choices = (IModel) createBooleanChoices();
Expand All @@ -112,31 +101,15 @@ protected void referenceValueUpdated(ObjectReferenceType ort, AjaxRequestTarget
if (choices != null) {
inputPanel = WebComponentUtil.createDropDownChoices(
ID_SEARCH_ITEM_FIELD, new PropertyModel(getModel(), FilterSearchItem.F_INPUT), (IModel)choices, true, getPageBase());
((InputPanel) inputPanel).getBaseFormComponent().add(new EmptyOnChangeAjaxFormUpdatingBehavior() {
@Override
protected void onUpdate(AjaxRequestTarget target) {
searchPerformed(target);
}
});
break;
}
case DATE:
inputPanel = new DateSearchPanel(ID_SEARCH_ITEM_FIELD,
new PropertyModel(getModel(), FilterSearchItem.F_INPUT_VALUE)){
@Override
public void searchPerformed(AjaxRequestTarget target) {
SearchFilterPanel.this.searchPerformed(target);
}
};
new PropertyModel(getModel(), FilterSearchItem.F_INPUT_VALUE));
break;
case ITEM_PATH:
inputPanel = new ItemPathSearchPanel(ID_SEARCH_ITEM_FIELD,
new PropertyModel(getModel(), FilterSearchItem.F_INPUT_VALUE)){
@Override
public void searchPerformed(AjaxRequestTarget target) {
SearchFilterPanel.this.searchPerformed(target);
}
};
new PropertyModel(getModel(), FilterSearchItem.F_INPUT_VALUE));
break;
case TEXT:
LookupTableType lookupTable = getModelObject().getLookupTable(getPageBase());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.CheckBox;
Expand Down Expand Up @@ -629,7 +628,7 @@ private <T extends Serializable> ListView<SearchItem> createSpecialItemsPanel(St
protected void populateItem(ListItem<SearchItem> item) {
WebMarkupContainer searchItem;
if (item.getModelObject() instanceof SpecialSearchItem) {
searchItem = ((SpecialSearchItem) item.getModelObject()).createSpecialSearchPanel(ID_SPECIAL_ITEM, (Consumer<AjaxRequestTarget> & Serializable) target -> searchPerformed(target));
searchItem = ((SpecialSearchItem) item.getModelObject()).createSpecialSearchPanel(ID_SPECIAL_ITEM);
} else {
IModel itemModel = item.getModel();
searchItem = new SearchPropertyPanel<T>(ID_SPECIAL_ITEM, (IModel<PropertySearchItem<T>>) itemModel) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,10 @@
import java.util.Collections;
import java.util.List;

import com.evolveum.midpoint.web.component.util.EnableBehaviour;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior;
import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventRecordType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;

import com.evolveum.midpoint.xml.ns._public.common.common_3.SearchBoxScopeType;

import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.FormComponent;
Expand Down Expand Up @@ -73,11 +67,6 @@ protected void initSearchItemField(WebMarkupContainer searchItemContainer) {
searchItemField = new ReferenceValueSearchPanel(ID_SEARCH_ITEM_FIELD,
new PropertyModel<>(getModel(), "value.value"),
(PrismReferenceDefinition) item.getDefinition().getDef()){
@Override
protected void referenceValueUpdated(ObjectReferenceType ort, AjaxRequestTarget target) {
searchPerformed(target);
}

@Override
public Boolean isItemPanelEnabled() {
return item.isEnabled();
Expand Down Expand Up @@ -105,31 +94,15 @@ protected List<QName> getAllowedRelations() {
}
searchItemField = WebComponentUtil.createDropDownChoices(
ID_SEARCH_ITEM_FIELD, new PropertyModel(getModel(), "value"), (IModel)choices, true, getPageBase());
((InputPanel) searchItemField).getBaseFormComponent().add(new EmptyOnChangeAjaxFormUpdatingBehavior() {
@Override
protected void onUpdate(AjaxRequestTarget target) {
searchPerformed(target);
}
});
break;
case DATE:
searchItemField = new DateIntervalSearchPanel(ID_SEARCH_ITEM_FIELD,
new PropertyModel(getModel(), "fromDate"),
new PropertyModel(getModel(), "toDate")){
@Override
public void searchPerformed(AjaxRequestTarget target) {
SearchPropertyPanel.this.searchPerformed(target);
}
};
new PropertyModel(getModel(), "toDate"));
break;
case ITEM_PATH:
searchItemField = new ItemPathSearchPanel(ID_SEARCH_ITEM_FIELD,
new PropertyModel(getModel(), "value.value")){
@Override
public void searchPerformed(AjaxRequestTarget target) {
SearchPropertyPanel.this.searchPerformed(target);
}
};
new PropertyModel(getModel(), "value.value"));
break;
case TEXT:
PrismObject<LookupTableType> lookupTable = WebComponentUtil.findLookupTable(item.getDefinition().getDef(), getPageBase());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@
package com.evolveum.midpoint.web.component.search;

import java.io.Serializable;
import java.util.function.Consumer;

import org.apache.wicket.ajax.AjaxRequestTarget;

import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.prism.query.ObjectFilter;
Expand Down Expand Up @@ -38,6 +35,6 @@ public String getName() {

public abstract ObjectFilter createFilter(PageBase pageBase, VariablesMap variables);

public abstract SearchSpecialItemPanel createSpecialSearchPanel(String id, Consumer<AjaxRequestTarget> searchPerformedConsumer);
public abstract SearchSpecialItemPanel createSpecialSearchPanel(String id);

}

0 comments on commit 16b4035

Please sign in to comment.