/**
   * Rendert eine einzelne Kategorie sammt Unterkategorien und stellt ihre Einnahmen, Ausgaben und
   * den Betrag dar.
   *
   * @param reporter der Reporter.
   * @param node der Knoten mit evtl vorhanden Unterkategorien und deren Einnahmen, Ausgaben und
   *     Betrag.
   * @throws Exception
   */
  private void renderNode(Reporter reporter, UmsatzTreeNode node, int level) throws Exception {
    String name = (String) node.getAttribute("name");
    for (int j = 0; j < level; ++j) {
      name = "    " + name;
    }

    PdfPCell cell = reporter.getDetailCell(name, Element.ALIGN_LEFT);
    reporter.addColumn(cell);

    reporter.addColumn(reporter.getDetailCell((Double) node.getAttribute("einnahmen")));
    reporter.addColumn(reporter.getDetailCell((Double) node.getAttribute("ausgaben")));
    reporter.addColumn(reporter.getDetailCell((Double) node.getAttribute("betrag")));

    List<UmsatzTreeNode> children = node.getSubGroups();
    for (int i = 0; i < children.size(); ++i) {
      renderNode(reporter, children.get(i), level + 1);
    }
  }