List of usage examples for org.apache.wicket.extensions.markup.html.repeater.tree.table TreeColumn TreeColumn
public TreeColumn(IModel<String> displayModel)
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 w w . j a va 2 s. c o 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/* w w w . ja v a2 s .c om*/ 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:com.norconex.jefmon.instance.tree.JobsTableTree.java
License:Apache License
private static List<IColumn<JobStatusTreeNode, Void>> createColumns() { List<IColumn<JobStatusTreeNode, Void>> columns = new ArrayList<IColumn<JobStatusTreeNode, Void>>(); columns.add(new TreeColumn<JobStatusTreeNode, Void>(new ResourceModel("col.job"))); columns.add(new ProgressColumn(new ResourceModel("col.progress"))); columns.add(new StatusColumn(new ResourceModel("col.status"))); columns.add(new DateStartedColumn(new ResourceModel("col.started"))); columns.add(new DurationColumn(new ResourceModel("col.duration"))); columns.add(new RemainingColumn(new ResourceModel("col.remaining"))); columns.add(new PropertyColumn<JobStatusTreeNode, Void>(new ResourceModel("col.note"), "note")); columns.add(new ActionsColumn(new ResourceModel("col.actions"))); return columns; }
From source file:nl.mpi.lamus.web.components.UnlinkedNodesPanel.java
License:Open Source License
private List<IColumn<WorkspaceTreeNode, String>> createColumns() { List<IColumn<WorkspaceTreeNode, String>> columns = new ArrayList<>(); columns.add(new TreeColumn<WorkspaceTreeNode, String>( Model.of(getLocalizer().getString("unlinked_nodes_table_column_node", this)))); columns.add(new PropertyColumn<WorkspaceTreeNode, String>( Model.of(getLocalizer().getString("unlinked_nodes_table_column_type", this)), "type")); columns.add(new PropertyColumn<WorkspaceTreeNode, String>( Model.of(getLocalizer().getString("unlinked_nodes_table_column_status", this)), "statusAsString")); columns.add(new AbstractColumn<WorkspaceTreeNode, String>(Model.of("")) { @Override/* www. j a va 2s. c om*/ public void populateItem(Item<ICellPopulator<WorkspaceTreeNode>> cellItem, String componentId, IModel<WorkspaceTreeNode> model) { if (model.getObject().getParent() != null) { cellItem.add(new Label(componentId).setVisible(false)); return; } AjaxLink<WorkspaceTreeNode> deleteLink = new AutoDisablingAjaxLink<WorkspaceTreeNode>(componentId, model) { @Override public void onClick(AjaxRequestTarget target) { try { workspaceService.deleteNode(LamusSession.get().getUserId(), getModelObject()); target.add(UnlinkedNodesPanel.this); } catch (WorkspaceException | ProtectedNodeException ex) { error(ex.getMessage()); } } }; deleteLink.setBody(Model.of(getLocalizer().getString("unlinked_nodes_table_column_remove_button", UnlinkedNodesPanel.this))); deleteLink.add(AttributeModifier.append("class", new Model<>("tableActionLink"))); cellItem.add(deleteLink); } }); return columns; }
From source file:org.onehippo.forge.exdocpicker.impl.field.tree.ExternalTreeItemFieldBrowserDialog.java
License:Apache License
private List<IColumn<Serializable, String>> createColumns() { List<IColumn<Serializable, String>> columns = new ArrayList<>(); columns.add(new TreeColumn<>(Model.of("Tree"))); return columns; }
From source file:org.onexus.ui.api.progressbar.ProgressBar.java
License:Apache License
public ProgressBar(String id) { super(id);//from w w w . j a va2 s . co m provider = new ProgressTreeProvider(); treeState = new ProgressExpansionModel(); setOutputMarkupId(true); final WebMarkupContainer modal = new WebMarkupContainer("modal") { @Override protected void onBeforeRender() { addOrReplace(new DefaultTableTree<Progress, String>("tree", columns, provider, Integer.MAX_VALUE, treeState).setOutputMarkupId(true)); super.onBeforeRender(); } }; final WebMarkupContainer minimized = new WebMarkupContainer("minimized"); minimized.setOutputMarkupId(true); add(minimized); final WebMarkupContainer logDetails = new WebMarkupContainer("log-details"); logDetails.setOutputMarkupId(true); logDetails.add(new EmptyPanel("logs")); modal.add(logDetails); modal.add(new AjaxLink<String>("refresh") { @Override public void onClick(AjaxRequestTarget target) { target.add(modal.get("tree")); } }); modal.setMarkupId("taskmanagerModal"); add(modal); minimized.add(new AjaxLink<String>("show") { @Override public void onClick(AjaxRequestTarget target) { target.add(modal); target.add(minimized); target.appendJavaScript("$('#taskmanagerModal').modal('show')"); } }); this.columns = new ArrayList<IColumn<Progress, String>>(); columns.add(new TreeColumn<Progress, String>(Model.of("task"))); columns.add(new PropertyColumn<Progress, String>(Model.of("title"), "title")); columns.add(new StatusColumn()); columns.add(new LogsColumn() { @Override protected void showLogs(Progress progress, AjaxRequestTarget target) { logDetails.addOrReplace(new Label("logs", toLogsString(progress))); target.add(logDetails); } }); }
From source file:org.projectforge.plugins.skillmatrix.SkillTreeBuilder.java
License:Open Source License
/** * @return/*from www . j av a 2 s . c o m*/ */ @SuppressWarnings("serial") private List<IColumn<SkillNode, String>> createColumns() { final CellItemListener<SkillNode> cellItemListener = new CellItemListener<SkillNode>() { public void populateItem(final Item<ICellPopulator<SkillNode>> item, final String componentId, final IModel<SkillNode> rowModel) { final SkillNode skillNode = rowModel.getObject(); SkillListPage.appendCssClasses(item, skillNode.getSkill(), highlightedSkillNodeId); } }; final List<IColumn<SkillNode, String>> columns = new ArrayList<IColumn<SkillNode, String>>(); final TreeColumn<SkillNode, String> title = new TreeColumn<SkillNode, String>( new ResourceModel("plugins.skillmatrix.skill.title")) { @Override public void populateItem(final Item<ICellPopulator<SkillNode>> cellItem, final String componentId, final IModel<SkillNode> rowModel) { final RepeatingView view = new RepeatingView(componentId); cellItem.add(view); final SkillNode skillNode = rowModel.getObject(); if (selectMode == false) { view.add(new ListSelectActionPanel(view.newChildId(), rowModel, SkillEditPage.class, skillNode.getId(), parentPage, "")); } else { view.add(new ListSelectActionPanel(view.newChildId(), rowModel, caller, selectProperty, skillNode.getId(), "")); } AbstractListPage.addRowClick(cellItem); final NodeModel<SkillNode> nodeModel = (NodeModel<SkillNode>) rowModel; final Component nodeComponent = getTree().newNodeComponent(view.newChildId(), nodeModel.getWrappedModel()); nodeComponent.add(new NodeBorder(nodeModel.getBranches())); view.add(nodeComponent); cellItemListener.populateItem(cellItem, componentId, rowModel); } }; final CellItemListenerPropertyColumn<SkillNode> created = new CellItemListenerPropertyColumn<SkillNode>( new ResourceModel("created"), null, "skill.created", cellItemListener); final CellItemListenerPropertyColumn<SkillNode> lastUpdate = new CellItemListenerPropertyColumn<SkillNode>( new ResourceModel("lastUpdate"), null, "skill.lastUpdate", cellItemListener); final CellItemListenerPropertyColumn<SkillNode> description = new CellItemListenerPropertyColumn<SkillNode>( new ResourceModel("plugins.skillmatrix.skill.description"), null, "skill.description", cellItemListener); final CellItemListenerPropertyColumn<SkillNode> comment = new CellItemListenerPropertyColumn<SkillNode>( new ResourceModel("plugins.skillmatrix.skill.comment"), null, "skill.comment", cellItemListener); final CellItemListenerPropertyColumn<SkillNode> rateable = new CellItemListenerPropertyColumn<SkillNode>( new ResourceModel("plugins.skillmatrix.skill.rateable"), null, "skill.rateable", cellItemListener); columns.add(title); columns.add(description); columns.add(comment); columns.add(rateable); columns.add(created); columns.add(lastUpdate); return columns; }
From source file:org.projectforge.web.task.TaskTreeBuilder.java
License:Open Source License
/** * @return//ww w . j av a2 s. co m */ @SuppressWarnings("serial") private List<IColumn<TaskNode, String>> createColumns() { final TaskTree taskTree = getTaskTree(); final CellItemListener<TaskNode> cellItemListener = new CellItemListener<TaskNode>() { public void populateItem(final Item<ICellPopulator<TaskNode>> item, final String componentId, final IModel<TaskNode> rowModel) { final TaskNode taskNode = rowModel.getObject(); TaskListPage.appendCssClasses(item, taskNode.getTask(), highlightedTaskNodeId); } }; final List<IColumn<TaskNode, String>> columns = new ArrayList<IColumn<TaskNode, String>>(); columns.add(new TreeColumn<TaskNode, String>(new ResourceModel("task")) { @Override public void populateItem(final Item<ICellPopulator<TaskNode>> cellItem, final String componentId, final IModel<TaskNode> rowModel) { final RepeatingView view = new RepeatingView(componentId); cellItem.add(view); final TaskNode taskNode = rowModel.getObject(); if (selectMode == false) { view.add(new ListSelectActionPanel(view.newChildId(), rowModel, TaskEditPage.class, taskNode.getId(), parentPage, "")); } else { view.add(new ListSelectActionPanel(view.newChildId(), rowModel, caller, selectProperty, taskNode.getId(), "")); } AbstractListPage.addRowClick(cellItem); final NodeModel<TaskNode> nodeModel = (NodeModel<TaskNode>) rowModel; final Component nodeComponent = getTree().newNodeComponent(view.newChildId(), nodeModel.getWrappedModel()); nodeComponent.add(new NodeBorder(nodeModel.getBranches())); view.add(nodeComponent); cellItemListener.populateItem(cellItem, componentId, rowModel); } }); columns.add(new CellItemListenerPropertyColumn<TaskNode>(new ResourceModel("task.consumption"), null, "task", cellItemListener) { @Override public void populateItem(final Item<ICellPopulator<TaskNode>> item, final String componentId, final IModel<TaskNode> rowModel) { final TaskNode node = rowModel.getObject(); item.add(TaskListPage.getConsumptionBarPanel(tree, componentId, getTaskTree(), selectMode, node)); cellItemListener.populateItem(item, componentId, rowModel); } }); if (showCost == true) { columns.add(new CellItemListenerPropertyColumn<TaskNode>(new ResourceModel("fibu.kost2"), null, "task.kost2", cellItemListener) { @Override public void populateItem(final Item<ICellPopulator<TaskNode>> item, final String componentId, final IModel<TaskNode> rowModel) { final Label label = TaskListPage.getKostLabel(componentId, getTaskTree(), rowModel.getObject().getTask()); item.add(label); cellItemListener.populateItem(item, componentId, rowModel); } }); } if (taskTree.hasOrderPositionsEntries() == true && showOrders == true) { columns.add(new CellItemListenerPropertyColumn<TaskNode>(new ResourceModel("fibu.auftrag.auftraege"), null, null, cellItemListener) { @Override public void populateItem(final Item<ICellPopulator<TaskNode>> item, final String componentId, final IModel<TaskNode> rowModel) { final TaskNode taskNode = rowModel.getObject(); final Set<AuftragsPositionVO> orderPositions = taskTree .getOrderPositionEntries(taskNode.getId()); if (CollectionUtils.isEmpty(orderPositions) == true) { final Label label = new Label(componentId, ""); // Empty label. item.add(label); } else { final OrderPositionsPanel orderPositionsPanel = new OrderPositionsPanel(componentId) { @Override protected void onBeforeRender() { super.onBeforeRender(); // Lazy initialization because getString(...) of OrderPositionsPanel fails if panel.init(orderPositions) is called directly // after instantiation. init(orderPositions); }; }; item.add(orderPositionsPanel); } cellItemListener.populateItem(item, componentId, rowModel); } }); } columns.add(new CellItemListenerPropertyColumn<TaskNode>(new ResourceModel("shortDescription"), null, "task.shortDescription", cellItemListener)); if (accessChecker.isLoggedInUserMemberOfGroup(ProjectForgeGroup.FINANCE_GROUP) == true) { columns.add(new DatePropertyColumn<TaskNode>(dateTimeFormatter, parentPage.getString("task.protectTimesheetsUntil.short"), null, "task.protectTimesheetsUntil", cellItemListener)); } columns.add(new CellItemListenerPropertyColumn<TaskNode>(new ResourceModel("task.reference"), null, "reference", cellItemListener)); columns.add(new CellItemListenerPropertyColumn<TaskNode>(new ResourceModel("priority"), null, "priority", cellItemListener) { @Override public void populateItem(final Item<ICellPopulator<TaskNode>> item, final String componentId, final IModel<TaskNode> rowModel) { final Label label = TaskListPage.getPriorityLabel(componentId, priorityFormatter, rowModel.getObject().getTask()); item.add(label); cellItemListener.populateItem(item, componentId, rowModel); } }); columns.add(new CellItemListenerPropertyColumn<TaskNode>(new ResourceModel("task.status"), null, "status", cellItemListener) { @Override public void populateItem(final Item<ICellPopulator<TaskNode>> item, final String componentId, final IModel<TaskNode> rowModel) { final Label label = TaskListPage.getStatusLabel(componentId, taskFormatter, rowModel.getObject().getTask()); item.add(label); cellItemListener.populateItem(item, componentId, rowModel); } }); final UserPropertyColumn<TaskNode> userPropertyColumn = new UserPropertyColumn<TaskNode>( parentPage.getString("task.assignedUser"), null, "task.responsibleUserId", cellItemListener) .withUserFormatter(userFormatter).setUserGroupCache(userGroupCache); columns.add(userPropertyColumn); return columns; }
From source file:wicketdnd.examples.TableTreeExample.java
License:Apache License
private List<IColumn<Foo, String>> columns() { List<IColumn<Foo, String>> columns = new ArrayList<IColumn<Foo, String>>(); columns.add(new TreeColumn<Foo, String>(Model.of("Name"))); columns.add(new PropertyColumn<Foo, String>(Model.of("Name"), "name")); return columns; }