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.ObjectPolicyConfigurationEditor.java

License:Apache License

@Override
protected void initLayout() {

    final Label label = new Label(ID_LABEL, createStringResource("objectPolicyConfigurationEditor.label"));
    add(label);/* www .jav a 2  s.c o  m*/

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

        @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 name = new TextField<>(ID_NAME, createNameModel(item.getModel()));
            name.setOutputMarkupId(true);
            name.add(new AjaxFormComponentUpdatingBehavior("onblur") {
                @Override
                protected void onUpdate(AjaxRequestTarget target) {
                }
            });
            name.setEnabled(false);
            name.add(AttributeAppender.replace("placeholder",
                    createStringResource("objectPolicyConfigurationEditor.name.placeholder")));
            textWrapper.add(name);

            FeedbackPanel feedback = new FeedbackPanel(ID_FEEDBACK, new ComponentFeedbackMessageFilter(name));
            textWrapper.add(feedback);

            AjaxLink edit = new AjaxLink(ID_BUTTON_EDIT) {

                @Override
                public void onClick(AjaxRequestTarget target) {
                    editPerformed(target, item);
                }
            };
            textWrapper.add(edit);

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

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

From source file:com.evolveum.midpoint.web.component.prism.CheckTableHeader.java

License:Apache License

@Override
protected void initLayout() {
    AjaxCheckBox check = new AjaxCheckBox(ID_CHECK,
            new PropertyModel<Boolean>(getModel(), ObjectWrapper.F_SELECTED)) {

        @Override/*from  ww  w . j a  va2 s  .c  om*/
        protected void onUpdate(AjaxRequestTarget target) {
        }
    };
    add(check);

    Label icon = new Label(ID_ICON);
    icon.add(AttributeModifier.replace("class", new AbstractReadOnlyModel<String>() {

        @Override
        public String getObject() {
            return createAccountIcon();
        }
    }));
    add(icon);

    Label trigger = new Label(ID_TRIGGER);
    trigger.add(AttributeModifier.replace("title", new AbstractReadOnlyModel<String>() {

        @Override
        public String getObject() {
            return createTriggerTooltip();
        }
    }));
    trigger.add(new TooltipBehavior());
    trigger.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            return hasTriggers();
        }
    });
    add(trigger);

    Label protectedIcon = new Label(ID_PROTECTED);
    protectedIcon.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            ObjectWrapper wrapper = getModelObject();
            return wrapper.isProtectedAccount();
        }
    });
    add(protectedIcon);

    BootstrapLabel status = new BootstrapLabel(ID_STATUS, createStringResource("CheckTableHeader.label.error"),
            new Model(BootstrapLabel.State.DANGER));
    status.add(createFetchErrorVisibleBehaviour());
    add(status);
    AjaxLink showMore = new AjaxLink(ID_SHOW_MORE) {

        @Override
        public void onClick(AjaxRequestTarget target) {
            onShowMorePerformed(target);
        }
    };
    showMore.add(createFetchErrorVisibleBehaviour());
    add(showMore);

    AjaxLink link = new AjaxLink(ID_LINK) {

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

    Label name = new Label(ID_NAME, new AbstractReadOnlyModel<String>() {

        @Override
        public String getObject() {
            return getDisplayName();
        }
    });
    link.add(name);

    Label description = new Label(ID_DESCRIPTION, new AbstractReadOnlyModel<String>() {

        @Override
        public String getObject() {
            return getDescription();
        }
    });
    add(description);

    final IModel<List<InlineMenuItem>> items = new Model((Serializable) createMenuItems());
    InlineMenu menu = new InlineMenu(ID_MENU, items, true);
    menu.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            List<InlineMenuItem> list = items.getObject();
            return list != null && !list.isEmpty();
        }
    });
    add(menu);
}

From source file:com.evolveum.midpoint.web.component.prism.H3Header.java

License:Apache License

