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 Details

  • Constructor Details

    • ViewModel

      public ViewModel(@Nonnull PageModel page, ViewInstanceId id, ViewConfig config, com.inductiveautomation.ignition.common.gson.JsonObject inputParams)
  • Method Details

    • getBirthDate

      public long getBirthDate()
    • getConfig

      public ViewConfig getConfig()
    • getSession

      @Nonnull public Session getSession()
      Specified by:
      getSession in 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: PerspectiveElement
      Create a PropertyReference with this PerspectiveElement as the target.
      Specified by:
      createPropertyReference in interface PerspectiveElement
      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
    • getName

      public String getName()
      Specified by:
      getName in 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".
    • getQualifiedPath

      public String getQualifiedPath()
      Specified by:
      getQualifiedPath in interface PerspectiveElement
      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

      @Deprecated public com.google.common.eventbus.EventBus getViewEventBus()
      Deprecated.
      Specified by:
      getViewEventBus in interface View
    • getViewEventManager

      public EventManager getViewEventManager()
      Specified by:
      getViewEventManager in interface View
    • newActionHandler

      protected com.inductiveautomation.perspective.gateway.model.ActionCollection newActionHandler(EventConfig config)
    • setAbandonedViewTimeout

      public void setAbandonedViewTimeout(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)
    • resolveReferences

      protected void resolveReferences()
      Resolving references is a step that is done after all component models have been created, and before they are started up. This allows us to collect and analyze all the property references needed by bindings so that we can create a dependency graph of bindings and start them up in an intelligent order, reducing thrash of invalid / intermediate values.
    • createPermissionModel

      protected PropertyTreePermissionModel createPermissionModel(PropertyType scope, PropertyConfigCollection config)
    • onEventFired

      public void onEventFired(EventFiredMsg message)
    • getId

      public ViewInstanceId getId()
      Specified by:
      getId in interface View
    • getView

      @Nonnull public ViewModel getView()
      Specified by:
      getView in interface PerspectiveElement
      Specified by:
      getView in interface View
      Returns:
      The view within which this element exists, or null if this is a Page or Session
    • getPage

      @Nonnull public Page getPage()
      Specified by:
      getPage in interface PerspectiveElement
      Specified by:
      getPage in interface View
      Returns:
      The Page that this element is part of. Will return null if this is the Session
    • getMdcParent

      @Nullable public LoggingContext getMdcParent()
      Specified by:
      getMdcParent in interface LoggingContext
    • mdcSetup

      public void mdcSetup()
      Description copied from interface: LoggingContext
      Set up the MDC keys for this context
      Specified by:
      mdcSetup in interface LoggingContext
    • mdcTeardown

      public void mdcTeardown()
      Description copied from interface: LoggingContext
      Tear down the MDC keys that are added in #mdcSetup
      Specified by:
      mdcTeardown in interface LoggingContext
    • onStartup

      protected void onStartup()
      Specified by:
      onStartup in class AbstractLifecycle
    • getRootContainer

      public ComponentModel getRootContainer()
      Specified by:
      getRootContainer in interface View
    • onShutdown

      protected void onShutdown()
      Specified by:
      onShutdown in class AbstractLifecycle
    • getPropertyConfig

      public Optional<PropertyConfig> getPropertyConfig(PropertyKey property)
      Specified by:
      getPropertyConfig in interface View
    • findChildByIndexLocation

      public Optional<PerspectiveElement> findChildByIndexLocation(String indexLocation)
      Description copied from interface: View
      Tries 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:
      findChildByIndexLocation in interface View
    • findChildByPath

      public Optional<PerspectiveElement> findChildByPath(String path)
      Description copied from interface: View
      Tries 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:
      findChildByPath in interface View
    • getPropertyTreeOf

      @Nullable public PropertyTree getPropertyTreeOf(@Nullable PropertyType type)
      Description copied from interface: PropertyTreeOwner
      Fetch the PropertyTree associated with the given PropertyType
      Specified by:
      getPropertyTreeOf in interface PropertyTreeOwner
      Parameters:
      type - The PropertyType of the PropertyTree we 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:
      getLogger in interface LoggingContext
    • 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 String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getComponentCount

      public int getComponentCount()
    • getBindingCount

      public int getBindingCount()
    • getAuditSnapshot

      @Nonnull public AuditContext.Builder getAuditSnapshot()
      Specified by:
      getAuditSnapshot in interface AuditingContext
      Returns:
      A new, or extended, AuditContext.Builder, with qualified information about the current scope.