Example usage for org.eclipse.jface.viewers TreeViewer setChildCount

List of usage examples for org.eclipse.jface.viewers TreeViewer setChildCount

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TreeViewer setChildCount.

Prototype

public void setChildCount(final Object elementOrTreePath, final int count) 

Source Link

Document

For a TreeViewer with a tree with the VIRTUAL style bit set, set the number of children of the given element or tree path.

Usage

From source file:com.diffplug.common.swt.jface.ViewerMisc.java

License:Apache License

/** Sets an {@link ILazyTreeContentProvider} implemented by the given {@link TreeDef.Parented}. */
@SuppressWarnings("unchecked")
public static <T> void setLazyTreeContentProvider(TreeViewer viewer, TreeDef.Parented<T> treeDef) {
    Preconditions.checkArgument(SwtMisc.flagIsSet(SWT.VIRTUAL, viewer.getControl()),
            "The tree must have SWT.VIRTUAL set.");
    viewer.setUseHashlookup(true);/*from   ww w. j  a  v  a  2s  .  c o m*/
    viewer.setContentProvider(new ILazyTreeContentProvider() {
        @Override
        public void dispose() {
        }

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

        @Override
        public void updateElement(Object parent, int index) {
            T child = treeDef.childrenOf((T) parent).get(index);
            viewer.replace(parent, index, child);
            updateChildCount(child, 0);
        }

        @Override
        public void updateChildCount(Object element, int currentChildCount) {
            viewer.setChildCount(element, treeDef.childrenOf((T) element).size());
        }

        @Override
        public Object getParent(Object element) {
            return treeDef.parentOf((T) element);
        }
    });
}

From source file:com.motorolamobility.studio.android.db.core.ui.LoadingJobListener.java

License:Apache License

@Override
public void done(IJobChangeEvent event) {
    MOTODEVDatabaseExplorerView view = DbCoreActivator.getMOTODEVDatabaseExplorerView();
    if (view != null) {
        final TreeViewer treeViewer = view.getTreeViewer();
        Job job = event.getJob();// ww  w.  j  a  v a  2s.  com
        if (job instanceof AbstractLoadingNodeJob) {
            AbstractLoadingNodeJob loadingNodeJob = (AbstractLoadingNodeJob) job;
            ITreeNode node = loadingNodeJob.getNode();

            //Job is done, so we can set the loading flag to false.
            node.setLoading(false);
            final ITreeNode[] treeNodeContainer = { node };

            //TreeViewer operations must be executed on the UI Thread.
            Display.getDefault().syncExec(new Runnable() {
                public void run() {
                    ITreeNode node = treeNodeContainer[0];
                    List<ITreeNode> children = node.getChildren();
                    if (PluginUtils.getOS() != PluginUtils.OS_LINUX) {
                        treeViewer.setChildCount(node, 0);
                    }
                    int size = children.size();
                    if (size > 0) {
                        ((ILazyTreeContentProvider) treeViewer.getContentProvider()).updateElement(node, 0); //Force removal of loading node.
                    }
                    //updating the child count is sufficient to allow the tree to call the content provider and retrieve the new nodes.
                    treeViewer.setChildCount(node, size);
                    //updating the node so if needed the label/icon will be updated
                    treeViewer.update(node, null);
                }
            });
        }
        super.done(event);
    }
}

From source file:com.puppetlabs.geppetto.puppetdb.ui.treenode.LeafNode.java

License:Open Source License

/**
 * Will set the viewer child count of the given <code>viewer</code> to zero for this instance
 *///from w w  w  . j  av  a 2s . c  o m
@Override
public final void updateChildCount(TreeViewer viewer, int currentChildCount) {
    if (currentChildCount != 0)
        viewer.setChildCount(this, 0);
}

From source file:com.puppetlabs.geppetto.puppetdb.ui.treenode.TreeNode.java

License:Open Source License

/**
 * Updates the child count for this node in the given <code>viewer</code> using the method {@link TreeViewer#setChildCount(Object, int)}
 * unless is equal to the <code>currentChildCount</code>.
 * //www  . ja va  2s.  c o  m
 * @param viewer
 *            The viewer that will receive the call
 * @param currentChildCount
 *            The viewers current child count for this node
 */
public void updateChildCount(TreeViewer viewer, int currentChildCount) {
    C[] children = getChildren();
    if (children.length != currentChildCount)
        viewer.setChildCount(this, children.length);
}

From source file:com.puppetlabs.geppetto.puppetdb.ui.treenode.TreeNode.java

License:Open Source License

/**
 * Updates the <code>viewer</code> with information if this node has children or not
 * /*from  ww w . j a  v a2  s  . co m*/
 * @param viewer
 *            The viewer that will receive the call
 */
