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.page.admin.configuration.component.NotificationConfigPanel.java

License:Apache License

@Override
protected void initLayout() {
    TextField<String> defaultFromField = WebComponentUtil.createAjaxTextField(ID_DEFAULT_FROM,
            new PropertyModel<String>(getModel(), "defaultFrom"));

    CheckBox debugCheck = WebComponentUtil.createAjaxCheckBox(ID_DEBUG,
            new PropertyModel<Boolean>(getModel(), "debug"));

    DropDownChoice mailServerConfigChooser = new DropDownChoice<>(ID_MAIL_SERVER,
            new PropertyModel<MailServerConfigurationTypeDto>(getModel(),
                    NotificationConfigurationDto.F_SELECTED_SERVER),
            new AbstractReadOnlyModel<List<MailServerConfigurationTypeDto>>() {

                @Override//from   www  .  ja va 2  s. co m
                public List<MailServerConfigurationTypeDto> getObject() {
                    return getModel().getObject().getServers();
                }
            }, new ChoiceableChoiceRenderer<MailServerConfigurationTypeDto>());
    mailServerConfigChooser.setNullValid(true);
    mailServerConfigChooser.add(new AjaxFormSubmitBehavior("click") {

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            getForm().onFormSubmitted();
        }
    });
    mailServerConfigChooser.add(new OnChangeAjaxBehavior() {

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            preparePasswordFieldPlaceholder();
            target.add(NotificationConfigPanel.this);
        }
    });
    add(mailServerConfigChooser);

    Label serverConfigTooltip = new Label(ID_MAIL_SERVER_TOOLTIP);
    serverConfigTooltip.add(new InfoTooltipBehavior());
    add(serverConfigTooltip);

    WebMarkupContainer serverConfigContainer = new WebMarkupContainer(ID_MAIL_SERVER_CONFIG_CONTAINER);
    serverConfigContainer.setOutputMarkupId(true);
    serverConfigContainer.setOutputMarkupPlaceholderTag(true);
    serverConfigContainer.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            if (getModelObject() != null) {
                return getModelObject().getSelectedServer() != null;
            }

            return false;
        }
    });
    add(serverConfigContainer);

    TextField<String> hostField = WebComponentUtil.createAjaxTextField(ID_HOST,
            new PropertyModel<String>(getModel(), "selectedServer.host"));
    TextField<Integer> portField = WebComponentUtil.createAjaxTextField(ID_PORT,
            new PropertyModel<Integer>(getModel(), "selectedServer.port"));
    TextField<String> userNameField = WebComponentUtil.createAjaxTextField(ID_USERNAME,
            new PropertyModel<String>(getModel(), "selectedServer.username"));
    PasswordTextField passwordField = new PasswordTextField(ID_PASSWORD,
            new PropertyModel<String>(getModel(), "selectedServer.password"));
    passwordField.setRequired(false);
    passwordField.add(new EmptyOnChangeAjaxFormUpdatingBehavior());

    TextField<String> redirectToFileField = WebComponentUtil.createAjaxTextField(ID_REDIRECT_TO_FILE,
            new PropertyModel<String>(getModel(), "redirectToFile"));

    DropDownFormGroup transportSecurity = new DropDownFormGroup<>(ID_TRANSPORT_SECURITY,
            new PropertyModel<MailTransportSecurityType>(getModel(),
                    "selectedServer.mailTransportSecurityType"),
            WebComponentUtil.createReadonlyModelFromEnum(MailTransportSecurityType.class),
            new EnumChoiceRenderer<MailTransportSecurityType>(this),
            createStringResource("SystemConfigPanel.mail.transportSecurity"), ID_LABEL_SIZE, ID_INPUT_SIZE,
            false);
    // transportSecurity.add(new EmptyOnChangeAjaxFormUpdatingBehavior());

    serverConfigContainer.add(hostField);
    serverConfigContainer.add(portField);
    serverConfigContainer.add(userNameField);
    serverConfigContainer.add(passwordField);
    serverConfigContainer.add(transportSecurity);

    add(defaultFromField);
    add(debugCheck);
    add(redirectToFileField);

    AjaxSubmitLink buttonAddNewMailServerConfig = new AjaxSubmitLink(ID_BUTTON_ADD_NEW_MAIL_SERVER_CONFIG) {

        @Override
        protected void onSubmit(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
            MailServerConfigurationTypeDto newConfig = new MailServerConfigurationTypeDto();
            newConfig.setHost(getString("SystemConfigPanel.mail.config.placeholder"));

            if (getModelObject() != null) {
                getModelObject().getServers().add(newConfig);
                getModelObject().setSelectedServer(newConfig);
            }

            preparePasswordFieldPlaceholder();
            target.add(NotificationConfigPanel.this, getPageBase().getFeedbackPanel());
        }

        @Override
        protected void onError(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
            target.add(getPageBase().getFeedbackPanel());
        }
    };
    add(buttonAddNewMailServerConfig);

    AjaxSubmitLink removeMailServerConfig = new AjaxSubmitLink(ID_BUTTON_REMOVE_MAIL_SERVER_CONFIG) {

        @Override
        protected void onSubmit(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
            if (getModelObject() != null) {
                NotificationConfigurationDto notificationConfig = getModelObject();

                MailServerConfigurationTypeDto selected = notificationConfig.getSelectedServer();

                if (notificationConfig.getServers().contains(selected)) {
                    notificationConfig.getServers().remove(selected);
                    notificationConfig.setSelectedServer(null);
                } else {
                    warn(getString("SystemConfigPanel.mail.server.remove.warn"));
                }

                target.add(NotificationConfigPanel.this, getPageBase().getFeedbackPanel());
            }
        }

        @Override
        protected void onError(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
            target.add(getPageBase().getFeedbackPanel());
        }
    };
    removeMailServerConfig.add(new AttributeAppender("class", new AbstractReadOnlyModel<String>() {

        @Override
        public String getObject() {
            if (getModelObject() != null && getModelObject().getSelectedServer() != null) {
                return null;
            } else {
                return " disabled";
            }
        }
    }));
    add(removeMailServerConfig);

}

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  www.j  a va  2  s .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.ObjectPolicyDialog.java

