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

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

Introduction

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

Prototype

public Object[] filter(Viewer viewer, TreePath parentPath, Object[] elements) 

Source Link

Document

Filters the given elements for the given viewer.

Usage

From source file:com.codeandme.tools.ui.TableExporter.java

License:Open Source License

/**
 * Prints the whole data area./*from   w  w  w .  jav a  2s  . c  o  m*/
 * 
 * @param output
 *            output stream
 * @throws IOException
 *             if an I/O error occurs.
 */
protected void printData(OutputStream output) throws IOException {
    IContentProvider contentProvider = fViewer.getContentProvider();
    if (contentProvider instanceof IStructuredContentProvider) {
        Object input = fViewer.getInput();
        Object[] elements = ((IStructuredContentProvider) contentProvider).getElements(input);

        // filter elements
        if (fFilterElements) {
            for (ViewerFilter filter : fViewer.getFilters())
                elements = filter.filter(fViewer, (Object) null, elements);
        }

        // sort elements
        if (fSortElements) {
            ViewerComparator comparator = fViewer.getComparator();
            if (comparator != null)
                comparator.sort(fViewer, elements);
        }

        // print elements
        for (Object element : elements)
            printDataRow(output, element);
    }
}

From source file:com.minres.scviewer.e4.application.parts.DesignBrowser.java

License:Open Source License

/**
 * Gets the filtered children./*from  ww w.j a v a  2  s.c o  m*/
 *
 * @param viewer the viewer
 * @return the filtered children
 */
protected Object[] getFilteredChildren(TableViewer viewer) {
    Object parent = viewer.getInput();
    if (parent == null)
        return new Object[0];
    Object[] result = null;
    if (parent != null) {
        IStructuredContentProvider cp = (IStructuredContentProvider) viewer.getContentProvider();
        if (cp != null) {
            result = cp.getElements(parent);
            if (result == null)
                return new Object[0];
            for (int i = 0, n = result.length; i < n; ++i) {
                if (result[i] == null)
                    return new Object[0];
            }
        }
    }
    ViewerFilter[] filters = viewer.getFilters();
    if (filters != null) {
        for (ViewerFilter f : filters) {
            Object[] filteredResult = f.filter(viewer, parent, result);
            result = filteredResult;
        }
    }
    return result;
}

From source file:com.nokia.tools.variant.compare.ui.wizards.ImportDataWizardPageTwo.java

License:Open Source License

