Example usage for org.apache.wicket.extensions.markup.html.repeater.tree TableTree getTable

List of usage examples for org.apache.wicket.extensions.markup.html.repeater.tree TableTree getTable

Introduction

In this page you can find the example usage for org.apache.wicket.extensions.markup.html.repeater.tree TableTree getTable.

Prototype

public DataTable<T, S> getTable() 

Source Link

Document

Get the nested table.

Usage

From source file:com.evolveum.midpoint.web.page.admin.orgs.OrgTreePanel.java

License:Apache License

private void initLayout() {
    WebMarkupContainer treeHeader = new WebMarkupContainer(ID_TREE_HEADER);
    treeHeader.setOutputMarkupId(true);//from w ww  .java  2 s  .  c  om
    add(treeHeader);

    String title = StringUtils.isEmpty(treeTitleKey) ? "TreeTablePanel.hierarchy" : treeTitleKey;
    Label treeTitle = new Label(ID_TREE_TITLE, createStringResource(title));
    treeHeader.add(treeTitle);

    InlineMenu treeMenu = new InlineMenu(ID_TREE_MENU, new Model<>((Serializable) createTreeMenuInternal()));
    treeHeader.add(treeMenu);

    ISortableTreeProvider provider = new OrgTreeProvider(this, getModel()) {
        @Override
        protected List<InlineMenuItem> createInlineMenuItems() {
            return createTreeChildrenMenu();
        }
    };
    List<IColumn<SelectableBean<OrgType>, String>> columns = new ArrayList<>();

    if (selectable) {
        columns.add(new CheckBoxHeaderColumn<SelectableBean<OrgType>>());
    }

    columns.add(
            new TreeColumn<SelectableBean<OrgType>, String>(createStringResource("TreeTablePanel.hierarchy")));
    columns.add(new InlineMenuHeaderColumn(createTreeChildrenMenu()));

    WebMarkupContainer treeContainer = new WebMarkupContainer(ID_TREE_CONTAINER) {

        @Override
        public void renderHead(IHeaderResponse response) {
            super.renderHead(response);

            // method computes height based on document.innerHeight() -
            // screen height;
            Component form = OrgTreePanel.this.getParent().get("memberPanel");
            if (form != null) {
                response.render(OnDomReadyHeaderItem
                        .forScript("updateHeight('" + getMarkupId() + "', ['#" + form.getMarkupId() + "'], ['#"
                                + OrgTreePanel.this.get(ID_TREE_HEADER).getMarkupId() + "'])"));
            }
        }
    };
    add(treeContainer);

    TableTree<SelectableBean<OrgType>, String> tree = new TableTree<SelectableBean<OrgType>, String>(ID_TREE,
            columns, provider, Integer.MAX_VALUE, new TreeStateModel(this, provider)) {

        @Override
        protected Component newContentComponent(String id, IModel<SelectableBean<OrgType>> model) {
            return new SelectableFolderContent(id, this, model, selected) {

                @Override
                protected void onClick(AjaxRequestTarget target) {
                    super.onClick(target);

                    MidPointAuthWebSession session = OrgTreePanel.this.getSession();
                    SessionStorage storage = session.getSessionStorage();
                    storage.getUsers().setSelectedItem(selected.getObject());

                    selectTreeItemPerformed(selected.getObject(), target);
                }
            };
        }

        @Override
        protected Item<SelectableBean<OrgType>> newRowItem(String id, int index,
                final IModel<SelectableBean<OrgType>> model) {
            Item<SelectableBean<OrgType>> item = super.newRowItem(id, index, model);
            item.add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    SelectableBean<OrgType> itemObject = model.getObject();
                    if (itemObject != null && itemObject.equals(selected.getObject())) {
                        return "success";
                    }

                    return null;
                }
            }));
            return item;
        }

        @Override
        public void collapse(SelectableBean<OrgType> collapsedItem) {
            super.collapse(collapsedItem);
            MidPointAuthWebSession session = OrgTreePanel.this.getSession();
            SessionStorage storage = session.getSessionStorage();
            Set<SelectableBean<OrgType>> items = storage.getUsers().getExpandedItems();
            if (items != null && items.contains(collapsedItem)) {
                items.remove(collapsedItem);
            }
            storage.getUsers().setExpandedItems((TreeStateSet) items);
            storage.getUsers().setCollapsedItem(collapsedItem);
        }

        @Override
        protected void onModelChanged() {
            super.onModelChanged();

            Set<SelectableBean<OrgType>> items = getModelObject();

            MidPointAuthWebSession session = OrgTreePanel.this.getSession();
            SessionStorage storage = session.getSessionStorage();
            storage.getUsers().setExpandedItems((TreeStateSet<SelectableBean<OrgType>>) items);
        }
    };
    tree.setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
    tree.getTable().add(AttributeModifier.replace("class", "table table-striped table-condensed"));
    tree.add(new WindowsTheme());
    // tree.add(AttributeModifier.replace("class", "tree-midpoint"));
    treeContainer.add(tree);
}

