Example usage for org.eclipse.jface.viewers CheckboxTreeViewer setCheckStateProvider

List of usage examples for org.eclipse.jface.viewers CheckboxTreeViewer setCheckStateProvider

Introduction

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

Prototype

public void setCheckStateProvider(ICheckStateProvider checkStateProvider) 

Source Link

Document

Sets the ICheckStateProvider for this CheckboxTreeViewer .

Usage

From source file:com.arcbees.gwtp.plugin.core.project.AddFeaturesPage.java

License:Apache License

@Override
public void createControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);

    setControl(container);/*  w  w  w.  j  av a 2  s . co m*/
    container.setLayout(new GridLayout(1, false));

    final CheckboxTreeViewer checkboxTreeViewer = new CheckboxTreeViewer(container, SWT.BORDER);
    checkboxTreeViewer.setAutoExpandLevel(-1);
    checkboxTreeViewer.setExpandPreCheckFilters(false);
    Tree tree = checkboxTreeViewer.getTree();
    tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    checkboxTreeViewer.setContentProvider(new FeatureContentProvider());
    checkboxTreeViewer.setLabelProvider(new FeatureLabelProvider());
    checkboxTreeViewer.setCheckStateProvider(new FeatureCheckStateProvider());
    checkboxTreeViewer.setInput("init");

    checkboxTreeViewer.addCheckStateListener(new ICheckStateListener() {
        @SuppressWarnings("unchecked")
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            Node<Feature> featureNode = ((Node<Feature>) event.getElement());
            if (!event.getChecked()) {
                checkboxTreeViewer.setSubtreeChecked(event.getElement(), false);
                deselectFeatureNode(featureNode);
            } else {
                featureNode.getData().setSelected(true);
            }
            FeatureConfigPage.get().showSelectedFeatures();
        }
    });
}

From source file:de.ovgu.featureide.ui.statistics.ui.CheckBoxListener.java

License:Open Source License

public CheckBoxListener(final CheckboxTreeViewer viewer) {
    super();/*from   ww w.ja  va2  s. co  m*/
    this.viewer = viewer;
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            Object[] sources = ((TreeSelection) event.getSelection()).toArray();
            for (Object source : sources) {
                if (source instanceof Parent) {
                    Parent selected = (Parent) source;
                    if (selected.hasChildren()) {
                        if (selected instanceof LazyParent) {
                            ((LazyParent) selected).getChildren();
                        }
                        boolean allChecked = allChildrenChecked(selected);
                        viewer.setChecked(selected, !allChecked);
                        for (Parent child : selected.getChildren()) {
                            viewer.setChecked(child, !allChecked);
                        }
                        viewer.setExpandedState(selected, true);
                    } else {
                        viewer.setChecked(selected, viewer.getChecked(selected));
                    }
                }
            }
            refreshViewer();
        }
    });
    viewer.setCheckStateProvider(new ICheckStateProvider() {

        @Override
        public boolean isGrayed(Object element) {
            return viewer.getGrayed(element);
        }

        @Override
        public boolean isChecked(Object element) {
            return viewer.getChecked(element);
        }
    });
}

From source file:net.atos.jdt.ast.refactor.engine.internal.extpt.ui.RulesExtensionPointPreferencePage.java

License:Open Source License