public void createControl(Composite parent) {
    Composite content = new Composite(parent, SWT.NONE);
    // container.addControlListener(new ControlAdapter() {
    // @Override/*from w  w w .ja  v a2s  .c  om*/
    // public void controlResized(ControlEvent e) {
    // Rectangle bounds = getContainer().getClientArea();
    // content.setBounds(bounds);
    // }
    // });

    // {
    // @Override
    // public Point computeSize(int hint, int hint2,
    // boolean changed) {
    // return new Point(control.getClientArea().width - 16 ,
    // control.getClientArea().height - 16);
    // }
    // };
    content.setLayout(new GridLayout(2, true));
    // content.setLayoutData(new FillLayout());

    final Button check1 = new Button(content, SWT.CHECK);
    check1.setText("Show settings that exist only in target");
    check1.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
    final Button check2 = new Button(content, SWT.CHECK);
    check2.setText("Show settings that exist only in source");
    check2.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));

    final Button check3 = new Button(content, SWT.CHECK);
    check3.setText("Show mismatches between default values");
    check3.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
    final Button check4 = new Button(content, SWT.CHECK);
    check4.setText("Show conflicts");
    check4.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
    SelectionListener checkAdapter = new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            List<ViewerFilter> filters = new ArrayList<ViewerFilter>();

            filters.add(new ViewerFilter() {

                @Override
                public boolean select(Viewer viewer, Object parentElement, Object element) {
                    IStructuredContentProvider provider = (IStructuredContentProvider) treeViewerWithColumns
                            .getContentProvider();
                    if (provider == null) {
                        return true;
                    }
                    if (element instanceof EDiffSequenceItem
                            || ((EObject) element).eContainer() instanceof EDiffSequenceItem) {
                        return true;
                    }
                    if (element instanceof EDiffGroup) {
                        return hasChildren((EDiffGroup) element);
                    } else if (element instanceof EDiffResourceSetting2) {
                        return hasChildren((EDiffResourceSetting2) element);
                    }

                    return true;
                }

                boolean hasChildren(EObject group) {
                    IStructuredContentProvider provider = (IStructuredContentProvider) treeViewerWithColumns
                            .getContentProvider();
                    Object[] children = provider.getElements(group);

                    for (ViewerFilter filter : treeViewerWithColumns.getFilters()) {
                        children = filter.filter(treeViewerWithColumns, group, children);
                    }

                    return children.length > 0;
                }

            });

            final boolean targetOnly = check1.getSelection();
            final boolean sourceOnly = check2.getSelection();

            filters.add(new ViewerFilter() {
                @Override
                public boolean select(Viewer viewer, Object parentElement, Object element) {
                    if (element instanceof EDiffSequenceItem
                            || ((EObject) element).eContainer() instanceof EDiffSequenceItem) {
                        return true;
                    }
                    if (element instanceof EDiffGroup) {
                        return true;
                    }
                    if (element instanceof ECompareElement) {
                        ECompareElement el = (ECompareElement) element;
                        if (el.isExistsInSource() && el.isExistsInTarget()) {
                            return true;
                        }
                        if (targetOnly && el.isExistsInTarget()) {
                            return true;
                        }
                        if (sourceOnly && el.isExistsInSource()) {
                            return true;
                        }
                        return false;
                    }

                    return true;
                }
            });

            if (!check3.getSelection()) {
                filters.add(new ViewerFilter() {
                    @Override
                    public boolean select(Viewer viewer, Object parentElement, Object element) {
                        if (element instanceof EDiffSequenceItem
                                || ((EObject) element).eContainer() instanceof EDiffSequenceItem) {
                            return true;
                        }
                        if (element instanceof EDiffSetting) {
                            EDiffSetting el = (EDiffSetting) element;
                            return !(el.isSourceDefault() && el.isTargetDefault());
                        }

                        return true;
                    }
                });
            }
            if (!check4.getSelection()) {
                filters.add(new ViewerFilter() {
                    @Override
                    public boolean select(Viewer viewer, Object parentElement, Object element) {
                        if (element instanceof EDiffSequenceItem
                                || ((EObject) element).eContainer() instanceof EDiffSequenceItem) {
                            return true;
                        }
                        if (element instanceof EDiffSetting) {
                            EDiffSetting el = (EDiffSetting) element;
                            if (el.isExistsInSource() && el.isExistsInTarget()
                                    && (!el.isTargetDefault() && !(el instanceof EDiffSequence))) {
                                return false;
                            }
                        }

                        return true;
                    }
                });
            }
            treeViewerWithColumns.getControl().setRedraw(false);
            try {
                treeViewerWithColumns.setUpdateFlags(false);
                treeViewerWithColumns.setFilters(filters.toArray(new ViewerFilter[filters.size()]));

            } finally {
                treeViewerWithColumns.setUpdateFlags(true);
                treeViewerWithColumns.updateSelectionFlags();
                treeViewerWithColumns.getControl().setRedraw(true);
            }
        }
    };
    check1.addSelectionListener(checkAdapter);
    check2.addSelectionListener(checkAdapter);
    check3.addSelectionListener(checkAdapter);
    check4.addSelectionListener(checkAdapter);

    CustomCheckedTreeViewer viewer = new CustomCheckedTreeViewer(content, SWT.FULL_SELECTION | SWT.CHECK);
    viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));

    viewer.addTreeListener(new ITreeViewerListener() {
        public void treeCollapsed(TreeExpansionEvent event) {
        }

        public void treeExpanded(TreeExpansionEvent event) {
            // Object element = event.getElement();
            // CheckboxTreeViewer viewer = (CheckboxTreeViewer) event
            // .getTreeViewer();
            // ITreeContentProvider cp = (ITreeContentProvider) viewer
            // .getContentProvider();
            // Object elements[] = cp.getChildren(element);
            // for (Object obj : elements) {
            // if (obj instanceof ECheckableElement) {
            // ((ECheckableElement) obj).setChecked(viewer
            // .getChecked(obj));
            // }
            // }
            //
            // viewer.update(elements, null);
        }
    });

    treeViewerWithColumns = viewer;

    check4.setSelection(true);
    checkAdapter.widgetSelected(null);

    final Tree tree = treeViewerWithColumns.getTree();
    // tree.setLayoutData(new FillLayout());
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    final TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
    objectColumn.setText("Object");
    objectColumn.setResizable(true);
    objectColumn.setWidth(250);

    final TreeColumn sourceColumn = new TreeColumn(tree, SWT.NONE);
    sourceColumn.setText("Source Value");
    sourceColumn.setResizable(true);
    sourceColumn.setWidth(200);

    final TreeColumn stateColumn = new TreeColumn(tree, SWT.NONE);
    stateColumn.setText("");
    stateColumn.setResizable(false);
    stateColumn.setWidth(22);
    stateColumn.setAlignment(SWT.CENTER);

    final TreeColumn targetColumn = new TreeColumn(tree, SWT.NONE);
    targetColumn.setText("Target Value");
    targetColumn.setResizable(true);
    targetColumn.setWidth(200);

    final TreeColumn tailColumn = new TreeColumn(tree, SWT.NONE);
    tailColumn.setText("");
    tailColumn.setResizable(false);
    tailColumn.setWidth(200);

    ControlAdapter adapter = new ControlAdapter() {
        @Override
        public void controlResized(ControlEvent e) {
            if (tree.getColumnCount() > 0) {
                int width = tree.getClientArea().width;
                for (int i = 0; i < tree.getColumnCount() - 1; i++) {
                    width -= tree.getColumn(i).getWidth();
                }

                width = Math.max(0, width);
                tree.getColumn(tree.getColumnCount() - 1).setWidth(width);
            }
        }
    };

    for (int i = 0; i < tree.getColumnCount() - 1; i++) {
        tree.getColumn(i).addControlListener(adapter);
    }

    tree.addControlListener(adapter);

    treeViewerWithColumns.setColumnProperties(new String[] { "a", "b" });
    treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
    treeViewerWithColumns
            .setLabelProvider(new StateAdapterFactoryProvider(adapterFactory, treeViewerWithColumns));

    menuManager = new MenuManager();
    menuManager.setRemoveAllWhenShown(true);
    menuManager.addMenuListener(new IMenuListener() {
        public void menuAboutToShow(IMenuManager manager) {
            addActions(manager);
        }
    });

    Menu menu = menuManager.createContextMenu(treeViewerWithColumns.getControl());
    treeViewerWithColumns.getControl().setMenu(menu);

    treeViewerWithColumns.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            Object[] elements = treeViewerWithColumns.getCheckedElements();
            setPageComplete(elements.length > 0);
        }
    });

    setControl(content);
}

