Revision 2310
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.api/src/main/java/org/gvsig/tools/swing/api/TreeModelRecursiveWildcarMatchFilter.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import javax.swing.tree.TreeModel; |
4 | 4 |
import org.apache.commons.io.FilenameUtils; |
5 |
import org.apache.commons.io.IOCase; |
|
5 | 6 |
import org.apache.commons.lang3.StringUtils; |
6 | 7 |
import org.gvsig.tools.swing.api.FilteredModel.FilterFunction; |
7 | 8 |
|
... | ... | |
11 | 12 |
*/ |
12 | 13 |
public class TreeModelRecursiveWildcarMatchFilter implements FilterFunction { |
13 | 14 |
|
15 |
FilteredTreeModel filteredTreeModel; |
|
16 |
public TreeModelRecursiveWildcarMatchFilter (FilteredTreeModel filteredTreeModel) { |
|
17 |
this.filteredTreeModel = filteredTreeModel; |
|
18 |
} |
|
19 |
|
|
14 | 20 |
@Override |
15 | 21 |
public boolean test(Object model, Object node, String filter) { |
16 | 22 |
if ( node==null ) { |
... | ... | |
19 | 25 |
if ( StringUtils.isBlank(filter) ) { |
20 | 26 |
return true; |
21 | 27 |
} |
22 |
String nodeString = node.toString().toUpperCase(); |
|
23 |
boolean matches = FilenameUtils.wildcardMatch(nodeString, filter); |
|
28 |
String nodeString = node.toString(); |
|
29 |
IOCase caseSensitive; |
|
30 |
if (this.filteredTreeModel.isCaseSensitive()) { |
|
31 |
caseSensitive = IOCase.SENSITIVE; |
|
32 |
} else { |
|
33 |
caseSensitive = IOCase.INSENSITIVE; |
|
34 |
} |
|
35 |
boolean matches = FilenameUtils.wildcardMatch(nodeString, filter, caseSensitive); |
|
24 | 36 |
|
25 | 37 |
int childCount = ((TreeModel)model).getChildCount(node); |
26 | 38 |
for (int i = 0; i < childCount; i++) { |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/FilteredTreeModelImpl.java | ||
---|---|---|
23 | 23 |
|
24 | 24 |
public FilteredTreeModelImpl(final TreeModel treeModel) { |
25 | 25 |
this.treeModel = treeModel; |
26 |
this.filterfn = new TreeModelRecursiveWildcarMatchFilter(); |
|
26 |
this.filterfn = new TreeModelRecursiveWildcarMatchFilter(this);
|
|
27 | 27 |
// this.filterfn = (Object model, Object value, String filter1) -> true; |
28 | 28 |
} |
29 | 29 |
|
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/DefaultFilteredTreeController.java | ||
---|---|---|
77 | 77 |
@Override |
78 | 78 |
public void setFilter(FilterFunction filter) { |
79 | 79 |
if( filter == null ) { |
80 |
filter = new TreeModelRecursiveWildcarMatchFilter(); |
|
80 |
filter = new TreeModelRecursiveWildcarMatchFilter(this.getModel());
|
|
81 | 81 |
} |
82 | 82 |
this.getModel().setFilterFunction(filter); |
83 | 83 |
} |
Also available in: Unified diff