List of usage examples for org.eclipse.jface.viewers ViewerFilter filter
public Object[] filter(Viewer viewer, TreePath parentPath, Object[] elements)
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; }