Search in sources :

Example 1 with SearchFilterTypeForXmlModel

use of com.evolveum.midpoint.gui.impl.factory.panel.SearchFilterTypeForXmlModel in project midpoint by Evolveum.

the class SearchFilterConfigurationPanel method initLayout.

private void initLayout() {
    WebMarkupContainer aceEditorContainer = new WebMarkupContainer(ID_ACE_EDITOR_XML_CONTAINER);
    aceEditorContainer.setOutputMarkupId(true);
    IModel<String> classGridModel = () -> {
        if (containerWrapper != null) {
            return "col-md-10";
        }
        return "col-md-12";
    };
    aceEditorContainer.add(AttributeAppender.append("class", classGridModel));
    aceEditorContainer.add(AttributeAppender.append("style", (IModel<?>) () -> {
        if (FiledType.XML.equals(fieldType)) {
            return "display: block;";
        }
        return "display: none;";
    }));
    add(aceEditorContainer);
    AceEditorPanel aceEditorField = new AceEditorPanel(ID_ACE_EDITOR_XML_FIELD, null, new SearchFilterTypeForXmlModel(getModel(), getPageBase()), 10);
    aceEditorField.setOutputMarkupId(true);
    aceEditorContainer.add(aceEditorField);
    WebMarkupContainer textFieldContainer = new WebMarkupContainer(ID_TEXT_DNS_CONTAINER);
    textFieldContainer.setOutputMarkupId(true);
    textFieldContainer.add(new VisibleBehaviour(() -> FiledType.QUERY.equals(fieldType)));
    textFieldContainer.add(AttributeAppender.append("class", classGridModel));
    textFieldContainer.add(AttributeAppender.append("style", (IModel<?>) () -> {
        if (FiledType.QUERY.equals(fieldType)) {
            return "display: block;";
        }
        return "display: none;";
    }));
    add(textFieldContainer);
    TextPanel textPanel = new TextPanel(ID_TEXT_DNS_FIELD, new SearchFilterTypeForQueryModel<O>(getModel(), getPageBase(), filterTypeModel, containerWrapper != null));
    textPanel.setOutputMarkupId(true);
    textFieldContainer.add(textPanel);
    AjaxButton searchConfigurationButton = new AjaxButton(ID_CONFIGURE_BUTTON) {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            searchConfigurationPerformed(target);
        }
    };
    searchConfigurationButton.setOutputMarkupId(true);
    searchConfigurationButton.add(new VisibleBehaviour(() -> containerWrapper != null));
    add(searchConfigurationButton);
    IModel<String> labelModel = (IModel) () -> {
        if (FiledType.XML.equals(fieldType)) {
            return getPageBase().createStringResource(SearchBoxModeType.AXIOM_QUERY).getString();
        }
        return getPageBase().createStringResource("SearchFilterConfigurationPanel.fieldType.xml").getString();
    };
    Label buttonLabel = new Label(ID_FILED_TYPE_BUTTON_LABEL, labelModel);
    buttonLabel.setOutputMarkupId(true);
    AjaxLink filedTypeButton = new AjaxLink<String>(ID_FILED_TYPE_BUTTON) {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            if (FiledType.QUERY.equals(fieldType)) {
                fieldType = FiledType.XML;
            } else {
                fieldType = FiledType.QUERY;
            }
            target.add(getAceEditorContainer());
            target.add(getTextFieldContainer());
            target.add(getPageBase().getFeedbackPanel());
            target.add(buttonLabel);
        }
    };
    filedTypeButton.setOutputMarkupId(true);
    add(filedTypeButton);
    filedTypeButton.add(buttonLabel);
}
Also used : IModel(org.apache.wicket.model.IModel) VisibleBehaviour(com.evolveum.midpoint.web.component.util.VisibleBehaviour) Label(org.apache.wicket.markup.html.basic.Label) TextPanel(com.evolveum.midpoint.web.component.input.TextPanel) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) SearchFilterTypeForXmlModel(com.evolveum.midpoint.gui.impl.factory.panel.SearchFilterTypeForXmlModel) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) AjaxButton(com.evolveum.midpoint.web.component.AjaxButton) AjaxLink(org.apache.wicket.ajax.markup.html.AjaxLink)

Aggregations

SearchFilterTypeForXmlModel (com.evolveum.midpoint.gui.impl.factory.panel.SearchFilterTypeForXmlModel)1 AjaxButton (com.evolveum.midpoint.web.component.AjaxButton)1 TextPanel (com.evolveum.midpoint.web.component.input.TextPanel)1 VisibleBehaviour (com.evolveum.midpoint.web.component.util.VisibleBehaviour)1 AjaxRequestTarget (org.apache.wicket.ajax.AjaxRequestTarget)1 AjaxLink (org.apache.wicket.ajax.markup.html.AjaxLink)1 WebMarkupContainer (org.apache.wicket.markup.html.WebMarkupContainer)1 Label (org.apache.wicket.markup.html.basic.Label)1 IModel (org.apache.wicket.model.IModel)1