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:org.geoserver.web.services.BaseServiceAdminPage.java

License:Open Source License

void init(final IModel<T> infoModel) {
    T service = infoModel.getObject();/*from ww w.  j  a va2s.com*/

    dialog = new GeoServerDialog("dialog");
    add(dialog);

    Form form = new Form("form", new CompoundPropertyModel(infoModel));
    add(form);

    if (service.getWorkspace() == null) {
        //create the panel that has the drop down list to switch between workspace
        form.add(new GlobalWorkspacePanel("workspace"));
    } else {
        //create just a panel with a label that signifies the workspace
        form.add(new LocalWorkspacePanel("workspace", service));
    }

    form.add(new HelpLink("workspaceHelp").setDialog(dialog));

    form.add(new Label("service.enabled",
            new StringResourceModel("service.enabled", this, null, new Object[] { getServiceName() })));
    form.add(new TextField("maintainer"));
    TextField onlineResource = new TextField("onlineResource");
    onlineResource.add(new UrlValidator());
    form.add(onlineResource);
    form.add(new CheckBox("enabled"));
    form.add(new CheckBox("citeCompliant"));
    form.add(new TextField("title"));
    form.add(new TextArea("abstract"));
    form.add(
            new KeywordsEditor("keywords", LiveCollectionModel.list(new PropertyModel(infoModel, "keywords"))));
    form.add(new TextField("fees"));
    form.add(new TextField("accessConstraints"));

    build(infoModel, form);

    //add the extension panels
    ListView extensionPanels = createExtensionPanelList("extensions", infoModel);
    extensionPanels.setReuseItems(true);
    form.add(extensionPanels);

    SubmitLink submit = new SubmitLink("submit", new StringResourceModel("save", (Component) null, null)) {
        @Override
        public void onSubmit() {
            try {
                handleSubmit((T) infoModel.getObject());
                doReturn();
            } catch (Exception e) {
                error(e);
            }
        }
    };
    form.add(submit);

    Button cancel = new Button("cancel", new StringResourceModel("cancel", (Component) null, null)) {
        public void onSubmit() {
            doReturn();
        }
    };
    form.add(cancel);
    //cancel.setDefaultFormProcessing( false );
}

From source file:org.geoserver.web.wicket.GeoServerTablePanel.java

License:Open Source License

protected void buildRowListView(final GeoServerDataProvider<T> dataProvider, Item item,
        final IModel itemModel) {
    // create one component per viewable property
    ListView items = new ListView("itemProperties", dataProvider.getVisibleProperties()) {

        @Override/* ww w.j a v a2 s. c o  m*/
        protected void populateItem(ListItem item) {
            Property<T> property = (Property<T>) item.getModelObject();

            Component component = getComponentForProperty("component", itemModel, property);

            if (component == null) {
                // show a plain label if the the subclass did not create any component
                component = new Label("component", property.getModel(itemModel));
            } else if (!"component".equals(component.getId())) {
                // add some checks for the id, the error message
                // that wicket returns in case of mismatch is not
                // that helpful
                throw new IllegalArgumentException("getComponentForProperty asked " + "to build a component "
                        + "with id = 'component' " + "for property '" + property.getName() + "', but got '"
                        + component.getId() + "' instead");
            }
            item.add(component);
            onPopulateItem(property, item);
        }
    };
    items.setReuseItems(true);
    item.add(items);
}

From source file:org.geoserver.web.wicket.ReorderableTablePanel.java

License:Open Source License

protected void buildRowListView(final GeoServerDataProvider<T> dataProvider, Item item,
        final IModel itemModel) {
    // create one component per viewable property
    ListView items = new ListView("itemProperties", dataProvider.getVisibleProperties()) {

        @Override/*from   w  w w .j  a v  a2s . co  m*/
        protected void populateItem(ListItem item) {
            Property<T> property = (Property<T>) item.getModelObject();

            Component component = null;
            if (property == POSITION) {
                ParamResourceModel upTitle = new ParamResourceModel("moveToTop", this);
                ParamResourceModel downTitle = new ParamResourceModel("moveToBottom", this);
                component = new UpDownPanel<T>("component", (T) itemModel.getObject(), dataProvider.getItems(),
                        ReorderableTablePanel.this, upTitle, downTitle);

            } else if (property == RENDERING_ORDER) {
                component = new Label("component", new Model());
            } else {
                component = getComponentForProperty("component", itemModel, property);
            }

            if (component == null) {
                // show a plain label if the the subclass did not create any component
                component = new Label("component", property.getModel(itemModel));
            } else if (!"component".equals(component.getId())) {
                // add some checks for the id, the error message
                // that wicket returns in case of mismatch is not
                // that helpful
                throw new IllegalArgumentException("getComponentForProperty asked " + "to build a component "
                        + "with id = 'component' " + "for property '" + property.getName() + "', but got '"
                        + component.getId() + "' instead");
            }
            item.add(component);
            onPopulateItem(property, item);
        }
    };
    items.setReuseItems(true);
    item.add(items);

    this.setOutputMarkupId(true);
}

