use of replete.gui.controls.simpletree.TModel in project n2a by frothga.
the class ParameterTree method filter.
// //////////
// FILTER //
// //////////
public void filter(String text) {
saveState();
if (text.equals("")) {
setModel(origModel);
} else {
text = text.toUpperCase();
List<TNode> found = new ArrayList<TNode>();
search(origModel.getTRoot(), found, text);
if (found.size() == 0) {
TNode nRoot = new TNode();
nRoot.add(new NodeSimpleLabel("<No Results>", ImageUtil.getImage("noresults.gif")));
setModel(new TModel(nRoot));
} else {
TNode nRoot = new TNode();
Map<TNode, TNode> oldNewMap = new HashMap<TNode, TNode>();
for (TNode nFound : found) {
TNode[] path = nFound.getTPathSegments();
TNode nParent = nRoot;
for (TNode nSegment : path) {
if (nSegment == origModel.getRoot() && nParent == nRoot) {
// do nothing
} else if (oldNewMap.containsKey(nSegment)) {
nParent = oldNewMap.get(nSegment);
} else {
Object uSegment = nSegment.getUserObject();
TNode nNew = new TNode(uSegment);
nParent.add(nNew);
nParent = nNew;
oldNewMap.put(nSegment, nNew);
}
}
}
setModel(new TModel(nRoot));
}
}
restoreStateNoFire();
updateUI();
}
Aggregations