Example usage for org.apache.wicket.markup.html.list ListView ListView

List of usage examples for org.apache.wicket.markup.html.list ListView ListView

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.list ListView ListView.

Prototype

public ListView(final String id, final List<T> list) 

Source Link

Usage

From source file:com.evolveum.midpoint.web.component.wf.WfDeltasPanel.java

License:Apache License

@Override
protected void initLayout() {

    add(new ListView<DeltaDto>(ID_DELTA_IN_LIST,
            new PropertyModel<List<DeltaDto>>(getModel(), TaskDto.F_WORKFLOW_DELTAS_IN)) {
        @Override/*from w  ww.j  a  va 2s . c  o m*/
        protected void populateItem(ListItem<DeltaDto> item) {
            item.add(new DeltaPanel(ID_DELTA_IN, item.getModel()));
        }
    });

    ListView<DeltaDto> deltaOutListView = new ListView<DeltaDto>(ID_DELTA_OUT_LIST,
            new PropertyModel<List<DeltaDto>>(getModel(), TaskDto.F_WORKFLOW_DELTAS_OUT)) {
        @Override
        protected void populateItem(ListItem<DeltaDto> item) {
            item.add(new DeltaPanel(ID_DELTA_OUT, item.getModel()));
        }
    };
    deltaOutListView.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return !getModel().getObject().getWorkflowDeltasOut().isEmpty();
        }
    });
    add(deltaOutListView);

    Label deltaOutListEmpty = new Label(ID_DELTA_OUT_LIST_EMPTY,
            new ResourceModel("WfDeltasPanel.label.deltaOutListEmpty"));
    deltaOutListEmpty.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return getModel().getObject().getWorkflowDeltasOut().isEmpty();
        }
    });
    add(deltaOutListEmpty);

}

From source file:com.evolveum.midpoint.web.component.wizard.resource.component.schemahandling.modal.LimitationsEditorDialog.java

License:Apache License

public void initLayout(WebMarkupContainer content) {
    Form form = new Form(ID_MAIN_FORM);
    form.setOutputMarkupId(true);// w  ww . j a  v a2s .  c  o m
    content.add(form);

    ListView repeater = new ListView<PropertyLimitationsTypeDto>(ID_REPEATER, model) {

        @Override
        protected void populateItem(final ListItem<PropertyLimitationsTypeDto> item) {
            WebMarkupContainer linkContainer = new WebMarkupContainer(ID_LIMITATIONS_LINK);
            linkContainer.setOutputMarkupId(true);
            linkContainer.add(new AttributeModifier("href", createCollapseItemId(item, true)));
            item.add(linkContainer);

            Label linkLabel = new Label(ID_LIMITATIONS_LABEL, createLimitationsLabelModel(item));
            linkContainer.add(linkLabel);

            AjaxLink delete = new AjaxLink(ID_LIMITATION_DELETE) {

                @Override
                public void onClick(AjaxRequestTarget target) {
                    deleteLimitationPerformed(target, item);
                }
            };
            linkContainer.add(delete);

            WebMarkupContainer limitationBody = new WebMarkupContainer(ID_BODY);
            limitationBody.setOutputMarkupId(true);
            limitationBody.setMarkupId(createCollapseItemId(item, false).getObject());
            if (changeState != ChangeState.SKIP) {
                limitationBody.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() {

                    @Override
                    public String getObject() {
                        if (changeState == ChangeState.FIRST && item.getIndex() == 0) {
                            return "panel-collapse collapse in";
                        } else if (changeState == ChangeState.LAST
                                && item.getIndex() == (getModelObject().size() - 1)) {
                            return "panel-collapse collapse in";
                        } else {
                            return "panel-collapse collapse";
                        }
                    }
                }));
            }
            item.add(limitationBody);
            initLimitationBody(limitationBody, item);

        }
    };
    repeater.setOutputMarkupId(true);
    form.add(repeater);

    initButtons(form);
}

From source file:com.evolveum.midpoint.web.component.wizard.resource.component.schemahandling.ResourceDependencyEditor.java

License:Apache License

