List of usage examples for org.apache.wicket.model AbstractReadOnlyModel AbstractReadOnlyModel
AbstractReadOnlyModel
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);/*ww w . jav a2 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.ResourceDependencyEditor.java
License:Apache License
private IModel<String> createDependencyLabelModel(final ListItem<ResourceObjectTypeDependencyType> item) { return new AbstractReadOnlyModel<String>() { @Override/*from w ww .j a v a 2 s . c om*/ public String getObject() { StringBuilder sb = new StringBuilder(); ResourceObjectTypeDependencyType dep = item.getModelObject(); sb.append("#").append(item.getIndex() + 1).append(" - "); if (dep.getResourceRef() != null) { sb.append(resourceMap.get(dep.getResourceRef().getOid())).append(":"); } if (dep.getKind() != null) { sb.append(dep.getKind().toString()).append(":"); } if (dep.getIntent() != null) { sb.append(dep.getIntent()).append(":"); } sb.append(dep.getOrder()).append(":"); if (dep.getStrictness() != null) { sb.append(dep.getStrictness().toString()); } return sb.toString(); } }; }
From source file:com.evolveum.midpoint.web.component.wizard.resource.component.schemahandling.ResourceDependencyEditor.java
License:Apache License
private IModel<String> createCollapseItemId(final ListItem<ResourceObjectTypeDependencyType> item, final boolean appendSelector) { return new AbstractReadOnlyModel<String>() { @Override//from ww w .j a v a2s . c o m public String getObject() { StringBuilder sb = new StringBuilder(); if (appendSelector) { sb.append("#"); } sb.append("collapse").append(item.getId()); return sb.toString(); } }; }
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 w ww. j a v a 2s . com 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.resource.component.schemahandling.ResourceProtectedEditor.java
License:Apache License
private IModel<String> createCollapseItemId(final ListItem<ResourceObjectPatternType> item, final boolean includeSelector) { return new AbstractReadOnlyModel<String>() { @Override//from www. ja v a2 s . com public String getObject() { StringBuilder sb = new StringBuilder(); if (includeSelector) { sb.append("#"); } sb.append("collapse").append(item.getId()); return sb.toString(); } }; }
From source file:com.evolveum.midpoint.web.component.wizard.resource.component.SchemaListPanel.java
License:Apache License
@Override protected void initLayout() { initModels();/*from w w w.j av a2 s . c o m*/ final ObjectClassDataProvider dataProvider = new ObjectClassDataProvider(allClasses); TextField objectClass = new TextField(ID_OBJECT_CLASS, new Model<>()); objectClass.setOutputMarkupId(true); objectClass.add(new AjaxFormComponentUpdatingBehavior("keyUp") { @Override protected void onUpdate(AjaxRequestTarget target) { updateSearchPerformed(target, dataProvider); } }); add(objectClass); AjaxButton clearSearch = new AjaxButton(ID_CLEAR_SEARCH) { @Override public void onClick(AjaxRequestTarget target) { clearSearchPerformed(target, dataProvider); } }; add(clearSearch); WebMarkupContainer tableBody = new WebMarkupContainer(ID_TABLE_BODY); tableBody.setOutputMarkupId(true); add(tableBody); DataView<ObjectClassDto> pageable = new DataView<ObjectClassDto>(ID_PAGEABLE, dataProvider) { @Override protected void populateItem(final Item<ObjectClassDto> item) { AjaxLink link = new AjaxLink(ID_CLASS_LINK) { @Override public void onClick(AjaxRequestTarget target) { objectClassClickPerformed(target, item.getModelObject(), allClasses.getObject()); } }; item.add(link); Label label = new Label(ID_LABEL, new PropertyModel<>(item.getModel(), ObjectClassDto.F_NAME)); link.add(label); item.add(AttributeModifier.replace("class", new AbstractReadOnlyModel<Object>() { @Override public Object getObject() { if (item.getModelObject().isSelected()) { return "success"; } return null; } })); } }; tableBody.add(pageable); ISortableDataProvider attributeProvider = new ListDataProvider(this, attributeModel); TablePanel attributeTable = new TablePanel(ID_ATTRIBUTE_TABLE, attributeProvider, initColumns()); attributeTable.setOutputMarkupId(true); attributeTable.setItemsPerPage(20); add(attributeTable); }
From source file:com.evolveum.midpoint.web.component.wizard.resource.component.synchronization.SynchronizationExpressionEditor.java
License:Apache License
@Override protected void initLayout() { Label label = new Label(ID_LABEL, new AbstractReadOnlyModel<String>() { @Override//from ww w .j a v a 2 s.c om public String getObject() { return getString(getLabel()); } }); add(label); ExpressionEditorPanel expressionEditor = new ExpressionEditorPanel(ID_EXPRESSION_EDITOR, getModel()); add(expressionEditor); }
From source file:com.evolveum.midpoint.web.component.wizard.resource.component.synchronization.SynchronizationReactionEditor.java
License:Apache License
@Override protected void initLayout() { Label label = new Label(ID_LABEL, new AbstractReadOnlyModel<String>() { @Override//from ww w . j av a2 s .c o m public String getObject() { SynchronizationReactionType reaction = getModelObject(); if (reaction.getName() == null && reaction.getSituation() == null) { return getString("SynchronizationReactionEditor.label.new"); } else { return getString("SynchronizationReactionEditor.label.edit", reaction.getName() != null ? reaction.getName() : getString("MultiValueField.nameNotSpecified")); } } }); add(label); TextField name = new TextField<>(ID_NAME, new PropertyModel<String>(getModel(), "name")); add(name); TextArea description = new TextArea<>(ID_DESCRIPTION, new PropertyModel<String>(getModel(), "description")); add(description); DropDownChoice situation = new DropDownChoice<>(ID_SITUATION, new PropertyModel<SynchronizationSituationType>(getModel(), "situation"), WebMiscUtil.createReadonlyModelFromEnum(SynchronizationSituationType.class), new EnumChoiceRenderer<SynchronizationSituationType>(this)); situation.setNullValid(true); add(situation); MultiValueDropDownPanel channel = new MultiValueDropDownPanel<String>(ID_CHANNEL, new PropertyModel<List<String>>(getModel(), "channel"), true) { @Override protected String createNewEmptyItem() { return ""; } @Override protected IModel<List<String>> createChoiceList() { return new AbstractReadOnlyModel<List<String>>() { @Override public List<String> getObject() { return WebMiscUtil.getChannelList(); } }; } @Override protected IChoiceRenderer<String> createRenderer() { return new IChoiceRenderer<String>() { @Override public Object getDisplayValue(String object) { String[] fields = object.split("#"); String label = fields[1]; return getString("Channel." + label); } @Override public String getIdValue(String object, int index) { return Integer.toString(index); } }; } }; add(channel); ThreeStateBooleanPanel synchronize = new ThreeStateBooleanPanel(ID_SYNCHRONIZE, new PropertyModel<Boolean>(getModel(), "synchronize")); add(synchronize); CheckBox reconcile = new CheckBox(ID_RECONCILE, new PropertyModel<Boolean>(getModel(), "reconcile")); add(reconcile); DropDownChoice objectTemplateRef = new DropDownChoice<>(ID_OBJECT_TEMPLATE_REF, new PropertyModel<ObjectReferenceType>(getModel(), "objectTemplateRef"), new AbstractReadOnlyModel<List<ObjectReferenceType>>() { @Override public List<ObjectReferenceType> getObject() { return createObjectTemplateList(); } }, new IChoiceRenderer<ObjectReferenceType>() { @Override public Object getDisplayValue(ObjectReferenceType object) { return objectTemplateMap.get(object.getOid()); } @Override public String getIdValue(ObjectReferenceType object, int index) { return Integer.toString(index); } }); objectTemplateRef.setNullValid(true); add(objectTemplateRef); MultiValueTextEditPanel action = new MultiValueTextEditPanel<SynchronizationActionType>(ID_ACTION, new PropertyModel<List<SynchronizationActionType>>(getModel(), "action"), false) { @Override protected IModel<String> createTextModel(final IModel<SynchronizationActionType> model) { return new Model<String>() { @Override public String getObject() { SynchronizationActionType action = model.getObject(); if (action == null) { return null; } StringBuilder sb = new StringBuilder(); sb.append(action.getName() != null ? action.getName() : " - "); if (action.getHandlerUri() != null) { String[] handlerUriSplit = action.getHandlerUri().split("#"); sb.append("("); sb.append(handlerUriSplit[handlerUriSplit.length - 1]); sb.append(")"); } return sb.toString(); } }; } @Override protected SynchronizationActionType createNewEmptyItem() { return new SynchronizationActionType(); } @Override protected void editPerformed(AjaxRequestTarget target, SynchronizationActionType object) { actionEditPerformed(target, object); } }; action.setOutputMarkupId(true); add(action); Label situationTooltip = new Label(ID_T_SITUATION); situationTooltip.add(new InfoTooltipBehavior()); add(situationTooltip); Label channelTooltip = new Label(ID_T_CHANNEL); channelTooltip.add(new InfoTooltipBehavior()); add(channelTooltip); Label synchronizeTooltip = new Label(ID_T_SYNCHRONIZE); synchronizeTooltip.add(new InfoTooltipBehavior()); add(synchronizeTooltip); Label reconcileTooltip = new Label(ID_T_RECONCILE); reconcileTooltip.add(new InfoTooltipBehavior()); add(reconcileTooltip); Label objTemplateTooltip = new Label(ID_T_OBJ_TEMPLATE); objTemplateTooltip.add(new InfoTooltipBehavior()); add(objTemplateTooltip); Label actionTooltip = new Label(ID_T_ACTION); actionTooltip.add(new InfoTooltipBehavior()); add(actionTooltip); initModals(); }
From source file:com.evolveum.midpoint.web.component.wizard.resource.component.WizardHelpDialog.java
License:Apache License
public void initLayout(WebMarkupContainer content) { Label helpLabel = new Label(ID_HELP, new AbstractReadOnlyModel<String>() { @Override/*from ww w . j a v a 2 s.c om*/ public String getObject() { return getString(determineHelpKey()); } }); helpLabel.setEscapeModelStrings(false); content.add(helpLabel); AjaxLink ok = new AjaxLink(ID_BUTTON_OK) { @Override public void onClick(AjaxRequestTarget target) { closePerformed(target); } }; content.add(ok); }
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/*w w w .ja va2s . 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); }