Have icon for "reset" entry in reflog
[egit/eclipse.git] / org.eclipse.egit.ui / src / org / eclipse / egit / ui / internal / TreeColumnPatternFilter.java
blob8794ecdc46abdcc9109a367474d940b329886c78
1 /*******************************************************************************
2 * Copyright (C) 2018 Michael Keppler <michael.keppler@gmx.de>
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License 2.0
6 * which accompanies this distribution, and is available at
7 * https://www.eclipse.org/legal/epl-2.0/
9 * SPDX-License-Identifier: EPL-2.0
10 *******************************************************************************/
11 package org.eclipse.egit.ui.internal;
13 import org.eclipse.jface.viewers.ColumnLabelProvider;
14 import org.eclipse.jface.viewers.TreeViewer;
15 import org.eclipse.jface.viewers.Viewer;
16 import org.eclipse.ui.dialogs.PatternFilter;
18 /**
19 * Pattern filter based on the column label providers of a {@link TreeViewer}.
21 public class TreeColumnPatternFilter extends PatternFilter {
23 /**
24 * Creates a new tree column based pattern filter with a leading wildcard
25 * character included in the search string.
27 public TreeColumnPatternFilter() {
28 setIncludeLeadingWildcard(true);
31 @Override
32 protected boolean isLeafMatch(Viewer viewer, Object element) {
33 TreeViewer treeViewer = (TreeViewer) viewer;
34 int numberOfColumns = treeViewer.getTree().getColumnCount();
35 for (int columnIndex = 0; columnIndex < numberOfColumns; columnIndex++) {
36 ColumnLabelProvider labelProvider = (ColumnLabelProvider) treeViewer
37 .getLabelProvider(columnIndex);
38 String labelText = labelProvider.getText(element);
39 if (wordMatches(labelText)) {
40 return true;
43 return false;