License:Apache License

protected IModel<List<ObjectTemplateConfigTypeReferenceDto>> createObjectTemplateList() {
    return new AbstractReadOnlyModel<List<ObjectTemplateConfigTypeReferenceDto>>() {

        @Override/*  www.j av a  2 s  .  c o m*/
        public List<ObjectTemplateConfigTypeReferenceDto> getObject() {
            List<PrismObject<ObjectTemplateType>> templateList = null;
            List<ObjectTemplateConfigTypeReferenceDto> list = new ArrayList<>();
            OperationResult result = new OperationResult(OPERATION_LOAD_ALL_OBJECT_TEMPLATES);
            Task task = getPageBase().createSimpleTask(OPERATION_LOAD_ALL_OBJECT_TEMPLATES);

            try {
                templateList = getPageBase().getModelService().searchObjects(ObjectTemplateType.class,
                        new ObjectQuery(), null, task, result);
                result.recomputeStatus();
            } catch (Exception e) {
                result.recordFatalError("Could not get list of object templates", e);
                LoggingUtils.logException(LOGGER, "Could not get list of object templates", e);
                //TODO - show this error in GUI
            }

            if (templateList != null) {
                ObjectTemplateType template;
                for (PrismObject<ObjectTemplateType> obj : templateList) {
                    template = obj.asObjectable();
                    list.add(new ObjectTemplateConfigTypeReferenceDto(template.getOid(),
                            WebMiscUtil.getName(template)));
                }
            }
            return list;
        }
    };
}

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

License:Apache License

private IModel<List<QName>> createTypeChoiceList() {
    return new AbstractReadOnlyModel<List<QName>>() {

        @Override//w  ww.  ja va 2s  .co  m
        public List<QName> getObject() {
            List<QName> list = new ArrayList<>();
            list.add(UserType.COMPLEX_TYPE);
            list.add(RoleType.COMPLEX_TYPE);
            list.add(OrgType.COMPLEX_TYPE);

            return list;
        }
    };
}

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);//from   ww  w  . j a va2  s.com
    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);
}

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

