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

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

Introduction

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

Prototype

@Override
    public void addCheckStateListener(ICheckStateListener listener) 

Source Link

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  a v a2  s  . c  om*/
    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:com.clustercontrol.composite.FacilityTreeComposite.java

License:Open Source License

/**
 * ?????//  www .  j av  a  2s .  com
 * 
 * ????protected
 */
protected void createContents() {

    // ??
    GridLayout layout = new GridLayout(1, true);
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    this.setLayout(layout);

    // ?
    GridData layoutData = new GridData();
    layoutData.horizontalAlignment = GridData.FILL;
    layoutData.verticalAlignment = GridData.FILL;
    layoutData.grabExcessHorizontalSpace = true;
    layoutData.grabExcessVerticalSpace = true;

    // Add search bar
    Composite compSearch = new ScopeTreeSearchBarComposite(this, SWT.NONE, enableKeyPress);
    WidgetTestUtil.setTestId(this, "search", compSearch);
    compSearch.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    // ?
    Tree tree = null;

    // ?
    if (checkflg) {
        tree = new Tree(this, SWT.MULTI | SWT.BORDER | SWT.CHECK);
        this.treeViewer = new CheckboxTreeViewer(tree);
    } else {
        tree = new Tree(this, SWT.MULTI | SWT.BORDER);
        this.treeViewer = new TreeViewer(tree);
    }
    WidgetTestUtil.setTestId(this, null, tree);
    tree.setLayoutData(layoutData);

    // 
    this.treeViewer.setContentProvider(new FacilityTreeContentProvider());
    this.treeViewer.setLabelProvider(new FacilityTreeLabelProvider());
    this.treeViewer.setSorter(new FacilityTreeViewerSorter());

    // ??
    this.treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            StructuredSelection selection = (StructuredSelection) event.getSelection();

            selectItem = (FacilityTreeItem) selection.getFirstElement();
            selectionList = selection.toList();

            if (selectItem != null) {
                subScopeNumber = selectItem.getChildren().size();
            }
        }
    });
    if (checkflg) {
        // ??
        CheckboxTreeViewer checkboxTreeViewer = (CheckboxTreeViewer) treeViewer;
        checkboxTreeViewer.addCheckStateListener(new ICheckStateListener() {

            public void checkStateChanged(CheckStateChangedEvent event) {
                CheckboxTreeViewer checkboxTreeViewer = (CheckboxTreeViewer) treeViewer;
                // ???????
                if (event.getChecked()) {
                    checkboxTreeViewer.setSubtreeChecked(event.getElement(), true);
                }
                if (!event.getChecked()) {
                    checkboxTreeViewer.setSubtreeChecked(event.getElement(), false);
                    Object object = event.getElement();
                    if (object instanceof FacilityTreeItem) {
                        FacilityTreeItem item = (FacilityTreeItem) event.getElement();
                        setParentCheck(checkboxTreeViewer, item, false);
                    }
                }
                // ????
                selectFacilityList = getCheckedTreeInfo();
            }
        });
    }
    //???
    final FacilityTreeComposite composite = this;
    if (topicRefresh) {
        FacilityTreeCache.addComposite(composite);
    }

    this.addDisposeListener(new DisposeListener() {
        @Override
        public void widgetDisposed(DisposeEvent e) {
            FacilityTreeCache.delComposite(composite);
        }
    });

    // ???
    this.update();
}

From source file:com.github.caofangkun.bazelipse.wizard.DirectoryTreeContentProvider.java

License:Open Source License

/**
 * Create a tree view that use a FileTreeContentProvider for its content. The created tree view
 * can be used to select branches of a directory tree.
 * /*from   w  w  w . java  2  s. co m*/
 * @param container The parent composite for the created tree view.
 * @return A checkbox tree view
 */
static CheckboxTreeViewer createTreeView(Composite container) {
    final CheckboxTreeViewer tv = new CheckboxTreeViewer(container, SWT.BORDER);
    tv.setContentProvider(new DirectoryTreeContentProvider(null));
    tv.setLabelProvider(new ILabelProvider() {

        @Override
        public void removeListener(ILabelProviderListener listener) {
            // we do not have event notifying listeners, ignore.
        }

        @Override
        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        @Override
        public void dispose() {
        }

        @Override
        public void addListener(ILabelProviderListener listener) {
            // we do not have event notifying listeners, ignore.
        }

        @Override
        public Image getImage(Object element) {
            return null;
        }

        @Override
        public String getText(Object element) {
            return ((File) element).getName();
        }
    });
    tv.setInput("root"); // pass a non-null that will be ignored

    tv.addCheckStateListener(event -> setChecked(tv, event.getElement()));

    return tv;
}

