Structure (DC)
Breadcrumbs

ItemDetailsBridge Object

ItemDetailsBridge provides api for interaction with the Structure app and item details lifecycle.

Item details lifecycle: enabled (panel was open) → visible (ready for interaction) → disabled (panel was closed) → detached (ItemDetails module deactivated).

ItemDetailsBridge instance is accessible in ItemDetailsProvider subclasses via 'itemDetailsBridge' property.

Properties

panel$

jQuery object that contains item details panel element. All item details viewports are appended to this container.

Methods

getCurrentRowData()

Returns rowData as returned by corresponding ItemDetailsProvider.extendFocusedRowData() if the current row has the same item type as for which provider is registered, or null if it has another type.

onCurrentRowChange(listener)

Bind listener to execute each time on changing focused row in Structure.

Parameters

listener

Function(Object)

function that accepts rowData as returned by 

ItemDetailsProvider.extendFocusedRowData()

toggleEnabled(enabled)

Enable/disable details panel layout.

Parameters

enabled

Boolean

true if panel should be enabled and false otherwise

onEnableToggling(listener)

Bind listener to execute each time the panel layout has been enabled or disabled.

Parameters

listener

Function(Boolean)

function that accepts enabled flag

isEnabled()

Returns true if panel layout is enabled and false otherwise.

whenVisible(listener)

Bind listener to execute when details panel becomes ready for interaction.

Parameters

listener

Function

function to execute

isVisible()

Returns true if user can interact with the details panel at the moment and false otherwise.

onDetachment(listener)

Bind listener to perform cleanup on ItemDetails module deactivation.

Parameters

listener

Function

function that performs cleanup

notifyDetailsEditStarted()

Should be called when user starts item details content editing. This prevents details refreshing after possible structure updates.

notifyDetailsEditStopped()

Should be called when user has finished item details content editing. This allows the application to perform details refreshes after structure updates. See notifyDetailsEditStarted().

notifyDetailsUpdated()

Should be called when user has finished details update. Needed to notify Structure about possible updates to refresh corresponding rows.

notifyFocusChanged(focused)

Should be called when details panel has been focused or lost its focus.

Parameters

enabled

Boolean

true if the panel got focus and false otherwise

shouldBlockActions()

Returns true if item details actions should be blocked at the moment.

requestRefreshDetails(deferred)

Request item details refresh. Details panel will be ready for interaction after refresh when corresponding row is updated in Structure. Can be used for Structure and details updates synchronization.

Parameters

deferred

Object

jQuery.Deferred

that must resolve when details panel has been refreshed and Structure row has been updated

isFocused()

Returns true if details panel is currently focused.

setFocused(focused)

Called to make details panel focused/unfocused.

Parameters

focused

Boolean

true if the panel should be focused and false otherwise

focusStealerStarts(stealerId, isFocusedNow)

Details panel focus can be temporarily taken by some UI elements or dialogs and should be returned back after its closing (or it can be some other circumstances). To provide focus retrieval this function should be called when stealer takes focus from details panel. focusStealerFinishes() should be called with the same stealerId to return focus back.

Parameters

stealerId

String

identifier of entity that stole focus from details panel

focused

Boolean

indicates that details panel should be considered as focused even if it is not so at the moment of function call

focusStealerFinishes(stealerId, preventFocusing)

This function should be called when UI element or dialog that stole focus should return it back (i.e. dialog has been closed or disappeared). See focusStealerStarts(). Details panel will be focused back when all stealers release their focus.

Parameters

stealerId

String

identifier of entity that released focus

preventFocusing

Boolean

indicates that details panel should not be focused even if all focus stealers were released