Example usage for org.eclipse.jface.viewers ViewerFilter select

List of usage examples for org.eclipse.jface.viewers ViewerFilter select

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ViewerFilter select.

Prototype

public abstract boolean select(Viewer viewer, Object parentElement, Object element);

Source Link

Document

Returns whether the given element makes it through this filter.

Usage

From source file:com.ebmwebsourcing.petals.common.internal.provisional.projectscnf.PetalsProjectContentProvider.java

License:Open Source License

@Override
public void resourcesAdded(final Collection<IResource> resources) {

    if (!(this.viewer instanceof AbstractTreeViewer))
        return;/*www  .j a  v a  2s  .c  om*/

    // Compute as much things as possible outside the UI thread
    // Group elements to reduce the number of runnables
    List<IProject> projects = new ArrayList<IProject>();
    Map<Object, List<IResource>> parentToResources = new HashMap<Object, List<IResource>>();
    for (final IResource res : resources) {
        if (res instanceof IProject) {
            projects.add((IProject) res);

        } else {
            final Object parent = getParent(res);
            List<IResource> list = parentToResources.get(parent);
            if (list == null)
                list = new ArrayList<IResource>();

            list.add(res);
            if (parent != null)
                parentToResources.put(parent, list);
            else
                PetalsCommonPlugin.log("Could not find the parent for " + res, IStatus.ERROR);
        }
    }

    // Update the viewer
    final AbstractTreeViewer treeViewer = (AbstractTreeViewer) this.viewer;

    // Projects
    for (final IProject p : projects) {
        List<PetalsProjectCategory> cats = PetalsProjectManager.INSTANCE.getCategories(p);
        if (cats == null)
            cats = Collections.emptyList();

        for (final PetalsProjectCategory cat : cats) {
            Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    boolean visible = true;
                    if (treeViewer.getFilters() != null) {

                        for (int i = 0; visible && i < treeViewer.getFilters().length; i++) {
                            ViewerFilter filter = treeViewer.getFilters()[i];
                            visible = filter.select(treeViewer, cat, p);
                        }
                    }

                    if (visible) {
                        treeViewer.getControl().setRedraw(false);
                        treeViewer.add(cat, p);
                        treeViewer.getControl().setRedraw(true);
                    }
                }
            };

            this.runnables.add(runnable);
        }
    }

    // Other resources
    for (final Map.Entry<Object, List<IResource>> entry : parentToResources.entrySet()) {

        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                treeViewer.getControl().setRedraw(false);
                treeViewer.add(entry.getKey(), entry.getValue().toArray());
                treeViewer.getControl().setRedraw(true);
            }
        };

        this.runnables.add(runnable);
    }
}

From source file:com.ebmwebsourcing.petals.common.internal.provisional.ui.jdt.CheckboxTreeAndListGroup.java

License:Open Source License

/**
 * Returns the result of running the given elements through the filters.
 * @param filters/*from w  w  w  . j av  a2  s . c  o  m*/
 *
 * @param elements the elements to filter
 * @return only the elements which all filters accept
 */
protected Object[] filter(ViewerFilter[] filters, Object[] elements) {
    if (filters != null) {
        ArrayList filtered = new ArrayList(elements.length);
        for (Object element : elements) {
            boolean add = true;
            for (ViewerFilter filter : filters) {
                add = filter.select(null, null, element);
                if (!add)
                    break;
            }
            if (add)
                filtered.add(element);
        }
        return filtered.toArray();
    }
    return elements;
}

From source file:com.google.dart.tools.ui.internal.viewsupport.ProblemTreeViewer.java

License:Open Source License

/**
 * All element filter tests must go through this method. Can be overridden by subclasses.
 * /*from  w ww .  j  a v  a 2s . c o m*/
 * @param object the object to filter
 * @param parent the parent
 * @param filters the filters to apply
 * @return true if the element is filtered
 */
protected boolean isFiltered(Object object, Object parent, ViewerFilter[] filters) {
    for (int i = 0; i < filters.length; i++) {
        ViewerFilter filter = filters[i];
        if (!filter.select(this, parent, object)) {
            return true;
        }
    }
    return false;
}

From source file:com.google.eclipse.javascript.jstestdriver.ui.view.actions.FailureOnlyViewerFilterTest.java

License:Apache License

public void testSelect() throws Exception {
    ViewerFilter filter = new FailureOnlyViewerFilter();
    ResultModel model = new EclipseJstdBrowserRunResult(null, "browser");

    model.addTestResult(passing1);/*from w  ww .j ava  2 s .  co m*/
    model.addTestResult(passing2);
    model.addTestResult(failed1);
    model.addTestResult(failed2);
    model.addTestResult(error1);
    model.addTestResult(error2);

    Iterator<? extends ResultModel> iterator = model.getChildren().iterator();
    ResultModel testcase1 = iterator.next();
    ResultModel testcase3 = iterator.next();
    ResultModel testcase2 = iterator.next();

    assertTrue(filter.select(null, null, model));
    assertTrue(filter.select(null, null, testcase1));
    assertTrue(filter.select(null, null, testcase2));
    assertFalse(filter.select(null, null, testcase3));

    assertTrue(filter.select(null, null, testcase1.getChildren().iterator().next()));

    iterator = testcase2.getChildren().iterator();
    assertTrue(filter.select(null, null, iterator.next()));
    assertTrue(filter.select(null, null, iterator.next()));
    assertFalse(filter.select(null, null, iterator.next()));

    assertFalse(filter.select(null, null, testcase3.getChildren().iterator().next()));
}

