@Override public void setChecked(boolean checked) { super.setChecked(checked); }
private void setNodesChecked(@NotNull CheckedTreeNode node) { if (!node.isRoot() && !node.isLeaf()) { if (hasAnyCheckedLeaf(node)) { node.setChecked(true); } else { node.setChecked(false); } } int childCount = node.getChildCount(); for (int i = 0; i < childCount; i++) { setNodesChecked(((CheckedTreeNode) node.getChildAt(i))); } }
public void valueChanged(TreeSelectionEvent e) { // System.out.println("select event ----------"); TreePath[] paths = e.getPaths(); if (paths == null) return; for (int i = 0; i < paths.length; i++) { Object node = paths[i].getLastPathComponent(); if (node instanceof CheckedTreeNode) { Object userObject = ((DefaultMutableTreeNode) node).getUserObject(); if (userObject instanceof LiteralChooserObject) { LiteralChooserObject literalObject = (LiteralChooserObject) userObject; String text = literalObject.getText(); // System.out.println("selected " + text); if ( e.isAddedPath(paths[i]) ) { if ( selectedElements.contains(text) ) { selectedElements.remove(text); } else { selectedElements.add(text); } // System.out.println("added path: "+text); CheckedTreeNode checkedNode = (CheckedTreeNode) node; checkedNode.setChecked(!checkedNode.isChecked()); // toggle } } } } } }
public Tree createTree(java.util.List<String> literals) { final CheckedTreeNode rootNode = new CheckedTreeNode("all literals not defined"); for (String literal : literals) { CheckedTreeNode child = new CheckedTreeNode(new LiteralChooserObject(literal, Icons.LEXER_RULE)); child.setChecked(true); rootNode.add(child); } DefaultTreeModel treeModel = new DefaultTreeModel(rootNode); selectedElements.addAll(literals); // all are "on" by default Tree tree = new Tree(treeModel); tree.setRootVisible(false); tree.setCellRenderer(new LiteralChooserRenderer()); tree.addTreeSelectionListener(new MyTreeSelectionListener()); return tree; }