@Override
protected void initLayout() {
    Label title = new Label(ID_TITLE, new AbstractReadOnlyModel<String>() {

        @Override/* w w w . j  a v a 2  s.c  om*/
        public String getObject() {
            return getDisplayName();
        }
    });
    add(title);

    final IModel<List<InlineMenuItem>> items = new Model((Serializable) createMenuItems());
    InlineMenu menu = new InlineMenu(ID_MENU, items);
    menu.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            List<InlineMenuItem> list = items.getObject();
            return list != null && !list.isEmpty();
        }
    });
    add(menu);

    BootstrapLabel status = new BootstrapLabel(ID_STATUS, createStringResource("H3Header.label.error"),
            new Model(BootstrapLabel.State.DANGER));
    status.add(createFetchErrorVisibleBehaviour());
    add(status);
    AjaxLink showMore = new AjaxLink(ID_SHOW_MORE) {

        @Override
        public void onClick(AjaxRequestTarget target) {
            onShowMorePerformed(target);
        }
    };
    showMore.add(createFetchErrorVisibleBehaviour());
    add(showMore);
}

From source file:com.evolveum.midpoint.web.component.prism.PrismContainerPanel.java

License:Apache License

private IModel<String> createStyleClassModel(final IModel<PropertyWrapper> wrapper) {
    return new AbstractReadOnlyModel<String>() {

        @Override/*w  w  w.j a va  2  s .c o m*/
        public String getObject() {
            PropertyWrapper property = wrapper.getObject();
            return property.isVisible() ? "visible" : null;
        }
    };
}

From source file:com.evolveum.midpoint.web.component.prism.PrismHeaderPanel.java

License:Apache License

private void initLayout(final IModel model) {

    VisibleEnableBehaviour buttonsVisibleBehaviour = new VisibleEnableBehaviour() {
        private static final long serialVersionUID = 1L;

        @Override/*  w  ww .  j  a va2 s  .c  o m*/
        public boolean isVisible() {
            return PrismHeaderPanel.this.isButtonsVisible();
        }
    };

    ToggleIconButton showEmptyFieldsButton = new ToggleIconButton(ID_SHOW_EMPTY_FIELDS,
            GuiStyleConstants.CLASS_ICON_SHOW_EMPTY_FIELDS,
            GuiStyleConstants.CLASS_ICON_NOT_SHOW_EMPTY_FIELDS) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            ObjectWrapper objectWrapper = getObjectWrapper(model);
            objectWrapper.setShowEmpty(!objectWrapper.isShowEmpty());
            onButtonClick(target);
        }

        @Override
        public boolean isOn() {
            return getObjectWrapper(model).isShowEmpty();
        }
    };
    showEmptyFieldsButton.add(buttonsVisibleBehaviour);
    add(showEmptyFieldsButton);

    ToggleIconButton sortPropertiesButton = new ToggleIconButton(ID_SORT_PROPERTIES,
            GuiStyleConstants.CLASS_ICON_SORT_ALPHA_ASC, GuiStyleConstants.CLASS_ICON_SORT_AMOUNT_ASC) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            ObjectWrapper objectWrapper = getObjectWrapper(model);
            objectWrapper.setSorted(!objectWrapper.isSorted());
            objectWrapper.sort((PageBase) getPage());

            onButtonClick(target);
        }

        @Override
        public boolean isOn() {
            return getObjectWrapper(model).isSorted();
        }
    };
    sortPropertiesButton.add(buttonsVisibleBehaviour);
    add(sortPropertiesButton);

    IModel<String> headerLabelModel = new AbstractReadOnlyModel<String>() {
        private static final long serialVersionUID = 1L;

        @Override
        public String getObject() {

            Object wrapper = model.getObject();
            String displayName = null;
            if (wrapper instanceof ContainerWrapper) {
                displayName = ((ContainerWrapper) wrapper).getDisplayName();
            } else if (wrapper instanceof ObjectWrapper) {
                // HACK HACK HACK
                // If we would display label for the object itself, display label for main container instead
                // the "object label" is actually displayed in front of main container
                ContainerWrapper mainContainerWrapper = ((ObjectWrapper) wrapper).findMainContainerWrapper();
                if (mainContainerWrapper != null) {
                    displayName = mainContainerWrapper.getDisplayName();
                } else {
                    displayName = ((ObjectWrapper) wrapper).getDisplayName(); // e.g. resource wizard needs this
                }
            }
            return getString(displayName, null, displayName);
        }
    };

    add(new Label(ID_LABEL, headerLabelModel));
}

From source file:com.evolveum.midpoint.web.component.prism.PrismObjectPanel.java

License:Apache License

