Example usage for org.apache.wicket.ajax.markup.html AjaxLink AjaxLink

List of usage examples for org.apache.wicket.ajax.markup.html AjaxLink AjaxLink

Introduction

In this page you can find the example usage for org.apache.wicket.ajax.markup.html AjaxLink AjaxLink.

Prototype

public AjaxLink(final String id) 

Source Link

Document

Construct.

Usage

From source file:com.evolveum.midpoint.web.component.input.ExpressionValuePanel.java

License:Apache License

private void initLiteralValueExpressionPanel() {
    WebMarkupContainer literalValueContainer = new WebMarkupContainer(ID_LITERAL_VALUE_CONTAINER);
    literalValueContainer.setOutputMarkupId(true);
    literalValueContainer.add(new VisibleEnableBehaviour() {
        private static final long serialVersionUID = 1L;

        @Override//from w  ww. j a  va 2  s.c  om
        public boolean isVisible() {
            List<String> literalValues = getLiteralValues();
            return literalValues != null && !literalValues.isEmpty();

        }
    });
    add(literalValueContainer);

    MultiValueTextPanel<String> literalValueInput = new MultiValueTextPanel<String>(ID_LITERAL_VALUE_INPUT,
            new IModel<List<String>>() {
                private static final long serialVersionUID = 1L;

                @Override
                public List<String> getObject() {
                    return getLiteralValues();
                }

                @Override
                public void setObject(List<String> strings) {
                    ExpressionUtil.updateLiteralExpressionValue(getModelObject(), strings,
                            pageBase.getPrismContext());
                }

                @Override
                public void detach() {

                }
            }, new NonEmptyLoadableModel<Boolean>(false) {
                @NotNull
                @Override
                protected Boolean load() {
                    return false;
                }
            }, false) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void modelObjectUpdatePerformed(AjaxRequestTarget target, List<String> modelObject) {
            ExpressionUtil.updateLiteralExpressionValue(ExpressionValuePanel.this.getModelObject(), modelObject,
                    pageBase.getPrismContext());
        }
    };
    literalValueInput.setOutputMarkupId(true);
    literalValueContainer.add(literalValueInput);

    AjaxLink removeButton = new AjaxLink(ID_DELETE_LITERAL_VALUE_BUTTON) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            ExpressionUtil.removeEvaluatorByName(ExpressionValuePanel.this.getModelObject(),
                    SchemaConstantsGenerated.C_VALUE);
            target.add(ExpressionValuePanel.this);
        }
    };
    literalValueContainer.add(removeButton);

}

From source file:com.evolveum.midpoint.web.component.input.ExpressionValuePanel.java

License:Apache License

