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

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

Introduction

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

Prototype

public ListView<T> setReuseItems(boolean reuseItems) 

Source Link

Document

If true re-rendering the list view is more efficient if the windows doesn't get changed at all or if it gets scrolled (compared to paging).

Usage

From source file:au.org.theark.study.web.component.manageuser.form.DetailForm.java

License:Open Source License

@SuppressWarnings("unchecked")
public void initialiseDetailForm() {
    userNameTxtField = new TextField<String>(Constants.USER_NAME);
    userNameTxtField.setOutputMarkupId(true);
    firstNameTxtField = new TextField<String>(Constants.FIRST_NAME);
    lastNameTxtField = new TextField<String>(Constants.LAST_NAME);
    emailTxtField = new TextField<String>(Constants.EMAIL);
    userPasswordField = new PasswordTextField(Constants.PASSWORD);
    confirmPasswordField = new PasswordTextField(Constants.CONFIRM_PASSWORD);
    oldPasswordField = new PasswordTextField(Constants.OLD_PASSWORD);
    groupPasswordContainer = new WebMarkupContainer("groupPasswordContainer");

    IModel<List<ArkUserRole>> iModel = new LoadableDetachableModel() {
        private static final long serialVersionUID = 1L;

        @Override//from w ww. j av  a  2s  .  co m
        protected Object load() {
            return containerForm.getModelObject().getArkUserRoleList();
        }
    };

    ListView listView = new ListView("arkUserRoleList", iModel) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem item) {
            // Each item will be ArkModuleVO use that to build the Module name and the drop down
            ArkUserRole arkUserRole = (ArkUserRole) item.getModelObject();
            ArkModule arkModule = arkUserRole.getArkModule();
            // Acts as the data source for ArkRoles
            ArrayList<ArkRole> arkRoleSourceList = iArkCommonService.getArkRoleLinkedToModule(arkModule);
            if (arkUserRole.getArkUser() == null
                    && arkModule.getName().equalsIgnoreCase(au.org.theark.core.Constants.ARK_MODULE_STUDY)) {
                // If the ArkUserRole is not assigned and the module is Study then set the default Role
                ArkRole arkRole = iArkCommonService
                        .getArkRoleByName(au.org.theark.core.Constants.ARK_STUDY_DEFAULT_ROLE);
                arkUserRole.setArkRole(arkRole);
            }

            PropertyModel arkUserRolePm = new PropertyModel(arkUserRole, "arkRole");
            ChoiceRenderer<ArkRole> defaultChoiceRenderer = new ChoiceRenderer<ArkRole>(Constants.NAME, "id");

            DropDownChoice<ArkRole> ddc = new DropDownChoice<ArkRole>("arkRole", arkUserRolePm,
                    arkRoleSourceList, defaultChoiceRenderer);

            item.add(new Label("moduleName", arkModule.getName()));// arkModule within ArkUserRole
            item.add(ddc);

        }
    };

    listView.setReuseItems(true);
    arkCrudContainerVO.getWmcForarkUserAccountPanel().add(listView);
    confirmationAnswer = new ConfirmationAnswer(false);
    confirmModal = new ModalWindow("modalWindow");
    confirmModal.setCookieName("yesNoPanel");
    confirmModal.setContent(
            new YesNoPanel(confirmModal.getContentId(), modalText, confirmModal, confirmationAnswer));
    confirmModal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
        private static final long serialVersionUID = 1L;

        public void onClose(AjaxRequestTarget target) {
            if (confirmationAnswer.isAnswer()) {
                //Add new roles for module wise to study
                iUserService.updateArkUserRoleListForExsistingUser(containerForm.getModelObject());
                //Up date for all the child studies.
                reNewArkUserRoleForChildStudies(containerForm);
                containerForm.getModelObject().setMode(Constants.MODE_EDIT);
                //onSavePostProcess(target);
                successModal.show(target);
            } else {//if no nothing be done.Just close I guess
            }
        }
    });
    successModal = new ModalWindow("successModalWindow");
    successModal.setCookieName("okPanel");
    successModal.setContent(new SuccessFullySaved(confirmModal.getContentId(),
            "The exsisting user added sucessfully to the Study", successModal));
    initChildStudyPalette();
    attachValidators();
    addDetailFormComponents();

}

From source file:com.evolveum.midpoint.gui.impl.page.admin.configuration.component.NotificationConfigTabPanel.java

License:Apache License