private IModel<String> createHeaderClassModel(final IModel<ObjectWrapper> model) {
    return new AbstractReadOnlyModel<String>() {
        @Override//from  w  ww .j  a va  2s  .c om
        public String getObject() {
            ObjectWrapper wrapper = model.getObject();
            if (wrapper.isProtectedAccount()) {
                return "protected";
            }

            return wrapper.getHeaderStatus().name().toLowerCase();
        }
    };
}

From source file:com.evolveum.midpoint.web.component.prism.PrismObjectPanel.java

License:Apache License

private IModel<String> createHeaderNameClassModel(final IModel<ObjectWrapper> model) {
    return new AbstractReadOnlyModel<String>() {
        @Override//from w w w .j  av  a2  s  .co  m
        public String getObject() {
            ObjectWrapper wrapper = model.getObject();
            if (isDisabled(wrapper)) {
                return "disable";
            }
            return "";
        }
    };
}

From source file:com.evolveum.midpoint.web.component.prism.PrismObjectPanel.java

License:Apache License

private IModel<String> createEmptyLabel(final IModel<ObjectWrapper> model) {
    return new AbstractReadOnlyModel<String>() {

        @Override//  w w w .j ava2 s  . c  o  m
        public String getObject() {
            ObjectWrapper wrapper = model.getObject();
            String key = wrapper.isShowEmpty() ? "PrismObjectPanel.hideEmpty" : "PrismObjectPanel.showEmpty";
            return new StringResourceModel(key, PrismObjectPanel.this, null, key).getString();
        }
    };
}

From source file:com.evolveum.midpoint.web.component.prism.PrismObjectPanel.java

License:Apache License

private IModel<String> createMinMaxLabel(final IModel<ObjectWrapper> model) {
    return new AbstractReadOnlyModel<String>() {

        @Override/*w  w w  . j  a va 2  s  . c  o  m*/
        public String getObject() {
            ObjectWrapper wrapper = model.getObject();
            String key = wrapper.isMinimalized() ? "PrismObjectPanel.maximize" : "PrismObjectPanel.minimize";
            return new StringResourceModel(key, PrismObjectPanel.this, null, key).getString();
        }
    };
}

From source file:com.evolveum.midpoint.web.component.prism.PrismOptionButtonPanel.java

License:Apache License

private void initButtons(final IModel<ObjectWrapper> model) {
    AjaxLink showEmpty = new AjaxLink("showEmptyButton") {

        @Override//from  w w  w .  j  av a  2  s  .com
        public void onClick(AjaxRequestTarget target) {
            showEmptyOnClick(target);
        }

    };
    add(showEmpty);

    showEmpty.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            return !model.getObject().isReadonly();
        }
    });

    Image showEmptyImg = new Image("showEmptyImg", new AbstractReadOnlyModel() {

        @Override
        public Object getObject() {
            ObjectWrapper wrapper = model.getObject();
            if (wrapper.isShowEmpty()) {
                return new PackageResourceReference(PrismObjectPanel.class, "ShowEmptyFalse.png");
            }
            return new PackageResourceReference(PrismObjectPanel.class, "ShowEmptyTrue.png");
        }
    });

    showEmptyImg.add(new AttributeAppender("title", new AbstractReadOnlyModel() {

        @Override
        public Object getObject() {
            ObjectWrapper wrapper = model.getObject();
            if (wrapper.isShowEmpty()) {
                return getString("prismOptionButtonPanel.hideEmpty");
            }
            return getString("prismOptionButtonPanel.showEmpty");
        }
    }, ""));

    showEmpty.add(showEmptyImg);

    AjaxLink minimize = new AjaxLink("minimizeButton") {

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

    Image minimizeImg = new Image("minimizeImg", new AbstractReadOnlyModel() {

        @Override
        public Object getObject() {
            ObjectWrapper wrapper = model.getObject();
            if (wrapper.isMinimalized()) {
                return new PackageResourceReference(PrismObjectPanel.class, "Maximize.png");
            }

            return new PackageResourceReference(PrismObjectPanel.class, "Minimize.png");
        }
    });
    minimizeImg.add(new AttributeAppender("title", new AbstractReadOnlyModel() {

        @Override
        public Object getObject() {
            ObjectWrapper wrapper = model.getObject();
            if (wrapper.isMinimalized()) {
                return getString("prismOptionButtonPanel.maximize");
            }

            return getString("prismOptionButtonPanel.minimize");
        }
    }, ""));

    minimize.add(minimizeImg);
}