private Action createIgnoreAllAction()

in src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java [959:1008]


    private Action createIgnoreAllAction() {
        Action action =
            new AbstractAction(
                "Ignore loggers below selection") {
                public void actionPerformed(ActionEvent e) {
                    //add all top level loggers as hidden loggers
                    TreePath[] paths = logTree.getSelectionPaths();

                    StringBuilder parentPathString = new StringBuilder();
                    DefaultMutableTreeNode root;
                    if ((paths == null) || (paths.length == 0)) {
                        root = (DefaultMutableTreeNode) logTreeModel.getRoot();
                    } else {
                        root = (DefaultMutableTreeNode) logTree.getSelectionPath().getLastPathComponent();
                        TreeNode[] path = root.getPath();
                        //don't add 'root logger' to path string
                        for (int i = 1; i < path.length; i++) {
                            if (i > 1) {
                                parentPathString.append(".");
                            }
                            parentPathString.append(path[i].toString());
                        }
                        if (!(parentPathString.toString().equals(""))) {
                            parentPathString.append(".");
                        }
                    }
                    Enumeration topLevelLoggersEnumeration = root.children();
                    Set topLevelLoggersSet = new HashSet();
                    while (topLevelLoggersEnumeration.hasMoreElements()) {
                        String thisLogger = topLevelLoggersEnumeration.nextElement().toString();
                        topLevelLoggersSet.add(parentPathString + thisLogger);
                    }
                    if (topLevelLoggersSet.size() > 0) {
                        ignore(topLevelLoggersSet);
                    }

                    logTreeModel.nodeChanged(root);
                    ignoreLoggerButton.setSelected(false);
                    focusOnAction.setEnabled(false);
                    popupMenu.hideCheck.setSelected(false);
                    fireChangeEvent();
                }
            };

        action.putValue(
            Action.SHORT_DESCRIPTION,
            "Adds all loggers to your Ignore list (unhide loggers you want to see in the view)");

        return action;
    }