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/fields/BasicField.ts | |
parent | 3de39e2608e62a278b9c8cc37b53333f0877fa59 (diff) |
More stuff set up
Diffstat (limited to 'src/fields/BasicField.ts')
-rw-r--r-- | src/fields/BasicField.ts | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/fields/BasicField.ts b/src/fields/BasicField.ts new file mode 100644 index 000000000..437024d07 --- /dev/null +++ b/src/fields/BasicField.ts @@ -0,0 +1,38 @@ +import { Field } from "./Field" +import { observable, computed, action } from "mobx"; + +export abstract class BasicField<T> extends Field { + 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; + } +} |