aboutsummaryrefslogtreecommitdiff
path: root/src/fields
diff options
context:
space:
mode:
Diffstat (limited to 'src/fields')
-rw-r--r--src/fields/HistogramField.ts59
-rw-r--r--src/fields/KeyStore.ts2
2 files changed, 60 insertions, 1 deletions
diff --git a/src/fields/HistogramField.ts b/src/fields/HistogramField.ts
new file mode 100644
index 000000000..bb0014ab3
--- /dev/null
+++ b/src/fields/HistogramField.ts
@@ -0,0 +1,59 @@
+import { BasicField } from "./BasicField";
+import { Field, FieldId } from "./Field";
+import { Types } from "../server/Message";
+import { HistogramOperation } from "../client/northstar/operations/HistogramOperation";
+import { action } from "mobx";
+import { AttributeTransformationModel } from "../client/northstar/core/attribute/AttributeTransformationModel";
+import { ColumnAttributeModel } from "../client/northstar/core/attribute/AttributeModel";
+import { CurrentUserUtils } from "../server/authentication/models/current_user_utils";
+
+
+export class HistogramField extends BasicField<HistogramOperation> {
+ constructor(data?: HistogramOperation, id?: FieldId, save: boolean = true) {
+ super(data ? data : HistogramOperation.Empty, save, id);
+ }
+
+ toString(): string {
+ return JSON.stringify(this.Data);
+ }
+
+ Copy(): Field {
+ return new HistogramField(this.Data);
+ }
+
+ ToScriptString(): string {
+ return `new HistogramField("${this.Data}")`;
+ }
+
+ ToJson(): { type: Types, data: string, _id: string } {
+ return {
+ type: Types.HistogramOp,
+ data: JSON.stringify(this.Data),
+ _id: this.Id
+ }
+ }
+
+ @action
+ static FromJson(id: string, data: any): HistogramField {
+ let jp = JSON.parse(data);
+ let X: AttributeTransformationModel | undefined;
+ let Y: AttributeTransformationModel | undefined;
+ let V: AttributeTransformationModel | undefined;
+
+ CurrentUserUtils.GetAllNorthstarColumnAttributes().map(attr => {
+ if (attr.displayName == jp.X.AttributeModel.Attribute.DisplayName) {
+ X = new AttributeTransformationModel(new ColumnAttributeModel(attr), jp.X.AggregateFunction);
+ }
+ if (attr.displayName == jp.Y.AttributeModel.Attribute.DisplayName) {
+ Y = new AttributeTransformationModel(new ColumnAttributeModel(attr), jp.Y.AggregateFunction);
+ }
+ if (attr.displayName == jp.V.AttributeModel.Attribute.DisplayName) {
+ V = new AttributeTransformationModel(new ColumnAttributeModel(attr), jp.V.AggregateFunction);
+ }
+ });
+ if (X && Y && V) {
+ return new HistogramField(new HistogramOperation(X, Y, V, jp.Normalization), id, false);
+ }
+ return new HistogramField(HistogramOperation.Empty, id, false);
+ }
+} \ No newline at end of file
diff --git a/src/fields/KeyStore.ts b/src/fields/KeyStore.ts
index f9684b212..20e8cd930 100644
--- a/src/fields/KeyStore.ts
+++ b/src/fields/KeyStore.ts
@@ -29,7 +29,6 @@ export namespace KeyStore {
export const Caption = new Key("Caption");
export const ActiveFrame = new Key("ActiveFrame");
export const ActiveWorkspace = new Key("ActiveWorkspace");
- export const ActiveDB = new Key("ActiveDB");
export const DocumentText = new Key("DocumentText");
export const LinkedToDocs = new Key("LinkedToDocs");
export const LinkedFromDocs = new Key("LinkedFromDocs");
@@ -46,4 +45,5 @@ export namespace KeyStore {
export const Archives = new Key("Archives");
export const Updated = new Key("Updated");
export const Workspaces = new Key("Workspaces");
+ export const NorthstarSchema = new Key("NorthstarSchema");
}