List of usage examples for org.apache.wicket.markup.html.list ListView ListView
public ListView(final String id, final List<T> list)
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); }