List of usage examples for org.apache.wicket.extensions.markup.html.repeater.tree TableTree getTable
public DataTable<T, S> getTable()
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; }