public List<BreakpointItem> getSelectedBreakpoints(boolean traverse) {
    TreePath[] selectionPaths = myTreeView.getSelectionPaths();
    if (selectionPaths == null || selectionPaths.length == 0) return Collections.emptyList();

    final ArrayList<BreakpointItem> list = new ArrayList<>();
    for (TreePath selectionPath : selectionPaths) {
      TreeNode startNode = (TreeNode)selectionPath.getLastPathComponent();
      if (traverse) {
        TreeUtil.treeNodeTraverser(startNode).traverse(TreeTraversal.PRE_ORDER_DFS).processEach(node -> {
          if (node instanceof BreakpointItemNode) {
            list.add(((BreakpointItemNode)node).getBreakpointItem());
          }
          return true;
        });
      }
      else {
        if (startNode instanceof BreakpointItemNode) {
          list.add(((BreakpointItemNode)startNode).getBreakpointItem());
        }
      }
    }

    return list;
  }
public List<BreakpointItem> getSelectedBreakpoints(boolean traverse)