LayoutHub
Controls the layout. Extends MessageHub.
- Module:
platform-core - Source: platform-core/ui/platform/layout-hub.js
- Web Link:
/services/web/platform-core/ui/platform/layout-hub.js - Status:
stable - Group:
platform
Basic Usage
If you are using the standard Dirigible view configuration, layout support is automatically enabled.
If you are making a custom view, you can include the API using the web link above.
To initialize it:
const layoutHub = new LayoutHub();
This hub is different compared to the others. All hubs listen to changes globally, meaning that, for example, if View A in Perspective A with Layout A sends a message using the WorkspaceHub that there is a change to a workspace and View B in Perspective B with Layout B is listening for workspace changes, then View B will receive that message despite being in a completely different perspective and layout.
The LayoutHub is going to react to changes only from views that are inside it, not to outside changes. If View A in Perspective A requests for View C to be opened, the view will be opened only in the Perspective A layout and Perspective B will not change.
Constructor
Properties
| Param | Type | Description |
|---|---|---|
| [layoutId] | string |
Layout id. By default, it's the perspective id. |
| [setId] | boolean |
When creating a layout, this parameter must be set to true as it will register the current window object as a layout one and set a layoutId parameter in it. This will help all child views to get the layout id automatically. |
Functions
| Function | Description | Returns |
|---|---|---|
| getOpenedViews(ParamsObject) | Returns a list of opened view ids. | Promise |
| onGetOpenedViews(handlerFunc) | Registers a listener. Triggered when a list of opened views is requested. Returns a function to unregister the listener. | function |
| isViewOpen(IdParamObject) | Returns true if a view is opened. | Promise |
| onIsViewOpen(handlerFunc) | Registers a listener. Triggered when a view opened state check is requested. Returns a function to unregister the listener. | function |
| openView(IdParamObject) | Opens a view. | - |
| onOpenView(handlerFunc) | Registers a listener. Triggered when a view should be opened. Returns a function to unregister the listener. | function |
| focusView(IdRegionObject) | Focuses a view. | - |
| onFocusView(handlerFunc) | Registers a listener. Triggered when a view should be focused. Returns a function to unregister the listener. | function |
| closeView(IdParamObject) | Closes a view. | - |
| onCloseView(handlerFunc) | Registers a listener. Triggered when a view should be closed. Returns a function to unregister the listener. | function |
| closeOtherViews(IdParamObject) | Closes all other views. | - |
| onCloseOtherViews(handlerFunc) | Registers a listener. Triggered when other views should be closed. Returns a function to unregister the listener. | function |
| closeAllViews(ParamsObject) | Closes all views. | - |
| onCloseAllViews(handlerFunc) | Registers a listener. Triggered when all views should be closed. Returns a function to unregister the listener. | function |
| setViewDirty(ViewDirtyObject) | Sets the dirty state of a view. | - |
| onViewDirty(handlerFunc) | Registers a listener. Triggered when a view's dirty state should be changed. Returns a function to unregister the listener. | function |
| openEditor(OpenEditorParams) | Sends a message containing information on which editor has to be opened. | - |
| onOpenEditor(handlerFunc) | Triggered when an editor has to be opened. | function |
| closeEditor(PathParams) | Sends a message containing information on which editor has to be closed. | - |
| onCloseEditor(handlerFunc) | Triggered when an editor has to be closed. | function |
| closeAllEditors(Params) | Sends a message when all editors should be closed. | - |
| onCloseAllEditors(handlerFunc) | Triggered when editors have to be closed. | function |
| focusEditor(FocusParams) | Tells an editor that it has been focused. | - |
| onFocusEditor() | Triggered when an editor gains focus. | function |
| setEditorDirty(EditorDirtyParams) | Sends a message containing information on which editor has to be set to dirty. | - |
| onSetEditorDirty(handlerFunc) | Triggered when an editor has to be set as dirty. | function |
| isEditorDirty(PathParams) | Gets the dirty state of an editor. | Promise |
| onIsEditorDirty(handlerFunc) | Triggered when an editor's dirty state is requested. | function |
| isEditorOpen(PathParams) | Checks if an editor is open. | Promise |
| onIsEditorOpen(handlerFunc) | Triggered when performing a check for an open editor. | function |
| getCurrentlyOpenedEditors(GetOpenedParams) | Gets all file paths from the currently opened editors. | Promise |
| onGetCurrentlyOpenedEditors(handlerFunc) | Triggered when a list of opened files is requested. | function |
| reloadEditorParams(PathParams) | Tells an editor that it should reload its view parameters. | - |
| onReloadEditorParams(handlerFunc) | Triggered when an editor should reload its view parameters. | function |
Typedefs
- IdParamObject :
Object - IdRegionObject :
Object - ParamsObject :
Object - ViewDirtyObject :
Object - OpenEditorParams :
Object - PathParams :
Object - Params :
Object - FocusParams :
Object - EditorDirtyParams :
Object - GetOpenedParams :
Object
Note
Params in square brackets are optional.
IdParamObject : Object
Properties
| Param | Type | Description |
|---|---|---|
| id | string |
View id. |
| [params] | object |
Custom parameters. See ViewParameters. |
IdRegionObject : Object
Properties
| Param | Type | Description |
|---|---|---|
| id | string |
View id. |
| [region] | object |
The region where the view is displayed. The options are 'left', 'right', 'center' and 'bottom'. Default is 'center'. |
ParamsObject : Object
Properties
| Param | Type | Description |
|---|---|---|
| [params] | object |
Custom parameters. See ViewParameters. |
ViewDirtyObject : Object
Properties
| Param | Type | Description |
|---|---|---|
| id | string |
View id. |
| dirty | boolean |
Dirty state. |
| [params] | object |
Custom parameters. See ViewParameters. |
OpenEditorParams : Object
| Param | Type | Description |
|---|---|---|
| path | string |
Full file path, including file name. |
| contentType | string |
The file content type. |
| [editorId] | string |
The ID of the preffered editor. |
| [params] | Object.<any, any> |
Extra parameters that will be passed to the view parameters of the editor. |
PathParams : Object
| Param | Type | Description |
|---|---|---|
| path | string |
Full file path, including file name. |
| [params] | Object.<any, any> |
Extra parameters. |
Params : Object
| Param | Type | Description |
|---|---|---|
| [params] | Object.<any, any> |
Extra parameters. |
FocusParams : Object
Properties
| Param | Type | Description |
|---|---|---|
| id | string |
Editor tab id. |
| [path] | string |
Full file path, including file name. |
| [params] | object |
Custom parameters. |
EditorDirtyParams : Object
| Param | Type | Description |
|---|---|---|
| path | string |
Full file path, including file name. |
| dirty | boolean |
File dirty state. |
| [params] | Object.<any, any> |
Extra parameters. |
GetOpenedParams : Object
| Param | Type | Description |
|---|---|---|
| basePath | string |
If provided, it will only return files with a matching base path. |
Example
If you want your view to just communicate with the layout that it's in:
const layoutHub = new LayoutHub();
If you want your view to just communicate with the layout that somewere else in the application:
const layoutHub = new LayoutHub('other-layout-id');
If you want your view/perspective to be registered as a layout or layout-containing and receive layout events:
const layoutHub = new LayoutHub('some-layout-id', true);
To open a view:
layoutHub.openView({
id: 'exampleView',
params: {
title: 'Example',
}
});