Example usage for org.apache.wicket.markup.html.list ListView ListView

List of usage examples for org.apache.wicket.markup.html.list ListView ListView

Introduction

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

Prototype

public ListView(final String id, final List<T> list) 

Source Link

Usage

From source file:com.evolveum.midpoint.web.component.model.delta.ModificationsPanel.java

License:Apache License

@Override
protected void initLayout() {

    add(new ListView<ModificationDto>(ID_MODIFICATION,
            new PropertyModel(getModel(), DeltaDto.F_MODIFICATIONS)) {
        @Override/*w w  w.j  a v  a 2  s  .  co  m*/
        protected void populateItem(ListItem<ModificationDto> item) {
            item.add(new Label(ID_ATTRIBUTE, new PropertyModel(item.getModel(), ModificationDto.F_ATTRIBUTE)));
            item.add(new Label(ID_CHANGE_TYPE,
                    new PropertyModel(item.getModel(), ModificationDto.F_CHANGE_TYPE)));
            if (item.getModelObject().getValue() instanceof ContainerValueDto) {
                item.add(new ContainerValuePanel(ID_VALUE,
                        new Model((ContainerValueDto) item.getModelObject().getValue())));
            } else { // should be String
                item.add(new Label(ID_VALUE, new PropertyModel(item.getModel(), ModificationDto.F_VALUE)));
            }
        }
    });
}

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));
    }/* w ww .ja v  a 2  s .co  m*/
    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.objectdetails.FocusProjectionsTabPanel.java

License:Apache License

private void initLayout(final PageBase page) {

    final WebMarkupContainer shadows = new WebMarkupContainer(ID_SHADOWS);
    shadows.setOutputMarkupId(true);/*w  ww .j  ava2 s  .com*/
    add(shadows);

    InlineMenu accountMenu = new InlineMenu(ID_SHADOW_MENU, new Model((Serializable) createShadowMenu()));
    shadows.add(accountMenu);

    final ListView<FocusSubwrapperDto<ShadowType>> projectionList = new ListView<FocusSubwrapperDto<ShadowType>>(
            ID_SHADOW_LIST, projectionModel) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<FocusSubwrapperDto<ShadowType>> item) {
            PackageResourceReference packageRef;
            final FocusSubwrapperDto<ShadowType> dto = item.getModelObject();
            final PropertyModel<ObjectWrapper<F>> objectWrapperModel = new PropertyModel<ObjectWrapper<F>>(
                    item.getModel(), "object");

            final Panel shadowPanel;

            if (dto.isLoadedOK()) {
                packageRef = new PackageResourceReference(ImgResources.class, ImgResources.HDD_PRISM);

                shadowPanel = new PrismObjectPanel<F>(ID_SHADOW,
                        new PropertyModel<ObjectWrapper<F>>(item.getModel(), "object"), packageRef,
                        getMainForm(), getPageBase());
            } else {
                shadowPanel = new SimpleErrorPanel<ShadowType>(ID_SHADOW, item.getModel()) {
                    private static final long serialVersionUID = 1L;

                    @Override
                    public void onShowMorePerformed(AjaxRequestTarget target) {
                        OperationResult fetchResult = dto.getResult();
                        if (fetchResult != null) {
                            showResult(fetchResult);
                            target.add(page.getFeedbackPanel());
                        }
                    }
                };
            }

            shadowPanel.setOutputMarkupId(true);

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

                @Override
                public boolean isVisible() {
                    FocusSubwrapperDto<ShadowType> shadowWrapperDto = item.getModelObject();
                    ObjectWrapper<ShadowType> shadowWrapper = shadowWrapperDto.getObject();
                    return !shadowWrapper.isMinimalized();
                }

            });

            item.add(shadowPanel);

            CheckTableHeader<F> shadowHeader = new CheckTableHeader<F>(ID_SHADOW_HEADER, objectWrapperModel) {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onClickPerformed(AjaxRequestTarget target) {
                    super.onClickPerformed(target);
                    onExpandCollapse(target, item.getModel());
                    target.add(shadows);
                }
            };
            if (item.getModel().getObject().getStatus().equals(UserDtoStatus.DELETE)) {
                shadowHeader.add(new AttributeModifier("class", "box-header with-border delete"));
            }
            item.add(shadowHeader);
        }
    };

    AjaxCheckBox accountCheckAll = new AjaxCheckBox(ID_SHADOW_CHECK_ALL, new Model()) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            for (FocusSubwrapperDto<ShadowType> dto : projectionList.getModelObject()) {
                if (dto.isLoadedOK()) {
                    ObjectWrapper<ShadowType> accModel = dto.getObject();
                    accModel.setSelected(getModelObject());
                }
            }

            target.add(shadows);
        }
    };
    shadows.add(accountCheckAll);

    shadows.add(projectionList);
}

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 a v  a 2s .c  om*/

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

License:Apache License

