Example usage for org.eclipse.jface.viewers DecoratingLabelProvider DecoratingLabelProvider

List of usage examples for org.eclipse.jface.viewers DecoratingLabelProvider DecoratingLabelProvider

Introduction

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

Prototype

public DecoratingLabelProvider(ILabelProvider provider, ILabelDecorator decorator) 

Source Link

Document

Creates a decorating label provider which uses the given label decorator to decorate labels provided by the given label provider.

Usage

From source file:org.eclipse.mylyn.internal.tasks.ui.commands.RemoteTaskSelectionDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite area = (Composite) super.createDialogArea(parent);

    Label idLabel = new Label(area, SWT.NULL);
    idLabel.setText(Messages.RemoteTaskSelectionDialog_Enter_Key_ID__use_comma_for_multiple_);
    idText = new Text(area, SWT.BORDER);
    idText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

    Label matchingTasksLabel = new Label(area, SWT.NONE);
    matchingTasksLabel.setText(Messages.RemoteTaskSelectionDialog_Matching_tasks);
    tasksViewer = new TableViewer(area, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    tasksViewer.getControl()//from w w w  .  j  a  v a  2s.  co  m
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(400, 400).create());
    tasksViewer.setLabelProvider(new DecoratingLabelProvider(new TaskElementLabelProvider(true),
            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
    tasksViewer.setContentProvider(new ArrayContentProvider());
    tasksViewer.addFilter(new ViewerFilter() {

        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (selectedIds == null) {
                return false;
            }

            // Only shows exact task matches
            if (!(element instanceof ITask)) {
                return false;
            }
            ITask task = (ITask) element;
            String taskId = task.getTaskKey();
            for (String id : selectedIds) {
                if (id.equals(taskId)) {
                    return true;
                }
            }
            return false;
        }

    });
    tasksViewer.setInput(TasksUiPlugin.getTaskList().getAllTasks());
    idText.addModifyListener(new ModifyListener() {

        public void modifyText(ModifyEvent e) {
            computeIds();
            validate();
            tasksViewer.refresh(false);
        }

    });
    tasksViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            validate();
        }

    });
    tasksViewer.addOpenListener(new IOpenListener() {

        public void open(OpenEvent event) {
            if (getOkButton().getEnabled()) {
                okPressed();
            }
        }

    });
    Table table = tasksViewer.getTable();
    table.showSelection();

    Composite repositoriesComposite = new Composite(area, SWT.NONE);
    repositoriesComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
    repositoriesComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).create());

    Label repositoriesLabel = new Label(repositoriesComposite, SWT.NONE);
    repositoriesLabel.setText(Messages.RemoteTaskSelectionDialog_Select_a_task_repository);

    repositoriesViewer = new ComboViewer(repositoriesComposite, SWT.DROP_DOWN | SWT.READ_ONLY);
    repositoriesViewer.setLabelProvider(new TaskRepositoryLabelProvider());
    repositoriesViewer.setContentProvider(new ArrayContentProvider());
    List<TaskRepository> taskRepositories = getTaskRepositories();
    repositoriesViewer.setInput(taskRepositories);
    if (taskRepositories.size() == 1) {
        repositoriesViewer.setSelection(new StructuredSelection(taskRepositories.get(0)));
    }
    TaskRepository currentRepository = TasksUiUtil.getSelectedRepository(null);
    if (currentRepository != null) {
        repositoriesViewer.setSelection(new StructuredSelection(currentRepository), true);
    }
    repositoriesViewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
    repositoriesViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            tasksViewer.setSelection(StructuredSelection.EMPTY);
            validate();
        }

    });

    Button addRepositoryButton = new Button(repositoriesComposite, SWT.NONE);
    addRepositoryButton.setText(Messages.RemoteTaskSelectionDialog_Add_);
    addRepositoryButton.setEnabled(TasksUiPlugin.getRepositoryManager().hasUserManagedRepositoryConnectors());
    addRepositoryButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent event) {
            IHandlerService hndSvc = (IHandlerService) PlatformUI.getWorkbench()
                    .getService(IHandlerService.class);
            try {
                hndSvc.executeCommand(ITaskCommandIds.ADD_TASK_REPOSITORY, null);
                repositoriesViewer.setInput(getTaskRepositories());
            } catch (CommandException e) {
                StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, e.getMessage(), e));
            }
        }
    });

    Composite addToTaskListComposite = new Composite(area, SWT.NONE);
    addToTaskListComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).create());

    addToTaskListCheck = new Button(addToTaskListComposite, SWT.CHECK);
    addToTaskListCheck.setText(Messages.RemoteTaskSelectionDialog_Add_to_Task_List_category);

    categoryViewer = new ComboViewer(addToTaskListComposite, SWT.DROP_DOWN | SWT.READ_ONLY);
    categoryViewer.setContentProvider(new ArrayContentProvider());
    TaskList taskList = TasksUiPlugin.getTaskList();
    LinkedList<AbstractTaskContainer> categories = new LinkedList<AbstractTaskContainer>(
            taskList.getCategories());
    categories.addFirst(taskList.getDefaultCategory());
    categoryViewer.setInput(categories);
    categoryViewer.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof IRepositoryElement) {
                return ((IRepositoryElement) element).getSummary();
            }
            return super.getText(element);
        }

    });
    categoryViewer.setSelection(new StructuredSelection(taskList.getDefaultCategory()));

    categoryViewer.getControl().setEnabled(addToTaskListCheck.getSelection());
    addToTaskListCheck.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            categoryViewer.getControl().setEnabled(addToTaskListCheck.getSelection());
        }

    });

    idText.addKeyListener(new KeyAdapter() {

        @Override
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.ARROW_DOWN) {
                tasksViewer.getControl().setFocus();
            }
        }

    });

    validate();

    Dialog.applyDialogFont(area);
    return area;
}

