diff options
author | tschicke-brown <tyler_schicke@brown.edu> | 2019-02-19 21:58:18 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-19 21:58:18 -0500 |
commit | 4610f1cc4653aa3b8389a677b9a1bd94590752a1 (patch) | |
tree | 6fd1cfe02eaeaf1dc074a26cc4cde39c3313d1f3 /src/fields/BasicField.ts | |
parent | 190d0225d7bf605aa53847eb7beda5de72e753a8 (diff) | |
parent | ef10a6bdf753f75cbc5b5d8b7dcc53c3d4c219ad (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.ts | 24 |
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 |