private <IW extends ItemWrapper> WebMarkupContainer addOrReplaceProperties(
        IModel<ContainerValueWrapper<C>> model, final Form form, ItemVisibilityHandler isPanalVisible,
        boolean isToBeReplaced) {
    isVisibleShowMoreButton = false;/*from   w  w w .j  a va 2s .c o m*/

    WebMarkupContainer propertiesLabel = new WebMarkupContainer(ID_PROPERTIES_LABEL);
    propertiesLabel.setOutputMarkupId(true);

    ListView<IW> properties = new ListView<IW>("properties", new PropertyModel<>(model, "properties")) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<IW> item) {
            item.setOutputMarkupId(true);
            if (item.getModelObject() instanceof PropertyOrReferenceWrapper) {
                PrismPropertyPanel propertyPanel = new PrismPropertyPanel("property", item.getModel(), form,
                        isPanalVisible, pageBase);
                propertyPanel.setOutputMarkupId(true);
                propertyPanel.add(new VisibleEnableBehaviour() {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public boolean isVisible() {
                        if (!model.getObject().isExpanded()) {
                            return false;
                        }
                        return propertyPanel.isVisible();
                    }
                });
                item.add(propertyPanel);
                item.add(AttributeModifier.append("class",
                        createStyleClassModel((IModel<ItemWrapper>) item.getModel())));
                if (propertyPanel.isVisible(isPanalVisible)
                        || ((PropertyOrReferenceWrapper) item.getModel().getObject()).isOnlyHide()) {
                    isVisibleShowMoreButton = true;
                }
                return;
            }
            WebMarkupContainer property = new WebMarkupContainer("property");
            item.add(new VisibleEnableBehaviour() {
                @Override
                public boolean isVisible() {
                    return false;
                }
            });
            item.add(property);
        }
    };
    properties.setReuseItems(true);
    properties.setOutputMarkupId(true);
    if (isToBeReplaced) {
        replace(propertiesLabel);
        propertiesLabel.add(properties);
    } else {
        add(propertiesLabel);
        propertiesLabel.add(properties);
    }
    return propertiesLabel;
}

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

License:Apache License

private <IW extends ItemWrapper> void addOrReplaceContainers(IModel<ContainerValueWrapper<C>> model,
        final Form form, ItemVisibilityHandler isPanalVisible, boolean isToBeReplaced) {
    ListView<IW> containers = new ListView<IW>("containers", new PropertyModel<>(model, "properties")) {
        private static final long serialVersionUID = 1L;

        @Override/*from   w  w  w  .j  a  va  2  s. com*/
        protected void populateItem(final ListItem<IW> item) {
            item.setOutputMarkupId(true);
            if (item.getModel().getObject() instanceof ContainerWrapper) {
                PrismContainerPanel<C> containerPanel = new PrismContainerPanel<C>("container",
                        (IModel<ContainerWrapper<C>>) item.getModel(), true, form, isPanalVisible, pageBase,
                        false);
                containerPanel.setOutputMarkupId(true);
                item.add(containerPanel);
                item.add(new VisibleEnableBehaviour() {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public boolean isVisible() {
                        if (!model.getObject().isExpanded()
                                && !model.getObject().getContainer().isShowOnTopLevel()) {
                            return false;
                        }

                        if (((ContainerWrapper) item.getModelObject() != null
                                && ((ContainerWrapper) item.getModelObject()).getItemDefinition() != null
                                && ((ContainerWrapper) item.getModelObject()).getItemDefinition()
                                        .getTypeName() != null
                                && ((ContainerWrapper) item.getModelObject()).getItemDefinition().getTypeName()
                                        .equals(MetadataType.COMPLEX_TYPE))
                                && (((ContainerWrapper) item.getModelObject()).getValues() != null
                                        && ((ContainerWrapper) item.getModelObject()).getValues().get(0) != null
                                        && !((ContainerWrapper<MetadataType>) item.getModelObject()).getValues()
                                                .get(0).isVisible())) {
                            return false;
                        }

                        if (model.getObject().containsMultipleMultivalueContainer(isPanalVisible)
                                && item.getModelObject().getItemDefinition().isMultiValue()
                                && CollectionUtils.isEmpty(item.getModelObject().getValues())) {
                            return false;
                        }

                        return containerPanel.isPanelVisible(isPanalVisible,
                                (IModel<ContainerWrapper<C>>) item.getModel());

                    }
                });
                if (!((ContainerWrapper) item.getModelObject() != null
                        && ((ContainerWrapper) item.getModelObject()).getItemDefinition() != null
                        && ((ContainerWrapper) item.getModelObject()).getItemDefinition().getTypeName() != null
                        && ((ContainerWrapper) item.getModelObject()).getItemDefinition().getTypeName()
                                .equals(MetadataType.COMPLEX_TYPE))) {
                    item.add(AttributeModifier.append("class", "container-wrapper"));
                }
                return;
            }
            WebMarkupContainer container = new WebMarkupContainer("container");
            item.add(new VisibleEnableBehaviour() {
                @Override
                public boolean isVisible() {
                    return false;
                }
            });
            item.add(container);
        }
    };
    containers.setReuseItems(true);
    containers.setOutputMarkupId(true);
    if (isToBeReplaced) {
        replace(containers);
    } else {
        add(containers);
    }
}

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

