@Override
 public void clear() {
   windowHandler.clear();
   overviewHandler.clear();
   lastDataPoint = null;
   firstDataPoint = null;
   lockSelection = false;
 }
    void populateWindowSeries(final Command toExcuteAfterSelection) {
      final double x1 = getWindowMinX();
      final double x2 = getWindowMaxX();
      windowHandler.clear();
      if (x1 < x2) {
        provider.getData(
            x1,
            x2,
            new AsyncCallback<SeriesData>() {
              @Override
              public void onFailure(Throwable caught) {
                GWT.log("Failed to obtain data for PlotWithOverview", caught);
                if (toExcuteAfterSelection != null) {
                  toExcuteAfterSelection.execute();
                }
              }

              @Override
              public void onSuccess(SeriesData result) {
                for (int i = 0; i < result.length(); i++) {
                  windowHandler.add(result.get(i));
                }
                lockSelection = x2 >= lastDataPoint.getX();
                if (toExcuteAfterSelection != null) {
                  toExcuteAfterSelection.execute();
                }
              }
            });
      }
    }
 @Override
 public void setData(SeriesData newData) {
   overviewHandler.setData(newData);
   windowHandler.clear();
 }