aboutsummaryrefslogtreecommitdiff
path: root/src/controllers/FieldController.ts
diff options
context:
space:
mode:
authorTyler Schicke <tyler_schicke@brown.edu>2019-01-15 07:57:16 -0500
committerTyler Schicke <tyler_schicke@brown.edu>2019-01-15 07:57:16 -0500
commit3de39e2608e62a278b9c8cc37b53333f0877fa59 (patch)
tree0843d7cc199b54f80517c987a9f9d0d47cbb883d /src/controllers/FieldController.ts
parente1ed82ff684877b56925016282a0e4d5bb4e1b4b (diff)
Have most of document stuff working
Diffstat (limited to 'src/controllers/FieldController.ts')
-rw-r--r--src/controllers/FieldController.ts26
1 files changed, 8 insertions, 18 deletions
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<T extends FieldController>(field: Opt<FieldController>, cto
export type Opt<T> = T | undefined;
export abstract class FieldController {
- FieldUpdated: TypedEvent<Opt<FieldUpdatedArgs>> = new TypedEvent<Opt<FieldUpdatedArgs>>();
+ //FieldUpdated: TypedEvent<Opt<FieldUpdatedArgs>> = new TypedEvent<Opt<FieldUpdatedArgs>>();
private id: string;
get Id(): string {
@@ -26,32 +26,22 @@ export abstract class FieldController {
this.id = id || Utils.GenerateGuid();
}
- protected DereferenceImpl(): Opt<FieldController> {
+ Dereference(): Opt<FieldController> {
return this;
}
- protected DereferenceToRootImpl(): Opt<FieldController> {
+ DereferenceToRoot(): Opt<FieldController> {
return this;
}
- Dereference<T extends FieldController = FieldController>(ctor?: { new(): T }): Opt<T> {
- let field = this.DereferenceImpl();
- if (ctor && field instanceof ctor) {
- return field;
- } else {
- return undefined;
- }
+ DereferenceT<T extends FieldController = FieldController>(ctor: { new(): T }): Opt<T> {
+ return Cast(this.Dereference(), ctor);
}
- DereferenceToRoot<T extends FieldController = FieldController>(ctor?: { new(): T }): Opt<T> {
- let field = this.DereferenceToRootImpl();
- if (ctor && field instanceof ctor) {
- return field;
- } else {
- return undefined;
- }
+ DereferenceToRootT<T extends FieldController = FieldController>(ctor: { new(): T }): Opt<T> {
+ return Cast(this.DereferenceToRoot(), ctor);
}
- Equals(other: FieldController) : boolean {
+ Equals(other: FieldController): boolean {
return this.id === other.id;
}