From 3de39e2608e62a278b9c8cc37b53333f0877fa59 Mon Sep 17 00:00:00 2001 From: Tyler Schicke Date: Tue, 15 Jan 2019 07:57:16 -0500 Subject: Have most of document stuff working --- src/controllers/FieldController.ts | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) (limited to 'src/controllers/FieldController.ts') diff --git a/src/controllers/FieldController.ts b/src/controllers/FieldController.ts index 6e7daf6e1..ec59f53e8 100644 --- a/src/controllers/FieldController.ts +++ b/src/controllers/FieldController.ts @@ -15,7 +15,7 @@ export function Cast(field: Opt, cto export type Opt = T | undefined; export abstract class FieldController { - FieldUpdated: TypedEvent> = new TypedEvent>(); + //FieldUpdated: TypedEvent> = new TypedEvent>(); private id: string; get Id(): string { @@ -26,32 +26,22 @@ export abstract class FieldController { this.id = id || Utils.GenerateGuid(); } - protected DereferenceImpl(): Opt { + Dereference(): Opt { return this; } - protected DereferenceToRootImpl(): Opt { + DereferenceToRoot(): Opt { return this; } - Dereference(ctor?: { new(): T }): Opt { - let field = this.DereferenceImpl(); - if (ctor && field instanceof ctor) { - return field; - } else { - return undefined; - } + DereferenceT(ctor: { new(): T }): Opt { + return Cast(this.Dereference(), ctor); } - DereferenceToRoot(ctor?: { new(): T }): Opt { - let field = this.DereferenceToRootImpl(); - if (ctor && field instanceof ctor) { - return field; - } else { - return undefined; - } + DereferenceToRootT(ctor: { new(): T }): Opt { + return Cast(this.DereferenceToRoot(), ctor); } - Equals(other: FieldController) : boolean { + Equals(other: FieldController): boolean { return this.id === other.id; } -- cgit v1.2.3-70-g09d2