@Override
protected void initLayout() {
    WebMarkupContainer container = new WebMarkupContainer(ID_CONTAINER);
    container.setOutputMarkupId(true);/*from  w ww. j a  v  a  2  s . c o m*/
    add(container);

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

        @Override
        protected void populateItem(final ListItem<ResourceObjectTypeDependencyType> item) {
            WebMarkupContainer linkContainer = new WebMarkupContainer(ID_DEPENDENCY_LINK);
            linkContainer.setOutputMarkupId(true);
            linkContainer.add(new AttributeModifier("href", createCollapseItemId(item, true)));
            item.add(linkContainer);

            Label linkLabel = new Label(ID_DEPENDENCY_LINK_NAME, createDependencyLabelModel(item));
            linkContainer.add(linkLabel);

            AjaxLink delete = new AjaxLink(ID_DELETE_BUTTON) {

                @Override
                public void onClick(AjaxRequestTarget target) {
                    deleteDependencyPerformed(target, item);
                }
            };
            linkContainer.add(delete);

            WebMarkupContainer dependencyBody = new WebMarkupContainer(ID_DEPENDENCY_BODY);
            dependencyBody.setOutputMarkupId(true);
            dependencyBody.setMarkupId(createCollapseItemId(item, false).getObject());

            if (changeState != ChangeState.SKIP) {
                dependencyBody.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() {

                    @Override
                    public String getObject() {
                        if (changeState == ChangeState.FIRST && item.getIndex() == 0) {
                            return "panel-collapse collapse in";
                        } else if (changeState == ChangeState.LAST
                                && item.getIndex() == (getModelObject().size() - 1)) {
                            return "panel-collapse collapse in";
                        } else {
                            return "panel-collapse collapse";
                        }
                    }
                }));
            }

            item.add(dependencyBody);

            TextField order = new TextField<>(ID_ORDER,
                    new PropertyModel<Integer>(item.getModelObject(), "order"));
            order.add(prepareAjaxOnComponentTagUpdateBehavior());
            dependencyBody.add(order);

            DropDownChoice strictness = new DropDownChoice<>(ID_STRICTNESS,
                    new PropertyModel<ResourceObjectTypeDependencyStrictnessType>(item.getModelObject(),
                            "strictness"),
                    WebMiscUtil.createReadonlyModelFromEnum(ResourceObjectTypeDependencyStrictnessType.class),
                    new EnumChoiceRenderer<ResourceObjectTypeDependencyStrictnessType>(this));
            strictness.add(prepareAjaxOnComponentTagUpdateBehavior());
            dependencyBody.add(strictness);

            DropDownChoice kind = new DropDownChoice<>(ID_KIND,
                    new PropertyModel<ShadowKindType>(item.getModelObject(), "kind"),
                    WebMiscUtil.createReadonlyModelFromEnum(ShadowKindType.class),
                    new EnumChoiceRenderer<ShadowKindType>(this));
            kind.add(prepareAjaxOnComponentTagUpdateBehavior());
            dependencyBody.add(kind);

            TextField intent = new TextField<>(ID_INTENT,
                    new PropertyModel<String>(item.getModelObject(), "intent"));
            intent.add(prepareAjaxOnComponentTagUpdateBehavior());
            dependencyBody.add(intent);

            DropDownChoice resource = new DropDownChoice<>(ID_REF,
                    new PropertyModel<ObjectReferenceType>(item.getModelObject(), "resourceRef"),
                    new AbstractReadOnlyModel<List<ObjectReferenceType>>() {

                        @Override
                        public List<ObjectReferenceType> getObject() {
                            return createResourceList();
                        }
                    }, new IChoiceRenderer<ObjectReferenceType>() {

                        @Override
                        public Object getDisplayValue(ObjectReferenceType object) {
                            return createResourceReadLabel(object);
                        }

                        @Override
                        public String getIdValue(ObjectReferenceType object, int index) {
                            return Integer.toString(index);
                        }
                    });
            resource.add(prepareAjaxOnComponentTagUpdateBehavior());
            dependencyBody.add(resource);

            Label orderTooltip = new Label(ID_T_ORDER);
            orderTooltip.add(new InfoTooltipBehavior());
            dependencyBody.add(orderTooltip);

            Label strictnessTooltip = new Label(ID_T_STRICTNESS);
            strictnessTooltip.add(new InfoTooltipBehavior());
            dependencyBody.add(strictnessTooltip);

            Label kindTooltip = new Label(ID_T_KIND);
            kindTooltip.add(new InfoTooltipBehavior());
            dependencyBody.add(kindTooltip);

            Label intentTooltip = new Label(ID_T_INTENT);
            intentTooltip.add(new InfoTooltipBehavior());
            dependencyBody.add(intentTooltip);

            Label resourceRefTooltip = new Label(ID_T_RESOURCE_REF);
            resourceRefTooltip.add(new InfoTooltipBehavior());
            dependencyBody.add(resourceRefTooltip);
        }
    };
    repeater.setOutputMarkupId(true);
    container.add(repeater);

    AjaxLink add = new AjaxLink(ID_ADD_BUTTON) {

        @Override
        public void onClick(AjaxRequestTarget target) {
            addDependencyPerformed(target);
        }
    };
    add(add);
}

