Writing Event Notification classes |
Another way to extend ViewsFlash's capabilities is by adding code of your own which will be executed at key events.
1. Study the source code provided, and refer to its documentation in the section
below.
Base Class | Purpose |
PublishNotifier | Called on Publishing events |
VoteNotifier | Called when a valid vote is cast |
RequestNotifier | Called after an HttpServletRequest is received and parsed. |
2. Compile your code and move the .class file to the .../ViewsFlash/WEB-INF/com/cogix/vwf directory, and restart your application server. For complete instructions, click here.
3. Add the indicated viewsflash servlet configuration parameter to the viewsflash.properties file. For example: publishnotifierextension=PublishNotifierExtension
4. Restart your application server.
5. Use logging statements to debug. Look for them in the ViewsFlash Administrator log in the Administrator page, or in viewsflash.log file in the viewsflash data directory. The classes include init() and destroy() methods, useful for logging and initializing.
ViewsFlash often needs to integrate into an authoring system. Using this extension, your Java code can notify the authoring system, or any other application, when a poll or survey is scheduled for publication. It can also take action right after it is actually published. With this information, the publishing system can move files from staging to production servers, for example.
Write your class starting with this skeleton code for PublishNotifierExtension.java.
Compile the class as specified above. Use the following viewsflash servlet parameter
to indicate the name of your class:
publishnotifierextension=com.cogix.vwf.PublishNotifierExtension
com.cogix.vwf.PublishNotifierExtension methods:
void onPublishChange ( File pollfile, File resultsfile, String spotname, String pollid, Date open, Date close, Spot spot, definition def, Poll pol, ThisCall thiscall ) | ||||||||||||||
This event happens when the Submit button on the Publish page the ViewsFlash accepts the changes, showing Changes accepted in the browser. At this moment, you have the most current information on a poll or survey's schedule.
|
void onPublishOpen ( File pollfile, File resultsfile, String spotname, String pollid, Spot spot, definition def, Poll pol) | ||||||||||||
This event happens at the designated Start Publication time, when a poll or survey opens, and its HTML form and response page are written to disk. Sometimes it is called once, for the poll page, and again for the results page; it can also be called once for both. Check carefully for null parameters.
|
void onPublishClose ( File pollfile, File resultsfile, String spotname, String pollid, Spot spot, definition def, Poll pol) |
When the poll or survey is closed, this method may be called, but there is no guarantee that it will be called. Its arguments are the same arguments as OnPublishOpen. |
Void onPublishExtra ( File resultsfile, String spotname, String pollid, Spot spot, definition def, Poll pol) | ||||||||||||
This event happens when an Extra report is scheduled for publication, after its HTML is written. Check carefully for null parameters.
|
Some applications call for tracking where or when people have voted. Using this extension, your Java code can notify another application after a valid vote has been received. To validate a vote, use the Validation classes instead.
Write your class starting with this skeleton code for VoteNotifierExtension.java.
Compile the class as specified above. Use the following viewsflash servlet parameter
to indicate the name of your class:
votenotifierextension=com.cogix.vwf.VoteNotifierExtension
com.cogix.vwf.VoteNotifierExtension methods:
void onVote ( Poll pol, ThisCall thiscall) | ||||||
This event happens when a valid vote or survey is received.
|
This extension implements the Request Authentication method for authenticating visitors in the Security page. When running inside an application server, it is common for the servlet context or the request attributes to contain useful information, such as a authenticated User ID. The onRequest method allows for retrieving the information and putting in a place where it can be used by ViewsFlash earlier.
void onRequest ( ThisCall thiscall) | ||||
This event happens right after the HttpServletRequest is parsed. This method is expected to set two servlet request attributes using HttpServletRequest.setAttribute (name,value). The two attributes have preset names: RequestNotifier.RequestNotifierTransient and RequestNotifier.RequestNotifierId. Set RequestNotifierTransient to "1" if the user ID is not a permanent one. Set RequestNotifierId to the unique UserID. The information set in these two request attributes is used by the "Use Request Authentication" option in the Security page.
|