From source file:com.google.devtools.depan.eclipse.ui.nodes.viewers.CheckNodeTreeView.java

License:Apache License

@Override
protected CheckboxTreeViewer createTreeViewer(Composite parent) {
    int style = SWT.VIRTUAL | SWT.FULL_SELECTION | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL;
    CheckboxTreeViewer result = new CheckboxTreeViewer(parent, style);
    result.setLabelProvider(new WorkbenchLabelProvider());
    result.setContentProvider(new BaseWorkbenchContentProvider());
    result.setComparator(new NodeWrapperTreeSorter());

    result.addCheckStateListener(new ICheckStateListener() {
        @Override/*from   w w w .j  a  va  2 s. c  o  m*/
        public void checkStateChanged(CheckStateChangedEvent event) {
            if (recursiveTreeSelect) {
                tree.setSubtreeChecked(event.getElement(), event.getChecked());
            }
        }
    });

    tree = result;
    return result;
}

From source file:com.jetbrains.mylyn.yt.ui.InPlaceResizableCheckBoxTreeDialog.java

License:Open Source License

@Override
protected Control createControl(Composite parent) {
    getShell().setText(dialogLabel);/*from w w w .j  a  v  a  2  s. c  om*/

    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = MARGIN_SIZE;
    layout.marginWidth = MARGIN_SIZE;
    layout.horizontalSpacing = 0;
    layout.verticalSpacing = 0;
    composite.setLayout(layout);
    GridData gd = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
    composite.setLayoutData(gd);

    valueTree = new CheckboxFilteredTree(composite, SWT.CHECK | SWT.MULTI | SWT.V_SCROLL | SWT.BORDER,
            new SubstringPatternFilter());
    gd = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
    gd.heightHint = 175;
    CheckboxTreeViewer viewer = valueTree.getViewer();
    viewer.getControl().setLayoutData(gd);

    if (validValues != null) {

        viewer.setContentProvider(new ITreeContentProvider() {

            public Object[] getChildren(Object parentElement) {
                if (parentElement instanceof Map<?, ?>) {
                    return ((Map<?, ?>) parentElement).keySet().toArray();
                }
                return null;
            }

            public Object getParent(Object element) {
                return null;
            }

            public boolean hasChildren(Object element) {
                return false;
            }

            public Object[] getElements(Object inputElement) {
                return getChildren(inputElement);
            }

            public void dispose() {
            }

            public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            }

        });

        // viewer.setSorter(new ViewerSorter());
        viewer.setLabelProvider(new LabelProvider() {
            @Override
            public String getText(Object element) {
                if (element instanceof String) {
                    return validValues.get(element);
                }
                return super.getText(element);
            }
        });
        viewer.setInput(validValues);

        Set<String> invalidValues = new HashSet<String>();

        // Remove any currently entered invalid values
        for (String value : selectedValues) {
            if (!validValues.containsKey(value)) {
                invalidValues.add(value);
            }
        }

        // Remove any unselected values
        for (String value : validValues.keySet()) {
            if (!viewer.setChecked(value, true)) {
                invalidValues.add(value);
            }
        }

        selectedValues.removeAll(invalidValues);

        viewer.setCheckedElements(selectedValues.toArray());

    }

    viewer.addCheckStateListener(new ICheckStateListener() {

        public void checkStateChanged(CheckStateChangedEvent event) {
            if (event.getChecked()) {
                selectedValues.add((String) event.getElement());
            } else {
                selectedValues.remove(event.getElement());
            }
        }

    });

    return valueTree;
}

From source file:com.nokia.tools.screen.ui.wizards.AbstractNewPackagePage.java

License:Open Source License