From source file:org.hippoecm.frontend.dialog.AbstractDialog.java

License:Apache License

public AbstractDialog(IModel<T> model) {
    super("form", model);

    container = new Container(IDialogService.DIALOG_WICKET_ID);
    container.add(this);

    feedback = newFeedbackPanel("feedback");
    IFeedbackMessageFilter filter = feedback.getFilter();

    if (filter == null) {
        // make sure the feedback filters out messages unrelated to this dialog
        feedback.setFilter(new ContainerFeedbackMessageFilter(this));
    } else if (!(filter instanceof ContainerFeedbackMessageFilter)) {
        log.warn(/*www  . j av  a 2 s  .com*/
                "The dialog '{}' uses a feedback panel with a filter that does not extend ContainerFeedbackMessageFilter."
                        + "As a result, this dialog may show unrelated feedback messages.",
                getClass());
    }

    feedback.setOutputMarkupId(true);
    add(feedback);

    buttons = new LinkedList<>();
    ListView<ButtonWrapper> buttonsView = new ListView<ButtonWrapper>("buttons", buttons) {
        @Override
        protected void populateItem(ListItem<ButtonWrapper> item) {
            final Button button = item.getModelObject().getButton();
            if (StringUtils.isNotEmpty(buttonCssClass)) {
                button.add(CssClass.append(buttonCssClass));
            }
            item.add(button);
        }
    };
    buttonsView.setReuseItems(true);
    buttonsView.setOutputMarkupId(true);
    add(buttonsView);

    ok = new ButtonWrapper(new ResourceModel("ok")) {
        @Override
        protected void onSubmit() {
            handleSubmit();
        }

        @Override
        protected void onUpdateAjaxAttributes(final AjaxRequestAttributes attributes) {
            attributes.setChannel(ajaxChannel);
        }
    };
    ok.setKeyType(KeyType.Enter);
    buttons.add(ok);

    cancel = new ButtonWrapper(new ResourceModel("cancel")) {

        @Override
        protected void onSubmit() {
            cancelled = true;
            onCancel();
            closeDialog();
        }

        @Override
        protected Button decorate(final Button button) {
            button.add(new AjaxEventBehavior("onclick") {

                @Override
                protected void onComponentTag(final ComponentTag tag) {
                    super.onComponentTag(tag);
                    tag.put("type", "button");
                }

                @Override
                protected void onEvent(final AjaxRequestTarget target) {
                    onSubmit();
                }
            });
            button.setDefaultFormProcessing(false);
            return super.decorate(button);
        }
    };
    cancel.setKeyType(KeyType.Escape);
    buttons.add(cancel);

    if (isFullscreenEnabled()) {
        final AjaxButton goFullscreen = new AjaxButton(DialogConstants.BUTTON,
                new AbstractReadOnlyModel<String>() {
                    @Override
                    public String getObject() {
                        return getString(fullscreen ? "exit-fullscreen" : "fullscreen");
                    }
                }) {
            @Override
            protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
                target.appendJavaScript(getFullscreenScript());
                target.add(this); //update button label
                fullscreen = !fullscreen;
            }
        };
        addButton(goFullscreen);
    }

    if (addAjaxIndicator()) {
        add(indicator = new AjaxIndicatorAppender() {
            @Override
            protected CharSequence getIndicatorUrl() {
                return RequestCycle.get()
                        .urlFor(new ResourceReferenceRequestHandler(DialogConstants.AJAX_LOADER_GIF));
            }
        });
    }
}

From source file:org.jabylon.rest.ui.wicket.components.ClientSideTabbedPanel.java

License:Open Source License

