Class PerspectiveDesignSession
java.lang.Object
com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
com.inductiveautomation.perspective.gateway.session.SessionKernelWrapper<T>
com.inductiveautomation.perspective.gateway.session.AbstractSession<com.inductiveautomation.perspective.gateway.session.PerspectiveDesignSession.SessionKernelImpl>
com.inductiveautomation.perspective.gateway.session.PerspectiveDesignSession
- All Implemented Interfaces:
AuditingContext
,LoggingContext
,PerspectiveElement
,PropertyTreeOwner
,Session
,InternalSession
,SessionKernel
public class PerspectiveDesignSession
extends AbstractSession<com.inductiveautomation.perspective.gateway.session.PerspectiveDesignSession.SessionKernelImpl>
Implementation of
AbstractSession
which is used when the Ignition Designer is creating, running,
and previewing Perspective Views.
Created by pjones on 4/17/17.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclass
Listens to the gateway-wide EventBus for mutability changes to this design session, and then delegates the change to this session's EventManager for more efficient notification for bindings.Nested classes/interfaces inherited from interface com.inductiveautomation.perspective.gateway.session.InternalSession
InternalSession.PageVisitor
Nested classes/interfaces inherited from interface com.inductiveautomation.perspective.gateway.api.Session
Session.WebAuthStatusChangeEvent
-
Field Summary
Fields inherited from class com.inductiveautomation.perspective.gateway.session.AbstractSession
bindings, changeScripts, handlers, pages, props
Fields inherited from interface com.inductiveautomation.perspective.gateway.session.InternalSession
SESSION
-
Method Summary
Modifier and TypeMethodDescriptionvoid
alter
(PropertyConfigChange change) void
Destroys this session and moves clients to a terminal state of closedvoid
Shuts down and removes the page associated with the given page ID which will disconnect the associated message channel (if one is connected).protected PropertyTreePermissionModel
createPermissionModel
(PropertyType scope, PropertyConfigCollection config) createPropertyReference
(String referencePath, Consumer<PropertyTreeChangeEvent> subscriber, Set<Origin> acceptableOrigins) Create aPropertyReference
with thisPerspectiveElement
as the target.createViewModel
(PageModel group, ViewInstanceId id, ViewConfig config, com.inductiveautomation.ignition.common.gson.JsonObject params) findViewConfig
(String viewResourcePath) Returns aCompletableFuture
that completes to present anOptional
<ViewConfig
> for the specified path.Always throwsUnsupportedOperationException
- it is a mistake if a code path reaches this methodprotected void
Call this when it's possible the last page has been closed.protected DesignerPageModel
void
void
void
onDesignerNamedQueriesChange
(Map<String, NamedQuery> namedQueryMap) void
onLoginResponse
(WebAuthResponseContext webAuthResponseContext) Always throwsUnsupportedOperationException
- it is a mistake if a code path reaches this methodvoid
onLogoutResponse
(WebAuthResponseContext webAuthResponseContext) Always throwsUnsupportedOperationException
- it is a mistake if a code path reaches this methodvoid
sendErrorToDesigner
(String message, Throwable throwable) Pipes the error message down to the designer (or no-op if this is a client)Methods inherited from class com.inductiveautomation.perspective.gateway.session.AbstractSession
broadcast, closePage, findPage, findPropConfig, getBindingCount, getComponentCount, getKeepAliveIntervalSecs, getLocale, getOrCreatePage, getPageCount, getPageReport, getPages, getPropertyTreeOf, getTimeZoneId, getViewCount, initProperties, notifyConnected, notifyDisconnected, onKeepaliveReceived, onSessionInit, receive, refreshBinding, sendSessionKeepalive, updateSessionProps, visitPage
Methods inherited from class com.inductiveautomation.perspective.gateway.session.SessionKernelWrapper
claimToken, createToken, getEventBus, getEventManager, getGson, getLastComm, getLastMessageTime, getLogger, getLogoutMessage, getPageClosedMessage, getProjectName, getSessionClosedMessage, getSessionCollection, getSessionId, getSessionInfo, getSessionStats, getStartupTime, getUptime, onHello, onShutdown, onStartup, queue, touch
Methods inherited from class com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
isRunning, shutdown, startup
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.inductiveautomation.perspective.gateway.api.AuditingContext
audit
Methods inherited from interface com.inductiveautomation.perspective.gateway.session.InternalSession
destroySession, getPerspectiveContext, getProject, getTimeZone, isRunning, scope, shutdown, startup
Methods inherited from interface com.inductiveautomation.perspective.gateway.api.LoggingContext
mdc, mdcSetupTree, mdcTeardownTree, mdcWrap
Methods inherited from interface com.inductiveautomation.perspective.gateway.api.PerspectiveElement
getAuditProfile, getQualifiedPath
Methods inherited from interface com.inductiveautomation.perspective.gateway.api.Session
getGatewayContext, getMdcParent, getName, getPage, getPageTimeout, getSession, getView, mdcSetup, mdcTeardown
Methods inherited from interface com.inductiveautomation.perspective.gateway.session.SessionKernel
shutdown, startup
-
Method Details
-
alter
-
newPage
- Overrides:
newPage
in classAbstractSession<com.inductiveautomation.perspective.gateway.session.PerspectiveDesignSession.SessionKernelImpl>
-
createPermissionModel
protected PropertyTreePermissionModel createPermissionModel(PropertyType scope, PropertyConfigCollection config) - Overrides:
createPermissionModel
in classAbstractSession<com.inductiveautomation.perspective.gateway.session.PerspectiveDesignSession.SessionKernelImpl>
-
maybeScheduleReaper
protected void maybeScheduleReaper()Description copied from class:AbstractSession
Call this when it's possible the last page has been closed. The session will then schedule the reaper to close the session itself (runtime sessions only, designer sessions don't reap in this way)- Specified by:
maybeScheduleReaper
in classAbstractSession<com.inductiveautomation.perspective.gateway.session.PerspectiveDesignSession.SessionKernelImpl>
-
getWebAuthStatus
- Returns:
- the
WebAuthStatus
for thisSession
-
logout
Always throwsUnsupportedOperationException
- it is a mistake if a code path reaches this method- Parameters:
message
- the message to display to the user after they are logged out of this session- Returns:
- a logout token or hint for the IdP if one is available
-
onLoginResponse
Always throwsUnsupportedOperationException
- it is a mistake if a code path reaches this method- Parameters:
webAuthResponseContext
- the login response object
-
onLogoutResponse
Always throwsUnsupportedOperationException
- it is a mistake if a code path reaches this method- Parameters:
webAuthResponseContext
- the logout response object
-
createViewModel
public ViewModel createViewModel(PageModel group, ViewInstanceId id, ViewConfig config, com.inductiveautomation.ignition.common.gson.JsonObject params) -
findViewConfig
Description copied from interface:Session
Returns aCompletableFuture
that completes to present anOptional
<ViewConfig
> for the specified path. The use of the future is to allow for the asynch collection of configs for views which are retrieved via asynchronous processes, as is the case when a view is being edited/altered in the designer.- Parameters:
viewResourcePath
- path to the view's project resource within the project being run.
-
getTagManager
-
getTagHistoryManager
-
getScriptManager
-
getNamedQueryManager
-
createPropertyReference
@Nonnull public DesignerPropertyReference createPropertyReference(String referencePath, Consumer<PropertyTreeChangeEvent> subscriber, Set<Origin> acceptableOrigins) Description copied from interface:PerspectiveElement
Create aPropertyReference
with thisPerspectiveElement
as the target.- Parameters:
referencePath
- the path to the propertysubscriber
- the subscriber - aConsumer
ofPropertyTreeChangeEvent
sacceptableOrigins
- theSet
ofOrigin
s in which the subscriber is interested- Returns:
- the
PropertyReference
-
onDesignerNamedQueriesChange
-
notifyScriptsModified
public void notifyScriptsModified() -
notifyDesignerSaved
public void notifyDesignerSaved() -
close
Description copied from interface:Session
Destroys this session and moves clients to a terminal state of closed- Parameters:
message
- the message displayed to the client on the terminal state page
-
closePage
Description copied from interface:InternalSession
Shuts down and removes the page associated with the given page ID which will disconnect the associated message channel (if one is connected). Moves the client to a terminal state page of closed with the given message.- Specified by:
closePage
in interfaceInternalSession
- Overrides:
closePage
in classAbstractSession<com.inductiveautomation.perspective.gateway.session.PerspectiveDesignSession.SessionKernelImpl>
- Parameters:
pageId
- the page ID associated with the target pagemessage
- the message displayed to the client on the terminal state page
-
sendErrorToDesigner
Description copied from interface:Session
Pipes the error message down to the designer (or no-op if this is a client) -
getAuditSnapshot
- Specified by:
getAuditSnapshot
in interfaceAuditingContext
- Overrides:
getAuditSnapshot
in classSessionKernelWrapper<com.inductiveautomation.perspective.gateway.session.PerspectiveDesignSession.SessionKernelImpl>
- Returns:
- A new, or extended,
AuditContext.Builder
, with qualified information about the current scope.
-