aboutsummaryrefslogtreecommitdiff
path: root/src/fields/BasicField.ts
diff options
context:
space:
mode:
authortschicke-brown <tyler_schicke@brown.edu>2019-02-19 21:58:18 -0500
committerGitHub <noreply@github.com>2019-02-19 21:58:18 -0500
commit4610f1cc4653aa3b8389a677b9a1bd94590752a1 (patch)
tree6fd1cfe02eaeaf1dc074a26cc4cde39c3313d1f3 /src/fields/BasicField.ts
parent190d0225d7bf605aa53847eb7beda5de72e753a8 (diff)
parentef10a6bdf753f75cbc5b5d8b7dcc53c3d4c219ad (diff)
Merge pull request #8 from browngraphicslab/server_database_merge
Server database merge
Diffstat (limited to 'src/fields/BasicField.ts')
-rw-r--r--src/fields/BasicField.ts24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/fields/BasicField.ts b/src/fields/BasicField.ts
index fb5cc773e..8728b7145 100644
--- a/src/fields/BasicField.ts
+++ b/src/fields/BasicField.ts
@@ -1,15 +1,25 @@
-import { Field } from "./Field"
+import { Field, FieldId } from "./Field"
import { observable, computed, action } from "mobx";
+import { Server } from "../client/Server";
export abstract class BasicField<T> extends Field {
- constructor(data: T) {
- super();
+ constructor(data: T, save: boolean, id?: FieldId) {
+ super(id);
this.data = data;
+ if (save) {
+ Server.UpdateField(this)
+ }
+ }
+
+ UpdateFromServer(data: any) {
+ if (this.data !== data) {
+ this.data = data;
+ }
}
@observable
- private data: T;
+ protected data: T;
@computed
get Data(): T {
@@ -17,10 +27,10 @@ export abstract class BasicField<T> extends Field {
}
set Data(value: T) {
- if (this.data === value) {
- return;
+ if (this.data != value) {
+ this.data = value;
}
- this.data = value;
+ Server.UpdateField(this);
}
@action