From source file:com.evolveum.midpoint.web.page.admin.users.component.TreeTablePanel.java

License:Apache License

@Override
protected void initLayout() {
    add(new ConfirmationDialog(ID_CONFIRM_DELETE_POPUP,
            createStringResource("TreeTablePanel.dialog.title.confirmDelete"), createDeleteConfirmString()) {

        @Override/* w w  w .  j  a  v a 2 s. com*/
        public void yesPerformed(AjaxRequestTarget target) {
            close(target);

            switch (getConfirmType()) {
            case CONFIRM_DELETE:
                deleteConfirmedPerformed(target);
                break;
            case CONFIRM_DELETE_ROOT:
                deleteRootConfirmedPerformed(target);
                break;
            }

        }
    });

    add(new OrgUnitBrowser(ID_MOVE_POPUP) {

        @Override
        protected void createRootPerformed(AjaxRequestTarget target) {
            moveConfirmedPerformed(target, null, null, Operation.MOVE);
        }

        @Override
        protected void rowSelected(AjaxRequestTarget target, IModel<OrgTableDto> row, Operation operation) {
            moveConfirmedPerformed(target, selected.getObject(), row.getObject(), operation);
        }

        @Override
        public ObjectQuery createRootQuery() {
            ArrayList<String> oids = new ArrayList<String>();
            ObjectQuery query = new ObjectQuery();

            if (isMovingRoot() && getRootFromProvider() != null) {
                oids.add(getRootFromProvider().getOid());
            }

            //Selection from table, but only if we are not moving root
            if (!isMovingRoot()) {
                oids.remove(getRootFromProvider().getOid());

                List<OrgTableDto> objects = WebMiscUtil.getSelectedData(getTable());
                if (!objects.isEmpty()) {
                    for (OrgTableDto dto : objects) {
                        oids.add(dto.getOid());

                        //TODO - uncomment this, if parentOrgOid filtering is also required (see issue MID-1780)
                        //oids.addAll(getOrgParentOids(dto.getOid()));
                    }
                }
            }

            if (oids.isEmpty()) {
                return null;
            }

            ObjectFilter oidFilter = InOidFilter.createInOid(oids);
            query.setFilter(NotFilter.createNot(oidFilter));

            return query;
        }
    });

    add(new OrgUnitAddDeletePopup(ID_ADD_DELETE_POPUP) {

        @Override
        public void addPerformed(AjaxRequestTarget target, OrgType selected) {
            addOrgUnitToUserPerformed(target, selected);
        }

        @Override
        public void removePerformed(AjaxRequestTarget target, OrgType selected) {
            removeOrgUnitToUserPerformed(target, selected);
        }

        @Override
        public ObjectQuery getAddProviderQuery() {
            return null;
        }

        @Override
        public ObjectQuery getRemoveProviderQuery() {
            return null;
        }
    });

    WebMarkupContainer treeHeader = new WebMarkupContainer(ID_TREE_HEADER);
    treeHeader.setOutputMarkupId(true);
    add(treeHeader);

    InlineMenu treeMenu = new InlineMenu(ID_TREE_MENU, new Model((Serializable) createTreeMenu()));
    treeHeader.add(treeMenu);

    ISortableTreeProvider provider = new OrgTreeProvider(this, getModel());
    List<IColumn<OrgTreeDto, String>> columns = new ArrayList<IColumn<OrgTreeDto, String>>();
    columns.add(new TreeColumn<OrgTreeDto, String>(createStringResource("TreeTablePanel.hierarchy")));

    WebMarkupContainer treeContainer = new WebMarkupContainer(ID_TREE_CONTAINER) {

        @Override
        public void renderHead(IHeaderResponse response) {
            super.renderHead(response);

            //method computes height based on document.innerHeight() - screen height;
            response.render(OnDomReadyHeaderItem.forScript(
                    "updateHeight('" + getMarkupId() + "', ['#" + TreeTablePanel.this.get(ID_FORM).getMarkupId()
                            + "'], ['#" + TreeTablePanel.this.get(ID_TREE_HEADER).getMarkupId() + "'])"));
        }
    };
    add(treeContainer);

    TableTree<OrgTreeDto, String> tree = new TableTree<OrgTreeDto, String>(ID_TREE, columns, provider,
            Integer.MAX_VALUE, new TreeStateModel(provider)) {

        @Override
        protected Component newContentComponent(String id, IModel<OrgTreeDto> model) {
            return new SelectableFolderContent(id, this, model, selected) {

                @Override
                protected void onClick(AjaxRequestTarget target) {
                    super.onClick(target);

                    selectTreeItemPerformed(target);
                }
            };
        }

        @Override
        protected Item<OrgTreeDto> newRowItem(String id, int index, final IModel<OrgTreeDto> model) {
            Item item = super.newRowItem(id, index, model);
            item.add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    OrgTreeDto itemObject = model.getObject();
                    if (itemObject != null && itemObject.equals(selected.getObject())) {
                        return "success";
                    }

                    return null;
                }
            }));
            return item;
        }
    };
    tree.getTable().add(AttributeModifier.replace("class", "table table-striped table-condensed"));
    tree.add(new WindowsTheme());
    //        tree.add(AttributeModifier.replace("class", "tree-midpoint"));
    treeContainer.add(tree);

    initTable();
    initSearch();
}