From source file:org.eclipse.mylyn.internal.tasks.ui.notifications.TaskListNotification.java

License:Open Source License

private LabelProvider getLabelProvider() {
    // lazily instantiate on UI thread
    if (labelProvider == null) {
        labelProvider = new DecoratingLabelProvider(new TaskElementLabelProvider(true),
                PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator());
    }/*w  ww . j  a va  2 s.  com*/
    return labelProvider;
}

From source file:org.eclipse.mylyn.internal.tasks.ui.properties.ProjectTaskRepositoryPage.java

License:Open Source License

@Override
protected Control createContents(Composite parent) {

    Font font = parent.getFont();

    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    composite.setLayout(layout);/*from   w  ww  . j  av a  2 s  .c  o  m*/
    composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    composite.setFont(font);

    initialize();

    Label description = createDescriptionLabel(composite);
    description.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));

    listViewer = CheckboxTableViewer.newCheckList(composite, SWT.TOP | SWT.BORDER);
    listViewer.getTable().setFont(font);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.grabExcessHorizontalSpace = true;

    // Only set a height hint if it will not result in a cut off dialog
    if (DialogUtil.inRegularFontMode(parent)) {
        data.heightHint = getDefaultFontHeight(listViewer.getTable(), REPOSITORY_LIST_MULTIPLIER);
    }
    listViewer.getTable().setLayoutData(data);
    listViewer.getTable().setFont(font);

    listViewer.setLabelProvider(new DecoratingLabelProvider(new TaskRepositoryLabelProvider(),
            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
    listViewer.setContentProvider(new IStructuredContentProvider() {
        public void inputChanged(Viewer v, Object oldInput, Object newInput) {
        }

        public void dispose() {
        }

        public Object[] getElements(Object parent) {
            return TasksUi.getRepositoryManager().getAllRepositories().toArray();
        }

    });

    listViewer.setSorter(new TaskRepositoriesSorter());
    listViewer.setInput(project.getWorkspace());

    listViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            if (event.getChecked()) {
                // only allow single selection
                listViewer.setAllChecked(false);
                listViewer.setChecked(event.getElement(), event.getChecked());
            }
            modified = true;
        }
    });
    updateLinkedRepository();

    // TODO this code was copied from SelectRepositoryPage
    final AddRepositoryAction action = new AddRepositoryAction();
    action.setPromptToAddQuery(false);

    Button button = new Button(composite, SWT.NONE);
    button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING));
    button.setText(AddRepositoryAction.TITLE);
    button.setEnabled(action.isEnabled());
    button.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            TaskRepository taskRepository = action.showWizard();
            if (taskRepository != null) {
                listViewer.setInput(project.getWorkspace());
                listViewer.setSelection(new StructuredSelection(taskRepository));
                updateLinkedRepository();
            }
        }
    });

    return composite;
}

