diff src/app/visualisations/waves-base.component.ts @ 473:de23ea6bcd0d

Add vertical binned scale for matrix shapes. Requires waves-ui-piper update
author Chris Cannam <cannam@all-day-breakfast.com>
date Fri, 30 Jun 2017 12:08:50 +0100
parents 89674c064cda
children 64ed45a0bad3
line wrap: on
line diff
--- a/src/app/visualisations/waves-base.component.ts	Fri Jun 30 09:07:12 2017 +0100
+++ b/src/app/visualisations/waves-base.component.ts	Fri Jun 30 12:08:50 2017 +0100
@@ -19,6 +19,14 @@
   abstract renderScale(range: [number, number]): void;
 }
 
+export abstract class VerticallyBinned {
+  abstract get binNames(): string[];
+}
+
+export abstract class VerticalBinNameRenderer extends VerticallyBinned {
+  abstract renderNames(binNames: string[]): void;
+}
+
 export abstract class VerticalValueInspectorRenderer
   extends VerticalScaleRenderer {
   // TODO how do I know these layers are actually 'describable'?
@@ -212,6 +220,21 @@
   }
 }
 
+export abstract class VerticallyBinnedWavesComponent
+<T extends ShapedFeatureData> extends WavesComponent<T>
+  implements VerticalBinNameRenderer {
+  abstract binNames: string[];
+
+  renderNames(binNames: string[]): void {
+    this.addLayer(new Waves.helpers.DiscreteScaleLayer({
+      tickColor: this.colour,
+      textColor: this.colour,
+      height: this.height,
+      binNames
+    }));
+  }
+}
+
 export abstract class InspectableVerticallyBoundedComponent
 <T extends ShapedFeatureData> extends VerticallyBoundedWavesComponent<T>
   implements VerticalValueInspectorRenderer {