Search in sources :

Example 1 with TModel

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();
}
Also used : TNode(replete.gui.controls.simpletree.TNode) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) NodeSimpleLabel(replete.gui.controls.simpletree.NodeSimpleLabel) TModel(replete.gui.controls.simpletree.TModel)

Aggregations

ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 NodeSimpleLabel (replete.gui.controls.simpletree.NodeSimpleLabel)1 TModel (replete.gui.controls.simpletree.TModel)1 TNode (replete.gui.controls.simpletree.TNode)1