From source file:org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    contentProvider = new TaskRepositoriesContentProvider();
    viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
    viewer.setContentProvider(contentProvider);
    viewer.setUseHashlookup(true);/*from  w w w  .  j ava2  s.c om*/
    ViewerFilter[] filters = { new EmptyCategoriesFilter(contentProvider) };
    viewer.setFilters(filters);
    viewer.setLabelProvider(new DecoratingLabelProvider(new TaskRepositoryLabelProvider(),
            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));

    viewer.setSorter(new TaskRepositoriesViewSorter());

    viewer.setInput(getViewSite());
    viewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            WorkbenchUtil.openProperties(getSite());
        }
    });

    final IThemeManager themeManager = getSite().getWorkbenchWindow().getWorkbench().getThemeManager();
    new GradientDrawer(themeManager, getViewer()) {
        @Override
        protected boolean shouldApplyGradient(org.eclipse.swt.widgets.Event event) {
            return event.item.getData() instanceof Category;
        }
    };

    makeActions();
    hookContextMenu();
    hookGlobalActions();
    contributeToActionBars();
    getViewer().expandAll();
    getSite().setSelectionProvider(getViewer());
}

From source file:org.eclipse.mylyn.internal.tasks.ui.wizards.SelectRepositoryConnectorPage.java

License:Open Source License

public void createControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);
    GridLayoutFactory.fillDefaults().numColumns(1).spacing(0, 3).applyTo(container);

    viewer = new TableViewer(container, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.setContentProvider(new RepositoryContentProvider());
    viewer.setSorter(new TaskRepositoriesSorter());
    viewer.setLabelProvider(new DecoratingLabelProvider(new TaskRepositoryLabelProvider(),
            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
    viewer.setInput(TasksUi.getRepositoryManager().getRepositoryConnectors());
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            if (selection.getFirstElement() instanceof AbstractRepositoryConnector) {
                connector = (AbstractRepositoryConnector) selection.getFirstElement();
                setPageComplete(true);// w ww .ja v  a  2 s  .  c  om
            }
        }

    });

    viewer.addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            getContainer().showPage(getNextPage());
        }
    });
    GridDataFactory.fillDefaults().grab(true, true).applyTo(viewer.getControl());

    // add a hyperlink for connector discovery if it's available and enabled.

    // we integrate with discovery via a well-known command, which when invoked launches the discovery wizard
    final Command discoveryWizardCommand = TasksUiInternal.getConfiguredDiscoveryWizardCommand();
    if (discoveryWizardCommand != null && discoveryWizardCommand.isEnabled()) {
        Button discoveryButton = new Button(container, SWT.PUSH);
        GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.CENTER).applyTo(discoveryButton);
        discoveryButton.setText(Messages.SelectRepositoryConnectorPage_activateDiscovery);
        discoveryButton.setImage(CommonImages.getImage(CommonImages.DISCOVERY));
        discoveryButton.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent event) {
                IHandlerService handlerService = (IHandlerService) PlatformUI.getWorkbench()
                        .getService(IHandlerService.class);
                try {
                    handlerService.executeCommand(discoveryWizardCommand.getId(), null);
                } catch (Exception e) {
                    IStatus status = new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
                            NLS.bind(Messages.SelectRepositoryConnectorPage_discoveryProblemMessage,
                                    new Object[] { e.getMessage() }),
                            e);
                    TasksUiInternal.logAndDisplayStatus(
                            Messages.SelectRepositoryConnectorPage_discoveryProblemTitle, status);
                }
            }
        });
    }

    Dialog.applyDialogFont(container);
    setControl(container);
}

From source file:org.eclipse.mylyn.internal.tasks.ui.wizards.SelectRepositoryPage.java

License:Open Source License

