Example usage for org.eclipse.jface.databinding.viewers TreeStructureAdvisor getParent

List of usage examples for org.eclipse.jface.databinding.viewers TreeStructureAdvisor getParent

Introduction

In this page you can find the example usage for org.eclipse.jface.databinding.viewers TreeStructureAdvisor getParent.

Prototype

public E getParent(E element) 

Source Link

Document

Returns the parent for the given element, or null indicating that the parent can't be computed.

Usage

From source file:org.eclipse.riena.internal.ui.ridgets.swt.TreeRidget.java

License:Open Source License

/**
 * Filters out elements that are not visible. Monitors element visibility and updates the tree ridget.
 *//*w w w  .  j av  a  2 s. c  om*/
private void monitorVisibility(final TreeViewer viewer, final TreeStructureAdvisor structureAdvisor,
        final IObservableMap visibilityAttr) {
    if (visibilityAttr != null) {
        viewer.addFilter(new ViewerFilter() {
            @Override
            public boolean select(final Viewer viewer, final Object parentElement, final Object element) {
                final Object visible = visibilityAttr.get(element);
                return Boolean.FALSE.equals(visible) ? false : true;
            }
        });
        final IMapChangeListener mapChangeListener = new IMapChangeListener() {
            public void handleMapChange(final MapChangeEvent event) {
                final Set<?> affectedElements = event.diff.getChangedKeys();
                for (final Object element : affectedElements) {
                    final Object parent = structureAdvisor.getParent(element);
                    if (parent == null || treeRoots.length == 0 || (parent == treeRoots[0] && !showRoots)) {
                        viewer.refresh();
                    } else {
                        viewer.refresh(parent);
                    }
                }
            }
        };
        visibilityAttr.addMapChangeListener(mapChangeListener);
    }
}