aboutsummaryrefslogtreecommitdiff
path: root/src/controllers
diff options
context:
space:
mode:
authorTyler Schicke <tyler_schicke@brown.edu>2019-01-15 22:31:57 -0500
committerTyler Schicke <tyler_schicke@brown.edu>2019-01-15 22:31:57 -0500
commit89204d74d2a5014b4e241973b1bdb8461ed4f78c (patch)
tree4bf58acfdad603375953b2de3610dc946e569b71 /src/controllers
parent3de39e2608e62a278b9c8cc37b53333f0877fa59 (diff)
More stuff set up
Diffstat (limited to 'src/controllers')
-rw-r--r--src/controllers/BasicFieldController.ts38
-rw-r--r--src/controllers/DocumentController.ts90
-rw-r--r--src/controllers/DocumentReferenceController.ts46
-rw-r--r--src/controllers/FieldController.ts54
-rw-r--r--src/controllers/FieldUpdatedArgs.ts27
-rw-r--r--src/controllers/KeyController.ts36
-rw-r--r--src/controllers/ListController.ts30
-rw-r--r--src/controllers/NumberController.ts14
-rw-r--r--src/controllers/TextController.ts14
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);
- }
-
-
-}