private void initValueExpressionPanel() {
    WebMarkupContainer shadowRefValueContainer = new WebMarkupContainer(ID_SHADOW_REF_VALUE_CONTAINER);
    shadowRefValueContainer.setOutputMarkupId(true);
    shadowRefValueContainer.add(new VisibleEnableBehaviour() {
        private static final long serialVersionUID = 1L;

        @Override//  w  w  w. j a  v  a  2 s  .co  m
        public boolean isVisible() {
            return ExpressionUtil.getShadowRefValue(getModelObject()) != null;
        }
    });
    add(shadowRefValueContainer);

    shadowsListModel = new LoadableModel<List<ShadowType>>() {
        @Override
        protected List<ShadowType> load() {
            return WebComponentUtil.loadReferencedObjectList(
                    ExpressionUtil.getShadowRefValue(ExpressionValuePanel.this.getModelObject()),
                    OPERATION_LOAD_SHADOW, pageBase);
        }
    };
    MultiValueChoosePanel<ShadowType> shadowRefPanel = new MultiValueChoosePanel<ShadowType>(
            ID_SHADOW_REF_VALUE_INPUT, shadowsListModel, Arrays.asList(ShadowType.class), false) {
        private static final long serialVersionUID = 1L;

        @Override
        protected ObjectFilter getCustomFilter() {
            return WebComponentUtil.getShadowTypeFilterForAssociation(construction, OPERATION_LOAD_RESOURCE,
                    pageBase);
        }

        @Override
        protected void removePerformedHook(AjaxRequestTarget target, ShadowType shadow) {
            if (shadow != null && StringUtils.isNotEmpty(shadow.getOid())) {
                ExpressionUtil.removeShadowRefEvaluatorValue(ExpressionValuePanel.this.getModelObject(),
                        shadow.getOid(), pageBase.getPrismContext());
            }
        }

        @Override
        protected void choosePerformedHook(AjaxRequestTarget target, List<ShadowType> selectedList) {
            ShadowType shadow = selectedList != null && selectedList.size() > 0 ? selectedList.get(0) : null;
            if (shadow != null && StringUtils.isNotEmpty(shadow.getOid())) {
                ExpressionUtil.addShadowRefEvaluatorValue(ExpressionValuePanel.this.getModelObject(),
                        shadow.getOid(), pageBase.getPrismContext());
            }
        }

        @Override
        protected void selectPerformed(AjaxRequestTarget target, List<ShadowType> chosenValues) {
            addPerformed(target, chosenValues);
        }

    };
    shadowRefPanel.setOutputMarkupId(true);

    //        ChooseTypePanel<ShadowType> shadowRefPanel = new ChooseTypePanel<ShadowType>(ID_SHADOW_REF_VALUE_INPUT, getShadowRefValue()) {
    //            private static final long serialVersionUID = 1L;
    //
    //            @Override
    //            protected void executeCustomAction(AjaxRequestTarget target, ShadowType object) {
    //                ExpressionUtil.addShadowRefEvaluatorValue(ExpressionValuePanel.this.getModelObject(), object == null ? null : object.getOid(),
    //                        pageBase.getPrismContext());
    //            }
    //
    //            @Override
    //            protected void executeCustomRemoveAction(AjaxRequestTarget target) {
    //                ExpressionUtil.removeEvaluatorByName(ExpressionValuePanel.this.getModelObject(), SchemaConstantsGenerated.C_VALUE);
    //            }
    //
    //            @Override
    //            protected ObjectQuery getChooseQuery() {
    //                ObjectQuery query = new ObjectQuery();
    //
    //                ExpressionType expression = ExpressionValuePanel.this.getModelObject();
    //                if (expression == null || construction == null){
    //                    return new ObjectQuery();
    //                }
    //                PrismObject<ResourceType> resource = WebComponentUtil.getConstructionResource(construction, OPERATION_LOAD_RESOURCE,
    //                        ExpressionValuePanel.this.getPageBase());
    //                if (resource == null){
    //                    return new ObjectQuery();
    //                }
    //
    //                try {
    //                    RefinedResourceSchema refinedResourceSchema = RefinedResourceSchema.getRefinedSchema(resource);
    //                    RefinedObjectClassDefinition oc = refinedResourceSchema.getRefinedDefinition(construction.getKind(), construction.getIntent());
    //                    if (oc == null){
    //                        return new ObjectQuery();
    //                    }
    //                    Collection<RefinedAssociationDefinition> refinedAssociationDefinitions = oc.getAssociationDefinitions();
    //
    //                    for (RefinedAssociationDefinition refinedAssociationDefinition : refinedAssociationDefinitions) {
    //                        S_FilterEntryOrEmpty atomicFilter = QueryBuilder.queryFor(ShadowType.class, pageBase.getPrismContext());
    //                        List<ObjectFilter> orFilterClauses = new ArrayList<>();
    //                        refinedAssociationDefinition.getIntents()
    //                                .forEach(intent -> orFilterClauses.add(atomicFilter.item(ShadowType.F_INTENT).eq(intent).buildFilter()));
    //                        OrFilter intentFilter = OrFilter.createOr(orFilterClauses);
    //
    //                        AndFilter filter = (AndFilter) atomicFilter.item(ShadowType.F_KIND).eq(refinedAssociationDefinition.getKind()).and()
    //                                .item(ShadowType.F_RESOURCE_REF).ref(resource.getOid(), ResourceType.COMPLEX_TYPE).buildFilter();
    //                        filter.addCondition(intentFilter);
    //                        query.setFilter(filter);
    //                    }
    //                } catch (SchemaException ex) {
    //                    LOGGER.error("Couldn't create query filter for ShadowType popup list: {}" , ex.getErrorTypeMessage());
    //                }
    //                return query;
    //            }
    //
    //            @Override
    //            public Class<ShadowType> getObjectTypeClass() {
    //                return ShadowType.class;
    //            }
    //        };
    shadowRefValueContainer.add(shadowRefPanel);

    AjaxLink removeButton = new AjaxLink(ID_DELETE_SHADOW_REF_VALUE_BUTTON) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            ExpressionUtil.removeEvaluatorByName(ExpressionValuePanel.this.getModelObject(),
                    SchemaConstantsGenerated.C_VALUE);
            target.add(ExpressionValuePanel.this);
        }
    };
    shadowRefValueContainer.add(removeButton);
}

From source file:com.evolveum.midpoint.web.component.input.ExpressionValuePanel.java

License:Apache License

