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
;
19 * Pattern filter based on the column label providers of a {@link TreeViewer}.
21 public class TreeColumnPatternFilter
extends PatternFilter
{
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);
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
)) {