From source file:era.foss.typeeditor.view.layoutviewer.ViewLayoutViewer.java

License:Open Source License

Object[] filter(Object parent, Object[] elements) {
    Object result[] = elements;/*from w  w w  .j  av a 2  s .  com*/
    for (ViewerFilter filter : viewerFilterList) {
        result = filter.filter(null, parent, result);
    }
    // TODO Auto-generated method stub
    return result;
}

From source file:fr.inria.linuxtools.tmf.ui.widgets.timegraph.dialogs.TimeGraphFilterDialog.java

License:Open Source License

private boolean evaluateIfTreeEmpty(Object input) {
    Object[] elements = fContentProvider.getElements(input);
    if (elements.length > 0 && fFilters != null) {
        for (int i = 0; i < fFilters.size(); i++) {
            ViewerFilter curr = fFilters.get(i);
            elements = curr.filter(fTree.getViewer(), input, elements);
        }/*from w  ww. ja  v  a 2s .c o m*/
    }
    return elements.length == 0;
}

From source file:info.novatec.inspectit.rcp.editor.tree.DeferredTreeViewer.java

License:Open Source License

/**
 * {@inheritDoc}/* w ww  . j  av a  2 s .co  m*/
 */
@Override
protected void internalAdd(Widget widget, Object parentElement, Object[] childElements) {
    // we have to activate our own filters first, stupid eclipse
    // implementation which has got two different paths of applying filters
    // ...
    ViewerFilter[] filters = getFilters();
    for (int i = 0; i < filters.length; i++) {
        ViewerFilter filter = filters[i];
        childElements = filter.filter(this, parentElement, childElements);
    }

    super.internalAdd(widget, parentElement, childElements);

    // check if we are currently in the process of expanding the child
    // elements
    if (parentWidgets.containsKey(widget)) {
        // iterate over all child elements
        for (Object object : childElements) {
            // is it expandable
            if (super.isExpandable(object)) {
                // get the level
                Integer level = parentWidgets.get(widget);
                if (level == TreeViewer.ALL_LEVELS) {
                    super.expandToLevel(object, TreeViewer.ALL_LEVELS);
                } else {
                    super.expandToLevel(object, level - 1);
                }
            }
        }
    }

    if (objectsToBeExpanded != null && !objectsToBeExpanded.isEmpty()) {
        // iterate over all child elements
        for (Object object : childElements) {
            // is object in List of objects that need to be expanded?
            if (objectsToBeExpanded.contains(object)) {
                // then expand it
                if (!getExpandedState(object)) {
                    super.expandToLevel(object, 1);
                }
            }
        }
    }

    // if there is object to be selected, we will selected if its parent is expanded
    while (true) {
        Object objToSelect = objectToSelect.get();
        if (objToSelect != null
                && (!isRootElement(objToSelect) || getExpandedState(getParentElement(objToSelect)))) {
            List<Object> selectionList = new ArrayList<Object>();
            Widget w = internalGetWidgetToSelect(objToSelect);
            if (w != null) {
                if (objectToSelect.compareAndSet(objToSelect, null)) {
                    selectionList.add(w);
                    setSelection(selectionList);
                    break;
                }
            } else {
                break;
            }
        } else {
            break;
        }
    }

}

