For Java™ plug-ins, iSeries™ Navigator provides a built-in ActiveX server that manages the communication between the Navigator and the plug-in's Java classes.
The server component uses the Java Native Interface (JNI) API to create the plug-in's objects and to call their methods. Thus, Java programmers who are developing iSeries Navigator plug-ins do not need to be concerned with the details of ActiveX server implementation.
When a user is interacting with iSeries Navigator Java plug-ins, calls will be generated to the different registered Java interface classes for the implementation of the specific request.
Plug-ins work by responding to method calls from iSeries Navigator that are generated in response to user actions. For example, when a user right-clicks on an object in the Navigator hierarchy, the Navigator constructs a context menu for the object, and displays the menu on the screen. The Navigator obtains the menu items by calling each plug-in that has registered its intent to supply context menu items for the selected object type.
The functions that are implemented by a plug-in logically are grouped into "interfaces." An interface is a set of logically related methods on a class that iSeries Navigator can call to perform a specific function. For Java plug-ins, the following three Java interfaces are defined:
The internal architecture of the iSeries Navigator product reflects that it is intended to serve as an integration point for an extensible, broad-based operations interface for the iSeries server. Each functional component of the interface is packaged as an ActiveX server. The Navigator learns about the existence of a particular server component by means of entries in the Windows® registry. Multiple servers may register their request to add menu items and dialogs to a given object type in the Navigator hierarchy.
When the Navigator calls a function implemented by a plug-in, the request typically involves an object or objects the user selected in the main Navigator window. The plug-in must be able to determine which objects have been selected. The plug-in receives this information as a list of fully-qualified object names. For Java plug-ins, an ObjectName class is defined that provides information about the selected objects. Plug-ins that add folders to the object hierarchy must return items in the folder to iSeries Navigator in the form of "item identifiers." For Java plug-ins, an ItemIdentifier class is defined that is used by the plug-in to return the requested information.
An iSeries Navigator plug-in sometimes will need to affect the behavior of the main Navigator window. For example, following completion of a user operation, it may be necessary to refresh the Navigator list view or to insert text into the Navigator's status area. Utility classes are supplied in the package com.ibm.as400.opnav that provide the required services.