From source file:com.evolveum.midpoint.web.component.wizard.resource.component.schemahandling.ResourceProtectedEditor.java

License:Apache License

@Override
protected void initLayout() {
    WebMarkupContainer container = new WebMarkupContainer(ID_CONTAINER);
    container.setOutputMarkupId(true);/*from   ww w  .j a va 2 s  . c  om*/
    add(container);

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

        @Override
        protected void populateItem(final ListItem<ResourceObjectPatternType> item) {
            WebMarkupContainer linkCont = new WebMarkupContainer(ID_ACCOUNT_LINK);
            linkCont.setOutputMarkupId(true);
            linkCont.add(new AttributeModifier("href", createCollapseItemId(item, true)));
            item.add(linkCont);

            Label accountLabel = new Label(ID_ACCOUNT_NAME, new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    StringBuilder sb = new StringBuilder();
                    ResourceObjectPatternType account = item.getModelObject();
                    sb.append("#").append(item.getIndex() + 1).append(" - ");

                    if (account.getUid() != null) {
                        sb.append(account.getUid()).append(":");
                    }

                    if (account.getName() != null) {
                        sb.append(account.getName());
                    }

                    return sb.toString();
                }
            });
            linkCont.add(accountLabel);

            AjaxLink delete = new AjaxLink(ID_BUTTON_DELETE) {

                @Override
                public void onClick(AjaxRequestTarget target) {
                    deleteDependencyPerformed(target, item);
                }
            };
            linkCont.add(delete);

            WebMarkupContainer accountBody = new WebMarkupContainer(ID_ACCOUNT_BODY);
            accountBody.setOutputMarkupId(true);
            accountBody.setMarkupId(createCollapseItemId(item, false).getObject());

            if (changeState != ChangeState.SKIP) {
                accountBody.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() {

                    @Override
                    public String getObject() {
                        if (changeState == ChangeState.FIRST && item.getIndex() == 0) {
                            return "panel-collapse collapse in";
                        } else if (changeState == ChangeState.LAST
                                && item.getIndex() == (getModelObject().size() - 1)) {
                            return "panel-collapse collapse in";
                        } else {
                            return "panel-collapse collapse";
                        }
                    }
                }));
            }

            item.add(accountBody);

            //TODO - maybe add some validator and auto-complete functionality?
            TextField name = new TextField<>(ID_NAME, new PropertyModel<String>(item.getModelObject(), "name"));
            name.add(prepareAjaxOnComponentTagUpdateBehavior());
            accountBody.add(name);

            //TODO - maybe add some validator and auto-complete functionality?
            TextField uid = new TextField<>(ID_UID, new PropertyModel<String>(item.getModelObject(), "uid"));
            uid.add(prepareAjaxOnComponentTagUpdateBehavior());
            accountBody.add(uid);

            SearchFilterPanel searchFilterPanel = new SearchFilterPanel<>(ID_FILTER_EDITOR,
                    new PropertyModel<SearchFilterType>(item.getModelObject(), "filter"));
            accountBody.add(searchFilterPanel);

            Label nameTooltip = new Label(ID_T_NAME);
            nameTooltip.add(new InfoTooltipBehavior());
            accountBody.add(nameTooltip);

            Label uidTooltip = new Label(ID_T_UID);
            uidTooltip.add(new InfoTooltipBehavior());
            accountBody.add(uidTooltip);

            Label filterTooltip = new Label(ID_T_FILTER);
            filterTooltip.add(new InfoTooltipBehavior());
            accountBody.add(filterTooltip);
        }
    };
    repeater.setOutputMarkupId(true);
    container.add(repeater);

    AjaxLink add = new AjaxLink(ID_BUTTON_ADD) {

        @Override
        public void onClick(AjaxRequestTarget target) {
            addProtectedAccountPerformed(target);
        }
    };
    add(add);
}

