Class PageModel
java.lang.Object
com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
com.inductiveautomation.perspective.gateway.model.PageModel
- All Implemented Interfaces:
- AuditingContext,- LoggingContext,- Page,- PerspectiveElement,- PropertyTreeOwner
- Direct Known Subclasses:
- DesignerPageModel
A page contains a number of views all running within the same web page, or tab. A given session may contain multiple
 pages running concurrently when the user has opened multiple tabs for the same project.
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionprotected classprotected static interfaceprotected static interfaceprotected static interface
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected final AtomicReference<MessageChannel>protected final longfinal com.inductiveautomation.ignition.common.gson.Gsonprotected final PageModel.Handlersprotected final Stringidentifier of this view group.protected longfinal LoggerExstatic final ThreadLocal<PageModel>protected final PropertyTreeprotected longfinal InternalSessionprotected final com.inductiveautomation.perspective.gateway.model.PropertySyncManagerprotected final Function<String,CompletableFuture<Optional<ViewConfig>>> protected final Map<ViewInstanceId,ViewModel> 
- 
Constructor SummaryConstructorsConstructorDescriptionPageModel(InternalSession session, com.inductiveautomation.ignition.common.gson.Gson gson, LoggerEx log, String pageId) 
- 
Method SummaryModifier and TypeMethodDescriptioncom.inductiveautomation.ignition.common.gson.JsonObjectGenerates a brief report of the current views and their values for status pages.voidprotected PageModel.HandlerscreateHandlers(com.inductiveautomation.ignition.common.gson.Gson gson, LoggerEx log) createPropertyReference(String referencePath, Consumer<PropertyTreeChangeEvent> subscriber, Set<Origin> acceptableOrigins) Create aPropertyReferencewith thisPerspectiveElementas the target.protected Function<String,CompletableFuture<Optional<ViewConfig>>> voidintintlonggetId()getName()getPage()com.google.common.eventbus.EventBusgetPropertyTreeOf(PropertyType propertyType) Fetch thePropertyTreeassociated with the givenPropertyTypegetView()intgetViews()booleanprotected booleanisViewAuthorized(ViewInstanceId viewInstanceId, ViewConfig viewConfig) voidmdcSetup()Set up the MDC keys for this contextvoidTear down the MDC keys that are added in #mdcSetupvoidnewAuthChallenge(AuthChallengeRequest authChallengeRequest) Trigger a new authentication challenge.voidnewAuthChallengeInternal(AuthChallengeRequest authChallengeRequest) voidnotifyConnected(MessageChannel channel) voidnotifyDisconnected(MessageChannel channel) voidvoidonKeepaliveReceived(long timestamp) When the route /data/perspective/keepalive is fetched, it will route back to herevoidonSessionPropertyChange(PropertyType propertyType, PropertyTreeChangeEvent changeEvent) Called from the session when the session properties change.protected voidprotected voidvoidreceive(MessageChannel channel, String protocol, Reader payload) com.inductiveautomation.ignition.common.gson.JsonObjectreport()Generates a full report of the current views and their values.voidvoidvoidsendGatewayLastActiveTime(long timestamp, long idleTime, long lastActiveServerTimestamp) voidSends a keepalive message down the websocket channel.voidsetPageTimeout(ScheduledFuture<?> pageTimeout) voidupdateModulesInfo(List<GatewayModule> modules) Methods inherited from class com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycleisRunning, shutdown, startupMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.inductiveautomation.perspective.gateway.api.AuditingContextauditMethods inherited from interface com.inductiveautomation.perspective.gateway.api.LoggingContextmdc, mdcSetupTree, mdcTeardownTree, mdcWrapMethods inherited from interface com.inductiveautomation.perspective.gateway.api.PerspectiveElementgetAuditProfile, getQualifiedPath, isRunning
- 
Field Details- 
PAGE
- 
session
- 
gsonpublic final com.inductiveautomation.ignition.common.gson.Gson gson
- 
log
- 
ididentifier of this view group. will be unique per tab open for a project
- 
createdprotected final long created
- 
views
- 
syncManagerprotected final com.inductiveautomation.perspective.gateway.model.PropertySyncManager syncManager
- 
channel
- 
handlers
- 
viewConfigLoader
- 
props
- 
lastKeepaliveprotected volatile long lastKeepalive
- 
roundtripprotected volatile long roundtrip
 
- 
- 
Constructor Details- 
PageModelpublic PageModel(@Nonnull InternalSession session, @Nonnull com.inductiveautomation.ignition.common.gson.Gson gson, @Nonnull LoggerEx log, @Nonnull String pageId) 
 
- 
- 
Method Details- 
getPage- Specified by:
- getPagein interface- PerspectiveElement
- Returns:
- The Page that this element is part of. Will return null if this is the Session
 
- 
getView- Specified by:
- getViewin interface- PerspectiveElement
- Returns:
- The view within which this element exists, or null if this is a Page or Session
 
- 
getName- Specified by:
- getNamein interface- PerspectiveElement
- Returns:
- The name of the element. If this is a component, it will be the name of the component. If this is a View, the name will be "view". If this is a Page, the name will be "page". If this is the session, the name will be "session".
 
- 
getSession- Specified by:
- getSessionin interface- PerspectiveElement
- Returns:
- The session that this element is a part of.
 