@Override
protected Control createContents(Composite parent) {

    // Builds graphical Structure
    Composite background = new Composite(parent, SWT.NONE);
    background.setLayout(new FormLayout());
    // background.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_DARK_BLUE));

    Label message = new Label(background, SWT.WRAP);
    message.setText(RulesPreferencePagesMessages.PREFERENCE_LABEL.value());
    new FormDataBuilder().horizontal().top().height(30).apply(message);

    Label comboLabel = new Label(background, SWT.NONE);
    comboLabel.setText(RulesPreferencePagesMessages.REPOSITORY_LABEL.value());
    new FormDataBuilder().left().top(message).width(100).apply(comboLabel);

    Combo combo = new Combo(background, SWT.READ_ONLY);
    new FormDataBuilder().left(comboLabel).top(message).right().apply(combo);

    ComboViewer comboViewer = new ComboViewer(combo);
    comboViewer.setContentProvider(new RulesRepositoriesContentProvider());
    comboViewer.setLabelProvider(new RulesRepositoriesLabelProvider());

    Group group = new Group(background, SWT.NONE);
    group.setLayout(new FormLayout());
    new FormDataBuilder().horizontal().top(combo).bottom().apply(group);
    group.setText(RulesPreferencePagesMessages.GROUP_LABEL.value());

    Tree tree = new Tree(group, SWT.CHECK | SWT.BORDER);
    new FormDataBuilder().fill().apply(tree);
    CheckboxTreeViewer treeViewer = new CheckboxTreeViewer(tree);
    treeViewer.setLabelProvider(new RulesLabelProvider());
    treeViewer.setContentProvider(new RulesContentProvider());
    treeViewer.setCheckStateProvider(new RulesCheckProvider(states));
    treeViewer.addCheckStateListener(new RulesCheckListener(states));

    // Add inputs
    comboViewer.addSelectionChangedListener(new RulesListRefreshmentListener(treeViewer));
    comboViewer.setInput(ASTRulesExtensionPoint.getInstance());

    return background;
}

From source file:net.atos.jdt.ast.validation.engine.internal.extpt.ui.RulesExtensionPointPreferencePage.java

License:Open Source License

@Override
protected Control createContents(final Composite parent) {

    // Builds graphical Structure
    final Composite background = new Composite(parent, SWT.NONE);
    background.setLayout(new FormLayout());

    final Label message = new Label(background, SWT.WRAP);
    message.setText(RulesPreferencePagesMessages.PREFERENCE_LABEL.value());
    new FormDataBuilder().horizontal().top().height(30).apply(message);

    final Button participantButton = new Button(background, SWT.CHECK);
    participantButton.setText(RulesPreferencePagesMessages.ENABLE_CUP.value());
    participantButton.setToolTipText(RulesPreferencePagesMessages.ENABLE_CUP_TOOLTIP.value());
    participantButton.setSelection(ASTRulesPreferences.isValidationParticipantEnabled());
    participantButton.addSelectionListener(new SelectionAdapter() {
        @Override/*from w w w  .  j ava  2 s  . co m*/
        public void widgetSelected(final SelectionEvent e) {
            RulesExtensionPointPreferencePage.this.participantButtonEnabled = ((Button) e.widget)
                    .getSelection();
        }
    });
    new FormDataBuilder().left().right().top(message, 15).apply(participantButton);
    //
    final Button rulesSingletonButton = new Button(background, SWT.CHECK);
    rulesSingletonButton.setText(RulesPreferencePagesMessages.ENABLE_SINGLETONS.value());
    rulesSingletonButton.setToolTipText(RulesPreferencePagesMessages.ENABLE_SINGLETONS_TOOLTIP.value());
    rulesSingletonButton.setSelection(ASTRulesPreferences.areRulesSingletons());
    rulesSingletonButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {
            RulesExtensionPointPreferencePage.this.rulesAreSingletons = ((Button) e.widget).getSelection();
        }
    });
    //
    new FormDataBuilder().left().right().top(participantButton).apply(rulesSingletonButton);

    final Label comboLabel = new Label(background, SWT.NONE);
    comboLabel.setText(RulesPreferencePagesMessages.REPOSITORY_LABEL.value());
    new FormDataBuilder().left().top(rulesSingletonButton, 17).width(100).apply(comboLabel);

    final Combo combo = new Combo(background, SWT.READ_ONLY);
    new FormDataBuilder().left(comboLabel).top(rulesSingletonButton, 15).right().apply(combo);

    final ComboViewer comboViewer = new ComboViewer(combo);
    comboViewer.setContentProvider(new RulesRepositoriesContentProvider());
    comboViewer.setLabelProvider(new RulesRepositoriesLabelProvider());

    final Link link = new Link(background, SWT.NONE);
    link.setText(RulesPreferencePagesMessages.LINK_TO_QUICKSTART.value());
    link.addSelectionListener(new OpenLinkActionSelectionAdapter());
    new FormDataBuilder().bottom().left().right().apply(link);

    final Group group = new Group(background, SWT.NONE);
    group.setLayout(new FormLayout());
    new FormDataBuilder().horizontal().top(combo).bottom(link).apply(group);
    group.setText(RulesPreferencePagesMessages.GROUP_LABEL.value());

    final Tree tree = new Tree(group, SWT.CHECK | SWT.BORDER);
    new FormDataBuilder().fill().apply(tree);
    final CheckboxTreeViewer treeViewer = new CheckboxTreeViewer(tree);
    treeViewer.setLabelProvider(new RulesLabelProvider());
    treeViewer.setContentProvider(new RulesContentProvider());
    treeViewer.setCheckStateProvider(new RulesCheckProvider(this.states));
    treeViewer.addCheckStateListener(new RulesCheckListener(this.states));

    // Add inputs
    comboViewer.addSelectionChangedListener(new RulesListRefreshmentListener(treeViewer));
    comboViewer.setInput(ASTRulesExtensionPoint.getInstance());

    return background;
}

