Class ViewModel
- java.lang.Object
-
- com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
-
- com.inductiveautomation.perspective.gateway.model.ViewModel
-
- All Implemented Interfaces:
AuditingContext,LoggingContext,PerspectiveElement,PropertyTreeOwner,View
- Direct Known Subclasses:
DesignerViewModel
public class ViewModel extends AbstractLifecycle implements View
- Since:
- 8.0
-
-
Field Summary
Fields Modifier and Type Field Description protected com.inductiveautomation.perspective.gateway.model.ActionCollectionactionsprotected BindingCollectionbindingsprotected PropertyChangeScriptCollectionchangeScriptsprotected ViewConfigconfigprotected ViewInstanceIdidprotected java.util.Set<java.lang.String>inputParamsprotected static LoggerExlogprotected PageModelpageprotected java.util.Map<PropertyType,PropertyTree>propertiesprotected ComponentModelrootContainerstatic java.lang.ThreadLocal<ViewModel>VIEW
-
Constructor Summary
Constructors Constructor Description ViewModel(PageModel page, ViewInstanceId id, ViewConfig config, com.inductiveautomation.ignition.common.gson.JsonObject inputParams)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected PropertyTreePermissionModelcreatePermissionModel(PropertyType scope, PropertyConfigCollection config)PropertyReferencecreatePropertyReference(java.lang.String referencePath, java.util.function.Consumer<PropertyTreeChangeEvent> subscriber, java.util.Set<Origin> acceptableOrigins)Create aPropertyReferencewith thisPerspectiveElementas the target.booleanequals(java.lang.Object o)java.util.Optional<PerspectiveElement>findChildByIndexLocation(java.lang.String indexLocation)Tries to look up a component by its index location.java.util.Optional<PerspectiveElement>findChildByPath(java.lang.String path)Tries to look up a component by its name path.AuditContext.BuildergetAuditSnapshot()longgetBirthDate()ViewConfiggetConfig()ViewInstanceIdgetId()LoggerExgetLogger()LoggingContextgetMdcParent()java.lang.StringgetName()PagegetPage()PropertyTreegetPropertyTreeOf(PropertyType type)Fetch thePropertyTreeassociated with the givenPropertyTypejava.lang.StringgetQualifiedPath()ComponentModelgetRootContainer()SessiongetSession()ViewModelgetView()com.google.common.eventbus.EventBusgetViewEventBus()com.inductiveautomation.ignition.common.gson.JsonObjectgetViewInfo()Provides information pertaining to this View Model object including it's instance id, and information about it's children.com.inductiveautomation.ignition.common.gson.JsonElementgetViewState()booleanhasAbandonedViewTimeout()inthashCode()protected voidinitRoot(ComponentConfig rootConfig)voidmdcSetup()Set up the MDC keys for this contextvoidmdcTeardown()Tear down the MDC keys that are added in #mdcSetupprotected com.inductiveautomation.perspective.gateway.model.ActionCollectionnewActionHandler(EventConfig config)voidonEventFired(EventFiredMsg message)protected voidonShutdown()protected voidonStartup()voidrefreshBinding(PropertyKey property)voidrestart(com.inductiveautomation.ignition.common.gson.JsonObject params)voidsetAbandonedViewTimeout(java.util.concurrent.ScheduledFuture<?> newTimeout)voidsetBirthDate(long birthDate)java.lang.StringtoString()-
Methods inherited from class com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
isRunning, shutdown, startup
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.inductiveautomation.perspective.gateway.api.AuditingContext
audit
-
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
-
-
-
-
Field Detail
-
log
protected static LoggerEx log
-
VIEW
public static final java.lang.ThreadLocal<ViewModel> VIEW
-
id
protected final ViewInstanceId id
-
config
protected final ViewConfig config
-
page
protected final PageModel page
-
inputParams
protected final java.util.Set<java.lang.String> inputParams
-
properties
protected final java.util.Map<PropertyType,PropertyTree> properties
-
bindings
protected final BindingCollection bindings
-
changeScripts
protected final PropertyChangeScriptCollection changeScripts
-
actions
protected final com.inductiveautomation.perspective.gateway.model.ActionCollection actions
-
rootContainer
protected ComponentModel rootContainer
-
-
Constructor Detail
-
ViewModel
public ViewModel(@Nonnull PageModel page, ViewInstanceId id, ViewConfig config, com.inductiveautomation.ignition.common.gson.JsonObject inputParams)
-
-
Method Detail
-
getBirthDate
public long getBirthDate()
-
getConfig
public ViewConfig getConfig()
-
getSession
@Nonnull public Session getSession()
- Specified by:
getSessionin interfacePerspectiveElement- Returns:
- The session that this element is a part of.
-
createPropertyReference
@Nonnull public PropertyReference createPropertyReference(java.lang.String referencePath, java.util.function.Consumer<PropertyTreeChangeEvent> subscriber, java.util.Set<Origin> acceptableOrigins)
Description copied from interface:PerspectiveElementCreate aPropertyReferencewith thisPerspectiveElementas the target.- Specified by:
createPropertyReferencein interfacePerspectiveElement- Parameters:
referencePath- the path to the propertysubscriber- the subscriber - aConsumerofPropertyTreeChangeEventsacceptableOrigins- theSetofOrigins in which the subscriber is interested- Returns:
- the
PropertyReference
-
getName
public java.lang.String getName()
- Specified by:
getNamein interfacePerspectiveElement- 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".
-
getQualifiedPath
public java.lang.String getQualifiedPath()
- Specified by:
getQualifiedPathin interfacePerspectiveElement- Returns:
- The qualified name of the element. If session or page, this is just the name. If a view or component, is the logical path starting at the view id.
-
getViewEventBus
public com.google.common.eventbus.EventBus getViewEventBus()
- Specified by:
getViewEventBusin interfaceView
-
newActionHandler
protected com.inductiveautomation.perspective.gateway.model.ActionCollection newActionHandler(EventConfig config)
-
setAbandonedViewTimeout
public void setAbandonedViewTimeout(java.util.concurrent.ScheduledFuture<?> newTimeout)
-
setBirthDate
public void setBirthDate(long birthDate)
-
hasAbandonedViewTimeout
public boolean hasAbandonedViewTimeout()
-
restart
public void restart(com.inductiveautomation.ignition.common.gson.JsonObject params)
-
refreshBinding
public void refreshBinding(PropertyKey property)
-
initRoot
protected void initRoot(ComponentConfig rootConfig)
-
createPermissionModel
protected PropertyTreePermissionModel createPermissionModel(PropertyType scope, PropertyConfigCollection config)
-
onEventFired
public void onEventFired(EventFiredMsg message)
-
getId
public ViewInstanceId getId()
-
getView
public ViewModel getView()
- Specified by:
getViewin interfacePerspectiveElement- Returns:
- The view within which this element exists, or null if this is a Page or Session
-
getPage
public Page getPage()
- Specified by:
getPagein interfacePerspectiveElement- Returns:
- The Page that this element is part of. Will return null if this is the Session
-
getMdcParent
@Nullable public LoggingContext getMdcParent()
- Specified by:
getMdcParentin interfaceLoggingContext
-
mdcSetup
public void mdcSetup()
Description copied from interface:LoggingContextSet up the MDC keys for this context- Specified by:
mdcSetupin interfaceLoggingContext
-
mdcTeardown
public void mdcTeardown()
Description copied from interface:LoggingContextTear down the MDC keys that are added in #mdcSetup- Specified by:
mdcTeardownin interfaceLoggingContext
-
onStartup
protected void onStartup()
- Specified by:
onStartupin classAbstractLifecycle
-
getRootContainer
public ComponentModel getRootContainer()
- Specified by:
getRootContainerin interfaceView
-
onShutdown
protected void onShutdown()
- Specified by:
onShutdownin classAbstractLifecycle
-
findChildByIndexLocation
public java.util.Optional<PerspectiveElement> findChildByIndexLocation(java.lang.String indexLocation)
Description copied from interface:ViewTries to look up a component by its index location. Some examples:- "": returns the view
- "0": returns the root container
- "0:4" returns a child of the root container at index 4
- Specified by:
findChildByIndexLocationin interfaceView
-
findChildByPath
public java.util.Optional<PerspectiveElement> findChildByPath(java.lang.String path)
Description copied from interface:ViewTries to look up a component by its name path. Some examples:- "/": returns the view
- "/root": returns the root container if the root container's name is "root"
- "/root/foo": returns a component called "foo" contained with in the root container called "root"
- Specified by:
findChildByPathin interfaceView
-
getPropertyTreeOf
@Nullable public PropertyTree getPropertyTreeOf(@Nullable PropertyType type)
Description copied from interface:PropertyTreeOwnerFetch thePropertyTreeassociated with the givenPropertyType- Specified by:
getPropertyTreeOfin interfacePropertyTreeOwner- Parameters:
type- ThePropertyTypeof thePropertyTreewe 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
-
getLogger
public LoggerEx getLogger()
- Specified by:
getLoggerin interfaceLoggingContext
-
getViewState
public com.inductiveautomation.ignition.common.gson.JsonElement getViewState()
-
getViewInfo
public com.inductiveautomation.ignition.common.gson.JsonObject getViewInfo()
Provides information pertaining to this View Model object including it's instance id, and information about it's children.- Returns:
- Returns a JsonObject representing information pertaining to this View Model object.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
getAuditSnapshot
@Nonnull public AuditContext.Builder getAuditSnapshot()
- Specified by:
getAuditSnapshotin interfaceAuditingContext- Returns:
- A new, or extended,
AuditContext.Builder, with qualified information about the current scope.
-
-