List of usage examples for org.apache.wicket.extensions.markup.html.repeater.tree TableTree TableTree
public TableTree(final String id, final List<? extends IColumn<T, S>> columns, final ITreeProvider<T> provider, final long rowsPerPage, IModel<? extends Set<T>> state)
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);// w w w .jav a2 s . co m 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/*from w w w . j a va 2 s . c o m*/ 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 av a 2s. c om * @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; }
From source file:org.projectforge.plugins.skillmatrix.SkillTreeBuilder.java
License:Open Source License
@SuppressWarnings("serial") public AbstractTree<SkillNode> createTree(final String id, final AbstractSecuredPage parentPage, final SkillFilter skillFilter) { this.parentPage = parentPage; final List<IColumn<SkillNode, String>> columns = createColumns(); tree = new TableTree<SkillNode, String>(id, columns, new SkillTreeProvider(skillDao, skillFilter).setShowRootNode(showRootNode), Integer.MAX_VALUE, SkillTreeExpansion.getExpansionModel()) { private static final long serialVersionUID = 1L; @Override// ww w . ja va 2s.co m protected Component newContentComponent(final String id, final IModel<SkillNode> model) { return SkillTreeBuilder.this.newContentComponent(id, this, model); } @Override protected Item<SkillNode> newRowItem(final String id, final int index, final IModel<SkillNode> model) { return new OddEvenItem<SkillNode>(id, index, model); } }; tree.getTable().addTopToolbar(new HeadersToolbar<String>(tree.getTable(), null)); tree.getTable().addBottomToolbar(new NoRecordsToolbar(tree.getTable())); tree.add(new Behavior() { @Override public void onComponentTag(final Component component, final ComponentTag tag) { theme.onComponentTag(component, tag); } @Override public void renderHead(final Component component, final IHeaderResponse response) { theme.renderHead(component, response); } }); tree.getTable().add(AttributeModifier.append("class", "tableTree")); return tree; }
From source file:org.projectforge.web.task.TaskTreeBuilder.java
License:Open Source License
@SuppressWarnings("serial") public AbstractTree<TaskNode> createTree(final String id, final AbstractSecuredPage parentPage, final TaskFilter taskFilter) { this.parentPage = parentPage; final List<IColumn<TaskNode, String>> columns = createColumns(); tree = new TableTree<TaskNode, String>(id, columns, new TaskTreeProvider(taskFilter).setShowRootNode(showRootNode), Integer.MAX_VALUE, TaskTreeExpansion.getExpansionModel()) { private static final long serialVersionUID = 1L; @Override//from ww w . j a v a 2s.co m protected Component newContentComponent(final String id, final IModel<TaskNode> model) { return TaskTreeBuilder.this.newContentComponent(id, this, model); } @Override protected Item<TaskNode> newRowItem(final String id, final int index, final IModel<TaskNode> model) { return new OddEvenItem<TaskNode>(id, index, model); } }; tree.getTable().addTopToolbar(new HeadersToolbar<String>(tree.getTable(), null)); tree.getTable().addBottomToolbar(new NoRecordsToolbar(tree.getTable())); tree.add(new Behavior() { @Override public void onComponentTag(final Component component, final ComponentTag tag) { theme.onComponentTag(component, tag); } @Override public void renderHead(final Component component, final IHeaderResponse response) { theme.renderHead(component, response); } }); tree.getTable().add(AttributeModifier.append("class", "tableTree")); return tree; }