From source file:net.atos.optimus.m2m.engine.ui.prefs.TransformationsPreferencesPage.java

License:Open Source License

@Override
protected Control createContents(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new FormLayout());

    Group descriptionGroup = new Group(composite, SWT.NONE);
    descriptionGroup.setText("About : ");
    descriptionGroup.setLayout(new FormLayout());

    Label descriptionLabel = new Label(descriptionGroup, SWT.WRAP);
    FormDataBuilder.on(descriptionLabel).fill();

    descriptionLabel.setText(TransformationsPreferencesMessages.DESCRIPTION.message());

    Group levelGroup = new Group(composite, SWT.NONE);
    levelGroup.setLayout(new FormLayout());

    // Create elements
    Label label = new Label(levelGroup, SWT.NONE);
    label.setText(TransformationsPreferencesMessages.LOGGER_LEVEL.message());

    final Combo combo = new Combo(levelGroup, SWT.READ_ONLY);
    for (Level level : levels)
        combo.add(level.getName());// ww  w.  j a  v a 2 s . co m
    combo.select(levels.indexOf(OptimusM2MEngineLogger.logger.getLevel()));

    // Add a listener to save the user selection
    combo.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            newLevel = combo.getSelectionIndex();
        }
    });

    Label label2 = new Label(composite, SWT.NONE);
    label2.setText(TransformationsPreferencesMessages.TRANSFORMATIONS_LABEL.message());

    // Manage the layout
    Tree tree = new Tree(composite, SWT.CHECK | SWT.BORDER);

    final CheckboxTreeViewer treeViewer = new CheckboxTreeViewer(tree);
    treeViewer.setLabelProvider(new TransformationsTreeLabelProvider());
    treeViewer.setContentProvider(new TransformationsTreeContentsProvider());
    treeViewer.setCheckStateProvider(new TransformationsTreeCheckProvider());
    treeViewer.addDoubleClickListener(new TransformationsTreeDoubleClickListener());
    this.checkListener = new TransformationsTreeCheckListener(treeViewer);
    treeViewer.addCheckStateListener(this.checkListener);
    treeViewer.setInput(ExtensionPointTransformationDataSource.instance());

    Button exportButton = new Button(composite, SWT.PUSH);
    exportButton.setText(TransformationsPreferencesMessages.EXPORT_BUTTON.message());
    exportButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            TransformationsPreferencesImex.exportPreferences();
        }
    });

    Button importButton = new Button(composite, SWT.PUSH);
    importButton.setText(TransformationsPreferencesMessages.IMPORT_BUTTON.message());
    importButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            TransformationsPreferencesImex.importPreferences();
            treeViewer.refresh();
        }
    });

    FormDataBuilder.on(descriptionGroup).top().left().right();

    FormDataBuilder.on(label2).left().top(descriptionGroup, 15).right();
    FormDataBuilder.on(tree).left().top(label2).bottom(levelGroup).right(exportButton);
    FormDataBuilder.on(exportButton).top(label2).right().width(90).height(25);
    FormDataBuilder.on(importButton).top(exportButton).right().width(90).height(25);

    FormDataBuilder.on(levelGroup).bottom().left().right(exportButton);

    FormDataBuilder.on(label).left().top().bottom().right(combo);
    FormDataBuilder.on(combo).top().width(120).bottom().right();

    return composite;
}

