...
Code Block |
---|
/** * Context object available to the view components to provide access to * the view and instance attributes as well as run time information about * the current execution context. */ public interface ViewContext { /** * Save an instance data value for the given key. * * @param key the key * @param value the value * * @throws IllegalStateException if no instance is associated */ public void putInstanceData(String key, String value); /** * Get the instance data value for the given key. * * @param key the key * * @return the instance data value; null if no instance is associated */ public String getInstanceData(String key); } |
Instance Configuration Properties
The instance configuration properties (set when you created your view instance) are accessible from the view context:
Code Block |
---|
viewContext.getProperties(); |
Configuration properties also supports a set of pre-defined variables that will be replaced when you read the property from the view context. For example, if your view requires a configuration parameter "hdfs.file.path" and that path is going to be set based on the username, when you configure the view instance, set the configuration property like so:
Code Block |
---|
"hdfs.file.path" : "/this/is/some/path/${username}" |
When you get this property from the view context, the ${username}
variable will be replaced automatically.
Code Block |
---|
viewContext.getProperties().get("hdfs.file.path") returns "/this/is/some/path/pramod" |
Instance parameters support the following pre-defined variables: ${username}, ${viewName} and ${instanceName}
Events
Events are an important component of the views framework. Events allow the view to interact with the framework on lifecycle changes (i.e. "framework eventsFramework Events") . such as deploy, create and destroy. As well, once a user has collection of views available, eventing allows the views to communicate with other views (i.e. "view eventsView Events").
Framework Events
To register to receive framework events, in the view.xml
, specify a <view-class>this.is.my.view-clazz</view-class>
which is a class that implements the View interface.
Event | Description |
---|---|
onDeploy() | Called when a view is deployed. |
onCreate() | Called when a view instance is created. |
onDestroy() | Called when a view instance is destroy. |
To register to receive framework events, in the view.xml, specify a <view-class>this.is.my.view-clazz</view-class>
which is a class that implements the View interface.
View Events
Views Events
Views can pass events between views. Obtain From the view context, you can obtain the ViewController object that allows you to register listeners for view events and to fire events for other listeners.
Code Block |
---|
ViewController viewContext.getViewController(); |
Registering Listeners
A view can register an event Listener from (via the ViewController) for other views by view name, or by view name + version. When an Event is fired from the source view, all registered listeners will receive the event.
Info |
---|
Typically, a view implementation will register event listeners during the |
Firing and Receiving Events
- Obtain the view controller and register a listener.
viewContext.getViewController().registerListener(...);
- Create an event.
- Fire the event.
viewContext.getViewController().fireEvent(event...);
- The framework will notify all registered listeners. The listener implementation can process the event as appropriate.
listener.notify(event)...)