From ee068ab30c43125efd2b0ab853531df9777f544f Mon Sep 17 00:00:00 2001 From: Tyler Schicke Date: Thu, 10 Jan 2019 23:52:54 -0500 Subject: Started adding various controllers --- src/controllers/BasicFieldController.ts | 36 +++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/controllers/BasicFieldController.ts (limited to 'src/controllers/BasicFieldController.ts') 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 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; + } +} -- cgit v1.2.3-70-g09d2