ThreadInfoStorageTree.java 文件源码

java
阅读 27 收藏 0 点赞 0 评论 0

项目:AgentWorkbench 作者:
/**
 * Filter node by key.
 *
 * @param node the node
 * @param key the key
 */
private void filterNodeByKey(DefaultMutableTreeNode node, String key){

        Vector<DefaultMutableTreeNode> toDeleteVect= new Vector<DefaultMutableTreeNode>();

        @SuppressWarnings("unchecked")
        Enumeration<DefaultMutableTreeNode> e = node.breadthFirstEnumeration();
        if(e != null){
            while (e.hasMoreElements()){
                DefaultMutableTreeNode actualElement = e.nextElement();
                if (actualElement.isLeaf() == true && key.isEmpty() == false && actualElement.toString().toLowerCase().contains(key.toLowerCase()) == false) {
                    //--- immediate removal invalidates the enumeration ---
    //              actualElement.removeFromParent();
                    // --- remember for later removal ---
                    toDeleteVect.add(actualElement); 
                }
                if(actualElement.isLeaf() == true && actualElement.toString().toLowerCase().contains(key.toLowerCase()) == true){
                    //--- (re)expand collapsed parent if search string matches ---
                    int level = actualElement.getLevel() -1;
                    StringBuilder sb = new StringBuilder();
                    sb.append(level -1).append(",");
                    String levelString = sb.toString();
                    if(expansionState.contains(levelString) == false){
                        levelString = sb.append(level).append(",").toString();
                        expansionState = expansionState.concat(levelString);
                    }
                }
            }
        }
        //--- delete nodes ---
        for( int i=0; i < toDeleteVect.size(); i++){
            toDeleteVect.get(i).removeFromParent();
        }
    }
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号