public void updateHasChildren(TreeViewer viewer) {
    viewer.setChildCount(this, getChildren().length);
}

From source file:eu.geclipse.ui.views.TreeControlViewPart.java

License:Open Source License

@Override
public void refreshViewer(final IGridElement element) {
    if ((element != null) && (element instanceof IGridContainer)) {
        final IGridContainer container = (IGridContainer) element;
        if (container.isLazy() && container.isDirty()) {
            Control control = this.viewer.getControl();
            if (!control.isDisposed()) {
                Display display = control.getDisplay();
                display.syncExec(new Runnable() {
                    public void run() {
                        TreeViewer tViewer = (TreeViewer) getViewer();
                        tViewer.setChildCount(container, container.getChildCount());
                    }//from www  .  ja v a2s.  c  om
                });
            }
        }
    }
    super.refreshViewer(element);
}

From source file:eu.numberfour.n4js.ui.preferences.ExternalLibraryTreeContentProvider.java

License:Open Source License

@Override
public void updateElement(final Object parent, final int index) {
    if (treeViewerRef.isPresent()) {
        final TreeViewer treeViewer = treeViewerRef.get();
        if (parent instanceof Iterable) {
            final Object child = Iterables.get((Iterable<?>) parent, index);
            treeViewer.replace(parent, index, child);
            if (child instanceof URI) {
                treeViewer.setChildCount(child, Iterables.size(getProjects((URI) child)));
            }/*from w  ww.j ava 2  s  .  c  o  m*/
        } else if (parent instanceof URI) {
            final IN4JSProject child = Iterables.get(getProjects((URI) parent), index);
            treeViewer.replace(parent, index, child);
        }
    }
}

From source file:eu.numberfour.n4js.ui.preferences.ExternalLibraryTreeContentProvider.java

License:Open Source License

@Override
public void updateChildCount(final Object element, final int currentChildCount) {
    if (treeViewerRef.isPresent()) {
        final TreeViewer treeViewer = treeViewerRef.get();
        if (element instanceof Iterable) {
            treeViewer.setChildCount(element, Iterables.size((Iterable<?>) element));
        } else if (element instanceof URI) {
            treeViewer.setChildCount(element, Iterables.size(getProjects((URI) element)));
        } else {//from w ww  . j a v  a 2s  .c om
            treeViewer.setChildCount(element, 0);
        }
    }
}

From source file:fr.inria.atlanmod.neoemf.eclipse.ui.editor.LazyAdapterFactoryContentProvider.java

License:Open Source License

@Override
public void updateElement(Object parent, int index) {
    TreeViewer tViewer = (TreeViewer) viewer;
    if (parent instanceof ResourceSet) {
        ResourceSet rSet = (ResourceSet) parent;
        Resource childResource = rSet.getResources().get(index);
        NeoLogger.debug("Updating children of {0}", parent.toString());
        tViewer.replace(parent, index, childResource);
        tViewer.setChildCount(childResource, childResource.getContents().size());
    }/*from  ww w  .  j  a  v  a2 s . c om*/
    if (parent instanceof Resource) {
        Resource r = (Resource) parent;
        EObject child = r.getContents().get(index);
        NeoLogger.debug("Updating children of {0}", parent.toString());
        tViewer.replace(parent, index, child);
        tViewer.setChildCount(child, getChildCount(child));
    }
    if (parent instanceof PersistentEObject) {
        PersistentEObject e = (PersistentEObject) parent;
        EObject child = e.eContents().get(index);
        NeoLogger.debug("Updating children of {0}", parent.toString());
        tViewer.replace(parent, index, child);
        tViewer.setChildCount(child, getChildCount(child));
    }
}

From source file:fr.inria.atlanmod.neoemf.eclipse.ui.editor.LazyAdapterFactoryContentProvider.java

License:Open Source License

@Override
public void updateChildCount(Object element, int currentChildCount) {
    TreeViewer tViewer = (TreeViewer) viewer;
    int childCount;
    if (element instanceof ResourceSet) {
        ResourceSet rSet = (ResourceSet) element;
        childCount = rSet.getResources().size();
        NeoLogger.debug("ResourceSet childCount : {0}", childCount);
        tViewer.setChildCount(element, childCount);
    }/* w w  w  .  j  av  a2s .co m*/
    if (element instanceof Resource) {
        Resource r = (Resource) element;
        childCount = r.getContents().size();
        NeoLogger.debug("Resource childCount : {0}", childCount);
        tViewer.setChildCount(element, childCount);
    }
    if (element instanceof PersistentEObject) {
        PersistentEObject e = (PersistentEObject) element;
        childCount = getChildCount(e);
        NeoLogger.debug("EObject ({0}) childCount : {1}", e.eClass().getName(), childCount);
        tViewer.setChildCount(element, childCount);
    }
}