protected CheckboxTreeViewer createTaskViewer(Composite composite) {
    final CheckboxTreeViewer taskViewer = new CheckboxTreeViewer(composite, SWT.CHECK | SWT.NONE);
    taskViewer.setContentProvider(new TaskContentProvider());
    taskViewer.setLabelProvider(new TaskLabelProvider());
    taskViewer.setSorter(new TaskViewerSorter());
    taskViewer.setInput(getContents());//from   w w w  . ja  v a2 s.  c om
    taskViewer.expandToLevel(2);
    taskViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            if (event.getElement() instanceof ContentGroup) {
                ContentGroup group = (ContentGroup) event.getElement();
                for (IContent content : group.getContents()) {
                    taskViewer.setChecked(content, event.getChecked());
                    // this method call internally sets PACKAGING's
                    // attribute value for corresponding ancestors and
                    // children
                    content.setAttribute(ContentAttribute.PACKAGING.name(),
                            new Boolean(event.getChecked()).toString());

                }
            } else {
                IContentData data = (IContentData) event.getElement();
                if (taskViewer.getGrayed(data)) {
                    taskViewer.setChecked(data, false);
                    return;
                }
                // this method call internally sets PACKAGING's attribute
                // value for corresponding ancestors and children
                data.setAttribute(ContentAttribute.PACKAGING.name(),
                        new Boolean(event.getChecked()).toString());
                if (!event.getChecked()) {
                    // unchecks the parent if necessary
                    IContentData work = data.getParent();
                    while (work != null) {
                        boolean nonSelected = true;
                        for (IContentData child : work.getChildren()) {
                            if (new Boolean((String) child.getAttribute(ContentAttribute.PACKAGING.name()))
                                    && new Boolean(
                                            (String) child.getAttribute(ContentAttribute.MODIFIED.name()))) {
                                nonSelected = false;
                                break;
                            }
                        }
                        if (nonSelected) {
                            // this method call internally sets PACKAGING's
                            // attribute value for corresponding ancestors
                            // and children
                            work.setAttribute(ContentAttribute.PACKAGING.name(), "false");
                        } else {
                            break;
                        }

                        work = work.getParent();
                    }
                }
            }
            updateTree(taskViewer);
            pageChanged();
        }
    });
    taskViewer.addTreeListener(new ITreeViewerListener() {
        public void treeCollapsed(TreeExpansionEvent event) {
        }

        /**
         * Notifies that a node in the tree has been expanded.
         * 
         * @param event
         *            event object describing details
         */
        public void treeExpanded(TreeExpansionEvent event) {
            updateTree(taskViewer);
        }
    });
    return taskViewer;
}

From source file:com.windowtester.test.locator.swt.shells.CheckFileTree.java

License:Open Source License

/**
 * Creates the main window's contents/*from   w  w w  .j  a va2s  .c o m*/
 * 
 * @param parent
 *            the main window
 * @return Control
 */
protected Control createContents(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout(1, false));

    // Add a checkbox to toggle whether the labels preserve case
    Button preserveCase = new Button(composite, SWT.CHECK);
    preserveCase.setText("&Preserve case");

    // Create the tree viewer to display the file tree
    final CheckboxTreeViewer tv = new CheckboxTreeViewer(composite);
    tv.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
    tv.setContentProvider(new FileTreeContentProvider());
    tv.setLabelProvider(new FileTreeLabelProvider());
    tv.setInput("root"); // pass a non-null that will be ignored

    // When user checks the checkbox, toggle the preserve case attribute
    // of the label provider
    preserveCase.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            boolean preserveCase = ((Button) event.widget).getSelection();
            FileTreeLabelProvider ftlp = (FileTreeLabelProvider) tv.getLabelProvider();
            ftlp.setPreserveCase(preserveCase);
        }
    });

    // When user checks a checkbox in the tree, check all its children
    tv.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            // If the item is checked . . .
            if (event.getChecked()) {
                // . . . check all its children
                tv.setSubtreeChecked(event.getElement(), true);
            }
        }
    });
    return composite;
}

From source file:de.loskutov.fs.dialogs.MultipleFolderSelectionDialog.java