From source file:com.evolveum.midpoint.web.component.wizard.WizardIssuesPanel.java

License:Apache License

private void initLayout() {
    WebMarkupContainer panel = new WebMarkupContainer(ID_PANEL);
    panel.add(new VisibleEnableBehaviour() {
        @Override//ww w. j  a  v a2 s. com
        public boolean isVisible() {
            return getModelObject().hasIssues();
        }
    });
    panel.add(AttributeAppender.append("class", new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            WizardIssuesDto issuesDto = WizardIssuesPanel.this.getModelObject();
            WizardIssuesDto.Severity severity = issuesDto.getSeverity();
            return severity != null ? "box-" + severity.getColorStyle() : null;
        }
    }));
    add(panel);

    Label title = new Label(ID_TITLE, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            WizardIssuesDto issuesDto = WizardIssuesPanel.this.getModelObject();
            WizardIssuesDto.Severity severity = issuesDto.getSeverity();
            if (severity == null) {
                return "";
            } else if (severity == WizardIssuesDto.Severity.INFO) {
                return getString("Wizard.Notes");
            } else {
                return getString("Wizard.Issues");
            }
        }
    });
    panel.add(title);

    WebMarkupContainer table = new WebMarkupContainer(ID_TABLE);
    panel.add(table);

    ListView<WizardIssuesDto.Issue> issues = new ListView<WizardIssuesDto.Issue>(ID_ROW,
            new PropertyModel<List<WizardIssuesDto.Issue>>(getModel(), WizardIssuesDto.F_ISSUES)) {
        @Override
        protected void populateItem(ListItem<WizardIssuesDto.Issue> item) {
            WizardIssuesDto.Issue issue = item.getModelObject();
            Label severityLabel = new Label(ID_SEVERITY, "");
            severityLabel.add(AttributeAppender.replace("class", issue.getSeverityClass()));
            item.add(severityLabel);
            item.add(new Label(ID_TEXT, issue.getText()));
        }
    };
    table.add(issues);

}

From source file:com.evolveum.midpoint.web.component.wizard.WizardSteps.java

License:Apache License

@Override
protected void initLayout() {
    ListView<WizardStepDto> link = new ListView<WizardStepDto>(ID_LINK, getModel()) {

        @Override// ww w .j a v a  2 s  .  c o  m
        protected void populateItem(ListItem<WizardStepDto> item) {
            final WizardStepDto dto = item.getModelObject();
            Label label = new Label(ID_LABEL, createLabelModel(dto.getName()));
            label.setRenderBodyOnly(true);
            item.add(label);

            item.add(new VisibleEnableBehaviour() {

                @Override
                public boolean isEnabled() {
                    return dto.isEnabled();
                }

                @Override
                public boolean isVisible() {
                    return dto.isVisible();
                }
            });

            item.add(AttributeModifier.replace("class", new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    return dto.isActive() ? "current" : null;
                }
            }));
        }
    };
    add(link);
}

From source file:com.evolveum.midpoint.web.page.admin.BaseFocusPanel.java

License:Apache License

