From 2c34669f89f3faed0c56c1373ee87f2d21cb16d3 Mon Sep 17 00:00:00 2001 From: Charles Nicholson <nicholsonc@google.com> Date: Thu, 13 Oct 2016 11:39:33 -0800 Subject: [PATCH] When a new dataset is loaded, the 3D label visualizer now forgets its label accessor. The projector data panel updates the dataset before messing with its own UI, which can lead to Polymer property events. The data set needs to be updated throughout the app before events can meaningfully fire. Change: 136073118 --- .../vz-projector/scatterPlotVisualizer3DLabels.ts | 8 +++----- .../components/vz-projector/vz-projector-data-panel.ts | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/tensorflow/tensorboard/components/vz-projector/scatterPlotVisualizer3DLabels.ts b/tensorflow/tensorboard/components/vz-projector/scatterPlotVisualizer3DLabels.ts index 1133b0e384f..ae59a5b1f38 100644 --- a/tensorflow/tensorboard/components/vz-projector/scatterPlotVisualizer3DLabels.ts +++ b/tensorflow/tensorboard/components/vz-projector/scatterPlotVisualizer3DLabels.ts @@ -295,11 +295,8 @@ export class ScatterPlotVisualizer3DLabels implements ScatterPlotVisualizer { } private colorSprites(pointColors?: Float32Array) { - if (this.geometry == null || this.dataSet == null) { - return; - } - - if (pointColors == null) { + if (this.labelAccessor == null || this.geometry == null || + this.dataSet == null || pointColors == null) { return; } @@ -341,6 +338,7 @@ export class ScatterPlotVisualizer3DLabels implements ScatterPlotVisualizer { onDataSet(dataSet: DataSet, spriteImage: HTMLImageElement) { this.dataSet = dataSet; + this.labelAccessor = null; } onPickingRender(rc: RenderContext) { diff --git a/tensorflow/tensorboard/components/vz-projector/vz-projector-data-panel.ts b/tensorflow/tensorboard/components/vz-projector/vz-projector-data-panel.ts index 97c223bf044..068035148c5 100644 --- a/tensorflow/tensorboard/components/vz-projector/vz-projector-data-panel.ts +++ b/tensorflow/tensorboard/components/vz-projector/vz-projector-data-panel.ts @@ -170,8 +170,8 @@ export class DataPanel extends DataPanelPolymer { if (metadataFile) { this.dataProvider.retrieveMetadata( this.selectedRun, this.selectedTensor, metadata => { - this.updateMetadataUI(metadata.stats, metadataFile); this.projector.updateDataSet(ds, metadata); + this.updateMetadataUI(metadata.stats, metadataFile); }); } else { this.projector.updateDataSet(ds, null);