protected void handleIntervalXUpdate(int firstRow, int lastRow) { getSeries().setFireSeriesChanged(false); series.delete(firstRow, min(lastRow, series.getItemCount() - 1)); handleAdd(firstRow, lastRow); getSeries().setFireSeriesChanged(true); getSeries().fireSeriesChanged(); }
protected void handleIntervalYUpdate(int firstRow, int lastRow) { getSeries().setFireSeriesChanged(false); for (int i = firstRow; i < lastRow + 1; i++) { getSeries().updateByIndex(i, formatYValue(getPositions().getPosition(i))); } getSeries().setFireSeriesChanged(true); getSeries().fireSeriesChanged(); }
private void recomputeEverythingAfter(int firstRow) { getSeries().setFireSeriesChanged(false); int itemCount = getSeries().getItemCount(); if (itemCount > 0 && firstRow < itemCount - 1) getSeries().delete(firstRow, itemCount - 1); BaseRoute route = getPositions().getRoute(); if (route == null) return; int lastRow = getPositions().getRowCount() - 1; if (firstRow <= lastRow && lastRow >= 0) { if(getXAxisMode().equals(Distance)) { double[] distances = route.getDistancesFromStart(firstRow, lastRow); for (int i = firstRow; i < lastRow + 1; i++) { getSeries().add(formatDistance(distances[i - firstRow]), formatYValue(getPositions().getPosition(i)), false); } } else { long[] times = route.getTimesFromStart(firstRow, lastRow); for (int i = firstRow; i < lastRow + 1; i++) { // XYSeries only works with doubles so it's hard to format the time as a date and time string getSeries().add(formatTime(times[i - firstRow]), formatYValue(getPositions().getPosition(i)), false); } } } getSeries().setFireSeriesChanged(true); getSeries().fireSeriesChanged(); }