Example usage for org.eclipse.jface.viewers ITreeContentProvider getChildren

List of usage examples for org.eclipse.jface.viewers ITreeContentProvider getChildren

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ITreeContentProvider getChildren.

Prototype

public Object[] getChildren(Object parentElement);

Source Link

Document

Returns the child elements of the given parent element.

Usage

From source file:ca.uvic.cs.tagsea.tests.TagCollectionTests.java

License:Open Source License

public void testContentProvider() throws Exception {
    TagCollection tagCollection = new TagCollection();
    tagCollection.add("chris(child1)", TestPlatformFactory.instance().getMarker(), null);
    tagCollection.add("chris(child2)", TestPlatformFactory.instance().getMarker(), null);
    tagCollection.add("chris2", TestPlatformFactory.instance().getMarker(), null);

    ITreeContentProvider provider = tagCollection;
    Tag[] roots = (Tag[]) provider.getElements(new Object());
    assertEquals(2, roots.length);/*from   w w  w. j  a v a 2  s.c om*/
    assertTrue(provider.hasChildren(roots[0]));
    assertEquals(2, provider.getChildren(roots[0]).length);
    assertTrue(!provider.hasChildren(roots[1]));
}

From source file:ch.elexis.core.ui.dialogs.DiagnoseSelektor.java

License:Open Source License

private void addDiagnoses(ITreeContentProvider tcp, Object[] roots) {
    for (Object object : roots) {
        if (tcp.hasChildren(object)) {
            addDiagnoses(tcp, tcp.getChildren(object));
        } else {//from  w w w. j  a va2 s . com
            diagnoses.add((IDiagnose) object);
        }
    }
}

From source file:com.android.sdkuilib.internal.repository.RemotePackagesPage.java

License:Apache License

private void expandItem(Object elem, ITreeContentProvider provider) {
    if (elem instanceof SdkSource || elem instanceof SdkSourceCategory) {
        mTreeViewerSources.setExpandedState(elem, true);
        for (Object pkg : provider.getChildren(elem)) {
            mTreeViewerSources.setChecked(pkg, true);
            expandItem(pkg, provider);/*w  ww  . j  ava2s  .  c o  m*/
        }
    } else if (elem instanceof Package) {
        selectCompatibleArchives(elem, provider);
    }
}

From source file:com.android.sdkuilib.internal.repository.RemotePackagesPage.java

License:Apache License

private void selectCompatibleArchives(Object pkg, ITreeContentProvider provider) {
    for (Object archive : provider.getChildren(pkg)) {
        if (archive instanceof Archive) {
            mTreeViewerSources.setChecked(archive, ((Archive) archive).isCompatible());
        }//from  ww  w. ja v  a  2 s  . co m
    }
}

From source file:com.android.sdkuilib.internal.repository.sdkman2.PackagesPage.java

License:Apache License

private void checkAndExpandItem(Object elem, boolean checked, boolean fixChildren, boolean fixParent) {
    ITreeContentProvider provider = (ITreeContentProvider) mTreeViewer.getContentProvider();

    // fix the item itself
    if (checked != mTreeViewer.getChecked(elem)) {
        mTreeViewer.setChecked(elem, checked);
    }//w w w  .j  av a2 s  . co m
    if (elem instanceof PkgItem) {
        // update the PkgItem to reflect the selection
        ((PkgItem) elem).setChecked(checked);
    }

    if (!checked) {
        if (fixChildren) {
            // when de-selecting, we deselect all children too
            mTreeViewer.setSubtreeChecked(elem, checked);
            for (Object child : provider.getChildren(elem)) {
                checkAndExpandItem(child, checked, fixChildren, false/*fixParent*/);
            }
        }

        // fix the parent when deselecting
        if (fixParent) {
            Object parent = provider.getParent(elem);
            if (parent != null && mTreeViewer.getChecked(parent)) {
                mTreeViewer.setChecked(parent, false);
            }
        }
        return;
    }

    // When selecting, we also select sub-items (for a category)
    if (fixChildren) {
        if (elem instanceof PkgCategory || elem instanceof PkgItem) {
            Object[] children = provider.getChildren(elem);
            for (Object child : children) {
                checkAndExpandItem(child, true, fixChildren, false/*fixParent*/);
            }
            // only fix the parent once the last sub-item is set
            if (elem instanceof PkgCategory) {
                if (children.length > 0) {
                    checkAndExpandItem(children[0], true, false/*fixChildren*/, true/*fixParent*/);
                } else {
                    mTreeViewer.setChecked(elem, false);
                }
            }
        } else if (elem instanceof Package) {
            // in details mode, we auto-select compatible packages
            selectCompatibleArchives(elem, provider);
        }
    }

    if (fixParent && checked && elem instanceof PkgItem) {
        Object parent = provider.getParent(elem);
        if (!mTreeViewer.getChecked(parent)) {
            Object[] children = provider.getChildren(parent);
            boolean allChecked = children.length > 0;
            for (Object e : children) {
                if (!mTreeViewer.getChecked(e)) {
                    allChecked = false;
                    break;
                }
            }
            if (allChecked) {
                mTreeViewer.setChecked(parent, true);
            }
        }
    }
}

