diff options
| author | Tyler Schicke <tyler_schicke@brown.edu> | 2019-01-15 22:31:57 -0500 |
|---|---|---|
| committer | Tyler Schicke <tyler_schicke@brown.edu> | 2019-01-15 22:31:57 -0500 |
| commit | 89204d74d2a5014b4e241973b1bdb8461ed4f78c (patch) | |
| tree | 4bf58acfdad603375953b2de3610dc946e569b71 /src/controllers | |
| parent | 3de39e2608e62a278b9c8cc37b53333f0877fa59 (diff) | |
More stuff set up
Diffstat (limited to 'src/controllers')
| -rw-r--r-- | src/controllers/BasicFieldController.ts | 38 | ||||
| -rw-r--r-- | src/controllers/DocumentController.ts | 90 | ||||
| -rw-r--r-- | src/controllers/DocumentReferenceController.ts | 46 | ||||
| -rw-r--r-- | src/controllers/FieldController.ts | 54 | ||||
| -rw-r--r-- | src/controllers/FieldUpdatedArgs.ts | 27 | ||||
| -rw-r--r-- | src/controllers/KeyController.ts | 36 | ||||
| -rw-r--r-- | src/controllers/ListController.ts | 30 | ||||
| -rw-r--r-- | src/controllers/NumberController.ts | 14 | ||||
| -rw-r--r-- | src/controllers/TextController.ts | 14 |
9 files changed, 0 insertions, 349 deletions
diff --git a/src/controllers/BasicFieldController.ts b/src/controllers/BasicFieldController.ts deleted file mode 100644 index 923bc335c..000000000 --- a/src/controllers/BasicFieldController.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { FieldController } from "./FieldController" -import { observable, computed, action } from "mobx"; - -export abstract class BasicFieldController<T> extends FieldController { - constructor(data: T) { - super(); - - this.data = data; - } - - @observable - private data:T; - - @computed - get Data(): T { - return this.data; - } - - set Data(value: T) { - if(this.data === value) { - return; - } - this.data = value; - } - - @action - TrySetValue(value: any): boolean { - if (typeof value == typeof this.data) { - this.Data = value; - return true; - } - return false; - } - - GetValue(): any { - return this.Data; - } -} diff --git a/src/controllers/DocumentController.ts b/src/controllers/DocumentController.ts deleted file mode 100644 index 0627f9717..000000000 --- a/src/controllers/DocumentController.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { FieldController, Cast, Opt } from "./FieldController" -import { KeyController, KeyStore } from "./KeyController" -import { TypedEvent, Listener, Disposable } from "../util/TypedEvent"; -import { DocumentUpdatedArgs, FieldUpdatedAction } from "./FieldUpdatedArgs"; -import { ObservableMap } from "mobx"; - -export class DocumentController extends FieldController { - private fields: ObservableMap<KeyController, FieldController> = new ObservableMap(); - - GetField(key: KeyController, ignoreProto?: boolean): Opt<FieldController> { - let field: Opt<FieldController>; - if (ignoreProto) { - if (this.fields.has(key)) { - field = this.fields.get(key); - } - } else { - let doc: Opt<DocumentController> = this; - while (doc && !(doc.fields.has(key))) { - doc = doc.GetPrototype(); - } - - if (doc) { - field = doc.fields.get(key); - } - } - - return field; - } - - GetFieldT<T extends FieldController = FieldController>(key: KeyController, ctor: { new(): T }, ignoreProto?: boolean): Opt<T> { - return Cast(this.GetField(key, ignoreProto), ctor); - } - - SetField(key: KeyController, field: Opt<FieldController>): void { - if (field) { - this.fields.set(key, field); - } else { - this.fields.delete(key); - } - } - - SetFieldValue<T extends FieldController>(key: KeyController, value: any, ctor: { new(): T }): boolean { - let field = this.GetField(key); - if (field != null) { - return field.TrySetValue(value); - } else { - field = new ctor(); - if (field.TrySetValue(value)) { - this.SetField(key, field); - return true; - } else { - return false; - } - } - } - - GetPrototype(): Opt<DocumentController> { - return this.GetFieldT(KeyStore.Prototype, DocumentController, true); - } - - GetAllPrototypes(): DocumentController[] { - let protos: DocumentController[] = []; - let doc: Opt<DocumentController> = this; - while (doc != null) { - protos.push(doc); - doc = doc.GetPrototype(); - } - return protos; - } - - MakeDelegate(): DocumentController { - let delegate = new DocumentController(); - - delegate.SetField(KeyStore.Prototype, this); - - return delegate; - } - - TrySetValue(value: any): boolean { - throw new Error("Method not implemented."); - } - GetValue() { - throw new Error("Method not implemented."); - } - Copy(): FieldController { - throw new Error("Method not implemented."); - } - - -}
\ No newline at end of file diff --git a/src/controllers/DocumentReferenceController.ts b/src/controllers/DocumentReferenceController.ts deleted file mode 100644 index 8e0aaf0e9..000000000 --- a/src/controllers/DocumentReferenceController.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { FieldController, Opt } from "./FieldController"; -import { DocumentController } from "./DocumentController"; -import { KeyController } from "./KeyController"; -import { DocumentUpdatedArgs } from "./FieldUpdatedArgs"; - -export class DocumentReferenceController extends FieldController { - get Key(): KeyController{ - return this.key; - } - - get Document(): DocumentController { - return this.document; - } - - constructor(private document: DocumentController, private key: KeyController) { - super(); - } - - private DocFieldUpdated(args: DocumentUpdatedArgs):void{ - // this.FieldUpdated.emit(args.fieldArgs); - } - - Dereference() : Opt<FieldController> { - return this.document.GetField(this.key); - } - - DereferenceToRoot(): Opt<FieldController> { - let field: Opt<FieldController> = this; - while (field instanceof DocumentReferenceController) { - field = field.Dereference(); - } - return field; - } - - TrySetValue(value: any): boolean { - throw new Error("Method not implemented."); - } - GetValue() { - throw new Error("Method not implemented."); - } - Copy(): FieldController { - throw new Error("Method not implemented."); - } - - -}
\ No newline at end of file diff --git a/src/controllers/FieldController.ts b/src/controllers/FieldController.ts deleted file mode 100644 index ec59f53e8..000000000 --- a/src/controllers/FieldController.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { TypedEvent } from "../util/TypedEvent"; -import { FieldUpdatedArgs } from "./FieldUpdatedArgs"; -import { DocumentReferenceController } from "./DocumentReferenceController"; -import { Utils } from "../Utils"; - -export function Cast<T extends FieldController>(field: Opt<FieldController>, ctor: { new(): T }): Opt<T> { - if (field) { - if (ctor && field instanceof ctor) { - return field; - } - } - return undefined; -} - -export type Opt<T> = T | undefined; - -export abstract class FieldController { - //FieldUpdated: TypedEvent<Opt<FieldUpdatedArgs>> = new TypedEvent<Opt<FieldUpdatedArgs>>(); - - private id: string; - get Id(): string { - return this.id; - } - - constructor(id: Opt<string> = undefined) { - this.id = id || Utils.GenerateGuid(); - } - - Dereference(): Opt<FieldController> { - return this; - } - DereferenceToRoot(): Opt<FieldController> { - return this; - } - - DereferenceT<T extends FieldController = FieldController>(ctor: { new(): T }): Opt<T> { - return Cast(this.Dereference(), ctor); - } - - DereferenceToRootT<T extends FieldController = FieldController>(ctor: { new(): T }): Opt<T> { - return Cast(this.DereferenceToRoot(), ctor); - } - - Equals(other: FieldController): boolean { - return this.id === other.id; - } - - abstract TrySetValue(value: any): boolean; - - abstract GetValue(): any; - - abstract Copy(): FieldController; - -}
\ No newline at end of file diff --git a/src/controllers/FieldUpdatedArgs.ts b/src/controllers/FieldUpdatedArgs.ts deleted file mode 100644 index f258c53e2..000000000 --- a/src/controllers/FieldUpdatedArgs.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { FieldController, Opt } from "./FieldController"; -import { DocumentController } from "./DocumentController"; -import { KeyController } from "./KeyController"; - -export enum FieldUpdatedAction { - Add, - Remove, - Replace, - Update -} - -export interface FieldUpdatedArgs { - field: FieldController; - action: FieldUpdatedAction; -} - -export interface DocumentUpdatedArgs { - field: DocumentController; - key: KeyController; - - oldValue: Opt<FieldController>; - newValue: Opt<FieldController>; - - fieldArgs?: FieldUpdatedArgs; - - action: FieldUpdatedAction; -} diff --git a/src/controllers/KeyController.ts b/src/controllers/KeyController.ts deleted file mode 100644 index 68eed3961..000000000 --- a/src/controllers/KeyController.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { FieldController } from "./FieldController" -import { Utils } from "../Utils"; - -export class KeyController extends FieldController { - get Name():string { - return this.name; - } - - constructor(private name:string){ - super(Utils.GenerateDeterministicGuid(name)); - } - - TrySetValue(value: any): boolean { - throw new Error("Method not implemented."); - } - - GetValue() { - return this.Name; - } - - Copy(): FieldController { - return this; - } - - -} - -export namespace KeyStore { - export let Prototype = new KeyController("Prototype"); - export let X = new KeyController("Y"); - export let Y = new KeyController("Y"); - export let Width = new KeyController("Width"); - export let Height = new KeyController("Height"); - export let Data = new KeyController("Data"); - export let View = new KeyController("View"); -}
\ No newline at end of file diff --git a/src/controllers/ListController.ts b/src/controllers/ListController.ts deleted file mode 100644 index 94a4ae828..000000000 --- a/src/controllers/ListController.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { FieldController } from "./FieldController"; -import { BasicFieldController } from "./BasicFieldController"; -import { NumberController } from "./NumberController"; -import { TextController } from "./TextController"; - -export class ListController<T extends FieldController> extends BasicFieldController<T[]> { - constructor(data: T[] = []) { - super(data.slice()); - - let arr:TextController[] = []; - this.Test(arr); - } - - Test(test: FieldController[]){ - test.push(new NumberController()); - } - - Get(index:number) : T{ - return this.Data[index]; - } - - Set(index:number, value:T):void { - this.Data[index] = value; - } - - Copy(): FieldController { - return new ListController<T>(this.Data); - } - -}
\ No newline at end of file diff --git a/src/controllers/NumberController.ts b/src/controllers/NumberController.ts deleted file mode 100644 index aeedf025b..000000000 --- a/src/controllers/NumberController.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { BasicFieldController } from "./BasicFieldController" -import { FieldUpdatedAction } from "./FieldUpdatedArgs"; - -export class NumberController extends BasicFieldController<number> { - constructor(data: number = 0) { - super(data); - } - - Copy() { - return new NumberController(this.Data); - } - - -}
\ No newline at end of file diff --git a/src/controllers/TextController.ts b/src/controllers/TextController.ts deleted file mode 100644 index 5d4b43170..000000000 --- a/src/controllers/TextController.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { BasicFieldController } from "./BasicFieldController" -import { FieldUpdatedAction } from "./FieldUpdatedArgs"; - -export class TextController extends BasicFieldController<string> { - constructor(data: string = "") { - super(data); - } - - Copy() { - return new TextController(this.Data); - } - - -} |