From source file:net.geoprism.shapefile.locatedIn.PathFilterPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout(1, false));

    Map<String, List<PathOption>> paths = this.bean.getPaths();

    Set<Entry<String, List<PathOption>>> entries = paths.entrySet();

    for (Entry<String, List<PathOption>> entry : entries) {
        List<PathOption> options = entry.getValue();

        if (options.size() > 0) {
            PathOption option = options.get(0);

            Group group = new Group(composite, SWT.SHADOW_ETCHED_OUT);
            group.setText(option.getChildLabel());
            group.setLayoutData(new GridData(GridData.FILL_BOTH));
            group.setLayout(new FillLayout());

            PathTreeContentProvider provider = new PathTreeContentProvider(options);

            // Create the tree viewer to display the file tree
            final CheckboxTreeViewer viewer = new CheckboxTreeViewer(group);
            viewer.setContentProvider(provider);
            viewer.setLabelProvider(new PathOptionProvider());
            viewer.setCheckStateProvider(new PathOptionProvider());
            viewer.setInput("root");

            viewer.addCheckStateListener(new ICheckStateListener() {
                public void checkStateChanged(CheckStateChangedEvent event) {
                    PathOption option = (PathOption) event.getElement();
                    option.setEnabled(event.getChecked());

                    if (!event.getChecked()) {
                        viewer.setSubtreeChecked(option, false);
                    }//from www .j a va 2 s  .  c  om
                }
            });
        }
    }

    this.setControl(composite);
}

From source file:org.eclipse.cdt.arduino.ui.internal.LibraryTree.java

License:Open Source License

@Override
protected TreeViewer doCreateTreeViewer(Composite parent, int style) {
    CheckboxTreeViewer viewer = new CheckboxTreeViewer(parent, style);
    viewer.setCheckStateProvider(new ICheckStateProvider() {
        @Override// ww  w .j av  a  2 s.  c  om
        public boolean isGrayed(Object element) {
            if (element instanceof String) {
                String category = (String) element;
                if (category == PLATFORMS) {
                    for (ArduinoLibrary lib : checkedLibs) {
                        if (lib.getPlatform() != null) {
                            return true;
                        }
                    }
                } else if (category == UNCATEGORIZED) {
                    for (ArduinoLibrary lib : checkedLibs) {
                        if (lib.getPlatform() == null && lib.getCategory() == null) {
                            return true;
                        }
                    }
                } else {
                    for (ArduinoLibrary lib : checkedLibs) {
                        if (element.equals(lib.getCategory())) {
                            return true;
                        }
                    }
                }
            } else if (element instanceof ArduinoPlatform) {
                for (ArduinoLibrary lib : checkedLibs) {
                    if (element == lib.getPlatform()) {
                        return true;
                    }
                }
            }
            return false;
        }

        @Override
        public boolean isChecked(Object element) {
            if (element instanceof ArduinoLibrary) {
                return checkedLibs.contains(element);
            } else {
                return isGrayed(element);
            }
        }
    });

    viewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            Object element = event.getElement();
            if (element instanceof ArduinoLibrary) {
                if (event.getChecked()) {
                    checkedLibs.add((ArduinoLibrary) element);
                } else {
                    checkedLibs.remove(element);
                }
            } else if (element instanceof String) {
                if (!event.getChecked()) {
                    for (ArduinoLibrary lib : new ArrayList<>(checkedLibs)) {
                        if (element.equals(lib.getCategory())) {
                            checkedLibs.remove(lib);
                        }
                    }
                }
            }
        }
    });
    return viewer;
}