private void initShadows(final WebMarkupContainer accounts) {
    InlineMenu accountMenu = new InlineMenu(ID_SHADOW_MENU, new Model((Serializable) createShadowMenu()));
    accounts.add(accountMenu);/*from   ww  w  .j ava2 s  .  c o  m*/

    final ListView<FocusProjectionDto> accountList = new ListView<FocusProjectionDto>(ID_SHADOW_LIST,
            shadowModel) {

        @Override
        protected void populateItem(final ListItem<FocusProjectionDto> item) {
            PackageResourceReference packageRef;
            final FocusProjectionDto dto = item.getModelObject();

            Panel panel;

            if (dto.isLoadedOK()) {
                packageRef = new PackageResourceReference(ImgResources.class, ImgResources.HDD_PRISM);

                panel = new PrismObjectPanel<F>("shadow",
                        new PropertyModel<ObjectWrapper<F>>(item.getModel(), "object"), packageRef,
                        (Form) page.get(ID_MAIN_FORM), page) {

                    @Override
                    protected Component createHeader(String id, IModel<ObjectWrapper<F>> model) {
                        return new CheckTableHeader(id, (IModel) model) {

                            @Override
                            protected List<InlineMenuItem> createMenuItems() {
                                return createDefaultMenuItems(getModel());
                            }
                        };
                    }
                };
            } else {
                panel = new SimpleErrorPanel("shadow", item.getModel()) {

                    @Override
                    public void onShowMorePerformed(AjaxRequestTarget target) {
                        OperationResult fetchResult = dto.getResult();
                        if (fetchResult != null) {
                            showResult(fetchResult);
                            target.add(getPageBase().getFeedbackPanel());
                        }
                    }
                };
            }

            panel.setOutputMarkupId(true);
            item.add(panel);
        }
    };

    AjaxCheckBox accountCheckAll = new AjaxCheckBox(ID_SHADOW_CHECK_ALL, new Model()) {

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            for (FocusProjectionDto dto : accountList.getModelObject()) {
                if (dto.isLoadedOK()) {
                    ObjectWrapper accModel = dto.getObject();
                    accModel.setSelected(getModelObject());
                }
            }

            target.add(accounts);
        }
    };
    accounts.add(accountCheckAll);

    accounts.add(accountList);
}

From source file:com.evolveum.midpoint.web.page.admin.BaseFocusPanel.java

License:Apache License

private void initOrgs(final WebMarkupContainer orgs) {
    InlineMenu orgtMenu = new InlineMenu(ID_ORG_MENU, new Model((Serializable) createOrgMenu()));
    orgs.add(orgtMenu);/*from  w  ww  .j av a 2s .c o  m*/

    final ListView<FocusProjectionDto> orgList = new ListView<FocusProjectionDto>(ID_ORG_LIST, orgModel) {

        @Override
        protected void populateItem(final ListItem<FocusProjectionDto> item) {
            PackageResourceReference packageRef;
            final FocusProjectionDto dto = item.getModelObject();

            Panel panel;

            if (dto.isLoadedOK()) {
                packageRef = new PackageResourceReference(ImgResources.class, ImgResources.HDD_PRISM);

                panel = new PrismObjectPanel<F>("org",
                        new PropertyModel<ObjectWrapper<F>>(item.getModel(), "object"), packageRef,
                        (Form) page.get(ID_MAIN_FORM), page) {

                    @Override
                    protected Component createHeader(String id, IModel<ObjectWrapper<F>> model) {
                        return new CheckTableHeader(id, (IModel) model) {

                            @Override
                            protected List<InlineMenuItem> createMenuItems() {
                                return createDefaultMenuItems(getModel());
                            }
                        };
                    }
                };
            } else {
                panel = new SimpleErrorPanel("org", item.getModel()) {

                    @Override
                    public void onShowMorePerformed(AjaxRequestTarget target) {
                        OperationResult fetchResult = dto.getResult();
                        if (fetchResult != null) {
                            showResult(fetchResult);
                            target.add(getPageBase().getFeedbackPanel());
                        }
                    }
                };
            }

            panel.setOutputMarkupId(true);
            item.add(panel);
        }
    };

    AjaxCheckBox orgCheckAll = new AjaxCheckBox(ID_ORG_CHECK_ALL, new Model()) {

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            for (FocusProjectionDto dto : orgList.getModelObject()) {
                if (dto.isLoadedOK()) {
                    ObjectWrapper orgModel = dto.getObject();
                    orgModel.setSelected(getModelObject());
                }
            }

            target.add(orgs);
        }
    };
    orgs.add(orgCheckAll);

    orgs.add(orgList);
}

