aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/northstar/model/ModelHelpers.ts10
-rw-r--r--src/client/northstar/operations/HistogramOperation.ts4
-rw-r--r--src/client/views/Main.tsx21
-rw-r--r--src/client/views/nodes/HistogramBox.tsx4
-rw-r--r--src/server/authentication/models/current_user_utils.ts27
5 files changed, 37 insertions, 29 deletions
diff --git a/src/client/northstar/model/ModelHelpers.ts b/src/client/northstar/model/ModelHelpers.ts
index e1241b3ef..914e03255 100644
--- a/src/client/northstar/model/ModelHelpers.ts
+++ b/src/client/northstar/model/ModelHelpers.ts
@@ -9,7 +9,7 @@ import { AlphabeticVisualBinRange } from "./binRanges/AlphabeticVisualBinRange";
import { NominalVisualBinRange } from "./binRanges/NominalVisualBinRange";
import { VisualBinRangeHelper } from "./binRanges/VisualBinRangeHelper";
import { AttributeTransformationModel } from "../core/attribute/AttributeTransformationModel";
-import { Main } from "../../views/Main";
+import { CurrentUserUtils } from "../../../server/authentication/models/current_user_utils";
export class ModelHelpers {
@@ -39,19 +39,19 @@ export class ModelHelpers {
if (atm.AggregateFunction === AggregateFunction.Avg) {
var avg = new AverageAggregateParameters();
avg.attributeParameters = ModelHelpers.GetAttributeParameters(atm.AttributeModel);
- avg.distinctAttributeParameters = Main.Instance.ActiveSchema!.distinctAttributeParameters;
+ avg.distinctAttributeParameters = CurrentUserUtils.ActiveSchema!.distinctAttributeParameters;
aggParam = avg;
}
else if (atm.AggregateFunction === AggregateFunction.Count) {
var cnt = new CountAggregateParameters();
cnt.attributeParameters = ModelHelpers.GetAttributeParameters(atm.AttributeModel);
- cnt.distinctAttributeParameters = Main.Instance.ActiveSchema!.distinctAttributeParameters;
+ cnt.distinctAttributeParameters = CurrentUserUtils.ActiveSchema!.distinctAttributeParameters;
aggParam = cnt;
}
else if (atm.AggregateFunction === AggregateFunction.Sum) {
var sum = new SumAggregateParameters();
sum.attributeParameters = ModelHelpers.GetAttributeParameters(atm.AttributeModel);
- sum.distinctAttributeParameters = Main.Instance.ActiveSchema!.distinctAttributeParameters;
+ sum.distinctAttributeParameters = CurrentUserUtils.ActiveSchema!.distinctAttributeParameters;
aggParam = sum;
}
return aggParam;
@@ -66,7 +66,7 @@ export class ModelHelpers {
var margin = new MarginAggregateParameters();
margin.attributeParameters = ModelHelpers.GetAttributeParameters(agg.AttributeModel);
- margin.distinctAttributeParameters = Main.Instance.ActiveSchema!.distinctAttributeParameters;
+ margin.distinctAttributeParameters = CurrentUserUtils.ActiveSchema!.distinctAttributeParameters;
margin.aggregateFunction = agg.AggregateFunction;
aggregateParameters.push(margin);
}
diff --git a/src/client/northstar/operations/HistogramOperation.ts b/src/client/northstar/operations/HistogramOperation.ts
index a4f5cac70..120a84dad 100644
--- a/src/client/northstar/operations/HistogramOperation.ts
+++ b/src/client/northstar/operations/HistogramOperation.ts
@@ -5,8 +5,8 @@ import { CalculatedAttributeManager } from "../core/attribute/CalculatedAttribut
import { ModelHelpers } from "../model/ModelHelpers";
import { SETTINGS_X_BINS, SETTINGS_Y_BINS, SETTINGS_SAMPLE_SIZE } from "../model/binRanges/VisualBinRangeHelper";
import { AttributeTransformationModel } from "../core/attribute/AttributeTransformationModel";
-import { Main } from "../../views/Main";
import { BaseOperation } from "./BaseOperation";
+import { CurrentUserUtils } from "../../../server/authentication/models/current_user_utils";
export class HistogramOperation extends BaseOperation {
@@ -83,7 +83,7 @@ export class HistogramOperation extends BaseOperation {
let [perBinAggregateParameters, globalAggregateParameters] = this.GetAggregateParameters(this.X, this.Y, this.V);
return new HistogramOperationParameters({
enableBrushComputation: true,
- adapterName: Main.Instance.ActiveSchema!.displayName,
+ adapterName: CurrentUserUtils.ActiveSchema!.displayName,
filter: this.FilterString,
brushes: this.BrushString,
binningParameters: [ModelHelpers.GetBinningParameters(this.X, SETTINGS_X_BINS, this.QRange ? this.QRange.minValue : undefined, this.QRange ? this.QRange.maxValue : undefined),
diff --git a/src/client/views/Main.tsx b/src/client/views/Main.tsx
index cb49bc4e6..6534cb4f7 100644
--- a/src/client/views/Main.tsx
+++ b/src/client/views/Main.tsx
@@ -55,7 +55,6 @@ export class Main extends React.Component {
@observable private mainfreeform?: Document;
@observable public pwidth: number = 0;
@observable public pheight: number = 0;
- @observable ActiveSchema: Schema | undefined;
private _northstarColumns: Document[] = [];
@computed private get mainContainer(): Document | undefined {
@@ -339,8 +338,8 @@ export class Main extends React.Component {
@action SetNorthstarCatalog(ctlog: Catalog) {
if (ctlog && ctlog.schemas) {
- this.ActiveSchema = ArrayUtil.FirstOrDefault<Schema>(ctlog.schemas!, (s: Schema) => s.displayName === "mimic");
- this._northstarColumns = this.GetAllNorthstarColumnAttributes().map(a => Documents.HistogramDocument({ width: 200, height: 200, title: a.displayName! }));
+ CurrentUserUtils.ActiveSchema = ArrayUtil.FirstOrDefault<Schema>(ctlog.schemas!, (s: Schema) => s.displayName === "mimic");
+ this._northstarColumns = CurrentUserUtils.GetAllNorthstarColumnAttributes().map(a => Documents.HistogramDocument({ width: 200, height: 200, title: a.displayName! }));
}
}
async initializeNorthstar(): Promise<void> {
@@ -355,22 +354,6 @@ export class Main extends React.Component {
let cat = Gateway.Instance.ClearCatalog();
cat.then(async () => this.SetNorthstarCatalog(await Gateway.Instance.GetCatalog()));
}
- public GetAllNorthstarColumnAttributes() {
- if (!this.ActiveSchema || !this.ActiveSchema.rootAttributeGroup) {
- return [];
- }
- const recurs = (attrs: Attribute[], g: AttributeGroup) => {
- if (g.attributes) {
- attrs.push.apply(attrs, g.attributes);
- if (g.attributeGroups) {
- g.attributeGroups.forEach(ng => recurs(attrs, ng));
- }
- }
- };
- const allAttributes: Attribute[] = new Array<Attribute>();
- recurs(allAttributes, this.ActiveSchema.rootAttributeGroup);
- return allAttributes;
- }
}
Documents.initProtos().then(() => {
diff --git a/src/client/views/nodes/HistogramBox.tsx b/src/client/views/nodes/HistogramBox.tsx
index 223fdf0d8..cc43899c1 100644
--- a/src/client/views/nodes/HistogramBox.tsx
+++ b/src/client/views/nodes/HistogramBox.tsx
@@ -4,11 +4,11 @@ import { FieldView, FieldViewProps } from './FieldView';
import "./VideoBox.scss";
import { observable, reaction } from "mobx";
import { HistogramOperation } from "../../northstar/operations/HistogramOperation";
-import { Main } from "../Main";
import { ColumnAttributeModel } from "../../northstar/core/attribute/AttributeModel";
import { AttributeTransformationModel } from "../../northstar/core/attribute/AttributeTransformationModel";
import { AggregateFunction, HistogramResult, DoubleValueAggregateResult } from "../../northstar/model/idea/idea";
import { ModelHelpers } from "../../northstar/model/ModelHelpers";
+import { CurrentUserUtils } from "../../../server/authentication/models/current_user_utils";
@observer
export class HistogramBox extends React.Component<FieldViewProps> {
@@ -23,7 +23,7 @@ export class HistogramBox extends React.Component<FieldViewProps> {
_histoOp?: HistogramOperation;
componentDidMount() {
- Main.Instance.GetAllNorthstarColumnAttributes().map(a => {
+ CurrentUserUtils.GetAllNorthstarColumnAttributes().map(a => {
if (a.displayName == this.props.doc.Title) {
var atmod = new ColumnAttributeModel(a);
this._histoOp = new HistogramOperation(new AttributeTransformationModel(atmod, AggregateFunction.None),
diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts
index 3291c671c..055e4cc97 100644
--- a/src/server/authentication/models/current_user_utils.ts
+++ b/src/server/authentication/models/current_user_utils.ts
@@ -7,13 +7,15 @@ import { Document } from "../../../fields/Document";
import { KeyStore } from "../../../fields/KeyStore";
import { ListField } from "../../../fields/ListField";
import { Documents } from "../../../client/documents/Documents";
+import { Schema, Attribute, AttributeGroup } from "../../../client/northstar/model/idea/idea";
export class CurrentUserUtils {
private static curr_email: string;
private static curr_id: string;
private static user_document: Document;
- //TODO tfs: this should be temporary...
+ //TODO tfs: these should be temporary...
private static mainDocId: string | undefined;
+ private static activeSchema: Schema | undefined;
public static get email(): string {
return this.curr_email;
@@ -35,6 +37,29 @@ export class CurrentUserUtils {
this.mainDocId = id;
}
+ public static get ActiveSchema(): Schema | undefined {
+ return this.activeSchema;
+ }
+ public static GetAllNorthstarColumnAttributes() {
+ if (!this.ActiveSchema || !this.ActiveSchema.rootAttributeGroup) {
+ return [];
+ }
+ const recurs = (attrs: Attribute[], g: AttributeGroup) => {
+ if (g.attributes) {
+ attrs.push.apply(attrs, g.attributes);
+ if (g.attributeGroups) {
+ g.attributeGroups.forEach(ng => recurs(attrs, ng));
+ }
+ }
+ };
+ const allAttributes: Attribute[] = new Array<Attribute>();
+ recurs(allAttributes, this.ActiveSchema.rootAttributeGroup);
+ return allAttributes;
+ }
+
+ public static set ActiveSchema(id: Schema | undefined) {
+ this.activeSchema = id;
+ }
private static createUserDocument(id: string): Document {
let doc = new Document(id);