List of usage examples for org.eclipse.jface.viewers TreeColumnViewerLabelProvider setProviders
@Override
public void setProviders(Object provider)
From source file:eu.esdihumboldt.hale.ui.views.tasks.TaskTreeView.java
License:Open Source License
/** * @see WorkbenchPart#createPartControl(Composite) *///from w w w . ja v a2 s . co m @Override public void createPartControl(Composite parent) { Composite page = new Composite(parent, SWT.NONE); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); page.setLayoutData(data); // tree column layout TreeColumnLayout layout = new TreeColumnLayout(); page.setLayout(layout); // tree viewer tree = new TreeViewer(page, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER); tree.setContentProvider(new CollectionTreeNodeContentProvider()); tree.setUseHashlookup(true); tree.getTree().setHeaderVisible(true); tree.getTree().setLinesVisible(true); tree.setComparator(new TaskTreeComparator()); schemaService = (SchemaService) PlatformUI.getWorkbench().getService(SchemaService.class); taskService = (TaskService) PlatformUI.getWorkbench().getService(TaskService.class); // columns IColorProvider colorProvider = new TaskColorProvider(Display.getCurrent()); // title/description TreeViewerColumn description = new TreeViewerColumn(tree, SWT.LEFT); description.getColumn().setText(Messages.TaskTreeView_TitleDescriptionText); description.getColumn().setToolTipText(Messages.TaskTreeView_description_tooltip); TreeColumnViewerLabelProvider descriptionLabelProvider = new TreeColumnViewerLabelProvider( new TaskDescriptionLabelProvider(0)); descriptionLabelProvider.setProviders(colorProvider); description.setLabelProvider(descriptionLabelProvider); layout.setColumnData(description.getColumn(), new ColumnWeightData(4)); // value TreeViewerColumn value = new TreeViewerColumn(tree, SWT.CENTER); value.getColumn().setText("!"); //$NON-NLS-1$ value.getColumn().setToolTipText(Messages.TaskTreeView_value_tooltip); TreeColumnViewerLabelProvider valueLabelProvider = new TreeColumnViewerLabelProvider( new TaskValueLabelProvider(0)); valueLabelProvider.setProviders(colorProvider); value.setLabelProvider(valueLabelProvider); layout.setColumnData(value.getColumn(), new ColumnWeightData(0, 20)); // number of tasks TreeViewerColumn number = new TreeViewerColumn(tree, SWT.RIGHT); number.getColumn().setText("#"); //$NON-NLS-1$ number.getColumn().setToolTipText(Messages.TaskTreeView_NumberText); TreeColumnViewerLabelProvider numberLabelProvider = new TreeColumnViewerLabelProvider( new TaskCountLabelProvider(0)); numberLabelProvider.setProviders(colorProvider); number.setLabelProvider(numberLabelProvider); layout.setColumnData(number.getColumn(), new ColumnWeightData(0, 48)); // user data: status TreeViewerColumn status = new TreeViewerColumn(tree, SWT.LEFT); status.getColumn().setText(Messages.TaskTreeView_StatusText); TreeColumnViewerLabelProvider statusLabelProvider = new TreeColumnViewerLabelProvider( new TaskStatusLabelProvider(0)); statusLabelProvider.setProviders(colorProvider); status.setLabelProvider(statusLabelProvider); layout.setColumnData(status.getColumn(), new ColumnWeightData(1)); status.setEditingSupport(new TaskStatusEditingSupport(tree, taskService)); // user data: comment TreeViewerColumn comment = new TreeViewerColumn(tree, SWT.LEFT); comment.getColumn().setText(Messages.TaskTreeView_CommentText); TreeColumnViewerLabelProvider commentLabelProvider = new TreeColumnViewerLabelProvider( new TaskCommentLabelProvider(0)); commentLabelProvider.setProviders(colorProvider); comment.setLabelProvider(commentLabelProvider); layout.setColumnData(comment.getColumn(), new ColumnWeightData(4)); comment.setEditingSupport(new TaskCommentEditingSupport(tree, taskService)); // listeners taskService.addListener(taskListener = new TaskServiceAdapter() { @Override public void tasksRemoved(final Iterable<Task> tasks) { if (Display.getCurrent() != null) { removeTasks(tasks); } else { final Display display = PlatformUI.getWorkbench().getDisplay(); display.syncExec(new Runnable() { @Override public void run() { removeTasks(tasks); } }); } } @Override public void tasksAdded(final Iterable<Task> tasks) { if (Display.getCurrent() != null) { addTasks(tasks); } else { final Display display = PlatformUI.getWorkbench().getDisplay(); display.syncExec(new Runnable() { @Override public void run() { addTasks(tasks); } }); } } @Override public void taskUserDataChanged(final ResolvedTask task) { if (Display.getCurrent() != null) { updateNode(task); } else { final Display display = PlatformUI.getWorkbench().getDisplay(); display.syncExec(new Runnable() { @Override public void run() { updateNode(task); } }); } } }); createInput(); configureActions(); // interaction tree.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { ISelection selection = event.getSelection(); if (!selection.isEmpty() && selection instanceof IStructuredSelection) { Object selected = ((IStructuredSelection) selection).getFirstElement(); if (selected instanceof TreeNode) { // determine value Object tmp = ((TreeNode) selected).getValue(); Object value; if (tmp.getClass().isArray()) { value = ((Object[]) tmp)[0]; } else { value = tmp; } if (value instanceof Task) { // node is task node Task task = (Task) value; onDoubleClick(task.getMainContext().getIdentifier()); } else if (value instanceof SchemaElement) { SchemaElement type = (SchemaElement) value; onDoubleClick(type.getIdentifier()); } } } } }); }