diff options
| author | Hannah Chow <hannah_chow@brown.edu> | 2019-03-11 17:11:43 -0400 |
|---|---|---|
| committer | Hannah Chow <hannah_chow@brown.edu> | 2019-03-11 17:11:43 -0400 |
| commit | 281b4e05a7fbd6b038782d9708839bf7edcf398d (patch) | |
| tree | d91d9d4b45571b35c6b84d31de8af0487c4aaa2e /src/fields | |
| parent | fe4f37c9986e0a6500d63b46e2238b0e0efb102b (diff) | |
| parent | 618e66a5a070f1aac9224bd3f44b76a5ac314bfa (diff) | |
uhhhh
Diffstat (limited to 'src/fields')
| -rw-r--r-- | src/fields/Document.ts | 8 | ||||
| -rw-r--r-- | src/fields/KeyStore.ts | 4 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/fields/Document.ts b/src/fields/Document.ts index 2e873439c..25e239417 100644 --- a/src/fields/Document.ts +++ b/src/fields/Document.ts @@ -1,6 +1,6 @@ import { Key } from "./Key" import { KeyStore } from "./KeyStore"; -import { Field, Cast, FieldWaiting, FieldValue, FieldId } from "./Field" +import { Field, Cast, FieldWaiting, FieldValue, FieldId, Opt } from "./Field" import { NumberField } from "./NumberField"; import { ObservableMap, computed, action } from "mobx"; import { TextField } from "./TextField"; @@ -128,6 +128,12 @@ export class Document extends Field { return false; } + GetTAsync<T extends Field>(key: Key, ctor: { new(): T }, callback: (field: Opt<T>) => void): boolean { + return this.GetAsync(key, (field) => { + callback(Cast(field, ctor)); + }) + } + /** * Same as {@link Document#GetAsync}, except a field of the given type * will be created if there is no field associated with the given key, diff --git a/src/fields/KeyStore.ts b/src/fields/KeyStore.ts index f67257093..f93a68c85 100644 --- a/src/fields/KeyStore.ts +++ b/src/fields/KeyStore.ts @@ -27,6 +27,10 @@ export namespace KeyStore { export const Caption = new Key("Caption"); export const ActiveFrame = new Key("ActiveFrame"); export const DocumentText = new Key("DocumentText"); + export const LinkedToDocs = new Key("LinkedToDocs"); + export const LinkedFromDocs = new Key("LinkedFromDocs"); + export const LinkDescription = new Key("LinkDescription"); + export const LinkTags = new Key("LinkTag"); export const Thumbnail = new Key("Thumbnail"); export const CurPage = new Key("CurPage"); export const NumPages = new Key("NumPages"); |