- 
createPropertyReference@Nonnull public PropertyReference createPropertyReference(String referencePath, Consumer<PropertyTreeChangeEvent> subscriber, Set<Origin> acceptableOrigins) Description copied from interface:PerspectiveElementCreate aPropertyReferencewith thisPerspectiveElementas the target.- Specified by:
- createPropertyReferencein interface- PerspectiveElement
- Parameters:
- referencePath- the path to the property
- subscriber- the subscriber - a- Consumerof- PropertyTreeChangeEvents
- acceptableOrigins- the- Setof- Origins in which the subscriber is interested
- Returns:
- the PropertyReference
 
- 
getPropertyTreeOfDescription copied from interface:PropertyTreeOwnerFetch thePropertyTreeassociated with the givenPropertyType- Specified by:
- getPropertyTreeOfin interface- PropertyTreeOwner
- Parameters:
- propertyType- The- PropertyTypeof the- PropertyTreewe want to fetch
- Returns:
- The PropertyTree or null if this PropertyTreeOwner does not manage a PropertyTree for the given PropertyType or if a null PropertyType is given
 
- 
getPageEventBuspublic com.google.common.eventbus.EventBus getPageEventBus()- Specified by:
- getPageEventBusin interface- Page
 
- 
getPageEventManager- Specified by:
- getPageEventManagerin interface- Page
 
- 
createViewConfigLoader
- 
createHandlersprotected PageModel.Handlers createHandlers(com.inductiveautomation.ignition.common.gson.Gson gson, LoggerEx log) 
- 
getId
- 
getCreatedpublic long getCreated()- Specified by:
- getCreatedin interface- Page
 
- 
getViews
- 
getViewCountpublic int getViewCount()
- 
getComponentCountpublic int getComponentCount()
- 
getBindingCountpublic int getBindingCount()
- 
getLogger- Specified by:
- getLoggerin interface- LoggingContext
 
- 
getMdcParent- Specified by:
- getMdcParentin interface- LoggingContext
 
- 
mdcSetuppublic void mdcSetup()Description copied from interface:LoggingContextSet up the MDC keys for this context- Specified by:
- mdcSetupin interface- LoggingContext
 
- 
mdcTeardownpublic void mdcTeardown()Description copied from interface:LoggingContextTear down the MDC keys that are added in #mdcSetup- Specified by:
- mdcTeardownin interface- LoggingContext
 
- 
notifyProjectUpdatedpublic void notifyProjectUpdated()
- 
sendpublic void send(String protocol, com.inductiveautomation.ignition.common.gson.JsonElement payload) throws IOException - Throws:
- IOException
 
- 
send- Specified by:
- sendin interface- Page
- Throws:
- IOException
 
- 
receive
- 
isConnectedpublic boolean isConnected()- Specified by:
- isConnectedin interface- Page
 
- 
notifyConnected
- 
notifyDisconnected
- 
setPageTimeout
- 
onSessionPropertyChangeCalled from the session when the session properties change. Puts the changes into the accumulator inside the sync manager.- Parameters:
- propertyType- The- PropertyTypeof the session's- PropertyTreewhich fired the- PropertyTreeChangeEvent
- changeEvent- The- PropertyTreeChangeEventfired from the session's- PropertyTree
 
- 
reportpublic com.inductiveautomation.ignition.common.gson.JsonObject report()Generates a full report of the current views and their values.- Returns:
- a json object containing the full property tree for the current executing project/session
 
- 
briefReportpublic com.inductiveautomation.ignition.common.gson.JsonObject briefReport()Generates a brief report of the current views and their values for status pages.- Returns:
- a json array containing brief info on the current executing project/session
 
- 
sendKeepalivepublic void sendKeepalive()Sends a keepalive message down the websocket channel. This will provoke the page's frontend code to HTTP GET the route at /data/perspective/keepalive
- 
sendGatewayLastActiveTimepublic void sendGatewayLastActiveTime(long timestamp, long idleTime, long lastActiveServerTimestamp) 
- 
onKeepaliveReceivedpublic void onKeepaliveReceived(long timestamp) When the route /data/perspective/keepalive is fetched, it will route back to here
- 
isViewAuthorizedprotected boolean isViewAuthorized(@Nonnull ViewInstanceId viewInstanceId, @Nonnull ViewConfig viewConfig) 
- 
updateModulesInfo
- 
onStartupprotected void onStartup()- Specified by:
- onStartupin class- AbstractLifecycle
 
- 
onShutdownprotected void onShutdown()- Specified by:
- onShutdownin class- AbstractLifecycle
 
- 
disconnectpublic void disconnect()
- 
close
- 
newAuthChallengeDescription copied from interface:PageTrigger a new authentication challenge. Sends a message to the client to open the authentication challenge workflow using whatever framing option was specified in the auth challenge request.- Specified by:
- newAuthChallengein interface- Page
- Parameters:
- authChallengeRequest- the- AuthChallengeRequest
- Throws:
- Exception- if the client identifier associated with the auth challenge request is blank, or if the message channel between the Gateway and the Client is not currently open
 
- 
newAuthChallengeInternal- Throws:
- Exception
 
- 
getAuditSnapshot- Specified by:
- getAuditSnapshotin interface- AuditingContext
- Returns:
- A new, or extended, AuditContext.Builder, with qualified information about the current scope.
 
 
-