protected void initLayout() {

    PropertyWrapperFromContainerWrapperModel<MailConfigurationType, NotificationConfigurationType> mailConfig = new PropertyWrapperFromContainerWrapperModel<MailConfigurationType, NotificationConfigurationType>(
            getModel().getObject(), NotificationConfigurationType.F_MAIL);

    add(createHeader(ID_MAIL_CONFIG_HEADER,
            mailConfig.getObject().getItemDefinition().getTypeName().getLocalPart() + ".details"));

    Form form = new Form<>("form");

    mailConfigType = new RealValueFromSingleValuePropertyWrapperModel<MailConfigurationType>(mailConfig)
            .getObject();/*w  ww  .  j  a v  a2s .  c  om*/

    if (mailConfigType == null) {
        mailConfigType = new MailConfigurationType();
        ((PrismPropertyValue<MailConfigurationType>) mailConfig.getObject().getValues().get(0).getValue())
                .setValue(mailConfigType);
    }

    add(new TextFormGroup(ID_DEFAULT_FROM, new PropertyModel<String>(mailConfigType, "defaultFrom"),
            createStringResource(
                    mailConfig.getObject().getItemDefinition().getTypeName().getLocalPart() + ".defaultFrom"),
            "", getInputCssClass(), false, true));

    add(new TextFormGroup(ID_REDIRECT_TO_FILE, new PropertyModel<String>(mailConfigType, "redirectToFile"),
            createStringResource(mailConfig.getObject().getItemDefinition().getTypeName().getLocalPart()
                    + ".redirectToFile"),
            "", getInputCssClass(), false, true));

    add(new TextFormGroup(ID_LOG_TO_FILE, new PropertyModel<String>(mailConfigType, "logToFile"),
            createStringResource(
                    mailConfig.getObject().getItemDefinition().getTypeName().getLocalPart() + ".logToFile"),
            "", getInputCssClass(), false, true));

    add(new TriStateFormGroup(ID_DEBUG, new PropertyModel<Boolean>(mailConfigType, "debug"),
            createStringResource(
                    mailConfig.getObject().getItemDefinition().getTypeName().getLocalPart() + ".debug"),
            "", getInputCssClass(), false, true));

    add(createHeader(ID_MAIL_SERVER_CONFIG_HEADER,
            MailServerConfigurationType.COMPLEX_TYPE.getLocalPart() + ".details"));

    add(initServersTable());

    add(createHeader(ID_FILE_CONFIG_HEADER, FileConfigurationType.COMPLEX_TYPE.getLocalPart() + ".details"));

    PropertyWrapperFromContainerWrapperModel<FileConfigurationType, NotificationConfigurationType> fileConfig = new PropertyWrapperFromContainerWrapperModel<FileConfigurationType, NotificationConfigurationType>(
            getModel().getObject(), NotificationConfigurationType.F_FILE);

    WebMarkupContainer files = new WebMarkupContainer(ID_FILE_CONFIG);
    files.setOutputMarkupId(true);
    add(files);

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

        @Override
        protected void populateItem(final ListItem<ValueWrapper<FileConfigurationType>> item) {

            FileConfigurationType fileConfigType = item.getModelObject().getValue().getRealValue();

            item.add(createHeader(ID_VALUE_HEADER,
                    fileConfigType == null || fileConfigType.getName() == null
                            || fileConfigType.getName().isEmpty()
                                    ? (FileConfigurationType.COMPLEX_TYPE.getLocalPart() + ".details")
                                    : fileConfigType.getName()));

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

                @Override
                public void onClick(AjaxRequestTarget target) {
                    ((PrismPropertyValue<FileConfigurationType>) item.getModelObject().getValue())
                            .setValue(null);
                    item.getParent().remove(item.getId());
                    target.add(files);
                }
            };
            item.add(removeButton);

            TextFormGroup name = new TextFormGroup(ID_FILE_NAME,
                    fileConfigType != null ? new PropertyModel<String>(fileConfigType, "name") : Model.of(""),
                    createStringResource(fileConfigType == null ? ""
                            : (fileConfigType.COMPLEX_TYPE.getLocalPart() + ".name")),
                    "", getInputCssClass(), false, true);
            name.getField().add(new OnChangeAjaxBehavior() {

                private static final long serialVersionUID = 1L;

                @Override
                protected void onUpdate(AjaxRequestTarget target) {
                    ((FileConfigurationType) item.getModelObject().getValue().getRealValue())
                            .setName(name.getModelObject());
                }
            });
            item.add(name);

            TextFormGroup file = new TextFormGroup(ID_FILE_PATH,
                    fileConfigType != null ? new PropertyModel<String>(fileConfigType, "file") : Model.of(""),
                    createStringResource(fileConfigType == null ? ""
                            : (fileConfigType.COMPLEX_TYPE.getLocalPart() + ".file")),
                    "", getInputCssClass(), false, true);
            file.getField().add(new OnChangeAjaxBehavior() {

                private static final long serialVersionUID = 1L;

                @Override
                protected void onUpdate(AjaxRequestTarget target) {
                    ((FileConfigurationType) item.getModelObject().getValue().getRealValue())
                            .setFile(file.getModelObject());
                }
            });
            item.add(file);

            item.add(new VisibleEnableBehaviour() {

                @Override
                public boolean isVisible() {
                    return fileConfigType != null;
                }
            });
        }
    };
    values.add(new AttributeModifier("class", "col-md-6"));
    values.setReuseItems(true);
    files.add(values);

    AjaxLink addButton = new AjaxLink(ID_ADD_BUTTON) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            ValueWrapper<FileConfigurationType> newValue = fileConfig.getObject().createAddedValue();
            ((PrismPropertyValue<FileConfigurationType>) newValue.getValue())
                    .setValue(new FileConfigurationType());
            fileConfig.getObject().getValues().add(newValue);
            target.add(files);
        }
    };
    add(addButton);

}

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 av  a 2 s . 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/*ww w.  jav  a 2 s . c  om*/
        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  w ww .  ja v  a  2 s. c  om*/
        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  a2  s. com
    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/*from  w  w  w  . j a  va  2s .  co  m*/
        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//from w  w w  . j  av  a  2s .  c om
        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);
}

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

