private void revalidateAxisExtrema(){
synchronized (this) {
    for (    Entry<DataSource,Map<Integer,String>> entryByDataSource : columnToAxisMappingByDataSource.entrySet()) {
      DataSource dataSource=entryByDataSource.getKey();
      Map<Integer,String> columnToAxisMapping=entryByDataSource.getValue();
      for (      Entry<Integer,String> entry : columnToAxisMapping.entrySet()) {
        Integer colIndex=entry.getKey();
        String axisName=entry.getValue();
        Column<?> col=dataSource.getColumn(colIndex);
        Double min=axisMin.get(axisName);
        Double max=axisMax.get(axisName);
        if (min == null || max == null) {
          min=col.getStatistics(Statistics.MIN);
          max=col.getStatistics(Statistics.MAX);
        }
 else {
          min=Math.min(min,col.getStatistics(Statistics.MIN));
          max=Math.max(max,col.getStatistics(Statistics.MAX));
        }
        axisMin.put(axisName,min);
        axisMax.put(axisName,max);
      }
    }
  }
}

private void revalidateAxisExtrema ( ) { synchronized ( this ) { for ( Entry < DataSource , Map < Integer , String > > entryByDataSource : columnToAxisMappingByDataSource . entrySet ( ) ) { DataSource dataSource = entryByDataSource . getKey ( ) ; Map < Integer , String > columnToAxisMapping = entryByDataSource . getValue ( ) ; for ( Entry < Integer , String > entry : columnToAxisMapping . entrySet ( ) ) { Integer colIndex = entry . getKey ( ) ; String axisName = entry . getValue ( ) ; Column < ? > col = dataSource . getColumn ( colIndex ) ; Double min = axisMin . get ( axisName ) ; Double max = axisMax . get ( axisName ) ; if ( min == null || max == null ) { min = col . getStatistics ( Statistics . MIN ) ; max = col . getStatistics ( Statistics . MAX ) ; } else { min = Math . min ( min , col . getStatistics ( Statistics . MIN ) ) ; max = Math . max ( max , col . getStatistics ( Statistics . MAX ) ) ; } axisMin . put ( axisName , min ) ; axisMax . put ( axisName , max ) ; } } } }
rebuilds cached plot data .
