Skip to main content

Module: WindowClient

WindowClient is primarily responsible for managing window state (the window's location and size) and app state (data inside of your app).

Functions

bringToFront

bringToFront(cb?): StandardPromise<void>

Brings the window to the top of all other windows.

FSBL.Clients.WindowClient.bringWindowToFront();

Parameters

NameType
cb?StandardErrorCallback<void>

Returns

StandardPromise<void>


bringWindowToFront

bringWindowToFront(cb?): void

Brings the window to the top of all other windows

This is a non-promisifed version for backward compatibility. Please use WindowClient.bringToFront()

deprecated Use bringToFront() instead, which returns a promise.

Parameters

NameType
cb?StandardErrorCallback<void>

Returns

void


cancelTilingOrTabbing

cancelTilingOrTabbing(params, cb?): void

This is used to cancel a tabbing or tiling operation.

deprecated This code will be moved into finsemble-ui

Parameters

NameTypeDescription
paramsObject
params.windowIdentifier?WindowIdentifierThe Finsemble identifier for the window.
cb?() => voidThe callback to be invoked after the method completes successfully.

Returns

void


close

close(params, cb?): StandardPromise<void>

Closes window. Defaults are to remove the window from the workspace if the user presses the X button, but not if the window is closed via an app-level request (e.g., switching workspaces, so all windows need to close).

//Close window and remove from workspace (e.g., user closes the window).
FSBL.Clients.WindowClient.close({ removeFromWorkspace: true, closeWindow: true });
//Close window and keep in workspace (e.g., application requests that all windows close themselves).
FSBL.Clients.WindowClient.close({ removeFromWorkspace: false, closeWindow: false });

Parameters

NameTypeDescription
paramsObject
params.closeWindowbooleanWhether to close the window. On shutdown this method is called, but the Window Service actually closes the window.
params.ignoreParent?booleanWhether or not to update the parent (stack) window when closing.
params.removeFromWorkspacebooleanWhether to remove the window from the workspace.
params.userInitiated?booleanWhether the user clicked the X, or if the system asked the window to close.
cb?StandardErrorCallback<void>The callback to be invoked after the method completes successfully.

Returns

StandardPromise<void>


ejectFromGroup

ejectFromGroup(): void

Ejects the window from the docking group

deprecated This code will be moved to finsemble-ui

Returns

void


fitToDOM

fitToDOM(params?, cb?): Promise<void>

Parameters

NameType
params?null | { maxHeight?: number ; maxWidth?: number ; padding?: { height: number ; width: number } }
cb?() => void

Returns

Promise<void>


formGroup

formGroup(): void

Forms a group with any window that is touching the border of this window.

Returns

void


getBounds

getBounds(cb): StandardPromise<Bounds>

Returns the object defining bounds for the current window including the position of the left and right edges measured in pixels from the left edge of the monitor, the top and bottom edges measured in pixels from the top edge, and the width and height of the component in pixels. Please note that this method differs from the right and bottom coordinates passed to LauncherClient.spawn(); those are measured from the right and bottom edges of the screen.

Parameters

NameTypeDescription
cbStandardErrorCallback<Bounds>The callback to be invoked after the method completes successfully.

Returns

StandardPromise<Bounds>


getComponentState

getComponentState<T>(params, cb?): StandardPromise<T>

Given a field, this function retrieves app state. If no params are given, the full state is returned.

The example below shows how we retrieve data to restore the layout in our charts.

FSBL.Clients.WindowClient.getComponentState({
field: 'myChartLayout',
}, function (err, state) {
importLayout(state);
});

FSBL.Clients.WindowClient.getComponentState({
fields: ['myChartLayout', 'chartType'],
}, function (err, state) {
let chartType = state['chartType'];
let myChartLayout = state['myChartLayout'];
});

Type parameters

NameType
Tany

Parameters

NameTypeDescription
paramsObject
params.field?stringField to retrieve.
params.fields?string[]Fields to retrieve.
params.windowName?stringWindow whose component state you are retrieving. If null, the default is to the calling window.
cb?StandardErrorCallback<T>The callback to be invoked after the method completes successfully.

Returns

StandardPromise<T>


getCurrentWindow

getCurrentWindow(): FEAWindow

Returns a reference to the current FEAWindow for the component.

deprecated Use FSBL.System.Window.getCurrent()

Returns

FEAWindow


getSpawnData

getSpawnData(): any

Retrieves data that was set with LauncherClient.spawn.

Returns

any

The spawnData that was passed to calls to LauncherClient.spawn, or an empty object.


getWindowIdentifier

getWindowIdentifier(): WindowIdentifier

Returns the window identifier for the current component.

Returns

WindowIdentifier


getWindowNameForDocking

getWindowNameForDocking(): any

Gets the window name of current window or the parent, if tabbed. The code that manages window movement will not see a child window if it's part of a stacked window. This function will return the window name that the Window Service cares about for window movement.

deprecated

Returns

any


getWindowTitle

getWindowTitle(): null | string

Retrieves the window's title.

let windowTitle = FSBL.Clients.WindowClient.getWindowTitle();

Returns

null | string

title


maximize

maximize(cb?): StandardPromise<void>

Maximizes the window taking into account any claimed space on the monitor.

FSBL.Clients.WindowClient.maximize();

Parameters

NameTypeDescription
cb?StandardErrorCallback<void>Optional callback to be invoked after the method completes successfully.

Returns

StandardPromise<void>


minimize

minimize(cb?): StandardPromise<void>

Minimizes window.

FSBL.Clients.WindowClient.minimize();

Parameters

NameTypeDescription
cb?StandardErrorCallback<void>Optional callback to be invoked after the method completes successfully.

Returns

StandardPromise<void>


removeComponentState

removeComponentState(params, cb?): StandardPromise<void>

Given a field, this function removes it from app state.

The example below shows how we would remove our chart layout when it no longer needed.

// remove unused state value
FSBL.Clients.WindowClient.removeComponentState({ field: 'myChartLayout'});
FSBL.Clients.WindowClient.removeComponentState({ fields: [{field:'myChartLayout'}, {field:'chartType'}]);

Parameters

NameTypeDescription
paramsObjectObject of data to be removed
params.field?stringThe key name of the field to be saved. Required if not using fields.
params.fields?{ field: string }[]An array of objects with field keys to be removed.
params.windowName?stringThe name of the window to remove component state from
cb?StandardErrorCallback<void>The callback to be invoked after the method completes successfully.

Returns

StandardPromise<void>


restore

restore(cb?): StandardPromise<void>

Restores window from a maximized or minimized state.

FSBL.Clients.WindowClient.restore();

Parameters

NameTypeDescription
cb?StandardErrorCallback<void>Optional callback to be invoked after the method completes successfully.

Returns

StandardPromise<void>


sendIdentifierForTilingOrTabbing

sendIdentifierForTilingOrTabbing(params, cb?): void

This is used to let Finsemble know which window is being dragged. params.windowIdentifier must be the identifier of the tab being dragged. This is only used if the identifier is unknown when startTilingOrTabbing is called.

deprecated This code will be moved into finsemble-ui

Parameters

NameTypeDescription
paramsObjectThe windowIdentifier is required.
params.windowIdentifierWindowIdentifierThe Finsemble identifier for the target window.
cb?() => voidThe callback to be invoked after the method completes successfully.

Returns

void


setAlwaysOnTop

setAlwaysOnTop(alwaysOnTop, cb?): StandardPromise<void>

Sets whether window is always on top. By default, this is false.

FSBL.Clients.WindowClient.setAlwaysOnTop(true);

Parameters

NameTypeDescription
alwaysOnTopbooleanThe new mode for the window's alwaysOnTop option to be set to.
cb?StandardErrorCallback<void>Optional callback to be invoked after the method completes successfully.

Returns

StandardPromise<void>


setComponentState

setComponentState<T>(params, cb?): StandardPromise<void>

Given a field, this function sets and persists app state.

The example below shows how we save our chart layout when it changes.

let s = stx.exportLayout(true);
//saving layout'
FSBL.Clients.WindowClient.setComponentState({ field: 'myChartLayout', value: s });
FSBL.Clients.WindowClient.setComponentState({ fields: [{field:'myChartLayout', value: s }, {field:'chartType', value: 'mountain'}]);

Type parameters

NameType
Tany

Parameters

NameTypeDescription
paramsObjectObject of data to be saved
params.field?stringThe key name of the field to be saved. Required if not using fields.
params.fields?{ field: string ; value: T }[]An array of objects with field and value keys to be saved.
params.value?TValue of the data being saved. Required if not using fields.
params.windowName?stringName of the component whose state you are setting. Defaults to the calling window.
cb?StandardErrorCallback<void>The callback to be invoked after the method completes successfully.

Returns

StandardPromise<void>


setShape

setShape(params?, callback?): void

Defines areas of the window that will be displayed and clickable. All other areas of the window will be transparent. Can be used to create click-through areas of a window.

Parameters

NameTypeDefault valueDescription
params?(null | { height: Number ; width: Number ; x: Number ; y: Number })[]undefinedOptional. Takes an array of rectangle Objects for the areas of the window that will be displayed and clickable. Passing in an empty array or omitting this parameter will cause the full area of the window to be displayed and clickable. A rectangle is defined as: { x: x coordinate for the origin of the rectangle (integer) y: x coordinate for the origin of the rectangle (integer) width: width of the rectangle (integer) height: height of the rectangle (integer) }
callbackFunctionFunction.prototype-

Returns

void


setTaskbarIconOverlay

setTaskbarIconOverlay(url): void

This feature is experimental. The signature may change in the future.

Sets an overlay image on the MS Windows taskbar, for instance to indicate activity. (This is sometimes referred to as a "badge").

The url must point to a 16x16 png image. Images of other sizes or types will not display.

Note: MacOS does not support taskbar overlay images. This function is safe to call on MacOS but will not perform any function.

Parameters

NameTypeDescription
urlnull | stringThe url of the icon to use. Pass null to remove the overlay icon.

Returns

void


showAtMousePosition

showAtMousePosition(): void

Moves the window so that it's centered above the user's mouse.

Returns

void


startMovingWindow

startMovingWindow(event): void

Begin programmatically moving the window; the first parameter is a mouse event. Until stopMovingWindow is invoked, the window will follow the user's mouse. This should be invoked inside of a mouseDown event handler.

Parameters

NameType
eventMouseEvent

Returns

void


startTilingOrTabbing

startTilingOrTabbing(params, cb?): void

This is used by the Finsemble window title bar when a tab is dragged for tiling or tabbing.

deprecated This code will be moved into finsemble-ui

Parameters

NameTypeDescription
paramsObjectparams.windowIdentifier is required.
params.windowIdentifierWindowIdentifierThe Finsemble identifier for the target window.
cb?() => voidThe callback to be invoked after the method completes successfully.

Returns

void


stopMovingWindow

stopMovingWindow(): void

Stops moving a window that was set in motion via startMovingWindow.

Returns

void


stopTilingOrTabbing

stopTilingOrTabbing(params, cb?): void

This function is used by the Finsemble window title bar to end tiling or tabbing.

deprecated This code will be moved into finsemble-ui

Parameters

NameTypeDescription
paramsObject
params.action?string-
params.allowDropOnSelf?booleanDetermines whether a tab can be dropped on the window where the drag originated.
params.mousePosition?ObjectWhere the pointer is on the screen
params.mousePosition.xnumber-
params.mousePosition.ynumber-
cb?() => voidThe callback to be invoked after the method completes successfully.

Returns

void