Skip to content

Commit

Permalink
Merge remote-tracking branch 'refs/remotes/origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Jan 22, 2020
2 parents eab859d + cc8fd64 commit c709eb9
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 15 deletions.
Expand Up @@ -11,12 +11,14 @@
import com.evolveum.midpoint.gui.api.registry.GuiComponentRegistry;
import com.evolveum.midpoint.prism.polystring.PolyString;
import com.evolveum.midpoint.gui.impl.prism.component.PolyStringEditorPanel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LookupTableType;
import com.evolveum.prism.xml.ns._public.types_3.PolyStringType;
import org.apache.wicket.markup.html.panel.Panel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.util.Iterator;

/**
* Created by honchar
Expand All @@ -40,7 +42,24 @@ public <IW extends ItemWrapper> boolean match(IW wrapper) {

@Override
protected Panel getPanel(PrismPropertyPanelContext<PolyString> panelCtx) {
PolyStringEditorPanel panel = new PolyStringEditorPanel(panelCtx.getComponentId(), panelCtx.getRealValueModel());
PolyStringEditorPanel panel = new PolyStringEditorPanel(panelCtx.getComponentId(), panelCtx.getRealValueModel()){
private static final long serialVersionUID = 1L;

@Override
protected LookupTableType getPredefinedValues(){
return panelCtx.getPredefinedValues();
}

@Override
protected boolean hasValueEnumerationRef(){
return panelCtx.hasValueEnumerationRef();
}

@Override
protected Iterator<String> getPredefinedValuesIterator(String input) {
return (Iterator<String>) prepareAutoCompleteList(input, panelCtx.getPredefinedValues(), panelCtx.getPageBase().getLocalizationService()).iterator();
}
};

return panel;
}
Expand Down
Expand Up @@ -6,19 +6,21 @@
*/
package com.evolveum.midpoint.gui.impl.prism.component;