public ClientSideTabbedPanel(final String id, List<T> tabs, boolean vertical, String persistenceKey) {
    super(id);//from  w w w  .  j a  v  a2s. c  o m
    WebMarkupContainer tabbable = new WebMarkupContainer("tabbable");

    if (vertical) {
        tabbable.add(new AttributeAppender("class", " tabs-left"));
    }
    if (persistenceKey != null) {
        tabbable.add(new AttributeModifier("data-tabsheet", persistenceKey));
    }
    add(tabbable);

    ListView<T> listView = new ListView<T>("tab-handles", tabs) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<T> item) {
            int index = item.getIndex();
            if (index == activeTab.getObject())
                item.add(new AttributeAppender("class", " active"));
            item.add(new ExternalLink("link", Model.of("#" + id + index), item.getModelObject().getTitle()));
        }
    };
    listView.setReuseItems(true);
    tabContents = new ArrayList<WebMarkupContainer>();
    ListView<T> tabContent = new ListView<T>("tab-content", tabs) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<T> item) {
            int index = item.getIndex();
            if (index == activeTab.getObject())
                item.add(new AttributeAppender("class", " active"));
            item.setMarkupId(id + index);
            Object object = item.getDefaultModelObject();
            if (object instanceof ITab) {
                ITab tab = (ITab) object;
                WebMarkupContainer panel = tab.getPanel("content");
                panel.setOutputMarkupId(true);
                tabContents.add(panel);
                item.add(panel);
            }
        }
    };
    tabContent.setReuseItems(true);
    tabbable.add(tabContent);
    tabbable.add(listView);
}

From source file:org.jabylon.rest.ui.wicket.config.ConfigTabPanel.java

License:Open Source License

public ConfigTabPanel(String id, final List<ConfigSection<T>> sections, final IModel<T> model,
        final Preferences preferences) {
    super(id, model);
    ListView<ConfigSection<T>> view = new ListView<ConfigSection<T>>("sections", sections) {

        private static final long serialVersionUID = 1L;

        @Override/*from w  w w  . j a v a  2  s  .  c  o m*/
        protected void populateItem(ListItem<ConfigSection<T>> arg0) {
            ConfigSection<T> object = arg0.getModelObject();
            WebMarkupContainer container = object.createContents("content", model, preferences);
            arg0.add(container);
            container.setVisibilityAllowed(hasPermission(object));
        }

    };
    view.setReuseItems(true);
    add(view);
}

From source file:org.jabylon.rest.ui.wicket.config.sections.ProjectVersionsConfigSection.java

License:Open Source License

public ProjectVersionsConfigSection(String id, IModel<Project> model, Preferences config) {
    super(id, model);
    add(buildAddNewLink(model));/*  w  ww  . j  a  v  a  2 s. c  o m*/
    ComplexEObjectListDataProvider<ProjectVersion> provider = new ComplexEObjectListDataProvider<ProjectVersion>(
            model, PropertiesPackage.Literals.RESOLVABLE__CHILDREN);
    ListView<ProjectVersion> project = new ListView<ProjectVersion>("versions", provider) {

        private static final long serialVersionUID = 1L;
        private ProgressionModel progressModel;

        @Override
        protected void populateItem(ListItem<ProjectVersion> item) {
            item.setOutputMarkupId(true);
            item.add(new Label("name", item.getModelObject().getName()));
            item.add(new Label("summary", new StringResourceModel("ProjectVersionsConfigSection.summary", item,
                    null, item.getModel().getObject().getChildren().size())));
            progressModel = new ProgressionModel("");
            final ProgressPanel progressPanel = new ProgressPanel("progress", progressModel);

            item.add(progressPanel);
            ProjectVersion projectVersion = item.getModelObject();
            item.add(new BookmarkablePageLink<Void>("edit", SettingsPage.class,
                    WicketUtil.buildPageParametersFor(projectVersion)));
            item.add(createCheckoutAction(progressPanel, item.getModel()));
            item.add(createRescanAction(progressPanel, item.getModel()));
            item.add(createUpdateAction(progressPanel, item.getModel()));
            item.add(createResetAction(progressPanel, item.getModel()));
            item.add(createCommitAction(progressPanel, item.getModel()));
            item.add(createDeleteAction(progressPanel, item.getModel()));

        }

    };
    project.setReuseItems(true);
    project.setOutputMarkupId(true);
    add(project);
}

From source file:org.jabylon.rest.ui.wicket.config.sections.security.RolesConfigSection.java

License:Open Source License

