diff options
author | Tyler Schicke <tyler_schicke@brown.edu> | 2019-01-10 23:52:54 -0500 |
---|---|---|
committer | Tyler Schicke <tyler_schicke@brown.edu> | 2019-01-10 23:52:54 -0500 |
commit | ee068ab30c43125efd2b0ab853531df9777f544f (patch) | |
tree | 9560b014b4de30c3a8f1e3d77ae70db27558fe58 /src/controllers/BasicFieldController.ts | |
parent | 861d61970afc9e67afbafa64e8c1347a18335077 (diff) |
Started adding various controllers
Diffstat (limited to 'src/controllers/BasicFieldController.ts')
-rw-r--r-- | src/controllers/BasicFieldController.ts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/controllers/BasicFieldController.ts b/src/controllers/BasicFieldController.ts new file mode 100644 index 000000000..ff88f8781 --- /dev/null +++ b/src/controllers/BasicFieldController.ts @@ -0,0 +1,36 @@ +import { FieldController } from "./FieldController" +import { FieldUpdatedAction } from "./FieldUpdatedArgs"; + +export abstract class BasicFieldController<T> extends FieldController { + get Data(): T { + return this.data; + } + + set Data(value: T) { + if(this.data === value) { + return; + } + this.data = value; + + this.FieldUpdated.emit({ + field: this, + action: FieldUpdatedAction.Update + }); + } + + constructor(private data: T) { + super(); + } + + TrySetValue(value: any): boolean { + if (typeof value == typeof this.data) { + this.Data = value; + return true; + } + return false; + } + + GetValue(): any { + return this.Data; + } +} |