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

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

Introduction

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

Prototype

@Override
    public boolean setChecked(Object element, boolean state) 

Source Link

Usage

From source file:backup.gui.CheckStateListener.java

License:Open Source License

public void checkStateChanged(CheckStateChangedEvent event) {
    CheckboxTreeViewer ctv = (CheckboxTreeViewer) event.getSource();
    File startFile = (File) event.getElement();
    // If the item is checked . . .
    if (event.getChecked()) {
        //run through the checked Items - and see if any of them are children of 
        //this item.  If Yes - they don't need to be checked anymore - since the new 
        //parent check will encompass this.
        for (int i = 0; i < checkedItems_.size(); i++) {
            File current = checkedItems_.get(i);
            while (true) {
                current = current.getParentFile();
                if (current == null) {
                    break;
                }//from  w  ww . j a va2 s.  c o m
                if (current.equals(startFile)) {
                    ctv.setChecked(checkedItems_.get(i), false);
                    checkedItems_.remove(i);
                    i--; //array is one smaller now - need to backup.
                    break;
                }
            }
        }

        //if a parent is checked, make this a grey check.
        //if a parent is gray checked - this is unneeded - cancel the check
        File parent = startFile;
        boolean parentChecked = false;
        boolean parentGrayed = false;

        while (true) {
            parent = parent.getParentFile();
            if (parent == null) {
                break;
            }
            if (ctv.getChecked(parent)) {
                parentChecked = true;
            }
            if (ctv.getGrayed(parent)) {
                parentGrayed = true;
            }
            if (parentChecked || parentGrayed) {
                break;
            }
        }

        if (parentChecked) {
            ctv.setChecked(startFile, false);
            ctv.setGrayChecked(startFile, true);
            greyItems_.add(startFile);

            //run through the grey checked Items - and see if any of them are children of 
            //this item.  If Yes - they don't need to be checked anymore - since the new 
            //parent check will encompass this.
            for (int i = 0; i < greyItems_.size(); i++) {
                File current = greyItems_.get(i);
                while (true) {
                    current = current.getParentFile();
                    if (current == null) {
                        break;
                    }
                    if (current.equals(startFile)) {
                        ctv.setChecked(greyItems_.get(i), false);
                        greyItems_.remove(i);
                        i--; //array is one smaller now - need to backup.
                        break;
                    }
                }
            }
        }
        if (parentGrayed) {
            ctv.setChecked(startFile, false);
            ctv.setGrayChecked(startFile, false);
        }

        //If I didn't decide to uncheck it - it was left checked.
        if (!parentChecked && !parentGrayed) {
            checkedItems_.add(startFile);
        }
    } else {
        //item was unchecked.
        //need to uncheck any gray items under the check box.  Should be impossible to have checked items 
        //under a checked item.

        checkedItems_.remove(startFile);
        greyItems_.remove(startFile);
        ctv.setGrayChecked(startFile, false);

        for (int i = 0; i < greyItems_.size(); i++) {
            File current = greyItems_.get(i);
            while (true) {
                if (current == null) {
                    break;
                }
                if (current.equals(startFile)) {
                    ctv.setGrayChecked(greyItems_.get(i), false);
                    ctv.setChecked(greyItems_.get(i), false);
                    checkedItems_.remove(greyItems_.get(i));
                    greyItems_.remove(i);
                    i--;
                    break;
                }
                current = current.getParentFile();
            }
        }
    }
    backupTool_.update(checkedItems_, greyItems_);
}

From source file:com.bdaum.zoom.ui.internal.wizards.ImportFileSelectionPage.java

License:Open Source License

private void visualizeDiff(ImportNode[] nodes, CheckboxTreeViewer viewer) {
    for (ImportNode node : nodes) {
        if (node.type == Calendar.DAY_OF_MONTH) {
            StorageObject[] memberFiles = node.memberFiles;
            if (memberFiles != null) {
                int mCount = node.missing == null ? 0 : node.missing.size();
                if (mCount == 0)
                    viewer.setGrayChecked(node, false);
                else if (mCount != memberFiles.length)
                    viewer.setGrayChecked(node, true);
                else {
                    viewer.setGrayed(node, false);
                    viewer.setChecked(node, true);
                }//from  ww  w .j  a  va2 s .c o m
            }
        } else if (node.type == FILE) {
            int mCount = node.missing == null ? 0 : node.missing.size();
            viewer.setChecked(node, mCount != 1);
        } else if (node.children != null && !node.children.isEmpty()) {
            ImportNode[] children = node.children.toArray(new ImportNode[node.children.size()]);
            visualizeDiff(children, viewer);
            int checked = 0;
            int grayed = 0;
            for (ImportNode child : children)
                if (viewer.getChecked(child)) {
                    ++checked;
                    if (viewer.getGrayed(child))
                        ++grayed;
                }
            if (checked == 0)
                viewer.setGrayChecked(node, false);
            else if (checked < children.length || grayed != 0)
                viewer.setGrayChecked(node, true);
            else {
                viewer.setChecked(node, true);
                viewer.setGrayed(node, false);
            }
        }
        progressbar.setSelection(++progress);
    }
}

From source file:com.clustercontrol.composite.FacilityTreeComposite.java

License:Open Source License

private void setParentCheck(CheckboxTreeViewer checkboxTreeViewer, FacilityTreeItem item, boolean flag) {
    FacilityTreeItem parent = item.getParent();
    if (parent == null) {
        return;//from  w  w w. j  a v  a  2  s. c  o  m
    }
    checkboxTreeViewer.setChecked(parent, flag);
    setParentCheck(checkboxTreeViewer, parent, flag);
}

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

License:Open Source License