License:Apache License

private void initLayout(final IModel<ContainerWrapper> model, final Form form) {
    WebMarkupContainer header = new WebMarkupContainer("header");
    header.add(new VisibleEnableBehaviour() {

        @Override//from  ww w  .ja  v a2s  .c  o m
        public boolean isVisible() {
            return !model.getObject().isMain();
        }
    });
    add(header);

    header.add(new Label("label", new PropertyModel<>(model, "displayName")));

    ListView<PropertyWrapper> properties = new ListView<PropertyWrapper>("properties",
            new PropertyModel(model, "properties")) {

        @Override
        protected void populateItem(ListItem<PropertyWrapper> item) {
            item.add(new PrismPropertyPanel("property", item.getModel(), form));
            item.add(AttributeModifier.append("class", createStyleClassModel(item.getModel())));
        }
    };
    properties.setReuseItems(true);
    add(properties);
}

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

License:Apache License

private void initLayout(final IModel<ObjectWrapper> model, ResourceReference image, final Form form) {
    add(createHeader(ID_HEADER, model));

    WebMarkupContainer headerPanel = new WebMarkupContainer("headerPanel");
    headerPanel.add(new AttributeAppender("class", createHeaderClassModel(model), " "));
    //        TODO - attempt to fix row color application when certain actions performed, similar to AssignmentEditorPanel.
    //        headerPanel.add(AttributeModifier.append("class", createHeaderClassModel(model)));
    //        headerPanel.setOutputMarkupId(true);
    add(headerPanel);// w  w  w .j av  a 2 s  . c om
    headerPanel.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            return isShowHeader();
        }
    });

    Image shield = new Image("shield", new PackageResourceReference(ImgResources.class, ImgResources.SHIELD));
    shield.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            ObjectWrapper wrapper = model.getObject();
            return wrapper.isProtectedAccount();
        }
    });
    headerPanel.add(shield);

    Label header = new Label("header", createDisplayName(model));
    header.add(new AttributeAppender("class", createHeaderNameClassModel(model), " "));
    header.add(createHeaderOnClickBehaviour(model));
    headerPanel.add(header);
    Label description = new Label("description", createDescription(model));
    description.add(new AttributeModifier("title", createDescription(model)));

    description.add(createHeaderOnClickBehaviour(model));
    headerPanel.add(description);

    Image headerImg = new Image("headerImg", image);
    headerImg.add(createHeaderOnClickBehaviour(model));
    headerPanel.add(headerImg);

    initButtons(headerPanel, model);

    WebMarkupContainer body = new WebMarkupContainer("body");
    body.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            ObjectWrapper wrapper = model.getObject();
            return !wrapper.isMinimalized();
        }
    });
    add(body);

    ListView<ContainerWrapper> containers = new ListView<ContainerWrapper>("containers",
            new PropertyModel<List<ContainerWrapper>>(model, "containers")) {

        @Override
        protected void populateItem(ListItem<ContainerWrapper> item) {
            item.add(new PrismContainerPanel("container", item.getModel(), form));
        }
    };
    containers.setReuseItems(true);
    body.add(containers);
}

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

License:Apache License

private void addOrReplaceContainers(final Form form, ItemVisibilityHandler isPanelVisible,
        boolean isToBeReplaced) {
    ListView<ContainerWrapper<C>> containers = new ListView<ContainerWrapper<C>>(ID_CONTAINERS, getModel()) {
        private static final long serialVersionUID = 1L;

        @Override/*  ww  w .  ja  v  a2  s  .  com*/
        protected void populateItem(ListItem<ContainerWrapper<C>> item) {
            createContainerPanel(item, isPanelVisible, form);
        }
    };
    containers.setReuseItems(true);

    if (isToBeReplaced) {
        replace(containers);
    } else {
        add(containers);
    }
}

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

License:Apache License

private void initLayout(final IModel<IW> model, final Form form) {

    ListView<ValueWrapper> values = new ListView<ValueWrapper>("values", new PropertyModel<>(model, "values")) {
        private static final long serialVersionUID = 1L;

        @Override/* w  w w .ja va 2s  . c o  m*/
        protected void populateItem(final ListItem<ValueWrapper> item) {
            BasePanel panel = new PrismValuePanel("value", item.getModel(), createStringResource("smth"), form,
                    getValueCssClass(), getInputCssClass());
            item.add(panel);
            item.add(AttributeModifier.append("class", createStyleClassModel(item.getModel())));

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

                @Override
                public boolean isVisible() {
                    return isVisibleValue(item.getModel());
                }
            });
        }
    };
    values.add(new AttributeModifier("class", getValuesClass()));
    values.setReuseItems(true);
    add(values);
}