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

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

Introduction

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

Prototype

@Override
    public boolean getChecked(Object element) 

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;
                }/* w w w  . java2s . co 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   w ww  . j av  a  2  s  .com
            }
        } 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.j ava2 s .  c om
    }
    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;// w  ww.j a va 2s.  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:de.ovgu.featureide.ui.statistics.ui.CheckBoxListener.java

License:Open Source License

public CheckBoxListener(final CheckboxTreeViewer viewer) {
    super();/*from  ww w .j  a v  a2 s .  c om*/
    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:gov.redhawk.ide.sdr.ui.internal.handlers.LaunchDomainManagerWithOptionsDialog.java

License:Open Source License

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

    retVal.addDoubleClickListener(new IDoubleClickListener() {

        @Override//from w w w  . ja v a  2  s. c om
        public void doubleClick(final DoubleClickEvent event) {
            final IStructuredSelection ss = (IStructuredSelection) event.getSelection();
            final DeviceConfiguration dc = (DeviceConfiguration) ss.getFirstElement();
            retVal.setChecked(dc, !retVal.getChecked(dc));

            // DataBinding for observeCheckedElements does not pick up on double click events
            // So manually adding/removing nodes here to compensate
            if (retVal.getChecked(dc)) {
                nodes.add(dc);
            } else {
                nodes.remove(dc);
            }
        }
    });

    return retVal;
}

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

License:Open Source License

/**
 * Returns what the status of the folder's checkbox should be with respect to its child layers.
 * /*from ww  w  .j ava2 s .c  om*/
 * @param viewer
 * @param folder
 * @return CHECKED - the folder should be checked, BLOCKED - folder should be blocked, UNCHECKED
 *         - folder should be unchecked
 */
private static FolderState getFolderCheckboxDisplay(CheckboxTreeViewer viewer, Folder folder) {

    final List<ILegendItem> items = folder.getItems();
    if (items.size() == 0) {

        final boolean isGrayed = viewer.getGrayed(folder);
        if (isGrayed) {
            return FolderState.BLOCKED;
        }
        final boolean isChecked = viewer.getChecked(folder);
        if (isChecked) {
            return FolderState.CHECKED;
        }

    } else {

        int checkedCnt = 0;
        int grayedCnt = 0;
        final List<Object> grayedElements = Arrays.asList(viewer.getGrayedElements());
        final List<Object> checkedElements = Arrays.asList(viewer.getCheckedElements());

        for (ILegendItem item : items) {
            if (grayedElements.contains(item)) {
                grayedCnt++;
            } else if (checkedElements.contains(item)) {
                checkedCnt++;
            }
        }
        if (checkedCnt > 0) {
            if (checkedCnt == items.size()) {
                return FolderState.CHECKED;
            } else {
                return FolderState.BLOCKED;
            }
        }
        if (grayedCnt > 0) {
            return FolderState.BLOCKED;
        }

    }

    return FolderState.UNCHECKED;

}

From source file:org.bonitasoft.studio.contract.ui.wizard.FieldToContractInputMappingViewerCheckStateManager.java

License:Open Source License

private void deselectParentIfNoChildSelected(final CheckStateChangedEvent event,
        final FieldToContractInputMapping mapping, final CheckboxTreeViewer checkboxTreeViewer) {
    final FieldToContractInputMapping parentMapping = mapping.getParent();
    boolean deselect = true;
    if (!event.getChecked() && parentMapping != null && !isAggregationField(parentMapping.getField())) {

        for (final FieldToContractInputMapping m : parentMapping.getChildren()) {
            if (checkboxTreeViewer.getChecked(m)) {
                deselect = false;/*from   w  w  w .  j  a v  a2  s.c o m*/
            }
        }
        if (deselect) {
            checkboxTreeViewer.setChecked(parentMapping, false);
            parentMapping.setGenerated(false);
            deselectParentIfNoChildSelected(event, parentMapping, checkboxTreeViewer);
        }
    }
}

From source file:org.bonitasoft.studio.contract.ui.wizard.FieldToContractInputMappingViewerCheckStateManagerTest.java

License:Open Source License

@Test
public void should_selectParentIfChildIsSelected() {
    final FieldToContractInputMappingViewerCheckStateManager checkedStateManager = new FieldToContractInputMappingViewerCheckStateManager();

    final FieldToContractInputMapping rootMapping = new RelationFieldToContractInputMapping(
            Mockito.mock(RelationField.class));
    final SimpleFieldToContractInputMapping childMapping = new SimpleFieldToContractInputMapping(
            Mockito.mock(SimpleField.class));
    rootMapping.addChild(childMapping);// ww w.ja  va 2  s . c o  m
    final CheckboxTreeViewer viewer = aCheckBoxTreeViewer(Lists.newArrayList(rootMapping));

    checkedStateManager.checkStateChanged(new CheckStateChangedEvent(viewer, childMapping, true));

    assertThat(viewer.getChecked(rootMapping)).isTrue();
    assertThat(rootMapping.isGenerated()).isTrue();
}

From source file:org.bonitasoft.studio.contract.ui.wizard.FieldToContractInputMappingViewerCheckStateManagerTest.java

License:Open Source License

@Test
public void should_deselectParent_IfNoChildIsSelected() {
    final FieldToContractInputMappingViewerCheckStateManager checkedStateManager = new FieldToContractInputMappingViewerCheckStateManager();

    final FieldToContractInputMapping rootMapping = new RelationFieldToContractInputMapping(
            Mockito.mock(RelationField.class));
    final SimpleFieldToContractInputMapping childMapping = new SimpleFieldToContractInputMapping(
            Mockito.mock(SimpleField.class));
    rootMapping.addChild(childMapping);//from  w  w w .j  a  v a  2s. c om
    final CheckboxTreeViewer viewer = aCheckBoxTreeViewer(Lists.newArrayList(rootMapping));

    checkedStateManager.checkStateChanged(new CheckStateChangedEvent(viewer, childMapping, false));

    assertThat(viewer.getChecked(rootMapping)).isFalse();
    assertThat(rootMapping.isGenerated()).isFalse();
}