From source file:com.kdmanalytics.toif.ui.internal.filters.AbstractTwoToolsFilter.java

License:Open Source License

/**
 * Get all findings for the file, ignoring ones not accepted by the
 * sub-filters.//from   w  w w . ja  va 2 s  .co m
 * 
 * @param file
 * @return
 * @throws CoreException
 */
protected List<IFindingEntry> getFindings(IFile file) throws CoreException {
    List<IFindingEntry> results = new LinkedList<IFindingEntry>();
    IMarker[] problems = file.findMarkers(IMarker.TEXT, true, IResource.DEPTH_INFINITE);

    for (IMarker marker : problems) {
        String type = marker.getType();
        if (type != null && type.startsWith("com.kdmanalytics.toif")) {
            IFindingEntry entry = new FindingEntry(marker);
            boolean accept = true;
            for (ViewerFilter filter : subFilters) {
                if (!filter.select(null, null, entry)) {
                    accept = false;
                    break;
                }
            }
            if (accept) {
                results.add(entry);
            }
        }
    }
    return results;
}

From source file:com.kdmanalytics.toif.ui.internal.filters.AndFilter.java

License:Open Source License

@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
    // No filters -- nothing is valid
    if (filterList.isEmpty())
        return false;

    for (ViewerFilter filter : filterList) {
        // Return false is ANY filter rejects a value
        if (!filter.select(viewer, parentElement, element))
            return false;
    }//from   ww  w.ja  va2s.  c o  m
    return true;
}

From source file:edu.uci.lighthouse.ui.views.LighthouseRelationshipContentProvider.java

License:Open Source License

protected boolean showEntity(LighthouseEntity entity) {
    // TODO Optimize the algorithm
    boolean result = false;
    LighthouseModel model = LighthouseModel.getInstance();
    ViewerFilter[] filters = FilterManager.getInstance().getViewerFilters();
    for (ViewerFilter filter : filters) {
        boolean selected = filter.select(viewer, model, entity);
        //         if (selected) {
        result |= selected;//w  ww . j  a va  2 s  .  c o m
        //         }
    }
    if (filters.length == 0) {
        result = true;
    }

    //      IClassFilter[] filters = FilterManager.getInstance().getClassFilters();
    //      boolean selected = false;
    //      if (filters.length > 0) {
    //         for (IClassFilter filter : filters) {
    //            selected |= filter.select(model, entity);
    //         }
    //         if (!selected) {
    //            return true;
    //         }
    //      }
    return result;
}

From source file:eu.esdihumboldt.hale.ui.util.selector.AbstractViewerSelectionDialog.java

License:Open Source License

/**
 * Determines if the given object matches the given filters.
 * // w  ww .  j  a  v  a2 s .c o  m
 * @param viewer the viewer
 * @param filters the viewer filters
 * @param candidate the object to test
 * @return if the object is accepted by all filters
 */
public static boolean acceptObject(Viewer viewer, ViewerFilter[] filters, Object candidate) {
    if (filters == null)
        return true;

    for (ViewerFilter filter : filters)
        if (!filter.select(viewer, null, candidate))
            return false;
    return true;
}

From source file:eu.esdihumboldt.hale.ui.views.mapping.AlignmentViewContentProvider.java

License:Open Source License

/**
 * Checks whether the cell makes it through all the filters.
 * //from   w w w  .j  a va 2s  .com
 * @param cell the cell to check
 * @return <code>true</code> if element is included in the filtered set, and
 *         <code>false</code> if exclude
 */
private boolean select(Cell cell) {
    for (ViewerFilter filter : filters)
        if (!filter.select(null, null, cell))
            return false;
    return true;
}

From source file:eu.geclipse.ui.wizards.VoSelectionWizardPage.java

License:Open Source License

/**
 * Determines which VO to select initially in the viewer.
 *///from   w  ww  .  j a  v a2s  .  c  om
private void setInitialSelection() {
    IGridElement defaultVo = GridModel.getVoManager().getDefault();

    if (defaultVo == null) {
        // No default VO, take the first entry if any, null otherwise
        defaultVo = (IGridElement) this.tableViewer.getElementAt(0);
    } else {
        // Check if the default VO is of the requested voType
        boolean show = true;
        for (ViewerFilter filter : this.tableViewer.getFilters()) {
            show &= filter.select(this.tableViewer, this.voList, defaultVo);
        }
        // If it is not, then select the first of the list if any, null otherwise
        if (!show) {
            defaultVo = (IGridElement) this.tableViewer.getElementAt(0);
        }
    }

    setSelection(defaultVo);
}