import com.evolveum.midpoint.gui.api.Validatable;
import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.component.autocomplete.AutoCompleteTextPanel;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.polystring.PolyString;
import com.evolveum.midpoint.web.component.AjaxButton;
import com.evolveum.midpoint.web.component.input.DropDownChoicePanel;
import com.evolveum.midpoint.web.component.input.TextPanel;
import com.evolveum.midpoint.web.component.prism.InputPanel;
import com.evolveum.midpoint.web.component.util.EnableBehaviour;
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.web.security.MidPointApplication;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LookupTableType;
import com.evolveum.prism.xml.ns._public.types_3.PolyStringTranslationType;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
Expand All @@ -40,7 +42,7 @@
/**
* Created by honchar
*/
public class PolyStringEditorPanel extends BasePanel<PolyString> implements Validatable {
public class PolyStringEditorPanel extends InputPanel {
private static final long serialVersionUID = 1L;

private static final String ID_LOCALIZED_VALUE_CONTAINER = "localizedValueContainer";
Expand All @@ -66,9 +68,11 @@ public class PolyStringEditorPanel extends BasePanel<PolyString> implements Vali

private boolean showFullData = false;
private final StringBuilder currentlySelectedLang = new StringBuilder();
IModel<PolyString> model;

public PolyStringEditorPanel(String id, IModel<PolyString> model){
super(id, model);
super(id);
this.model = model;
}

@Override
Expand All @@ -88,7 +92,7 @@ private void initLayout(){
localizedValueContainer.add(new VisibleBehaviour(() -> showFullData || StringUtils.isNotEmpty(localizedValue)));
add(localizedValueContainer);

Label localizedValueLabel = new Label(ID_LOCALIZED_VALUE_LABEL, createStringResource("PolyStringEditorPanel.localizedValue"));
Label localizedValueLabel = new Label(ID_LOCALIZED_VALUE_LABEL, ((PageBase)getPage()).createStringResource("PolyStringEditorPanel.localizedValue"));
localizedValueLabel.setOutputMarkupId(true);
localizedValueLabel.add(new VisibleBehaviour(() -> showFullData));
localizedValueContainer.add(localizedValueLabel);
Expand Down Expand Up @@ -123,7 +127,7 @@ public void onClick(AjaxRequestTarget target) {
originValueContainer.add(new VisibleBehaviour(() -> showFullData || StringUtils.isEmpty(localizedValue)));
add(originValueContainer);

Label origValueLabel = new Label(ID_ORIG_VALUE_LABEL, createStringResource("PolyStringEditorPanel.origValue"));
Label origValueLabel = new Label(ID_ORIG_VALUE_LABEL, ((PageBase) getPage()).createStringResource("PolyStringEditorPanel.origValue"));
origValueLabel.setOutputMarkupId(true);
origValueLabel.add(new VisibleBehaviour(() -> showFullData));
originValueContainer.add(origValueLabel);
Expand All @@ -133,8 +137,8 @@ public void onClick(AjaxRequestTarget target) {
origValueWithButton.setOutputMarkupId(true);
originValueContainer.add(origValueWithButton);

//todo better to create PolyStringWrapper ? how to create new value?
TextPanel<String> origValuePanel = new TextPanel<String>(ID_ORIG_VALUE, new IModel<String>() {
InputPanel origValuePanel;
IModel<String> origValueModel = new IModel<String>() {
private static final long serialVersionUID = 1L;

@Override
Expand All @@ -158,7 +162,22 @@ public void setObject(String object) {
public void detach() {

}
}, String.class, false);
};
LookupTableType predefinedValues = getPredefinedValues();
if (predefinedValues == null) {
origValuePanel = new TextPanel<String>(ID_ORIG_VALUE, origValueModel, String.class, false);
} else {
origValuePanel = new AutoCompleteTextPanel<String>(ID_ORIG_VALUE, origValueModel, String.class,
hasValueEnumerationRef(), predefinedValues) {

private static final long serialVersionUID = 1L;

@Override
public Iterator<String> getIterator(String input) {
return getPredefinedValuesIterator(input);
}
};
}
origValuePanel.setOutputMarkupId(true);
origValuePanel.getBaseFormComponent().add(new EmptyOnBlurAjaxFormUpdatingBehaviour());
origValueWithButton.add(origValuePanel);
Expand Down Expand Up @@ -328,7 +347,7 @@ public void onClick(AjaxRequestTarget target) {
}

private String getLocalizedPolyStringValue(){
return getPageBase().getLocalizationService().translate(getModelObject(), WebComponentUtil.getCurrentLocale(), false);
return ((PageBase) getPage()).getLocalizationService().translate(getModelObject(), WebComponentUtil.getCurrentLocale(), false);
}

private IModel<List<String>> getLanguageChoicesModel(){
Expand Down Expand Up @@ -405,8 +424,8 @@ protected String load() {
});
}

private TextPanel<PolyString> getOrigValuePanel(){
return (TextPanel<PolyString>) get(getPageBase().createComponentPath(ID_ORIGIN_VALUE_CONTAINER, ID_ORIG_VALUE_WITH_BUTTON, ID_ORIG_VALUE));
private InputPanel getOrigValuePanel(){
return (InputPanel) get(ID_ORIGIN_VALUE_CONTAINER).get(ID_ORIG_VALUE_WITH_BUTTON).get(ID_ORIG_VALUE);
}

//todo refactor with PolyStringWrapper
Expand Down Expand Up @@ -465,4 +484,28 @@ public FormComponent getValidatableComponent() {
return getOrigValuePanel().getBaseFormComponent();
}

@Override
public FormComponent<PolyString> getBaseFormComponent() {
return getOrigValuePanel().getBaseFormComponent();
}

private IModel<PolyString> getModel(){
return model;
}

private PolyString getModelObject(){
return model == null ? null : model.getObject();
}

protected LookupTableType getPredefinedValues(){
return null;
}

protected boolean hasValueEnumerationRef(){
return false;
}

protected Iterator<String> getPredefinedValuesIterator(String input) {
return null;
}
}
Expand Up @@ -41,4 +41,4 @@
</script>
</condition>
</mapping>
</objectTemplate>
</objectTemplate>
Expand Up @@ -23,4 +23,4 @@
<checkPattern/>
</limitations>
</stringPolicy>
</valuePolicy>
</valuePolicy>

0 comments on commit c709eb9

Please sign in to comment.