@Override public void writeValue(Map<String, T> newValue) { for (MapUpdate<T> mapUpdate : mapUpdateCollector.readValue()) { for (String name : mapUpdate.getExpressionsToDelete()) { functions.remove(name); } functions.putAll(mapUpdate.getWriteFunctionsToAdd()); } for (Map.Entry<String, T> entry : newValue.entrySet()) { WriteFunction<T> function = functions.get(entry.getKey()); if (function != null) { function.writeValue(entry.getValue()); } } }
@Override public Map<String, T> readValue() { for (MapUpdate<T> mapUpdate : mapUpdateCollector.readValue()) { for (String name : mapUpdate.getExpressionsToDelete()) { functions.remove(name); } functions.putAll(mapUpdate.getReadFunctionsToAdd()); previousValue = null; } Map<String, T> map = new HashMap<String, T>(); for (Map.Entry<String, ReadFunction<T>> entry : functions.entrySet()) { String name = entry.getKey(); T value = entry.getValue().readValue(); if (value != null) { map.put(name, value); } } if (Objects.equals(previousValue, map)) { return previousValue; } previousValue = map; return map; }
List<Exception> exceptions = writeExceptionCollector.readValue(); final Exception lastException; if (exceptions.isEmpty()) {
List<Exception> exceptions = readExceptionCollector.readValue(); final Exception lastException; if (calculationException != null) {
@Override public Graph2DResult readValue() { VNumberArray data = arrayData.readValue(); // Data must be available if (data == null) { return null; } // TODO: check array is one dimensional Cell1DDataset dataset = null; dataset = DatasetConversions.cell1DDatasetsFromVNumberArray(data); // Process all renderer updates for (AreaGraph2DRendererUpdate rendererUpdate : getUpdateQueue().readValue()) { renderer.update(rendererUpdate); } // If no size is set, don't calculate anything if (renderer.getImageHeight() == 0 && renderer.getImageWidth() == 0) return null; BufferedImage image = new BufferedImage(renderer.getImageWidth(), renderer.getImageHeight(), BufferedImage.TYPE_3BYTE_BGR); renderer.draw(image.createGraphics(), dataset); int index = -1; if (renderer.getFocusValueIndex() != null) { index = renderer.getFocusValueIndex(); } return new Graph2DResult(data, ValueUtil.toVImage(image), new GraphDataRange(renderer.getXPlotRange(), dataset.getXRange(), dataset.getXRange()), new GraphDataRange(renderer.getYPlotRange(), dataset.getStatistics().getRange(), renderer.getYAggregatedRange()), index); }
.readValue(); for (ScatterGraph2DRendererUpdate scatterGraph2DRendererUpdate : updates) { renderer.update(scatterGraph2DRendererUpdate);
@Override public Graph2DResult readValue() { VNumberArray data = arrayData.readValue(); // Data must be available if (data == null) { return null; } List<IntensityGraph2DRendererUpdate> updates = getUpdateQueue().readValue(); // If data is old and no updates, return the previous result if (data == oldData && updates.isEmpty()) { return previousResult; } oldData = data; // TODO: check array is one dimensional Cell2DDataset dataset = DatasetConversions.cell2DDatasetsFromVNumberArray(data); // Process all renderer updates for (IntensityGraph2DRendererUpdate rendererUpdate : updates) { renderer.update(rendererUpdate); } // If no size is set, don't calculate anything if (renderer.getImageHeight() == 0 && renderer.getImageWidth() == 0) return null; GraphBuffer buffer = new GraphBuffer(renderer); renderer.draw(buffer, dataset); return new Graph2DResult(data, ValueUtil.toVImage(buffer.getImage()), new GraphDataRange(renderer.getXPlotRange(), dataset.getXRange(), dataset.getXRange()), new GraphDataRange(renderer.getYPlotRange(), dataset.getYRange(), dataset.getYRange()), -1, selectionData(data, renderer)); }
List<LineGraph2DRendererUpdate> updates = rendererUpdateQueue.readValue(); for (LineGraph2DRendererUpdate rendererUpdate : updates) { renderer.update(rendererUpdate);
List<MultiAxisLineGraph2DRendererUpdate> updates = rendererUpdateQueue.readValue(); for (MultiAxisLineGraph2DRendererUpdate rendererUpdate : updates) { renderer.update(rendererUpdate);
List<SparklineGraph2DRendererUpdate> updates = rendererUpdateQueue.readValue(); for (SparklineGraph2DRendererUpdate rendererUpdate : updates) { renderer.update(rendererUpdate);
List<LineGraph2DRendererUpdate> updates = rendererUpdateQueue.readValue(); for (LineGraph2DRendererUpdate rendererUpdate : updates) { renderer.update(rendererUpdate);
.readValue(); for (BubbleGraph2DRendererUpdate scatterGraph2DRendererUpdate : updates) { renderer.update(scatterGraph2DRendererUpdate);