From source file:nu.bibi.breadcrumb.files.FileContentProvider.java

License:Open Source License

/**
 * Filters the given elements with all the filters, if any, of the current
 * viewer. This method must never return <code>null</code>.
 * //from   w  w  w. ja v a 2 s . c o  m
 * @param parent
 *            the parent element.
 * @param elements
 *            the elements to filter.
 * @return the filtered elements or an empty array if no one element is
 *         selected.
 * @see StructuredViewer#getFilters()
 * @see ViewerFilter#filter(Viewer, Object, Object[])
 */
protected Object[] applyFilters(final Object parentElement, Object[] elements) {
    // data ?
    if (elements == null || elements.length == 0) {
        return new Object[0];
    }
    if (viewer == null) {
        return elements;
    }

    // get filters
    final ViewerFilter[] filters = viewer.getFilters();
    if (filters == null || filters.length == 0) {
        return elements;
    }

    // apply each filter
    for (final ViewerFilter current : filters) {
        elements = current.filter(viewer, parentElement, elements);
        if (elements == null || elements.length == 0) {
            return new Object[0];
        }
    }
    return elements;
}

From source file:org.eclipse.datatools.sqltools.result.internal.ui.view.ItemsLimitationTreeViewer.java

License:Open Source License

public Object[] getFilteredChildren(Object parent) {
    IPreferenceStore store = ResultsViewUIPlugin.getDefault().getPreferenceStore();

    ViewerFilter[] filters = getFilters();
    Object[] result = getRawChildren(parent);
    boolean isSubResults = false;
    if (parent instanceof IResultInstance) {
        isSubResults = true;//w  ww . j a  v a 2 s . co  m
    }
    if (filters != null) {
        for (int i = 0; i < filters.length; i++) {
            ViewerFilter f = (ViewerFilter) filters[i];
            result = f.filter(this, parent, result);
        }
    }

    // don't limit the sub results
    if (PreferenceUtil.getBoolean(store, PreferenceConstants.PROFILE_FILTERS_LIMIT_CHECK,
            _resultsViewControl.getUsePreferences()) && !isSubResults) {
        int limit = PreferenceUtil.getInt(store, PreferenceConstants.PROFILE_FILTERS_LIMIT_NUM,
                _resultsViewControl.getUsePreferences());
        if (result.length > limit) {
            ArrayList list = new ArrayList();

            //Get the latest array. ignore the running items
            for (int i = 0; i < limit; i++) {
                list.add(result[result.length - i - 1]);
            }

            return list.toArray();
        }
    }
    return result;
}

From source file:org.eclipse.dltk.internal.testing.util.CheckedTableSelectionDialog.java

License:Open Source License

private boolean evaluateIfTableEmpty(Object input) {
    Object[] elements = fContentProvider.getElements(input);
    if (elements.length > 0) {
        if (fFilters != null) {
            for (int i = 0; i < fFilters.size(); i++) {
                ViewerFilter curr = (ViewerFilter) fFilters.get(i);
                elements = curr.filter(fViewer, input, elements);
            }/*from   w  w w. j av  a 2  s  . co  m*/
        }
    }
    return elements.length == 0;
}

From source file:org.eclipse.jdt.internal.junit.util.CheckedTableSelectionDialog.java

License:Open Source License

private boolean evaluateIfTableEmpty(Object input) {
    Object[] elements = fContentProvider.getElements(input);
    if (elements.length > 0) {
        if (fFilters != null) {
            for (int i = 0; i < fFilters.size(); i++) {
                ViewerFilter curr = fFilters.get(i);
                elements = curr.filter(fViewer, input, elements);
            }/* w  w w  . j  a  v  a  2  s . c  o  m*/
        }
    }
    return elements.length == 0;
}