aboutsummaryrefslogtreecommitdiff
path: root/src/client/northstar/model/binRanges/NominalVisualBinRange.ts
blob: 42509d7972b8171628233752f94329e602e277de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import { NominalBinRange, BinLabel } from '../../model/idea/idea';
import { VisualBinRange } from './VisualBinRange';

export class NominalVisualBinRange extends VisualBinRange {
    public DataBinRange: NominalBinRange;

    constructor(dataBinRange: NominalBinRange) {
        super();
        this.DataBinRange = dataBinRange;
    }

    public AddStep(value: number): number {
        return value + 1;
    }

    public GetValueFromIndex(index: number): number {
        return index;
    }

    public GetBins(): number[] {
        var bins = new Array<number>();
        var idx = 0;
        for (var key in this.DataBinRange.labelsValue) {
            if (this.DataBinRange.labelsValue.hasOwnProperty(key)) {
                bins.push(idx);
                idx++;
            }
        }
        return bins;
    }

    public GetLabel(value: number): string {
        return this.DataBinRange.valuesLabel![value];
    }

    public GetLabels(): Array<BinLabel> {
        var labels = new Array<BinLabel>();
        var count = 0;
        for (var key in this.DataBinRange.valuesLabel) {
            if (this.DataBinRange.valuesLabel.hasOwnProperty(key)) {
                var value = this.DataBinRange.valuesLabel[key];
                labels.push(new BinLabel({
                    value: parseFloat(key),
                    minValue: count++,
                    maxValue: count,
                    label: value
                }));
            }
        }
        return labels;
    }
}