Search in sources :

Example 1 with Foo

use of org.apache.wicket.examples.tree.Foo in project wicket by apache.

the class BookmarkableFolderContent method newContentComponent.

@Override
public Component newContentComponent(String id, final AbstractTree<Foo> tree, IModel<Foo> model) {
    return new Folder<Foo>(id, tree, model) {

        private static final long serialVersionUID = 1L;

        @Override
        protected MarkupContainer newLinkComponent(String id, IModel<Foo> model) {
            Foo foo = model.getObject();
            if (tree.getProvider().hasChildren(foo)) {
                return super.newLinkComponent(id, model);
            } else {
                PageParameters parameters = new PageParameters();
                parameters.add("foo", foo.getId());
                return new BookmarkablePageLink<>(id, tree.getPage().getClass(), parameters);
            }
        }
    };
}
Also used : BookmarkablePageLink(org.apache.wicket.markup.html.link.BookmarkablePageLink) IModel(org.apache.wicket.model.IModel) Foo(org.apache.wicket.examples.tree.Foo) PageParameters(org.apache.wicket.request.mapper.parameter.PageParameters) Folder(org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder)

Example 2 with Foo

use of org.apache.wicket.examples.tree.Foo in project wicket by apache.

the class CheckedSelectableFolderContent method newContentComponent.

@Override
public Component newContentComponent(String id, final AbstractTree<Foo> tree, IModel<Foo> model) {
    return new CheckedFolder<Foo>(id, tree, model) {

        private static final long serialVersionUID = 1L;

        @Override
        protected IModel<Boolean> newCheckBoxModel(final IModel<Foo> model) {
            return new PropertyModel<>(model, "quux");
        }

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            Foo foo = getModelObject();
            // search first ancestor with quux not set
            while (!foo.getQuux() && foo.getParent() != null) {
                foo = foo.getParent();
            }
            tree.updateBranch(foo, target);
        }

        /**
         * Always clickable.
         */
        @Override
        protected boolean isClickable() {
            return true;
        }

        @Override
        protected void onClick(Optional<AjaxRequestTarget> targetOptional) {
            CheckedSelectableFolderContent.this.select(getModelObject(), tree, targetOptional);
        }

        @Override
        protected boolean isSelected() {
            return CheckedSelectableFolderContent.this.isSelected(getModelObject());
        }
    };
}
Also used : AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) IModel(org.apache.wicket.model.IModel) Optional(java.util.Optional) Foo(org.apache.wicket.examples.tree.Foo) PropertyModel(org.apache.wicket.model.PropertyModel) CheckedFolder(org.apache.wicket.extensions.markup.html.repeater.tree.content.CheckedFolder)

Aggregations

Foo (org.apache.wicket.examples.tree.Foo)2 IModel (org.apache.wicket.model.IModel)2 Optional (java.util.Optional)1 AjaxRequestTarget (org.apache.wicket.ajax.AjaxRequestTarget)1 CheckedFolder (org.apache.wicket.extensions.markup.html.repeater.tree.content.CheckedFolder)1 Folder (org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder)1 BookmarkablePageLink (org.apache.wicket.markup.html.link.BookmarkablePageLink)1 PropertyModel (org.apache.wicket.model.PropertyModel)1 PageParameters (org.apache.wicket.request.mapper.parameter.PageParameters)1