Skip to content

Commit

Permalink
clear filter for schema step (object classes list)
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Feb 19, 2014
1 parent 0b178b4 commit 4597e3f
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 8 deletions.
@@ -1,5 +1,6 @@
package com.evolveum.midpoint.web.component;

import org.apache.commons.lang.StringUtils;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.MarkupStream;
Expand All @@ -21,7 +22,13 @@ public AjaxButton(String id, IModel<String> model) {

@Override
public void onComponentTagBody(final MarkupStream markupStream, final ComponentTag openTag) {
replaceComponentTagBody(markupStream, openTag, getDefaultModelObjectAsString());
String text = getModelObject();
if (StringUtils.isNotEmpty(text)) {
replaceComponentTagBody(markupStream, openTag, text);
return;
}

super.onComponentTagBody(markupStream, openTag);
}

@Override
Expand Down
Expand Up @@ -112,7 +112,7 @@ private void initLayout() {
TextAreaFormGroup description = new TextAreaFormGroup(ID_DESCRIPTION,
new PrismPropertyModel(resourceModel, UserType.F_DESCRIPTION),
createStringResource("NameStep.description"), "col-md-3", "col-md-3");
description.setRows(2);
description.setRows(3);
add(description);

DropDownFormGroup<PrismObject<ConnectorHostType>> location = createLocationDropDown();
Expand Down
Expand Up @@ -24,8 +24,17 @@ <h3><wicket:message key="SchemaListPanel.objectClass"/></h3>
<thead>
<tr>
<th>
<input type="text" class="form-control input-sm" wicket:id="objectClass"
wicket:message="placeholder:SchemaListPanel.objectClass"/>
<div class="input-group">
<input type="text" class="form-control input-sm" wicket:id="objectClass"
wicket:message="placeholder:SchemaListPanel.objectClass"/>

<span class="input-group-btn">
<a class="btn btn-danger btn-sm" wicket:id="clearSearch"
wicket:message="title:PageBase.button.tooltip.clearSearch">
<i class="fa fa-trash-o"/>
</a>
</span>
</div>
</th>
</tr>
</thead>
Expand Down
Expand Up @@ -23,6 +23,7 @@
import com.evolveum.midpoint.util.logging.LoggingUtils;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.AjaxButton;
import com.evolveum.midpoint.web.component.util.LoadableModel;
import com.evolveum.midpoint.web.component.util.SimplePanel;
import com.evolveum.midpoint.web.component.wizard.resource.dto.ObjectClassDataProvider;
Expand Down Expand Up @@ -62,6 +63,7 @@ public class SchemaListPanel extends SimplePanel<PrismObject<ResourceType>> {
private static final String ID_PAGEABLE = "pageable";
private static final String ID_CLASS_LINK = "classLink";
private static final String ID_LABEL = "label";
private static final String ID_CLEAR_SEARCH = "clearSearch";

public SchemaListPanel(String id, IModel<PrismObject<ResourceType>> model) {
super(id, model);
Expand All @@ -78,18 +80,26 @@ protected List<ObjectClassDto> load() {
};
final ObjectClassDataProvider dataProvider = new ObjectClassDataProvider(allClasses);

final IModel<String> textModel = new Model<>();
TextField objectClass = new TextField(ID_OBJECT_CLASS, textModel);
TextField objectClass = new TextField(ID_OBJECT_CLASS, new Model<>());
objectClass.setOutputMarkupId(true);
objectClass.add(new AjaxFormComponentUpdatingBehavior("keyUp") {

@Override
protected void onUpdate(AjaxRequestTarget target) {
dataProvider.filterClasses(textModel.getObject());
target.add(get(ID_TABLE_BODY));
updateSearchPerformed(target, dataProvider);
}
});
add(objectClass);

AjaxButton clearSearch = new AjaxButton(ID_CLEAR_SEARCH) {

@Override
public void onClick(AjaxRequestTarget target) {
clearSearchPerformed(target, dataProvider);
}
};
add(clearSearch);

WebMarkupContainer tableBody = new WebMarkupContainer(ID_TABLE_BODY);
tableBody.setOutputMarkupId(true);
add(tableBody);
Expand Down Expand Up @@ -125,6 +135,22 @@ public Object getObject() {
tableBody.add(pageable);
}

private TextField<String> getObjectClassText() {
return (TextField) get(ID_OBJECT_CLASS);
}

private void updateSearchPerformed(AjaxRequestTarget target, ObjectClassDataProvider dataProvider) {
dataProvider.filterClasses(getObjectClassText().getModelObject());
target.add(get(ID_TABLE_BODY));
}

private void clearSearchPerformed(AjaxRequestTarget target, ObjectClassDataProvider dataProvider) {
getObjectClassText().setModelObject(null);
target.add(getObjectClassText());

updateSearchPerformed(target, dataProvider);
}

private void objectClassClickPerformed(AjaxRequestTarget target, ObjectClassDto dto, List<ObjectClassDto> all) {
for (ObjectClassDto o : all) {
o.setSelected(false);
Expand Down

0 comments on commit 4597e3f

Please sign in to comment.