License:Open Source License

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

    createMessageArea(composite);//from  ww  w.  j a v  a 2 s.  c  om
    CheckboxTreeViewer treeViewer = createTreeViewer(composite);

    GridData data = new GridData(GridData.FILL_BOTH);
    data.widthHint = convertWidthInCharsToPixels(60);
    data.heightHint = convertHeightInCharsToPixels(18);

    Tree treeWidget = treeViewer.getTree();
    treeWidget.setLayoutData(data);
    treeWidget.setFont(composite.getFont());

    Button button = new Button(composite, SWT.PUSH);
    button.setText("Create &New Folder...");
    button.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent event) {
            newFolderButtonPressed();
        }
    });
    button.setFont(composite.getFont());

    fNewFolderButton = button;

    treeViewer.addSelectionChangedListener(this);
    if (fExisting != null) {
        Object[] existing = fExisting.toArray();
        treeViewer.setGrayedElements(existing);
        setInitialSelections(existing);
    }
    if (fFocusElement != null) {
        treeViewer.setSelection(new StructuredSelection(fFocusElement), true);
    }
    treeViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            forceExistingChecked(event);
        }
    });

    applyDialogFont(composite);
    return composite;
}

From source file:descent.internal.ui.wizards.buildpaths.MultipleFolderSelectionDialog.java

License:Open Source License

protected Control createDialogArea(Composite parent) {
    Composite composite = (Composite) super.createDialogArea(parent);

    createMessageArea(composite);//w  ww  . jav  a  2 s. com
    CheckboxTreeViewer treeViewer = createTreeViewer(composite);

    GridData data = new GridData(GridData.FILL_BOTH);
    data.widthHint = convertWidthInCharsToPixels(60);
    data.heightHint = convertHeightInCharsToPixels(18);

    Tree treeWidget = treeViewer.getTree();
    treeWidget.setLayoutData(data);
    treeWidget.setFont(composite.getFont());

    Button button = new Button(composite, SWT.PUSH);
    button.setText(NewWizardMessages.MultipleFolderSelectionDialog_button);
    button.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            newFolderButtonPressed();
        }
    });
    button.setFont(composite.getFont());

    fNewFolderButton = button;

    treeViewer.addSelectionChangedListener(this);
    if (fExisting != null) {
        Object[] existing = fExisting.toArray();
        treeViewer.setGrayedElements(existing);
        setInitialSelections(existing);
    }
    if (fFocusElement != null) {
        treeViewer.setSelection(new StructuredSelection(fFocusElement), true);
    }
    treeViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            forceExistingChecked(event);
        }
    });

    applyDialogFont(composite);
    return composite;
}

From source file:ext.org.eclipse.jdt.internal.ui.dialogs.GenerateToStringDialog.java

License:Open Source License

@Override
protected CheckboxTreeViewer createTreeViewer(Composite parent) {
    CheckboxTreeViewer treeViewer = super.createTreeViewer(parent);

    treeViewer.setLabelProvider(new GenerateToStringLabelProvider());

    //expandAll because setSubtreeChecked() used in CheckStateListener below assumes that elements have been expanded
    treeViewer.expandAll();//  w w w .  j a v a 2  s.  c o m
    //but actually we only need one branch expanded
    treeViewer.collapseAll();
    treeViewer.expandToLevel(GenerateToStringContentProvider.fieldsNode, 1);

    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) getTreeViewer().getSelection();

            Object selected = selection.size() > 0 ? selection.toList().get(0) : null;
            GenerateToStringContentProvider cp = (GenerateToStringContentProvider) getContentProvider();

            fButtonControls[UP_INDEX].setEnabled(cp.canMoveUp(selected));
            fButtonControls[DOWN_INDEX].setEnabled(cp.canMoveDown(selected));
        }

    });
    treeViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            getTreeViewer().setSubtreeChecked(event.getElement(), event.getChecked());
            getTreeViewer().setGrayed(event.getElement(), false);
            Object parentElement = ((ITreeContentProvider) (getTreeViewer().getContentProvider()))
                    .getParent(event.getElement());
            if (parentElement != null) {
                Object[] siblings = ((ITreeContentProvider) (getTreeViewer().getContentProvider()))
                        .getChildren(parentElement);
                int count = 0;
                for (int i = 0; i < siblings.length; i++) {
                    if (getTreeViewer().getChecked(siblings[i]))
                        count++;
                }
                if (count == 0)
                    getTreeViewer().setGrayChecked(parentElement, false);
                else if (count == siblings.length) {
                    getTreeViewer().setChecked(parentElement, true);
                    getTreeViewer().setGrayed(parentElement, false);
                } else
                    getTreeViewer().setGrayChecked(parentElement, true);
            }
            updateOKStatus();
        }

    });
    return treeViewer;
}