Search in sources :

Example 1 with Folder

use of org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder 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 Folder

use of org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder in project openmeetings by apache.

the class FileItemTree method newContentComponent.

@Override
protected Component newContentComponent(String id, IModel<BaseFileItem> node) {
    return new Folder<BaseFileItem>(id, this, node) {

        private static final long serialVersionUID = 1L;

        @Override
        protected Component newLabelComponent(String id, final IModel<BaseFileItem> lm) {
            BaseFileItem r = lm.getObject();
            return Type.Folder == r.getType() || r.getId() == null ? new FolderPanel(id, lm, treePanel) : new FileItemPanel(id, lm, treePanel);
        }

        @Override
        protected boolean isSelected() {
            return treePanel.isSelected(getModelObject());
        }

        @Override
        protected boolean isClickable() {
            return FileItemTree.isClickable();
        }

        @Override
        protected void onClick(Optional<AjaxRequestTarget> targetOptional) {
            FileItemTree.this.onClick(targetOptional.get(), getModelObject());
        }

        @Override
        protected MarkupContainer newLinkComponent(String id, IModel<BaseFileItem> model) {
            final BaseFileItem f = getModelObject();
            return new AjaxLink<Void>(id) {

                private static final long serialVersionUID = 1L;

                @Override
                public boolean isEnabled() {
                    return FileItemTree.isClickable();
                }

                @Override
                public void onClick(AjaxRequestTarget target) {
                    FileItemTree.this.onClick(target, f);
                }

                @Override
                protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
                    super.updateAjaxAttributes(attributes);
                    attributes.getDynamicExtraParameters().add(String.format("return {%s: JSON.stringify({%s: attrs.event.shiftKey, %s: attrs.event.ctrlKey})};", PARAM_MOD, PARAM_SHIFT, PARAM_CTRL));
                }
            };
        }

        @Override
        protected String getOtherStyleClass(BaseFileItem r) {
            return getItemStyle(r, false);
        }

        @Override
        protected String getOpenStyleClass() {
            return getItemStyle(getModelObject(), true);
        }

        @Override
        protected String getClosedStyleClass() {
            return getItemStyle(getModelObject(), false);
        }

        @Override
        protected String getSelectedStyleClass() {
            return "ui-state-active";
        }

        @Override
        protected IModel<String> newLabelModel(IModel<BaseFileItem> model) {
            return Model.of(model.getObject().getName());
        }
    };
}
Also used : BaseFileItem(org.apache.openmeetings.db.entity.file.BaseFileItem) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) AjaxRequestAttributes(org.apache.wicket.ajax.attributes.AjaxRequestAttributes) IModel(org.apache.wicket.model.IModel) Optional(java.util.Optional) Folder(org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder) AjaxLink(org.apache.wicket.ajax.markup.html.AjaxLink)

Aggregations

Folder (org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder)2 IModel (org.apache.wicket.model.IModel)2 Optional (java.util.Optional)1 BaseFileItem (org.apache.openmeetings.db.entity.file.BaseFileItem)1 AjaxRequestTarget (org.apache.wicket.ajax.AjaxRequestTarget)1 AjaxRequestAttributes (org.apache.wicket.ajax.attributes.AjaxRequestAttributes)1 AjaxLink (org.apache.wicket.ajax.markup.html.AjaxLink)1 Foo (org.apache.wicket.examples.tree.Foo)1 BookmarkablePageLink (org.apache.wicket.markup.html.link.BookmarkablePageLink)1 PageParameters (org.apache.wicket.request.mapper.parameter.PageParameters)1