private static void setChecked(final CheckboxTreeViewer tv, Object element) {
    // When user checks a checkbox in the tree, check all its children and mark parent as greyed
    // When a user uncheck a checkbox, mark the subtree as unchecked and ungrayed and if unique
    // sibling parent as grayed.
    DirectoryTreeContentProvider provider = (DirectoryTreeContentProvider) tv.getContentProvider();

    boolean isChecked = tv.getChecked(element);
    if (tv.getGrayed(element)) {
        isChecked = !isChecked;//from  w  w  w .  j a  v a2s  .  c  o  m
    }
    tv.setChecked(element, isChecked);
    tv.setGrayed(element, false);
    if (isChecked) {
        tv.setSubtreeChecked(element, true);
    } else {
        tv.setSubtreeChecked(element, false);
    }
    setGrayed(tv, provider.getParent(element));
}

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

License:Open Source License

private static void setGrayed(CheckboxTreeViewer tv, Object element) {
    if (element == null) {
        return;/*from w  w  w  .  ja v a  2 s . co m*/
    }
    DirectoryTreeContentProvider provider = (DirectoryTreeContentProvider) tv.getContentProvider();
    boolean checked = tv.getChecked(element);
    boolean grayed = false;
    for (Object object : provider.getChildren(element)) {
        grayed = grayed || tv.getGrayed(object) || tv.getChecked(object);
        checked = checked && tv.getChecked(object) && !tv.getGrayed(element);
    }
    if (checked) {
        tv.setChecked(element, true);
        tv.setGrayed(element, false);
    } else if (grayed) {
        tv.setGrayChecked(element, true);
    } else {
        tv.setChecked(element, false);
        tv.setGrayed(element, false);
    }
    setGrayed(tv, provider.getParent(element));
}

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

License:Open Source License

@Override
protected Control createControl(Composite parent) {
    getShell().setText(dialogLabel);// ww w .  j  a  v a2s .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  va 2  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.nomagic.magicdraw.classpath.MDClasspathContainerPage.java

License:Open Source License

protected void handleSelectButtonPressed() {
    final IPath fRootPath = MDVariableInitializer.getMDInstallRootPath().addTrailingSeparator();
    final File fRoot = fRootPath.toFile();
    final List<File> initialSelection = new ArrayList<File>();
    final List<String> checkedPrefixes = new ArrayList<String>();
    final List<File> checkedSummary = new ArrayList<File>();
    for (IPath mdLibPath : fMDClasspathEntries) {
        File mdLib = mdLibPath.toFile();
        initialSelection.add(mdLib);//www. j a  va 2  s .c  o m
    }
    CheckedTreeSelectionDialog dialog = new CheckedTreeSelectionDialog(getContainer().getShell(),
            new FileLabelProvider(), new FileContentProvider()) {

        @Override
        public void create() {
            super.create();
            CheckboxTreeViewer treeViewer = getTreeViewer();
            for (File f : initialSelection) {
                IPath fp = fRootPath.append(f.getPath());
                File af = fp.toFile();
                treeViewer.reveal(af);
                treeViewer.setChecked(af, true);
            }
            treeViewer.collapseAll();
        }

        @Override
        protected void computeResult() {
            checkedSummary.clear();
            CheckboxTreeViewer treeViewer = getTreeViewer();
            for (Object checkedElement : treeViewer.getCheckedElements()) {
                if (treeViewer.getGrayed(checkedElement))
                    continue;

                if (checkedElement instanceof File) {
                    File checkedFile = (File) checkedElement;

                    String checkedFilepath = checkedFile.getAbsolutePath();
                    boolean isCheckedDirectory = checkedFile.isDirectory();
                    if (isCheckedDirectory && !checkedFilepath.endsWith(File.separator))
                        checkedFilepath += File.separator;

                    boolean addToSummary = true;
                    for (String checkedPrefix : checkedPrefixes) {
                        if (checkedPrefix.equals(checkedFilepath)
                                || (!isCheckedDirectory && checkedFilepath.startsWith(checkedPrefix)))
                            addToSummary = false;
                    }

                    if (addToSummary) {
                        checkedSummary.add(checkedFile);
                        if (checkedFile.isDirectory())
                            checkedPrefixes.add(checkedFilepath);
                    }
                }
            }
        }
    };
    dialog.setTitle("MagicDraw Library Classpath Selection");
    dialog.setMessage("Select the libraries from the MagicDraw installation root:");
    dialog.setInput(fRoot);
    dialog.setContainerMode(true);

    dialog.open();
    int code = dialog.getReturnCode();
    if (Dialog.OK == code) {
        String root = MDVariableInitializer.getMDInstallRootPath().toString();
        int rootPrefix = root.length() + 1;
        fMDClasspathEntries.clear();
        for (File file : checkedSummary) {
            String path = file.getAbsolutePath();
            String lib = path.substring(rootPrefix);
            IPath mdLibpath = new Path(lib);
            fMDClasspathEntries.add(mdLibpath);
        }
        fMDClasspathEntryViewer.setInput(fMDClasspathEntries);
    }

}

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

License:Open Source License

protected void newFolderButtonPressed() {
    NewFolderDialog dialog = new NewFolderDialog(getShell(), fSelectedContainer);
    if (dialog.open() == Window.OK) {
        CheckboxTreeViewer treeViewer = fViewer;
        treeViewer.refresh(fSelectedContainer);
        Object createdFolder = dialog.getResult()[0];
        treeViewer.reveal(createdFolder);
        treeViewer.setChecked(createdFolder, true);
        treeViewer.setSelection(new StructuredSelection(createdFolder));
        updateOKStatus();/*from w  ww  . jav  a  2  s .co  m*/
    }
}

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

License:Open Source License

public CheckBoxListener(final CheckboxTreeViewer viewer) {
    super();//  w  ww. j av a2 s . com
    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);
        }
    });
}