Example usage for org.apache.wicket.model AbstractReadOnlyModel AbstractReadOnlyModel

List of usage examples for org.apache.wicket.model AbstractReadOnlyModel AbstractReadOnlyModel

Introduction

In this page you can find the example usage for org.apache.wicket.model AbstractReadOnlyModel AbstractReadOnlyModel.

Prototype

AbstractReadOnlyModel

Source Link

Usage

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);

}