private void initAssociationTargetSearchExpressionPanel() {
    WebMarkupContainer targetSearchContainer = new WebMarkupContainer(ID_ASSOCIATION_TARGET_SEARCH_CONTAINER);
    targetSearchContainer.setOutputMarkupId(true);
    targetSearchContainer.add(new VisibleEnableBehaviour() {
        private static final long serialVersionUID = 1L;

        @Override/*w w w.  j  a  va  2  s  .c  om*/
        public boolean isVisible() {
            MapXNode node = ExpressionUtil.getAssociationTargetSearchFilterValuesMap(getModelObject());
            return node != null && !node.isEmpty();
        }
    });
    add(targetSearchContainer);

    AjaxLink removeButton = new AjaxLink(ID_DELETE_TARGET_SEARCH_EXP_BUTTON) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            ExpressionUtil.removeEvaluatorByName(ExpressionValuePanel.this.getModelObject(),
                    SchemaConstantsGenerated.C_ASSOCIATION_TARGET_SEARCH);
            target.add(ExpressionValuePanel.this);
        }
    };
    targetSearchContainer.add(removeButton);

    TextPanel<String> targetSearchFilterPathInput = new TextPanel<>(ID_TARGET_SEARCH_PATH_INPUT,
            Model.of(ExpressionUtil.getTargetSearchExpPathValue(getModelObject())));
    targetSearchFilterPathInput.setOutputMarkupId(true);
    targetSearchFilterPathInput.getBaseFormComponent().add(new EmptyOnChangeAjaxFormUpdatingBehavior() {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            String pathValue = targetSearchFilterPathInput.getBaseFormComponent().getValue();
            if (getModelObject() == null) {
                getModel().setObject(new ExpressionType());
            }
            try {
                ExpressionUtil.updateAssociationTargetSearchPath(getModelObject(),
                        getPrismContext().itemPathParser().asItemPathType(pathValue), getPrismContext());
            } catch (Exception ex) {
                pageBase.getFeedbackPanel().getFeedbackMessages()
                        .add(new FeedbackMessage(ExpressionValuePanel.this, ex.getLocalizedMessage(), 0));
                target.add(pageBase.getFeedbackPanel());
            }
        }
    });
    targetSearchContainer.add(targetSearchFilterPathInput);

    TextPanel<String> targetSearchFilterValueInput = new TextPanel<>(ID_TARGET_SEARCH_VALUE_INPUT,
            Model.of(ExpressionUtil.getTargetSearchExpValue(getModelObject())));
    targetSearchFilterValueInput.setOutputMarkupId(true);
    targetSearchFilterValueInput.getBaseFormComponent().add(new EmptyOnChangeAjaxFormUpdatingBehavior() {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            String value = targetSearchFilterValueInput.getBaseFormComponent().getValue();
            String path = targetSearchFilterPathInput.getBaseFormComponent().getValue();
            if (getModelObject() == null) {
                getModel().setObject(new ExpressionType());
            }
            try {
                ExpressionUtil.updateAssociationTargetSearchValue(getModelObject(), path, value,
                        pageBase.getPrismContext());
            } catch (SchemaException ex) {
                pageBase.getFeedbackPanel().getFeedbackMessages()
                        .add(new FeedbackMessage(ExpressionValuePanel.this, ex.getErrorTypeMessage(), 0));
                target.add(pageBase.getFeedbackPanel());
            }
        }
    });
    targetSearchContainer.add(targetSearchFilterValueInput);

}

From source file:com.evolveum.midpoint.web.component.menu.MainMenuPanel.java

License:Apache License

private void initLayout() {
    final MainMenuItem menu = getModelObject();

    WebMarkupContainer item = new WebMarkupContainer(ID_ITEM);
    item.add(AttributeModifier.replace("class", new AbstractReadOnlyModel<String>() {
        private static final long serialVersionUID = 1L;

        @Override/*from w  w w .  ja  v  a  2 s  .  co m*/
        public String getObject() {
            if (menu.isMenuActive((WebPage) getPage())) {
                return "active";
            }

            for (MenuItem item : menu.getItems()) {
                if (item.isMenuActive((WebPage) getPage())) {
                    return "active";
                }
            }

            return !menu.getItems().isEmpty() ? "treeview" : null;
        }
    }));
    add(item);

    WebMarkupContainer link;
    if (menu.getPageClass() != null) {
        link = new AjaxLink(ID_LINK) {
            private static final long serialVersionUID = 1L;

            @Override
            public void onClick(AjaxRequestTarget target) {
                mainMenuPerformed(menu);
            }
        };
    } else if (menu instanceof AdditionalMenuItem) {
        link = new AjaxLink(ID_LINK) {
            private static final long serialVersionUID = 1L;

            @Override
            public void onClick(AjaxRequestTarget target) {
                additionalMenuPerformed(menu);
            }
        };
    } else {
        link = new WebMarkupContainer(ID_LINK);
    }
    item.add(link);

    WebMarkupContainer icon = new WebMarkupContainer(ID_ICON);
    icon.add(AttributeModifier.replace("class", new PropertyModel<>(menu, MainMenuItem.F_ICON_CLASS)));
    link.add(icon);

    Label label = new Label(ID_LABEL, menu.getNameModel());
    link.add(label);

    final PropertyModel<String> bubbleModel = new PropertyModel<>(menu, MainMenuItem.F_BUBBLE_LABEL);

    Label bubble = new Label(ID_BUBBLE, bubbleModel);
    bubble.add(new VisibleEnableBehaviour() {
        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            return bubbleModel.getObject() != null;
        }
    });
    link.add(bubble);

    WebMarkupContainer arrow = new WebMarkupContainer(ID_ARROW);
    arrow.add(new VisibleEnableBehaviour() {
        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            return !menu.getItems().isEmpty() && bubbleModel.getObject() == null;
        }
    });
    link.add(arrow);

    WebMarkupContainer submenu = new WebMarkupContainer(ID_SUBMENU);
    submenu.add(new VisibleEnableBehaviour() {
        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            return !menu.getItems().isEmpty();
        }
    });
    item.add(submenu);

    ListView<MenuItem> subItem = new ListView<MenuItem>(ID_SUB_ITEM,
            new Model((Serializable) menu.getItems())) {

        @Override
        protected void populateItem(ListItem<MenuItem> listItem) {
            createSubmenu(listItem);
        }
    };
    submenu.add(subItem);
}

