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

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

Introduction

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

Prototype

public boolean setGrayed(Object element, boolean state) 

Source Link

Document

Sets the grayed state for the given element in this viewer.

Usage

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  w w w  .ja va  2 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.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  .  jav 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;//  ww w .j a  va  2  s . c  o  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:fr.inria.linuxtools.internal.tmf.ui.project.wizards.tracepkg.AbstractTracePackageWizardPage.java

License:Open Source License

/**
 * A version of setSubtreeChecked that is aware of isEnabled
 *
 * @param viewer//from  ww  w  .  j a va2s  . c  o m
 *            the viewer
 * @param element
 *            the element
 * @param enabledOnly
 *            if only enabled elements should be considered
 * @param checked
 *            true if the item should be checked, and false if it should be
 *            unchecked
 */
protected static void setSubtreeChecked(CheckboxTreeViewer viewer, TracePackageElement element,
        boolean enabledOnly, boolean checked) {
    if (!enabledOnly || element.isEnabled()) {
        viewer.setChecked(element, checked);
        if (checked) {
            viewer.setGrayed(element, false);
        }
        element.setChecked(checked);
        if (element.getChildren() != null) {
            for (TracePackageElement child : element.getChildren()) {
                setSubtreeChecked(viewer, child, enabledOnly, checked);
            }
        }
    }
}

From source file:gov.nasa.ensemble.common.ui.multiselect.InPlaceCheckBoxTreeDialog.java

License:Open Source License

@Override
protected Control createControl(Composite parent) {

    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = MARGIN_SIZE;//w ww . ja  va2 s .  co  m
    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.H_SCROLL | SWT.BORDER, new SubstringPatternFilter());
    gd = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
    gd.heightHint = 175;
    gd.widthHint = 160;
    CheckboxTreeViewer viewer = valueTree.getViewer();
    viewer.getControl().setLayoutData(gd);

    if (optionsList != null) {

        viewer.setContentProvider(new ITreeContentProvider() {

            @Override
            public Object[] getChildren(Object parentElement) {
                if (parentElement instanceof List<?>) {
                    return ((List<?>) parentElement).toArray();
                }
                return null;
            }

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

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

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

            @Override
            public void dispose() {
                //do nothing
            }

            @Override
            public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
                //do nothing
            }

        });

        viewer.setLabelProvider(new LabelProvider() {
            @Override
            public String getText(Object element) {
                if (element instanceof String) {
                    return (String) element;
                }
                return super.getText(element);
            }
        });

        optionsList.remove(null);
        viewer.setInput(optionsList);

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

        // Remove any currently entered invalid values
        for (String value : selectedList) {
            if (!optionsList.contains(value)) {
                invalidValues.add(value);
            }
        }
        // Remove any unselected values
        for (String value : optionsList) {
            if (!viewer.setChecked(value, true)) {
                invalidValues.add(value);
            }
        }

        selectedList.removeAll(invalidValues);

        Set<String> joinChecked = new HashSet<String>(getSelectedValues());
        for (String i : getPartialValues()) {
            viewer.setGrayed(i, true);
            joinChecked.add(i);
        }
        viewer.setCheckedElements(joinChecked.toArray());
    }

    this.addEventListener(new IInPlaceDialogListener() {

        @Override
        public void buttonPressed(InPlaceDialogEvent event) {
            if (event.getReturnCode() == AbstractInPlaceDialog.ID_OK) {
                dialogButtonPressOK();
            } else if (event.getReturnCode() == AbstractInPlaceDialog.ID_DESELECT_ALL) {
                dialogButtonPressDeselect();
            }

        }
    });

    viewer.addCheckStateListener(new ICheckStateListener() {

        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {

            if (event.getChecked()) {
                if (greyedList.contains(event.getElement())) {
                    greyedList.remove(event.getElement());
                    valueTree.getViewer().setGrayed(event.getElement(), false);
                }
                selectedList.add((String) event.getElement());
            } else {
                if (greyedList.contains(event.getElement())) {
                    greyedList.remove(event.getElement());
                    valueTree.getViewer().setGrayed(event.getElement(), false);
                } else {
                    selectedList.remove(event.getElement());
                }
            }
        }
    });

    return valueTree;
}

From source file:net.refractions.udig.project.ui.internal.LegendViewCheckboxUtils.java

License:Open Source License

/**
 * Sets the checkbox status of the folder on the viewer. This method checks the child layers of
 * the folder to determine the status.//from w w  w  .ja  va 2s  .c o m
 * 
 * @param viewer
 * @param folder
 */