From source file:com.evolveum.midpoint.web.page.admin.configuration.component.ObjectPolicyDialog.java

License:Apache License

public void initLayout(WebMarkupContainer content) {
    Form form = new Form(ID_FORM);
    form.setOutputMarkupId(true);//from ww  w  .  j  a va 2s .c o m
    content.add(form);

    DropDownFormGroup type = new DropDownFormGroup<>(ID_TYPE,
            new PropertyModel<QName>(model, ObjectPolicyDialogDto.F_TYPE), createTypeChoiceList(),
            new IChoiceRenderer<QName>() {

                @Override
                public Object getDisplayValue(QName object) {
                    return object.getLocalPart();
                }

                @Override
                public String getIdValue(QName object, int index) {
                    return Integer.toString(index);
                }
            }, createStringResource("ObjectPolicyDialog.type"), ID_LABEL_SIZE, ID_INPUT_SIZE, false);
    form.add(type);

    DropDownFormGroup template = new DropDownFormGroup<>(ID_OBJECT_TEMPLATE,
            new PropertyModel<ObjectTemplateConfigTypeReferenceDto>(model,
                    ObjectPolicyDialogDto.F_TEMPLATE_REF),
            createObjectTemplateList(), new IChoiceRenderer<ObjectTemplateConfigTypeReferenceDto>() {
                @Override
                public Object getDisplayValue(ObjectTemplateConfigTypeReferenceDto object) {
                    return object.getName();
                }

                @Override
                public String getIdValue(ObjectTemplateConfigTypeReferenceDto object, int index) {
                    return Integer.toString(index);
                }
            }, createStringResource("ObjectPolicyDialog.template"), ID_LABEL_SIZE, ID_INPUT_SIZE, false);
    form.add(template);

    ListView repeater = new ListView<PropertyConstraintTypeDto>(ID_REPEATER,
            new PropertyModel<List<PropertyConstraintTypeDto>>(model, ObjectPolicyDialogDto.F_PROPERTY_LIST)) {

        @Override
        protected void populateItem(final ListItem item) {
            WebMarkupContainer textWrapper = new WebMarkupContainer(ID_TEXT_WRAPPER);
            textWrapper.add(AttributeAppender.prepend("class", new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    if (item.getIndex() > 0) {
                        return OFFSET_CLASS + " " + CLASS_MULTI_VALUE;
                    }

                    return null;
                }
            }));
            item.add(textWrapper);

            TextField property = new TextField<>(ID_PROPERTY,
                    new PropertyModel<String>(item.getModel(), PropertyConstraintTypeDto.F_PROPERTY_PATH));
            property.add(new AjaxFormComponentUpdatingBehavior("onblur") {
                @Override
                protected void onUpdate(AjaxRequestTarget target) {
                }
            });
            property.add(AttributeAppender.replace("placeholder",
                    createStringResource("ObjectPolicyDialog.property.placeholder")));
            textWrapper.add(property);

            CheckBox oidBound = new CheckBox(ID_OID_BOUND,
                    new PropertyModel<Boolean>(item.getModel(), PropertyConstraintTypeDto.F_OID_BOUND));
            oidBound.add(AttributeModifier.replace("title",
                    createStringResource("ObjectPolicyDialog.label.oidBound.help")));
            textWrapper.add(oidBound);

            WebMarkupContainer buttonGroup = new WebMarkupContainer(ID_BUTTON_GROUP);
            buttonGroup.add(AttributeAppender.append("class", new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    if (item.getIndex() > 0) {
                        return CLASS_MULTI_VALUE;
                    }

                    return null;
                }
            }));
            item.add(buttonGroup);
            initButtons(buttonGroup, item);
        }

    };
    form.add(repeater);

    AjaxSubmitButton cancel = new AjaxSubmitButton(ID_BUTTON_CANCEL,
            createStringResource("ObjectPolicyDialog.button.cancel")) {

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            cancelPerformed(target);
        }
    };
    form.add(cancel);

    AjaxSubmitButton save = new AjaxSubmitButton(ID_BUTTON_SAVE,
            createStringResource("ObjectPolicyDialog.button.save")) {

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            savePerformed(target);
        }
    };
    form.add(save);
}