From source file:com.evolveum.midpoint.web.component.MultiValueChoosePanel.java

License:Apache License

private void initLayout(final IModel<String> label, final String labelSize, final String textSize,
        final boolean required, Class<T> type) {

    Label l = new Label(ID_LABEL, label);

    if (StringUtils.isNotEmpty(labelSize)) {
        l.add(AttributeAppender.prepend("class", labelSize));
    }/*from   ww w  .  ja  va2 s .c  om*/
    add(l);

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

        @Override
        protected void populateItem(final ListItem<T> listItem) {
            WebMarkupContainer textWrapper = new WebMarkupContainer(ID_TEXT_WRAPPER);
            textWrapper.add(AttributeAppender.prepend("class", new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    StringBuilder sb = new StringBuilder();
                    if (StringUtils.isNotEmpty(textSize)) {
                        sb.append(textSize).append(' ');
                    }
                    if (listItem.getIndex() > 0 && StringUtils.isNotEmpty(getOffsetClass())) {
                        sb.append(getOffsetClass()).append(' ');
                        sb.append(CLASS_MULTI_VALUE);
                    }
                    return sb.toString();
                }
            }));
            listItem.add(textWrapper);

            TextField text = new TextField<String>(ID_TEXT, createTextModel(listItem.getModel()));
            text.add(new AjaxFormComponentUpdatingBehavior("onblur") {
                @Override
                protected void onUpdate(AjaxRequestTarget ajaxRequestTarget) {
                }
            });
            text.setRequired(required);
            text.setEnabled(false);
            text.add(AttributeAppender.replace("placeholder", label));
            text.setLabel(label);
            textWrapper.add(text);

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

            WebMarkupContainer buttonGroup = new WebMarkupContainer(ID_BUTTON_GROUP);
            buttonGroup.add(AttributeAppender.append("class", new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    if (listItem.getIndex() > 0 && StringUtils.isNotEmpty(labelSize)) {
                        return CLASS_MULTI_VALUE;
                    }

                    return null;
                }
            }));

            AjaxLink edit = new AjaxLink(ID_EDIT) {

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

            listItem.add(buttonGroup);

            initButtons(buttonGroup, listItem);
        }
    };

    initDialog(type);
    add(repeater);
}

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);//from  ww  w.j av a2s .  co  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.ObjectPolicyConfigurationEditor.java

License:Apache License

private void initButtons(WebMarkupContainer buttonGroup, final ListItem item) {
    AjaxLink add = new AjaxLink(ID_BUTTON_ADD) {

        @Override/*from  w  w w.  j a va2  s.c om*/
        public void onClick(AjaxRequestTarget target) {
            addPerformed(target);
        }
    };
    add.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            return isAddButtonVisible(item);
        }
    });
    buttonGroup.add(add);

    AjaxLink remove = new AjaxLink(ID_BUTTON_REMOVE) {

        @Override
        public void onClick(AjaxRequestTarget target) {
            removePerformed(target, item);
        }
    };
    remove.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            return isRemoveButtonVisible();
        }
    });
    buttonGroup.add(remove);
}

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 av a 2  s .  c  o m*/
        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 .  jav  a 2 s .  c o m
        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.PrismOptionButtonPanel.java

License:Apache License

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

        @Override//from ww  w .  j  a  v  a 2s  .  co m
        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);
}