aboutsummaryrefslogtreecommitdiff
path: root/src/fields/BasicField.ts
diff options
context:
space:
mode:
authorSam Wilkins <samwilkins333@gmail.com>2019-02-25 01:31:27 -0500
committerSam Wilkins <samwilkins333@gmail.com>2019-02-25 01:31:27 -0500
commit1a32bdca177faf5a3d99bcb45aaf596ba8c706a8 (patch)
tree1f7531be1ae4032cbb5de0e54a9ae48fda9657cc /src/fields/BasicField.ts
parentb418a6ed64e50700e2935963f01e392cbd81099d (diff)
parentdb7aa80be56e2d91acf224013b24ab73385f836c (diff)
Merge branch 'authentication' of https://github.com/browngraphicslab/Dash-Web into authentication
Diffstat (limited to 'src/fields/BasicField.ts')
-rw-r--r--src/fields/BasicField.ts19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/fields/BasicField.ts b/src/fields/BasicField.ts
index 15eb067a0..a92c4a236 100644
--- a/src/fields/BasicField.ts
+++ b/src/fields/BasicField.ts
@@ -1,9 +1,10 @@
-import { Field, FIELD_ID } from "./Field"
+import { Field, FieldId } from "./Field"
import { observable, computed, action } from "mobx";
import { Server } from "../client/Server";
+import { UndoManager } from "../client/util/UndoManager";
export abstract class BasicField<T> extends Field {
- constructor(data: T, save: boolean, id: FIELD_ID = undefined) {
+ constructor(data: T, save: boolean, id?: FieldId) {
super(id);
this.data = data;
@@ -27,12 +28,22 @@ export abstract class BasicField<T> extends Field {
}
set Data(value: T) {
- if (this.data != value) {
- this.data = value;
+ if (this.data === value) {
+ return;
}
+ let oldValue = this.data;
+ this.setData(value);
+ UndoManager.AddEvent({
+ undo: () => this.Data = oldValue,
+ redo: () => this.Data = value
+ })
Server.UpdateField(this);
}
+ protected setData(value: T) {
+ this.data = value;
+ }
+
@action
TrySetValue(value: any): boolean {
if (typeof value == typeof this.data) {