Class PerspectiveProjectSession

All Implemented Interfaces:
Lifecycle, AuditingContext, LoggingContext, PerspectiveElement, PropertyTreeOwner, Session, InternalSession, SessionKernel

public class PerspectiveProjectSession extends AbstractSession<SecuredPerspectiveProjectSession>
Contains a running Perspective project for a session. Includes the pages, bindings, property trees, and property change scripts. Runs the configured session startup script on startup and the shutdown script on shutdown.
  • Method Details

    • findViewConfig

      public CompletableFuture<Optional<ViewConfig>> findViewConfig(String viewPath)
      Description copied from interface: Session
      Returns a CompletableFuture that completes to present an Optional<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:
      viewPath - path to the view's project resource within the project being run.
    • getProject

      @Nonnull public PerspectiveProject getProject()
      Description copied from interface: InternalSession
      Fetch the project associated with this session.
      Returns:
      the PerspectiveProject associated with this session
    • createViewModel

      public ViewModel createViewModel(PageModel group, ViewInstanceId id, ViewConfig config, com.inductiveautomation.ignition.common.gson.JsonObject params)
    • getTagManager

      public TagManager getTagManager()
    • getTagHistoryManager

      public TagHistoryManager getTagHistoryManager()
    • getScriptManager

      public ScriptManager getScriptManager()
    • getNamedQueryManager

      public NamedQueryManager getNamedQueryManager()
    • getPageTimeout

      public long getPageTimeout()
    • getWebAuthStatus

      @Nonnull public WebAuthStatus getWebAuthStatus()
      Returns:
      the WebAuthStatus for this Session
    • 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 class AbstractSession<SecuredPerspectiveProjectSession>
    • onStartup

      protected void onStartup()
      Overrides:
      onStartup in class SessionKernelWrapper<SecuredPerspectiveProjectSession>
    • onShutdown

      protected void onShutdown()
      Overrides:
      onShutdown in class SessionKernelWrapper<SecuredPerspectiveProjectSession>
    • onSessionInit

      public void onSessionInit(com.inductiveautomation.ignition.common.gson.JsonObject sessionInitResponse)
      Description copied from class: AbstractSession
      Called when handling the session-init message. Gives the project session a chance to add things to the response
      Specified by:
      onSessionInit in interface InternalSession
      Overrides:
      onSessionInit in class AbstractSession<SecuredPerspectiveProjectSession>
      Parameters:
      sessionInitResponse - the response JSON object to be passed back to the client in response to the session-init call
    • sendGatewayTime

      protected void sendGatewayTime()
    • logout

      public Optional<String> logout(@Nullable String message)
      Description copied from interface: InternalSession
      Logout of this session. The user will no longer be authenticated.
      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

      public void onLoginResponse(com.inductiveautomation.ignition.gateway.auth.web.response.WebAuthResponseContext webAuthResponseContext)
      Description copied from interface: InternalSession
      Called when the session receives a login response from the IdP
      Parameters:
      webAuthResponseContext - the login response object
    • onLogoutResponse

      public void onLogoutResponse(com.inductiveautomation.ignition.gateway.auth.web.response.WebAuthResponseContext webAuthResponseContext)
      Description copied from interface: InternalSession
      Called when this session received a logout response from the IdP
      Parameters:
      webAuthResponseContext - the logout response object
    • createPropertyReference

      @Nonnull public PropertyReference createPropertyReference(String referencePath, Consumer<PropertyTreeChangeEvent> subscriber, Set<Origin> acceptableOrigins)
      Description copied from interface: PerspectiveElement
      Create a PropertyReference with this PerspectiveElement as the target.
      Parameters:
      referencePath - the path to the property
      subscriber - the subscriber - a Consumer of PropertyTreeChangeEvents
      acceptableOrigins - the Set of Origins in which the subscriber is interested
      Returns:
      the PropertyReference
    • getLastActiveTime

      public long getLastActiveTime()
    • closePage

      public void closePage(String pageId)
      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).
      Specified by:
      closePage in interface InternalSession
      Overrides:
      closePage in class AbstractSession<SecuredPerspectiveProjectSession>
      Parameters:
      pageId - the page ID associated with the target page
    • newPage

      @Nonnull protected PageModel newPage(@Nonnull String pageId)
      Overrides:
      newPage in class AbstractSession<SecuredPerspectiveProjectSession>
    • destroySession

      public void destroySession()
      Description copied from interface: InternalSession
      Destroys the session by removing it from its containing session collection and shutting it down (which should close any connected message channels).
    • close

      public void close(@Nullable String message)
      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