License:Apache License

private void initLayout(final IModel<PropertyWrapper> model, final Form form) {
    final IModel<String> label = createDisplayName(model);
    add(new Label("label", label));

    final IModel<String> helpText = new LoadableModel<String>(false) {

        @Override//from w  ww . j  a  v  a  2s . co  m
        protected String load() {
            return loadHelpText(model);
        }
    };
    Label help = new Label(ID_HELP);
    help.add(AttributeModifier.replace("title", helpText));
    help.add(new InfoTooltipBehavior());
    help.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            return StringUtils.isNotEmpty(helpText.getObject());
        }
    });
    add(help);

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

        @Override
        public boolean isVisible() {
            PropertyWrapper wrapper = model.getObject();
            PrismProperty property = wrapper.getItem();
            PrismPropertyDefinition def = property.getDefinition();

            if (ObjectType.F_NAME.equals(def.getName())) {
                //fix for "name as required" MID-789
                return true;
            }

            return def.isMandatory();
        }
    });
    add(required);

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

        @Override
        public boolean isVisible() {
            return hasOutbound(model);
        }
    });
    add(hasOutbound);

    WebMarkupContainer hasPendingModification = new WebMarkupContainer(ID_HAS_PENDING_MODIFICATION);
    hasPendingModification.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            return hasPendingModification(model);
        }
    });
    add(hasPendingModification);

    ListView<ValueWrapper> values = new ListView<ValueWrapper>("values",
            new PropertyModel<List<ValueWrapper>>(model, "values")) {

        @Override
        protected void populateItem(final ListItem<ValueWrapper> item) {
            item.add(new PrismValuePanel("value", item.getModel(), label, form));
            item.add(AttributeModifier.append("class", createStyleClassModel(item.getModel())));

            item.add(new VisibleEnableBehaviour() {

                @Override
                public boolean isVisible() {
                    return isVisibleValue(item.getModel());
                }
            });
        }
    };
    values.setReuseItems(true);
    add(values);
}

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

License:Apache License

private void initLayout(final IModel<SceneItemDto> model) {
    ListView<SceneItemLineDto> items = new ListView<SceneItemLineDto>(ID_ITEM_LINES,
            new PropertyModel<List<SceneItemLineDto>>(model, SceneItemDto.F_LINES)) {

        @Override/* w  w  w .j  a va2s  .com*/
        protected void populateItem(ListItem<SceneItemLineDto> item) {
            SceneItemLinePanel panel = new SceneItemLinePanel(ID_ITEM_LINE, item.getModel());
            item.add(panel);
        }
    };
    items.setReuseItems(true);
    add(items);
}