From source file:com.android.sdkuilib.internal.repository.sdkman2.PackagesPage.java

License:Apache License

private void selectCompatibleArchives(Object pkg, ITreeContentProvider provider) {
    for (Object archive : provider.getChildren(pkg)) {
        if (archive instanceof Archive) {
            mTreeViewer.setChecked(archive, ((Archive) archive).isCompatible());
        }/*from   w  w w . j  a  v  a 2 s.  co  m*/
    }
}

From source file:com.aptana.editor.common.outline.CommonQuickOutlinePage.java

License:Open Source License

/**
 * Expands a tree element, also feels parents map.
 * /*from   w  w  w .  j  a v  a2  s  .  c om*/
 * @param element
 *            - element to expand.
 * @param treeContentProvider
 *            - tree content provider.
 * @param elements
 *            - elements.
 */
private void expandElement(Object element, ITreeContentProvider treeContentProvider, List<Object> elements,
        Map<Object, List<Object>> parents) {
    // getting children
    Object[] children = treeContentProvider.getChildren(element);

    List<Object> elementParentsList = parents.get(element);

    for (Object child : children) {
        // adding child to the elements list
        elements.add(child);

        // filling parents list for the child
        List<Object> parentsList = new ArrayList<Object>();

        // adding list of parent's parents, if exists
        if (elementParentsList != null) {
            parentsList.addAll(elementParentsList);
        }

        // adding parent
        parentsList.add(element);
        parents.put(child, parentsList);
    }

    // expanding children
    for (Object child : children) {
        expandElement(child, treeContentProvider, elements, parents);
    }
}

From source file:com.aptana.ide.views.outline.UnifiedOutlineProvider.java

License:Open Source License

/**
 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
 *///  w w  w  .  jav  a 2s. c o  m
public Object[] getChildren(Object parentElement) {
    Object[] result = NO_OBJECTS;

    switchLanguage(parentElement);

    if (this._currentProviders != null) {
        ITreeContentProvider contentProvider = this._currentProviders.contentProvider;

        if (contentProvider != null) {
            result = contentProvider.getChildren(parentElement);
        }
    }

    return result;
}

From source file:com.aptana.ide.views.outline.UnifiedQuickOutlinePage.java

License:Open Source License

/**
 * Expands a tree element, also feels parents map.
  * @param element - element to expand./*  ww w.j a  v  a2  s  .c o m*/
  * @param treeContentProvider - tree content provider.
  * @param elements - elements.
  */
private void expandElement(Object element, ITreeContentProvider treeContentProvider, List<Object> elements,
        Map<Object, List<Object>> parents) {
    //getting children
    Object[] children = treeContentProvider.getChildren(element);

    List<Object> elementParentsList = parents.get(element);

    for (Object child : children) {
        //adding child to the elements list
        elements.add(child);

        //filling parents list for the child
        ArrayList<Object> parentsList = new ArrayList<Object>();

        //adding list of parent's parents, if exists
        if (elementParentsList != null) {
            parentsList.addAll(elementParentsList);
        }

        //adding parent
        parentsList.add(element);
        parents.put(child, parentsList);
    }

    //expanding children
    for (Object child : children) {
        expandElement(child, treeContentProvider, elements, parents);
    }
}

From source file:com.aptana.index.core.ui.views.IndexViewContentProvider.java

License:Open Source License

public Object[] getChildren(Object parentElement) {
    List<ITreeContentProvider> providers = this.getProcessors();
    List<Object> result = new ArrayList<Object>();

    for (ITreeContentProvider provider : providers) {
        Object[] items = provider.getChildren(parentElement);

        result.addAll(Arrays.asList(items));
    }/* w ww .java  2s .c  o  m*/

    return result.toArray();
}