Hi Leute,
würde gerne so eine Filtersuche realisieren wie sie bei Eclipse in den Einstellungen auch verwendet wird. Sprich man gibt ein Suchbegriff und der Baum wird dann dementsprechend aufgeklappt. Nicht passende Begriffe werden entfernt oder ausgeblendet.
Hab schon hinbekommen den Baum an der richtigen stelle aufzuklappen jedoch werden sie nicht wieder zugeklappt. Dass auch nur diejenigen sichtbar sind würde man glaub ich nicht über remove lösen oder? wäre dann schwierig, man müsste ja dann sich den Ursprung des TreeModel weg schreiben. Nett wär auch noch wenn die TreePaths fett markiert werden. einfach mal die Einstellungen gucken, dann weiß man wie ich das mein. Hier mal en kleiner Ansatz:
Gruß Jan
würde gerne so eine Filtersuche realisieren wie sie bei Eclipse in den Einstellungen auch verwendet wird. Sprich man gibt ein Suchbegriff und der Baum wird dann dementsprechend aufgeklappt. Nicht passende Begriffe werden entfernt oder ausgeblendet.
Hab schon hinbekommen den Baum an der richtigen stelle aufzuklappen jedoch werden sie nicht wieder zugeklappt. Dass auch nur diejenigen sichtbar sind würde man glaub ich nicht über remove lösen oder? wäre dann schwierig, man müsste ja dann sich den Ursprung des TreeModel weg schreiben. Nett wär auch noch wenn die TreePaths fett markiert werden. einfach mal die Einstellungen gucken, dann weiß man wie ich das mein. Hier mal en kleiner Ansatz:
Code:
private void expandAll(JTree tree, TreePath parent, boolean expand,
String text) {
TreeNode node = (TreeNode) parent.getLastPathComponent();
if (node.getChildCount() >= 0) {
for (Enumeration e = node.children(); e.hasMoreElements();) {
TreeNode n = (TreeNode) e.nextElement();
TreePath path = parent.pathByAddingChild(n);
expandAll(tree, path, expand, text);
}
}
if (node.toString().toLowerCase().contains(text.toLowerCase())) {
tree.collapsePath(parent);
} else if(node.isLeaf()) {
((DefaultTreeModel) tree.getModel())
.removeNodeFromParent((MutableTreeNode) parent
.getLastPathComponent());
}
}
Gruß Jan