Example usage for org.eclipse.jface.viewers TreeColumnViewerLabelProvider setProviders

List of usage examples for org.eclipse.jface.viewers TreeColumnViewerLabelProvider setProviders

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TreeColumnViewerLabelProvider setProviders.

Prototype

@Override
    public void setProviders(Object provider) 

Source Link

Usage

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());
                    }
                }
            }
        }
    });
}