Commit 509228e0 authored by Laura Schlimmer's avatar Laura Schlimmer
Browse files

hook up line chart in parser

parent a60ab24b
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -5,8 +5,9 @@
 * Licensed under the MIT license (see LICENSE).
 */
#include "drawstatement.h"
#include "../ui/canvas.h"
#include "../ui/barchart.h"
#include <fnordmetric/ui/canvas.h>
#include <fnordmetric/ui/barchart.h>
#include <fnordmetric/ui/linechart.h>

namespace fnordmetric {
namespace query {
@@ -15,6 +16,8 @@ void DrawStatement::execute(ui::Canvas* canvas) {
  switch (type_) {
    case T_BAR_CHART:
      return executeDrawable(canvas->addChart<ui::BarChart>());
    case T_LINE_CHART:
      return executeDrawable(canvas->addChart<ui::LineChart>());
  }
}

+3 −0
Original line number Diff line number Diff line
@@ -354,6 +354,9 @@ ASTNode* Parser::chartStatement() {
    case Token::T_BAR:
      chart->setToken(consumeToken());
      break;
    case Token::T_LINE:
      chart->setToken(consumeToken());
      break;

    default:
      RAISE(
+13 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
#include "canvas.h"
#include "linechart.h"
#include "rendertarget.h"
#include <fnordmetric/util/runtimeexception.h>

namespace fnordmetric {
namespace ui {
@@ -199,5 +200,17 @@ void LineChart::render(
  target->finishGroup();
}

void LineChart::addSeries(Series2D<std::string, double>* series) {
  RAISE(
      util::RuntimeException,
      "unsupported series format for LineChart: <string, float>");
}

void LineChart::addSeries(Series2D<std::string, std::string>* series) {
  RAISE(
      util::RuntimeException,
      "unsupported series format for LineChart: <string, float>");
}

}
}
+10 −0
Original line number Diff line number Diff line
@@ -63,6 +63,16 @@ public:
      double point_size = kDefaultPointSize,
      bool smooth = false);

  /**
   * Unsupported series format
   */
  void addSeries(Series2D<std::string, double>* series);

  /**
   * Unsupported series format
   */
  void addSeries(Series2D<std::string, std::string>* series);

  /**
   * Add an axis to the chart. This method should only be called after all
   * series have been added to the chart.