/** * Called when one of the sliding window size or step values has changed. This attempts to be * 'smart' and instead of recalculating everything from scratch, */ private void newWindowSizeAction() { if (sgSeriesMap == null) return; XYSeries data; int windowSize = (Integer) windowSizeSpinner.getValue(); int windowStep = (Integer) windowStepSpinner.getValue(); int tot = 0; for (AbstractSeries series : chart.getAllSeries()) { if (series instanceof BaseCounterSeries) { BaseCounterSeries bcSer = (BaseCounterSeries) series; BaseCounter bc = bcSer.getCalculator(); int partitionIndex = bcSer.getPartitionIndex(); // System.out.println("Replacing series for calc with name : " + bcSer.getName() + " and // partition : " + bcSer.getPartitionIndex()); if (partitionIndex > -1) { bcSer.replaceSeries(bc.getWindowPointSeries(windowSize, windowStep, partitionIndex)); } else bcSer.replaceSeries(bc.getWindowPointSeries(windowSize, windowStep)); } else { // System.err.println("Hmm, one of the series (" + series.getName() + ") is not a // basecounter, cannot recalculate it for the new window size.");/ } } chart.repaint(); }
/** * You guessed it..remove from the chart all series that are a) baseCounters, and b), have the * baseCounter name of calcName. This happens when the user toggles off the check box associated * with the named calculator. * * @param calcName */ public void removeSeriesByCalculatorName(String calcName) { List<AbstractSeries> activeSeries = chart.getAllSeries(); for (AbstractSeries series : activeSeries) { if (series instanceof BaseCounterSeries) { String name = ((BaseCounterSeries) series).getCalculator().getName(); if (name.equals(calcName)) { chart.removeSeries(series); } } } }
/** * Remove all series associated with the class specified * * @param toRemove */ public void removeSeriesByClass(Class toRemove) { List<AbstractSeries> activeSeries = chart.getAllSeries(); for (AbstractSeries series : activeSeries) { if (series instanceof BaseCounterSeries) { BaseCounter bc = ((BaseCounterSeries) series).getCalculator(); if (bc.getClass() == toRemove) { chart.removeSeries(series); } } } }