aboutsummaryrefslogtreecommitdiff
path: root/src/controllers/DocumentController.ts
diff options
context:
space:
mode:
authorTyler Schicke <tyler_schicke@brown.edu>2019-01-15 22:31:57 -0500
committerTyler Schicke <tyler_schicke@brown.edu>2019-01-15 22:31:57 -0500
commit89204d74d2a5014b4e241973b1bdb8461ed4f78c (patch)
tree4bf58acfdad603375953b2de3610dc946e569b71 /src/controllers/DocumentController.ts
parent3de39e2608e62a278b9c8cc37b53333f0877fa59 (diff)
More stuff set up
Diffstat (limited to 'src/controllers/DocumentController.ts')
-rw-r--r--src/controllers/DocumentController.ts90
1 files changed, 0 insertions, 90 deletions
diff --git a/src/controllers/DocumentController.ts b/src/controllers/DocumentController.ts
deleted file mode 100644
index 0627f9717..000000000
--- a/src/controllers/DocumentController.ts
+++ /dev/null
@@ -1,90 +0,0 @@
-import { FieldController, Cast, Opt } from "./FieldController"
-import { KeyController, KeyStore } from "./KeyController"
-import { TypedEvent, Listener, Disposable } from "../util/TypedEvent";
-import { DocumentUpdatedArgs, FieldUpdatedAction } from "./FieldUpdatedArgs";
-import { ObservableMap } from "mobx";
-
-export class DocumentController extends FieldController {
- private fields: ObservableMap<KeyController, FieldController> = new ObservableMap();
-
- GetField(key: KeyController, ignoreProto?: boolean): Opt<FieldController> {
- let field: Opt<FieldController>;
- if (ignoreProto) {
- if (this.fields.has(key)) {
- field = this.fields.get(key);
- }
- } else {
- let doc: Opt<DocumentController> = this;
- while (doc && !(doc.fields.has(key))) {
- doc = doc.GetPrototype();
- }
-
- if (doc) {
- field = doc.fields.get(key);
- }
- }
-
- return field;
- }
-
- GetFieldT<T extends FieldController = FieldController>(key: KeyController, ctor: { new(): T }, ignoreProto?: boolean): Opt<T> {
- return Cast(this.GetField(key, ignoreProto), ctor);
- }
-
- SetField(key: KeyController, field: Opt<FieldController>): void {
- if (field) {
- this.fields.set(key, field);
- } else {
- this.fields.delete(key);
- }
- }
-
- SetFieldValue<T extends FieldController>(key: KeyController, value: any, ctor: { new(): T }): boolean {
- let field = this.GetField(key);
- if (field != null) {
- return field.TrySetValue(value);
- } else {
- field = new ctor();
- if (field.TrySetValue(value)) {
- this.SetField(key, field);
- return true;
- } else {
- return false;
- }
- }
- }
-
- GetPrototype(): Opt<DocumentController> {
- return this.GetFieldT(KeyStore.Prototype, DocumentController, true);
- }
-
- GetAllPrototypes(): DocumentController[] {
- let protos: DocumentController[] = [];
- let doc: Opt<DocumentController> = this;
- while (doc != null) {
- protos.push(doc);
- doc = doc.GetPrototype();
- }
- return protos;
- }
-
- MakeDelegate(): DocumentController {
- let delegate = new DocumentController();
-
- delegate.SetField(KeyStore.Prototype, this);
-
- return delegate;
- }
-
- TrySetValue(value: any): boolean {
- throw new Error("Method not implemented.");
- }
- GetValue() {
- throw new Error("Method not implemented.");
- }
- Copy(): FieldController {
- throw new Error("Method not implemented.");
- }
-
-
-} \ No newline at end of file