protected Tree createTableViewer(Composite container) {
    viewer = new TreeViewer(container, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    //      contentProvider = new TeamRepositoriesContentProvider();
    viewer.setContentProvider(new RepositoryContentProvider());
    //      ViewerFilter[] filters = { new EmptyCategoriesFilter(contentProvider) };
    //      viewer.setFilters(filters);
    // viewer.setLabelProvider(new TaskRepositoryLabelProvider());
    viewer.setLabelProvider(new DecoratingLabelProvider(new TaskRepositoryLabelProvider(),
            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
    viewer.setInput(TasksUi.getRepositoryManager().getRepositoryConnectors());

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            if (selection.getFirstElement() instanceof TaskRepository) {
                setSelectedNode(new CustomWizardNode((TaskRepository) selection.getFirstElement()));
                setPageComplete(true);/*from  w w  w.j  a va 2 s. co m*/
            } else {
                setSelectedNode(null);
                setPageComplete(false);
            }
        }
    });

    TaskRepository selectedRepository = TasksUiUtil.getSelectedRepository(null);
    if (selectedRepository != null) {
        Category category = ((TaskRepositoryManager) TasksUi.getRepositoryManager())
                .getCategory(selectedRepository);
        Object[] path = { category, selectedRepository };
        viewer.setSelection(new TreeSelection(new TreePath(path)));
    } else {
        TaskRepository localRepository = TasksUi.getRepositoryManager().getRepository(
                LocalRepositoryConnector.CONNECTOR_KIND, LocalRepositoryConnector.REPOSITORY_URL);
        viewer.setSelection(new StructuredSelection(localRepository));
    }

    final IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();

    new GradientDrawer(themeManager, getViewer()) {
        @Override
        protected boolean shouldApplyGradient(org.eclipse.swt.widgets.Event event) {
            return event.item.getData() instanceof Category;
        }
    };

    viewer.addOpenListener(new IOpenListener() {

        public void open(OpenEvent event) {
            if (canFlipToNextPage()) {
                getContainer().showPage(getNextPage());
            } else if (canFinish()) {
                if (getWizard().performFinish()) {
                    ((WizardDialog) getContainer()).close();
                }
            }
        }
    });

    viewer.expandAll();
    viewer.getTree().showSelection();
    viewer.getTree().setFocus();
    return viewer.getTree();
}

From source file:org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetPage.java

License:Open Source License

public void createControl(Composite parent) {
    initializeDialogUnits(parent);//from ww  w.  ja  v  a2  s  . c  o m

    Composite composite = new Composite(parent, SWT.NULL);

    GridLayout layout = new GridLayout();
    layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
    layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
    layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
    composite.setLayout(layout);
    composite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
    setControl(composite);

    // PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IIDEHelpContextIds.WORKING_SET_RESOURCE_PAGE);
    Label label = new Label(composite, SWT.WRAP);
    label.setText(Messages.TaskWorkingSetPage_Working_set_name);
    label.setLayoutData(new GridData(
            GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER));

    text = new Text(composite, SWT.SINGLE | SWT.BORDER);
    text.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
    text.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            validateInput();
        }
    });
    // text.setBackground(FieldAssistColors.getRequiredFieldBackgroundColor(text));

    label = new Label(composite, SWT.WRAP);
    label.setText(Messages.TaskWorkingSetPage_Working_set_contents);
    label.setLayoutData(new GridData(
            GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER));

    treeViewer = new CheckboxTreeViewer(composite);
    treeViewer.setUseHashlookup(true);
    treeViewer.setContentProvider(workingSetPageContentProvider);

    treeViewer.setLabelProvider(new DecoratingLabelProvider(new AggregateLabelProvider(),
            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
    treeViewer.setSorter(new CustomSorter());

    ArrayList<Object> containers = new ArrayList<Object>();
    for (TaskRepository repository : TasksUi.getRepositoryManager().getAllRepositories()) {
        containers.add(repository);
    }

    containers.addAll(Arrays.asList(ResourcesPlugin.getWorkspace().getRoot().getProjects()));

    treeViewer.setInput(containers);

    // tree.setComparator(new ResourceComparator(ResourceComparator.NAME));

    GridData data = new GridData(GridData.FILL_BOTH | GridData.GRAB_VERTICAL);
    data.heightHint = SIZING_SELECTION_WIDGET_HEIGHT;
    data.widthHint = SIZING_SELECTION_WIDGET_WIDTH;
    treeViewer.getControl().setLayoutData(data);

    treeViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            handleCheckStateChange(event);
        }
    });

    // Add select / deselect all buttons for bug 46669
    Composite buttonComposite = new Composite(composite, SWT.NONE);
    layout = new GridLayout(2, false);
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
    buttonComposite.setLayout(layout);
    buttonComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));

    Button selectAllButton = new Button(buttonComposite, SWT.PUSH);
    selectAllButton.setText(Messages.TaskWorkingSetPage_Select_All);
    selectAllButton.setToolTipText(""); //$NON-NLS-1$
    selectAllButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent selectionEvent) {
            treeViewer.setCheckedElements(workingSetPageContentProvider.getElements(treeViewer.getInput()));
            validateInput();
        }
    });
    setButtonLayoutData(selectAllButton);

    Button deselectAllButton = new Button(buttonComposite, SWT.PUSH);
    deselectAllButton.setText(Messages.TaskWorkingSetPage_Deselect_All);
    deselectAllButton.setToolTipText(""); //$NON-NLS-1$
    deselectAllButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent selectionEvent) {
            treeViewer.setCheckedElements(new Object[0]);
            validateInput();
        }
    });
    setButtonLayoutData(deselectAllButton);

    if (workingSet != null) {
        for (Object object : workingSet.getElements()) {
            treeViewer.expandToLevel(object, 1);
        }
    } else {
        treeViewer.expandToLevel(2);
    }
    initializeCheckedState();

    if (workingSet != null) {
        text.setText(workingSet.getName());
        treeViewer.getControl().setFocus();
    } else {
        text.setFocus();
    }

    setPageComplete(false);
    Dialog.applyDialogFont(composite);
}