public RolesConfigSection(String id, IModel<UserManagement> model) {
    super(id, model);
    ComplexEObjectListDataProvider<Role> provider = new ComplexEObjectListDataProvider<Role>(model,
            UsersPackage.Literals.USER_MANAGEMENT__ROLES);
    ListView<Role> roleList = new ListView<Role>("role.row", provider) {

        private static final long serialVersionUID = 1L;

        @Override//from   w  w  w .  j a  va 2s  .c  om
        protected void populateItem(ListItem<Role> item) {

            IModel<String> nameProperty = new EObjectPropertyModel<String, Role>(item.getModel(),
                    UsersPackage.Literals.ROLE__NAME);
            item.add(new Label("rolename", nameProperty));
            item.add(new Label("roles", buildRoles(item.getModelObject())));
            PageParameters params = new PageParameters(getPage().getPageParameters());
            params.set(params.getIndexedCount(), "roles");
            params.set(params.getIndexedCount(), item.getModelObject().getName());
            item.add(new BookmarkablePageLink<Void>("edit", SettingsPage.class, params));
            item.add(new Link<Role>("delete", item.getModel()) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick() {
                    try {
                        TransactionUtil.deleteWithCrossRefs(getModelObject());
                    } catch (CommitException e) {
                        getSession().error(e.getMessage());
                        logger.error("Failed to commit", e);
                    }
                }

            });
        }
    };
    add(roleList);
    roleList.setReuseItems(true);
    add(buildAddNewLink(getModel()));
}

From source file:org.jabylon.rest.ui.wicket.config.sections.security.RoleUsersConfigSection.java

License:Open Source License

public RoleUsersConfigSection(String id, IModel<UserManagement> model) {
    super(id, model);
    ComplexEObjectListDataProvider<Role> provider = new ComplexEObjectListDataProvider<Role>(model,
            UsersPackage.Literals.USER_MANAGEMENT__ROLES);
    ListView<Role> roleList = new ListView<Role>("role.row", provider) {

        private static final long serialVersionUID = 1L;

        @Override/*  w  w  w .j  av  a  2s  .c o m*/
        protected void populateItem(ListItem<Role> item) {

            IModel<String> nameProperty = new EObjectPropertyModel<String, Role>(item.getModel(),
                    UsersPackage.Literals.ROLE__NAME);
            item.add(new Label("rolename", nameProperty));
            item.add(new Label("roles", buildRoles(item.getModelObject())));
            PageParameters params = new PageParameters(getPage().getPageParameters());
            params.set(params.getIndexedCount(), "roles");
            params.set(params.getIndexedCount(), item.getModelObject().getName());
            item.add(new BookmarkablePageLink<Void>("edit", SettingsPage.class, params));
            item.add(new Link<Role>("delete", item.getModel()) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick() {
                    try {
                        TransactionUtil.deleteWithCrossRefs(getModelObject());
                    } catch (CommitException e) {
                        getSession().error(e.getMessage());
                        logger.error("Failed to commit", e);
                    }
                }

            });
        }
    };
    roleList.setReuseItems(true);
    add(roleList);
    add(buildAddNewLink(getModel()));
}

From source file:org.jabylon.rest.ui.wicket.config.sections.security.UsersConfigSection.java

License:Open Source License

public UsersConfigSection(String id, IModel<UserManagement> model) {
    super(id, model);
    ComplexEObjectListDataProvider<User> provider = new ComplexEObjectListDataProvider<User>(model,
            UsersPackage.Literals.USER_MANAGEMENT__USERS);
    ListView<User> userList = new ListView<User>("user.row", provider) {

        private static final long serialVersionUID = 1L;

        @Override//  w  w w .j av a2s. c om
        protected void populateItem(ListItem<User> item) {

            item.add(new UserImagePanel("username", item.getModel()));
            item.add(new Label("roles", buildRoles(item.getModelObject())));
            PageParameters params = new PageParameters(getPage().getPageParameters());
            params.set(params.getIndexedCount(), "users");
            String name = item.getModelObject().getName();
            //so it doesn't crash on a broken model
            if (name == null)
                name = "";
            params.set(params.getIndexedCount(), name);
            item.add(new BookmarkablePageLink<Void>("edit", SettingsPage.class, params));
            item.add(new Link<User>("delete", item.getModel()) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick() {
                    try {
                        TransactionUtil.deleteWithCrossRefs(getModelObject());
                    } catch (CommitException e) {
                        getSession().error(e.getMessage());
                        logger.error("Failed to commit", e);
                    }
                }

            });
        }
    };
    userList.setReuseItems(true);
    add(userList);
    add(buildAddNewLink(getModel()));
}