From source file:org.onehippo.forge.exdocpicker.impl.field.tree.ExternalTreeItemFieldBrowserDialog.java

License:Apache License

/**
 * Create a tree list view UI component.
 * @param state expansion state/*from  w w w  .j a  v  a 2s  .  com*/
 * @return a tree list view UI component
 */
protected AbstractTree<Serializable> createTree(IModel<Set<Serializable>> state) {
    List<IColumn<Serializable, String>> columns = createColumns();

    final TableTree<Serializable, String> tree = new TableTree<Serializable, String>("tree", columns,
            treeDataProvider, Integer.MAX_VALUE, state) {
        private static final long serialVersionUID = 1L;

        @Override
        protected Component newContentComponent(String id, IModel<Serializable> model) {
            CheckableTreeNode treeNode = new CheckableTreeNode(id, this, model);
            treeNode.add(
                    new AttributeModifier("title", getExternalDocumentServiceFacade().getDocumentDescription(
                            getExternalDocumentServiceContext(), model.getObject(), getRequest().getLocale())));
            return treeNode;
        }

        @Override
        protected Item<Serializable> newRowItem(String id, int index, IModel<Serializable> model) {
            return new OddEvenItem<>(id, index, model);
        }
    };

    tree.getTable().addBottomToolbar(new NoRecordsToolbar(tree.getTable()));

    return tree;
}