private static void setFolderCheckbox(final CheckboxTreeViewer viewer, final Folder folder) {

    switch (getFolderCheckboxDisplay(viewer, folder)) {
    case CHECKED:
        viewer.setChecked(folder, true);
        viewer.setGrayed(folder, false);
        break;
    case BLOCKED:
        viewer.setGrayChecked(folder, true);
        break;
    case UNCHECKED:
        viewer.setChecked(folder, false);
        viewer.setGrayed(folder, false);
        break;
    default:
        break;
    }

}

From source file:net.sourceforge.tagsea.resources.sharing.ui.CheckboxTreeViewerGreyStateUpdater.java

License:Open Source License

/**
 * Sets the checked state of the given element and all of its children to the value
 * of "checked"./*from www .  j a  v a  2s. c o  m*/
 * @param viewer
 * @param element
 * @param checked
 */
private void setCheckedState(CheckboxTreeViewer viewer, Object element, boolean checked) {
    ITreeContentProvider provider = (ITreeContentProvider) viewer.getContentProvider();
    LinkedList<Object> elements = new LinkedList<Object>();
    elements.add(element);
    while (elements.size() > 0) {
        Object current = elements.removeFirst();
        viewer.setChecked(current, checked);
        viewer.setGrayed(current, false);
        for (Object child : provider.getChildren(current)) {
            elements.add(child);
        }
    }
}

From source file:net.sourceforge.tagsea.resources.sharing.ui.ResourceWaypointImportWizardPage2.java

License:Open Source License

/**
 * @param leaves//  w w  w .  ja  va2s  .  c  o m
 */
protected void updateTreeGrayedState(CheckboxTreeViewer treeViewer, List<?> leaves, boolean checked) {
    for (Object leaf : leaves) {
        if (checked) {
            if (leaf instanceof IResourceWaypointDescriptor) {
                IResourceWaypointDescriptor d = (IResourceWaypointDescriptor) leaf;
                Set<String> checkedAttributes = checkedMap.get(d);
                int checkCount = checkedAttributes.size() + (tagCheckedSet.contains(d) ? 1 : 0);
                int expectedCount = VISIBLE_ATTRIBUTES.length + 1;
                if (checkedAttributes != null) {
                    if (checkCount == 0) {
                        treeViewer.setChecked(leaf, false);
                        treeViewer.setGrayed(leaf, false);
                    } else if (checkCount == expectedCount) {
                        treeViewer.setChecked(leaf, true);
                        treeViewer.setGrayed(leaf, false);
                    } else if (checkCount < expectedCount) {
                        treeViewer.setChecked(leaf, true);
                        treeViewer.setGrayed(leaf, true);
                    }
                }
            }
        } else {
            treeViewer.setChecked(leaf, false);
            treeViewer.setGrayed(leaf, false);
        }
    }

    //@tag tagsea.performance : this could be made faster if we didn't refresh the whole tree.
    CheckboxTreeViewerGreyStateUpdater.initializeGrayedState(treeViewer);
}

From source file:org.eclipse.emf.validation.ui.internal.preferences.CategoryTreeNode.java

License:Open Source License

/**
 * Updates the GUI to reflect my current checked state, and propagates my
 * state up the tree to my ancestors./* www.ja  v  a  2s  .  c  o m*/
 */
private void updateTree() {
    CheckboxTreeViewer tree = getTree();

    if (tree.getChecked(this) != isChecked()) {
        tree.setChecked(this, isChecked());
    }

    if (tree.getGrayed(this) != isGrayed()) {
        tree.setGrayed(this, isGrayed());
    }

    updateParent();
}

From source file:org.eclipse.help.ui.internal.search.LocalHelpPage.java

License:Open Source License

void updateParentState(Object child, boolean baseChildState, CheckboxTreeViewer tree,
        ITreeContentProvider contentProvider) {
    if (child == null)
        return;/*from ww w.java 2 s  . c om*/

    Object parent = contentProvider.getParent(child);
    if (parent == null)
        return;

    boolean allSameState = true;
    Object[] children = null;
    children = contentProvider.getChildren(parent);

    for (int i = children.length - 1; i >= 0; i--) {
        if (tree.getChecked(children[i]) != baseChildState || tree.getGrayed(children[i])) {
            allSameState = false;
            break;
        }
    }

    tree.setGrayed(parent, !allSameState);
    tree.setChecked(parent, !allSameState || baseChildState);

    updateParentState(parent, baseChildState, tree, contentProvider);
}