Skip to main content

Class: FmcScreen<P, E>

Defined in: src/sdk/fmc/FmcScreen.ts:66

An FMC screen.

This is the main object used to encapsulate an FMC screen and its rendering.

Type parameter T should be a subclass of the AbstractFmcPage that is universally used by pages in this implementation. This is done so that different avionics can have different types for different kinds of events and any data that pages might need to be instantiated with.

Type Parameters

Type ParameterDefault type
P extends AbstractFmcPageAbstractFmcPage
ERecord<string, unknown>

Implements

Constructors

Constructor

new FmcScreen<P, E>(bus, pageFactory, options, renderer, scratchpad): FmcScreen<P, E>

Defined in: src/sdk/fmc/FmcScreen.ts:99

Ctor

Parameters

ParameterTypeDescription
busEventBusthe event bus
pageFactoryFmcPageFactory<P>the page factory to be used for creating FMC pages for this screen
optionsFmcScreenOptionsthe screen options
rendererFmcRendererthe renderer to use for this screen
scratchpadFmcScratchpadthe scratchpad to use for this screen

Returns

FmcScreen<P, E>

Properties

bus

protected readonly bus: EventBus

Defined in: src/sdk/fmc/FmcScreen.ts:100

the event bus


currentlyDisplayedPage

protected currentlyDisplayedPage: null | P = null

Defined in: src/sdk/fmc/FmcScreen.ts:83


options

readonly options: Required<FmcScreenOptions>

Defined in: src/sdk/fmc/FmcScreen.ts:71


scratchpad

readonly scratchpad: FmcScratchpad

Defined in: src/sdk/fmc/FmcScreen.ts:104

the scratchpad to use for this screen

Accessors

currentRoute

Get Signature

get currentRoute(): Subject<string>

Defined in: src/sdk/fmc/FmcScreen.ts:138

Gets the current route

Returns

Subject<string>

a string subject


currentSubpageCount

Get Signature

get currentSubpageCount(): Subject<number>

Defined in: src/sdk/fmc/FmcScreen.ts:156

Gets the current number of subpages for the current displayed page

Returns

Subject<number>

a number


currentSubpageIndex

Get Signature

get currentSubpageIndex(): Subject<number>

Defined in: src/sdk/fmc/FmcScreen.ts:147

Gets the current subpage index for the current displayed page, 1-indexed

Returns

Subject<number>

a number

Methods

acceptPageOutput()

protected acceptPageOutput(output, template, atRowIndex): void

Defined in: src/sdk/fmc/FmcScreen.ts:400

Method called when a page is rendered to the screen. This can be overridden to intercept the page data and act upon it.

Parameters

ParameterTypeDescription
outputFmcOutputTemplatethe output template, displayed on the screen
templateFmcRenderTemplatethe render template, rendered by the page
atRowIndexnumberthe row index at which the render occurred

Returns

void


addLskEvents()

addLskEvents(array): void

Defined in: src/sdk/fmc/FmcScreen.ts:329

Adds a list of LSK events bound to certain positions on the rendering grid

Parameters

ParameterTypeDescription
array[keyof E & string, number, number][]the LSK events and their positions

Returns

void


addPageRoute()

Declares a route for a page class

Param

the route to set

Param

the page to associate with it

Param

the event to associate with it

Param

default typed parameters to pass in to the page

Call Signature

addPageRoute<T>(route, page, routeEvent?): void

Defined in: src/sdk/fmc/FmcScreen.ts:251

Declares a route for a page class

Type Parameters
Type Parameter
T extends null
Parameters
ParameterTypeDescription
routestringthe route to set
pagePageConstructor<P & AbstractFmcPage<T>>the page to associate with it
routeEvent?keyof E & stringthe event to associate with it
Returns

void

Call Signature

addPageRoute<U>(route, page, routeEvent, defaultProps): void

Defined in: src/sdk/fmc/FmcScreen.ts:264

Declares a route for a page class

Type Parameters
Type Parameter
U extends PageConstructor<P, null>
Parameters
ParameterTypeDescription
routestringthe route to set
pageUthe page to associate with it
routeEventundefined | keyof E & stringthe event to associate with it
defaultPropsU extends PageConstructor<AbstractFmcPage<V>, V> ? V : neverdefault props to pass in to the page
Returns

void


addPagingEvents()

addPagingEvents(events): void

Defined in: src/sdk/fmc/FmcScreen.ts:342

Adds paging events bound the page slewing

Parameters

ParameterTypeDescription
eventsFmcPagingEvents<E>the events to bind

Returns

void


addPluginPageRoute()

addPluginPageRoute<T>(route, page, routeEvent?, defaultTypedParameters?): void