License:Apache License

protected IModel<List<ObjectTemplateConfigTypeReferenceDto>> createObjectTemplateList() {
    return new AbstractReadOnlyModel<List<ObjectTemplateConfigTypeReferenceDto>>() {

        @Override// ww w  . j a  va2  s  .  c  o m
        public List<ObjectTemplateConfigTypeReferenceDto> getObject() {
            List<PrismObject<ObjectTemplateType>> templateList = null;
            List<ObjectTemplateConfigTypeReferenceDto> list = new ArrayList<>();
            OperationResult result = new OperationResult(OPERATION_LOAD_ALL_OBJECT_TEMPLATES);
            Task task = getPageBase().createSimpleTask(OPERATION_LOAD_ALL_OBJECT_TEMPLATES);

            try {
                templateList = getPageBase().getModelService().searchObjects(ObjectTemplateType.class,
                        new ObjectQuery(), null, task, result);
                result.recomputeStatus();
            } catch (Exception e) {
                result.recordFatalError("Could not get list of object templates", e);
                LoggingUtils.logUnexpectedException(LOGGER, "Could not get list of object templates", e);
                // TODO - show this error in GUI
            }

            if (templateList != null) {
                ObjectTemplateType template;
                for (PrismObject<ObjectTemplateType> obj : templateList) {
                    template = obj.asObjectable();
                    list.add(new ObjectTemplateConfigTypeReferenceDto(template.getOid(),
                            WebComponentUtil.getName(template)));
                }
            }
            return list;
        }
    };
}

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

License:Apache License

private IModel<List<QName>> createTypeChoiceList() {
    return new AbstractReadOnlyModel<List<QName>>() {

        @Override//from   www  .jav  a2s . c  om
        public List<QName> getObject() {
            return WebComponentUtil.createFocusTypeList();
        }
    };
}

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

License:Apache License

private IModel<List<String>> createAppendersListModel() {
    return new AbstractReadOnlyModel<List<String>>() {

        @Override//from  w  w  w  .  jav a  2 s  . c  o  m
        public List<String> getObject() {
            List<String> list = new ArrayList<>();

            ProfilingDto dto = getModel().getObject();
            for (AppenderConfiguration appender : dto.getAppenders()) {
                list.add(appender.getName());
            }

            return list;
        }
    };
}

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

License:Apache License

private IModel<String> createDeleteConfirmString() {
    return new AbstractReadOnlyModel<String>() {

        @Override/*  ww  w .  j  ava 2s  .c o  m*/
        public String getObject() {
            DebugConfDialogDto dto = confDialogModel.getObject();

            switch (dto.getOperation()) {
            case DELETE_ALL_IDENTITIES:
                return createLaxativeString();
            case DELETE_ALL_TYPE:
                String key = ObjectTypeGuiDescriptor.getDescriptor(dto.getType()).getLocalizationKey();
                String type = createStringResource(key).getString();
                return createStringResource("pageDebugList.message.deleteAllType", type).getString();
            case DELETE_SELECTED:
                List<DebugObjectItem> selectedList = dto.getObjects();

                if (selectedList.size() > 1) {
                    return createStringResource("pageDebugList.message.deleteSelectedConfirm",
                            selectedList.size()).getString();
                }

                DebugObjectItem selectedItem = selectedList.get(0);
                return createStringResource("pageDebugList.message.deleteObjectConfirm", selectedItem.getName())
                        .getString();
            }

            return "";
        }
    };
}

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

License:Apache License

@Override
protected IModel<String> createPageSubTitleModel() {
    return new AbstractReadOnlyModel<String>() {

        @Override/*from  w w  w.j  ava  2 s  .c  o m*/
        public String getObject() {
            return createStringResource("page.subTitle", model.getObject().getName()).getString();
        }
    };
}