From source file:org.eclipse.emf.validation.debug.ui.view.ValidityView.java

License:Open Source License

/**
 * This is a callback that will allow us
 * to create the viewer and initialize it.
 *///  ww  w .  j a va2s. c om
@Override
public void createPartControl(Composite parent) {
    Color blackColor = parent.getDisplay().getSystemColor(SWT.COLOR_BLACK);
    Color blueColor = parent.getDisplay().getSystemColor(SWT.COLOR_BLUE);
    ILabelProvider labelProvider = new AdapterFactoryLabelProvider(validityManager.getAdapterFactory());
    ILabelProvider nodeLabelProvider = new AbstractNodeLabelProvider(labelProvider, blackColor, blueColor);
    IContentProvider validatableContentProvider = new ValidatableNodeContentProvider(validityManager,
            nodeLabelProvider);
    IContentProvider constrainingNodeContentProvider = new ConstrainingNodeContentProvider(validityManager,
            nodeLabelProvider);
    ICheckStateProvider nodeCheckStateProvider = new AbstractNodeCheckStateProvider();
    ICheckStateListener nodeCheckStateListener = new AbstractNodeCheckStateListener();
    ILabelProvider nodeDecoratingLabelProvider = new DecoratingNodeLabelProvider(nodeLabelProvider,
            new SeveritiesDecorator(validityManager));
    Composite sash = new SashForm(parent, SWT.NONE);
    /*        {
               GridLayout layout = new GridLayout(2, true);
               layout.marginBottom = 0;
               layout.marginLeft = 0;
               layout.marginRight = 0;
               layout.marginTop = 0;
             composite.setLayout(layout);        
               GridData gridData = new GridData(GridData.FILL_BOTH);
               gridData.grabExcessHorizontalSpace = true;
               gridData.grabExcessVerticalSpace = true;
               composite.setLayoutData(gridData);
            } */
    CheckboxTreeViewer validatableNodesViewer2;
    {
        Composite validatableNodesComposite = new Composite(sash, SWT.BORDER);
        {
            GridLayout layout = new GridLayout(1, true);
            layout.marginBottom = 0;
            layout.marginLeft = 0;
            layout.marginRight = 0;
            layout.marginTop = 0;
            validatableNodesComposite.setLayout(layout);
            GridData gridData = new GridData(GridData.FILL_BOTH);
            gridData.grabExcessHorizontalSpace = true;
            gridData.grabExcessVerticalSpace = true;
            validatableNodesComposite.setLayoutData(gridData);
        }
        Label validatableNodesTitle = new Label(validatableNodesComposite, 0);
        validatableNodesTitle.setText("Validateable Model Elements");
        Tree validatableNodesTree = new Tree(validatableNodesComposite,
                SWT.CHECK | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
        GridData gridData = new GridData(GridData.FILL_BOTH);
        gridData.grabExcessHorizontalSpace = true;
        gridData.grabExcessVerticalSpace = true;
        validatableNodesTree.setLayoutData(gridData);
        validatableNodesViewer = validatableNodesViewer2 = new CheckboxTreeViewer(validatableNodesTree);
        validatableNodesViewer2.addCheckStateListener(nodeCheckStateListener);
    }
    CheckboxTreeViewer constrainingNodesViewer2;
    {
        Composite constrainingNodesComposite = new Composite(sash, SWT.BORDER);
        {
            GridLayout layout = new GridLayout(1, true);
            layout.marginBottom = 0;
            layout.marginLeft = 0;
            layout.marginRight = 0;
            layout.marginTop = 0;
            constrainingNodesComposite.setLayout(layout);
            GridData gridData = new GridData(GridData.FILL_BOTH);
            gridData.grabExcessHorizontalSpace = true;
            gridData.grabExcessVerticalSpace = true;
            constrainingNodesComposite.setLayoutData(gridData);
        }
        Label constrainingNodesTitle = new Label(constrainingNodesComposite, 0);
        constrainingNodesTitle.setText("Constraining Model Elements");
        Tree constrainingNodesTree = new Tree(constrainingNodesComposite,
                SWT.CHECK | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
        GridData gridData = new GridData(GridData.FILL_BOTH);
        gridData.grabExcessHorizontalSpace = true;
        gridData.grabExcessVerticalSpace = true;
        constrainingNodesTree.setLayoutData(gridData);
        constrainingNodesViewer = constrainingNodesViewer2 = new CheckboxTreeViewer(constrainingNodesTree);
        constrainingNodesViewer2.addCheckStateListener(nodeCheckStateListener);
    }

    validatableNodesViewer2.setContentProvider(validatableContentProvider);
    validatableNodesViewer2.setLabelProvider(nodeDecoratingLabelProvider);
    validatableNodesViewer2.setCheckStateProvider(nodeCheckStateProvider);

    constrainingNodesViewer2.setContentProvider(constrainingNodeContentProvider);
    constrainingNodesViewer2.setLabelProvider(nodeDecoratingLabelProvider);
    constrainingNodesViewer2.setCheckStateProvider(nodeCheckStateProvider);

    /*       validatableNodesViewer.getTree().addMouseTrackListener(new MouseTrackListener(){
            
             public void mouseEnter(MouseEvent e) {}
            
             public void mouseExit(MouseEvent e) {}
            
             public void mouseHover(MouseEvent e) {
    showMessage("Mouse hover at " + e.x + " : " + e.y);
    //            validatableNodesViewer.getTree().g
             }
          }); */
    //      viewer.setSorter(new NameSorter());

    // Create the help context id for the viewer's control
    //      PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), "org.eclipse.ocl.modelregistry.explorer.viewer");
    makeActions();
    hookContextMenu();
    hookConstrainingNodesDoubleClickAction();
    hookValidatableNodesDoubleClickAction();
    contributeToActionBars();
    ISelectionService service = (ISelectionService) getSite().getService(ISelectionService.class);
    if (service != null) {
        service.addSelectionListener(this);
        ISelection selection = service.getSelection();
        Notifier input = SelectionUtil.getNotifierSelection(selection, this);
        validityManager.setInput(input);
    }
    refreshJob.initViewers(validatableNodesViewer2, constrainingNodesViewer2);
    Dialog.applyDialogFont(parent);
    ColumnViewerToolTipSupport.enableFor(validatableNodesViewer2);
    ColumnViewerToolTipSupport.enableFor(constrainingNodesViewer2);
}

From source file:org.eclipse.ice.client.widgets.moose.MOOSETreeCompositeView.java

License:Open Source License

/**
 * Overrides the default viewer to add an additional feature: When a parent
 * node is unchecked, all of its child nodes are unchecked.
 */// w w w.j a  va  2s  .  c  o  m
@Override
protected TreeViewer createViewer(Composite parent) {
    TreeViewer treeViewer = null;

    if (parent != null) {
        // Initialize the TreeViewer. Note: We create a CheckboxTreeViewer!
        final CheckboxTreeViewer checkboxTreeViewer = new CheckboxTreeViewer(parent,
                SWT.VIRTUAL | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
        treeViewer = checkboxTreeViewer;

        // Set and configure the content and label providers
        treeViewer.setContentProvider(new TreeCompositeContentProvider(this, parentMap));
        treeViewer.setLabelProvider(new TreeCompositeLabelProvider());

        // Add a provider to tell the viewer when elements should be
        // checked. This is NOT default behavior.
        MOOSETreeCheckStateManager checkManager;
        checkManager = new MOOSETreeCheckStateManager();
        checkboxTreeViewer.setCheckStateProvider(checkManager);
        checkboxTreeViewer.addCheckStateListener(checkManager);
    }

    return treeViewer;
}

From source file:org.eclipse.ocl.examples.emf.validation.debug.ui.view.ValidityView.java

License:Open Source License

/**
 * This will be called in order to create the actual body of the validity view, the "Validity" form.
 * // ww w.  j a  va  2  s  .c o m
 * @param toolkit
 *            Toolkit that can be used to create the form.
 * @param parent
 *            Parent composite of the form.
 */
protected void createValidityViewForm(FormToolkit toolkit, Composite parent) {
    Color blackColor = parent.getDisplay().getSystemColor(SWT.COLOR_BLACK);
    Color blueColor = parent.getDisplay().getSystemColor(SWT.COLOR_BLUE);
    ILabelProvider labelProvider = new AdapterFactoryLabelProvider(validityManager.getAdapterFactory());
    ILabelProvider nodeLabelProvider = new NodeLabelProvider(labelProvider, blackColor, blueColor);
    IContentProvider validatableContentProvider = new ValidatableNodeContentProvider(validityManager,
            nodeLabelProvider);
    IContentProvider constrainingNodeContentProvider = new ConstrainingNodeContentProvider(validityManager,
            nodeLabelProvider);
    ICheckStateProvider nodeCheckStateProvider = new NodeCheckStateProvider();
    ILabelProvider nodeDecoratingLabelProvider = new DecoratingNodeLabelProvider(nodeLabelProvider,
            new SeveritiesDecorator(validityManager));

    validityViewForm = toolkit.createForm(parent);
    messageManager = new FormMessageManager(getForm());
    messageManager.setDecorationPosition(SWT.LEFT | SWT.TOP);
    toolkit.decorateFormHeading(getForm());

    getForm().setText(ValidationDebugMessages.ValidityView_viewTitle);
    messageManager.addMessage(messageKey + messageCount++,
            ValidationDebugMessages.ValidityView_Messages_NoSelection, IStatus.WARNING, getForm());

    Composite mainBody = getForm().getBody();
    mainBody.setLayout(new GridLayout());
    formBody = new SashForm(mainBody, SWT.HORIZONTAL | SWT.SMOOTH);
    toolkit.adapt(formBody);
    formBody.setLayoutData(new GridData(GridData.FILL_BOTH));

    validateableElementsForm = new SashForm(formBody, SWT.VERTICAL | SWT.SMOOTH);
    toolkit.adapt(validateableElementsForm);

    validatableNodesSection = toolkit.createSection(validateableElementsForm, ExpandableComposite.TITLE_BAR);
    validatableNodesSection.setText(ValidationDebugMessages.ValidityView_validatableNodesSectionName);

    CheckboxTreeViewer validatableNodesViewer;
    {
        Composite validatableNodesSectionBody = toolkit.createComposite(validatableNodesSection);
        {
            GridLayout layout = new GridLayout(1, true);
            layout.marginBottom = 0;
            layout.marginLeft = 0;
            layout.marginRight = 0;
            layout.marginTop = 0;
            validatableNodesSectionBody.setLayout(layout);
            GridData gridData = new GridData(GridData.FILL_BOTH);
            gridData.grabExcessHorizontalSpace = true;
            gridData.grabExcessVerticalSpace = true;
            validatableNodesSectionBody.setLayoutData(gridData);
        }

        PatternFilter filter = new PatternFilter();
        filteredValidatableNodesTree = new FilteredCheckboxTree(validatableNodesSectionBody,
                SWT.CHECK | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL, filter);
        filteredValidatableNodesTree.disableTextWidget();

        GridData gridData = new GridData(GridData.FILL_BOTH);
        gridData.grabExcessHorizontalSpace = true;
        gridData.grabExcessVerticalSpace = true;
        filteredValidatableNodesTree.setLayoutData(gridData);

        validatableNodesViewer = getValidatableNodesViewer();
        validatableNodesViewer.getControl().setLayoutData(gridData);

        toolkit.paintBordersFor(validatableNodesSectionBody);
        validatableNodesSection.setClient(validatableNodesSectionBody);
    }

    constrainingElementsForm = new SashForm(formBody, SWT.VERTICAL | SWT.SMOOTH);
    toolkit.adapt(constrainingElementsForm);

    constrainingNodesSection = toolkit.createSection(constrainingElementsForm, ExpandableComposite.TITLE_BAR);
    constrainingNodesSection.setText(ValidationDebugMessages.ValidityView_constrainingNodesSectionName);

    CheckboxTreeViewer constrainingNodesViewer;
    {
        Composite constrainingNodesSectionBody = toolkit.createComposite(constrainingNodesSection);
        {
            GridLayout layout = new GridLayout(1, true);
            layout.marginBottom = 0;
            layout.marginLeft = 0;
            layout.marginRight = 0;
            layout.marginTop = 0;
            constrainingNodesSectionBody.setLayout(layout);
            GridData gridData = new GridData(GridData.FILL_BOTH);
            gridData.grabExcessHorizontalSpace = true;
            gridData.grabExcessVerticalSpace = true;
            constrainingNodesSectionBody.setLayoutData(gridData);
        }

        PatternFilter filter = new PatternFilter();
        filteredConstrainingNodesTree = new FilteredCheckboxTree(constrainingNodesSectionBody,
                SWT.CHECK | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL, filter);
        filteredConstrainingNodesTree.disableTextWidget();

        GridData gridData = new GridData(GridData.FILL_BOTH);
        gridData.grabExcessHorizontalSpace = true;
        gridData.grabExcessVerticalSpace = true;
        filteredConstrainingNodesTree.setLayoutData(gridData);

        constrainingNodesViewer = getConstrainingNodesViewer();
        constrainingNodesViewer.getControl().setLayoutData(gridData);

        toolkit.paintBordersFor(constrainingNodesSectionBody);
        constrainingNodesSection.setClient(constrainingNodesSectionBody);
    }

    ICheckStateListener nodeCheckStateListener = new ValidityNodeCheckStateListener(getValidatableNodesViewer(),
            getConstrainingNodesViewer());
    validatableNodesViewer.setContentProvider(validatableContentProvider);
    validatableNodesViewer.setLabelProvider(nodeDecoratingLabelProvider);
    validatableNodesViewer.setCheckStateProvider(nodeCheckStateProvider);
    validatableNodesViewer.addCheckStateListener(nodeCheckStateListener);
    validatableNodesViewer.addFilter(validatableNodesFilterByKind);

    constrainingNodesViewer.setContentProvider(constrainingNodeContentProvider);
    constrainingNodesViewer.setLabelProvider(nodeDecoratingLabelProvider);
    constrainingNodesViewer.setCheckStateProvider(nodeCheckStateProvider);
    constrainingNodesViewer.addCheckStateListener(nodeCheckStateListener);
    constrainingNodesViewer.addFilter(constrainingNodesFilterByKind);

    formBody.setWeights(new int[] { 1, 1, });

    // Create the help context id for the viewer's control
    makeActions();
    hookContextMenu();
    hookConstrainingNodesDoubleClickAction();
    hookValidatableNodesDoubleClickAction();
    contributeToActionBars();
    ISelectionService service = (ISelectionService) getSite().getService(ISelectionService.class);
    if (service != null) {
        service.addSelectionListener(this);
        ISelection selection = service.getSelection();
        Notifier input = SelectionUtil.getNotifierSelection(selection, this);
        validityManager.setInput(input);
    }
    refreshJob.initViewers(validatableNodesViewer, constrainingNodesViewer);
    Dialog.applyDialogFont(parent);

    ColumnViewerToolTipSupport.enableFor(validatableNodesViewer);
    ColumnViewerToolTipSupport.enableFor(constrainingNodesViewer);
}