From source file:org.eclipse.papyrus.infra.gmfdiag.outline.DiagramNavigator.java

License:Open Source License

/**
 * Set the tree providers for the outline
 *//* ww  w  .  j ava  2s.  c om*/
protected void initProviders() {
    AdapterFactoryContentProvider adapterContentProvider = new NavigatorAdapterFactoryContentProvider(
            getAdapterFactory());
    adapterContentProvider.inputChanged(viewer, null, null);
    viewer.setContentProvider(new DiagramOrientedContentProvider(adapterContentProvider));
    ILabelProvider labelProvider = new DiagramOrientedLabelProvider(
            new AdapterFactoryLabelProvider(getAdapterFactory()));
    ILabelProvider fullLabelProvider = new DecoratingLabelProvider(labelProvider,
            Activator.getDefault().getWorkbench().getDecoratorManager().getLabelDecorator());
    viewer.setLabelProvider(fullLabelProvider);
}

From source file:org.eclipse.pde.emfforms.editor.EmfMasterDetailBlock.java

License:Open Source License

@Override
protected void createMasterPart(final IManagedForm managedForm, Composite parent) {
    FormToolkit toolkit = parentEditor.getToolkit();

    section = toolkit.createSection(parent, getSectionOptions());
    section.setText(title);//  w  ww.  ja  va  2 s. co m
    section.setDescription("Edit " + title); //$NON-NLS-1$
    section.marginWidth = 5;
    section.setLayout(new FillLayout());
    section.marginHeight = 5;

    Composite client = toolkit.createComposite(section, SWT.WRAP);
    GridLayoutFactory.fillDefaults().numColumns(showPushButtons() ? 2 : 1).applyTo(client);

    // deliberate use of the 3.4 API
    // TODO try to use the new look using a 3.5 fragment
    FilteredTree ft = new FilteredTree(client, getViewerOptions(), new PatternFilter());
    treeViewer = ft.getViewer();

    // Prevent scrollbars to be managed by the editor's root composite
    GridDataFactory.fillDefaults().grab(true, true).hint(50, 50).applyTo(treeViewer.getTree());

    //Buttons
    if (showPushButtons()) {
        Composite buttonComposite = new Composite(client, SWT.NONE);
        GridLayoutFactory.fillDefaults().numColumns(1).applyTo(buttonComposite);

        if (showGenericPushButtons())
            addButton = createButton(buttonComposite, "Add"); //$NON-NLS-1$
        if (showCustomPushButtons())
            createCustomButtons(buttonComposite);
        if (showGenericPushButtons())
            removeButton = createButton(buttonComposite, "Remove"); //$NON-NLS-1$

        GridDataFactory.fillDefaults().grab(false, false).applyTo(buttonComposite);
    }

    //SectionToolBar
    removeAction = createCustomToolbarRemoveAction();

    if (showToolbarButtons()) {
        toolBarManager = PDEFormToolkit.createSectionToolBarManager(section);
        Action addAction = createCustomToolbarAddAction();
        if (addAction != null) {
            toolBarManager.add(addAction);
        }

        if (removeAction != null) {
            toolBarManager.add(removeAction);
        }

        if (showExpandCollapseButtons()) {
            toolBarManager.add(new Separator());

            toolBarManager
                    .add(new Action("Expand All", Activator.getImageDescriptor("icons/obj16/expand.gif")) { //$NON-NLS-1$ //$NON-NLS-2$
                        @Override
                        public void run() {
                            treeViewer.getTree().setRedraw(false);
                            treeViewer.expandAll();
                            treeViewer.getTree().setRedraw(true);
                        }
                    });
            toolBarManager
                    .add(new Action("Collapse All", Activator.getImageDescriptor("icons/obj16/collapse.gif")) { //$NON-NLS-1$ //$NON-NLS-2$
                        @Override
                        public void run() {
                            treeViewer.getTree().setRedraw(false);
                            treeViewer.collapseAll();
                            treeViewer.getTree().setRedraw(true);
                        }
                    });
        }
        toolBarManager.update(true);
        section.setTextClient(toolBarManager.getControl());
    }

    treeViewer.setContentProvider(new AdapterFactoryContentProvider(parentEditor.getAdapterFactory()));
    treeViewer.setLabelProvider(
            new DecoratingLabelProvider(new AdapterFactoryLabelProvider(parentEditor.getAdapterFactory()),
                    PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
    treeViewer.addFilter(getTreeFilter());

    int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
    Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
    treeViewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(treeViewer));
    treeViewer.addDropSupport(dndOperations, transfers,
            new EditingDomainViewerDropAdapter(parentEditor.getEditingDomain(), treeViewer));

    final SectionPart spart = new SectionPart(section);
    managedForm.addPart(spart);

    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            managedForm.fireSelectionChanged(spart, event.getSelection());
        }
    });

    treeViewer.addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            detailsPart.setFocus();
        }
    });

    // Add listeners to manage activation/deactivation of the treeViewer's
    // ActionBarContributor's global handlers
    configureActionBarManagement();

    if (getRemoveButton() != null) {

        DataBindingContext bindingContext = new DataBindingContext();

        IValueProperty p = JFaceProperties.value(IAction.class, IAction.ENABLED, IAction.ENABLED);
        bindingContext.bindValue(SWTObservables.observeEnabled(getRemoveButton()), p.observe(removeAction));

        //Generic action for remove button
        getRemoveButton().addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                if (removeAction != null)
                    removeAction.run();
            }
        });
    }

    createContextMenuFor(treeViewer);

    //update Editor selection
    getEditor().addViewerToListenTo(getTreeViewer());

    section.setClient(client);
}

From source file:org.eclipse.pde.emfforms.internal.editor.EmfContentOutlinePage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    super.createControl(parent);
    contentOutlineViewer = getTreeViewer();
    contentOutlineViewer.addSelectionChangedListener(this);

    // Set up the tree viewer.
    contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(editor.getAdapterFactory()));
    contentOutlineViewer.setLabelProvider(
            new DecoratingLabelProvider(new AdapterFactoryLabelProvider(editor.getAdapterFactory()),
                    PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
    contentOutlineViewer.setInput(viewerInput);
    contentOutlineViewer.setComparator(viewerComparator);
    contentOutlineViewer.addFilter(new ViewerFilter() {
        @Override/*w w  w  . jav  a  2 s.c o  m*/
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            return (!(AdapterFactoryEditingDomain.unwrap(element) instanceof String));
        }
    });

    // Make sure our popups work.
    createContextMenuFor(contentOutlineViewer);

    if (!editor.getEditingDomain().getResourceSet().getResources().isEmpty()) {
        // Select the root object in the view.
        contentOutlineViewer.setSelection(
                new StructuredSelection(editor.getEditingDomain().getResourceSet().getResources().get(0)),
                true);
    }

}