From source file:com.evolveum.midpoint.web.page.admin.configuration.component.ObjectPolicyPanel.java

License:Apache License

public void initLayout() {
    Form form = new Form(ID_FORM);
    form.setOutputMarkupId(true);/*  w ww .j  a  v a2 s .  c  o m*/
    add(form);

    DropDownFormGroup type = new DropDownFormGroup<>(ID_TYPE,
            new PropertyModel<QName>(model, ObjectPolicyDialogDto.F_TYPE), createTypeChoiceList(),
            new QNameChoiceRenderer(), createStringResource("ObjectPolicyDialog.type"), ID_LABEL_SIZE,
            ID_INPUT_SIZE, false);
    form.add(type);
    type.getInput().setNullValid(false);
    type.getInput().setRequired(true);

    TextField<String> fieldSubtype = new TextField<>(ID_SUBTYPE,
            new PropertyModel<String>(model, ObjectPolicyDialogDto.F_SUBTYPE));
    form.add(fieldSubtype);
    form.add(fieldSubtype);

    DropDownFormGroup template = new DropDownFormGroup<>(ID_OBJECT_TEMPLATE,
            new PropertyModel<ObjectTemplateConfigTypeReferenceDto>(model,
                    ObjectPolicyDialogDto.F_TEMPLATE_REF),
            createObjectTemplateList(), new ChoiceableChoiceRenderer<ObjectTemplateConfigTypeReferenceDto>(),
            createStringResource("ObjectPolicyDialog.template"), ID_LABEL_SIZE, ID_INPUT_SIZE, false);
    form.add(template);
    template.getInput().setNullValid(false);
    template.getInput().setRequired(true);

    ListView repeater = new ListView<PropertyConstraintTypeDto>(ID_REPEATER,
            new PropertyModel<List<PropertyConstraintTypeDto>>(model, ObjectPolicyDialogDto.F_PROPERTY_LIST)) {

        @Override
        protected void populateItem(final ListItem item) {
            WebMarkupContainer textWrapper = new WebMarkupContainer(ID_TEXT_WRAPPER);
            textWrapper.add(AttributeAppender.prepend("class", new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    if (item.getIndex() > 0) {
                        return OFFSET_CLASS + " " + CLASS_MULTI_VALUE;
                    }

                    return null;
                }
            }));
            item.add(textWrapper);

            TextField property = new TextField<>(ID_PROPERTY,
                    new PropertyModel<String>(item.getModel(), PropertyConstraintTypeDto.F_PROPERTY_PATH));
            property.add(new AjaxFormComponentUpdatingBehavior("blur") {
                @Override
                protected void onUpdate(AjaxRequestTarget target) {
                }
            });
            property.add(AttributeAppender.replace("placeholder",
                    createStringResource("ObjectPolicyDialog.property.placeholder")));
            textWrapper.add(property);

            CheckBox oidBound = new CheckBox(ID_OID_BOUND,
                    new PropertyModel<Boolean>(item.getModel(), PropertyConstraintTypeDto.F_OID_BOUND));
            oidBound.add(AttributeModifier.replace("title",
                    createStringResource("ObjectPolicyDialog.label.oidBound.help")));
            textWrapper.add(oidBound);

            WebMarkupContainer buttonGroup = new WebMarkupContainer(ID_BUTTON_GROUP);
            buttonGroup.add(AttributeAppender.append("class", new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    if (item.getIndex() > 0) {
                        return CLASS_MULTI_VALUE;
                    }

                    return null;
                }
            }));
            item.add(buttonGroup);
            initButtons(buttonGroup, item);
        }

    };
    form.add(repeater);

    AjaxSubmitButton cancel = new AjaxSubmitButton(ID_BUTTON_CANCEL,
            createStringResource("ObjectPolicyDialog.button.cancel")) {

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            cancelPerformed(target);
        }
    };
    form.add(cancel);

    AjaxSubmitButton save = new AjaxSubmitButton(ID_BUTTON_SAVE,
            createStringResource("ObjectPolicyDialog.button.save")) {

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            savePerformed(target);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            System.out.println("asdf");
            target.add(form);
        }
    };
    form.add(save);
}