Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Jun 3, 2016
2 parents e18f74e + 8a8ca46 commit 3509797
Show file tree
Hide file tree
Showing 21 changed files with 479 additions and 359 deletions.
Expand Up @@ -19,6 +19,7 @@
import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;

import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnBlurAjaxFormUpdatingBehaviour;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
Expand All @@ -33,6 +34,7 @@
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.StringResourceModel;
import org.jetbrains.annotations.Nullable;

import java.io.Serializable;
import java.util.Iterator;
Expand All @@ -54,9 +56,12 @@ public class MultiValueTextEditPanel<T extends Serializable> extends BasePanel<L

private static final String CSS_DISABLED = " disabled";

public MultiValueTextEditPanel(String id, IModel<List<T>> model, boolean inputEnabled, boolean showPlaceholder){
@Nullable private final IModel<T> selectedModel; // holding the selected item

public MultiValueTextEditPanel(String id, IModel<List<T>> model, IModel<T> selectedModel, boolean inputEnabled, boolean showPlaceholder) {
super(id, model);
setOutputMarkupId(true);
this.selectedModel = selectedModel;

initLayout(inputEnabled, showPlaceholder);
}
Expand Down Expand Up @@ -96,22 +101,21 @@ public String getObject() {
placeholderAdd.setOutputMarkupPlaceholderTag(true);
placeholderContainer.add(placeholderAdd);

ListView repeater = new ListView<T>(ID_REPEATER, getModel()){
ListView repeater = new ListView<T>(ID_REPEATER, getModel()) {

@Override
protected void populateItem(final ListItem<T> item) {
TextField text = new TextField<>(ID_TEXT, createTextModel(item.getModel()));
text.add(new AjaxFormComponentUpdatingBehavior("blur") {

@Override
protected void onUpdate(AjaxRequestTarget target) {}
});
text.add(new EmptyOnBlurAjaxFormUpdatingBehaviour());
text.add(AttributeAppender.replace("placeholder", createEmptyItemPlaceholder()));
if (selectedModel != null && item.getModelObject() == selectedModel.getObject()) {
text.add(AttributeAppender.append("style", "background-color: #FFFFD0;")); // TODO color constant
}

if(!inputEnabled){
text.add(new AttributeModifier("disabled","disabled"));
}
item.add(text);
if (!inputEnabled) {
text.add(new AttributeModifier("disabled", "disabled"));
}
item.add(text);

WebMarkupContainer buttonGroup = new WebMarkupContainer(ID_BUTTON_GROUP);
item.add(buttonGroup);
Expand All @@ -137,7 +141,12 @@ private void initButtons(WebMarkupContainer buttonGroup, final ListItem<T> item)
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
editPerformed(target, item.getModelObject());
}
};

@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
target.add(getPageBase().getFeedbackPanel());
}
};
edit.add(new AttributeAppender("class", new AbstractReadOnlyModel<String>() {

@Override
Expand Down Expand Up @@ -206,9 +215,10 @@ protected StringResourceModel createEmptyItemPlaceholder(){

protected void addValuePerformed(AjaxRequestTarget target){
List<T> objects = getModelObject();
objects.add(createNewEmptyItem());
T added = createNewEmptyItem();
objects.add(added);

performAddValueHook(target);
performAddValueHook(target, added);
target.add(this);
}

Expand Down Expand Up @@ -261,7 +271,7 @@ protected boolean buttonsDisabled(){
/**
* Override to provide custom hook when adding new value
* */
protected void performAddValueHook(AjaxRequestTarget target){}
protected void performAddValueHook(AjaxRequestTarget target, T added){}

/**
* Override to provide custom hook when removing value from list
Expand Down
Expand Up @@ -21,9 +21,11 @@
import com.evolveum.midpoint.prism.path.NameItemPathSegment;
import com.evolveum.midpoint.schema.constants.MidPointConstants;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior;
import com.evolveum.midpoint.web.util.InfoTooltipBehavior;
import com.evolveum.prism.xml.ns._public.types_3.ItemPathType;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.DropDownChoice;
Expand Down Expand Up @@ -153,13 +155,15 @@ private void initLayout(String localPartLabelKey, String localPartTooltipKey,
localPart.setOutputMarkupId(true);
localPart.setOutputMarkupPlaceholderTag(true);
localPart.setRequired(isLocalPartRequired());
localPart.add(new UpdateBehavior());
add(localPart);

DropDownChoice namespace = new DropDownChoice<>(ID_NAMESPACE, namespaceModel, prepareNamespaceList());
namespace.setOutputMarkupId(true);
namespace.setOutputMarkupPlaceholderTag(true);
namespace.setNullValid(false);
namespace.setRequired(true);
namespace.add(new UpdateBehavior());
add(namespace);

Label localPartTooltip = new Label(ID_T_LOCAL_PART);
Expand Down Expand Up @@ -189,4 +193,14 @@ protected List<String> prepareNamespaceList(){
public boolean isLocalPartRequired(){
return false;
}

private class UpdateBehavior extends EmptyOnChangeAjaxFormUpdatingBehavior {
@Override
protected void onUpdate(AjaxRequestTarget target) {
QNameEditorPanel.this.onUpdate(target);
}
}

protected void onUpdate(AjaxRequestTarget target) {
}
}

0 comments on commit 3509797

Please sign in to comment.