Defined in: src/sdk/fmc/FmcScreen.ts:299

Type Parameters

Type Parameter
T extends object

Parameters

ParameterType
routestring
pagePageConstructor<P & AbstractFmcPage<T>, T>
routeEvent?keyof E & string
defaultTypedParameters?T

Returns

void

Inherit Doc

Implementation of

FmcScreenPluginContext.addPluginPageRoute


attachPageExtension()

attachPageExtension(pageClass, extensionCtor): void

Defined in: src/sdk/fmc/FmcScreen.ts:319

Attaches a FmcPageExtension to a specific page class

Parameters

ParameterTypeDescription
pageClassPageConstructor<P>the page constructor (class) to attach the extension to
extensionCtor(...args) => AbstractFmcPageExtension<P>the extension class (will be instantiated whenever the page is created)

Returns

void

Implementation of

FmcScreenPluginContext.attachPageExtension


clearScratchpad()

clearScratchpad(): void

Defined in: src/sdk/fmc/FmcScreen.ts:240

Clears the scratchpad, if applicable

Returns

void


editOutputTemplate()

editOutputTemplate(rowIndex, output): void

Defined in: src/sdk/fmc/FmcScreen.ts:368

Edits part of the screen output

Parameters

ParameterTypeDescription
rowIndexnumberthe row index to insert at
outputFmcOutputTemplatethe output to insert

Returns

void

Throws

if rowIndex is too high


Navigates to a given route and displays the associated page, if available

Param

the route

Param

the parameters to pass to the page

Throws

if a page class is passed in as the first argument and no associated route is found

Call Signature

navigateTo(route, params?): void

Defined in: src/sdk/fmc/FmcScreen.ts:166

Navigates to a given route and displays the associated page, if available

Parameters
ParameterTypeDescription
routestringthe route
params?Record<string, unknown>the parameters to pass to the page
Returns

void

Call Signature

navigateTo<U>(pageClass, props): void

Defined in: src/sdk/fmc/FmcScreen.ts:176

Navigates to a given route and displays the associated page, if available

Type Parameters
Type Parameter
U extends PageConstructor<P, null>
Parameters
ParameterTypeDescription
pageClassUthe page's class
propsU extends PageConstructor<AbstractFmcPage<V>, V> ? V : neverprops to pass in to the page
Returns

void


onLineSelectKeyError()

protected onLineSelectKeyError(error): void

Defined in: src/sdk/fmc/FmcScreen.ts:466

Called when an LSK error is thrown. Sets this.scratchpad.errorContents (if error is a string; otherwise throws) by default.

Parameters

ParameterTypeDescription
erroranythe LSK error

Returns

void


onLineSelectKeyUnhandled()

protected onLineSelectKeyUnhandled(selectKeyEvent): void

Defined in: src/sdk/fmc/FmcScreen.ts:456

Called when an LSK event is not handled by any code.

Parameters

ParameterTypeDescription
selectKeyEventLineSelectKeyEventthe LSK event

Returns

void

Throws

the value of options.lskNotHandledThrowValue by default


onPrefixedEvent()

onPrefixedEvent<k>(event): Consumer<E[k]>

Defined in: src/sdk/fmc/FmcScreen.ts:356

Returns a consumer for an event prefixed for this particular screen.

Type Parameters

Type Parameter
k extends string

Parameters

ParameterTypeDescription
eventkThe event to subscribe to.

Returns

Consumer<E[k]>

A consumer for an event prefixed for this particular screen.


processPluginPageAdditions()

processPluginPageAdditions(): void

Defined in: src/sdk/fmc/FmcScreen.ts:118

Processes page replacement calls made by plugins. Must be called after plugins are initialized, and before stock routes are added.

Returns

void


processPluginPageReplacements()

processPluginPageReplacements(): void

Defined in: src/sdk/fmc/FmcScreen.ts:127

Processes page replacement calls made by plugins. Must be called after plugins are initialized, and after stock routes are added.

Returns

void


replacePageRoute()

replacePageRoute<T>(route, page, routeEvent?, defaultTypedParameters?): void

Defined in: src/sdk/fmc/FmcScreen.ts:309

Adds a page route to the FMC screen. Has priority over routes added by the avionics.

Type Parameters

Type Parameter
T extends object

Parameters

ParameterTypeDescription
routestringthe route
pagePageConstructor<P & AbstractFmcPage<T>, T>the page constructor
routeEvent?keyof E & stringthe FMC event, optionally, to bind the route to
defaultTypedParameters?T-

Returns

void

Implementation of

FmcScreenPluginContext.replacePageRoute