Inside the Application Designer management, adapters have to provide a defined interface to be managed
correctly by the system. This interface is declared by
com.softwareag.cis.Server.IAdapter
. In order to have a high level
of comfort during developing adapters, you should derive your adapter classes from the
super-class com.softwareag.cis.Server.Adapter
. This class already
provides some useful methods.
This document covers the following topics:
As you know, session management defines sessions (corresponding to one browser instance) and subsessions (corresponding to one process inside the Application Designer workplace). There is the possibility to bind and look for parameters on both levels:
Adapter.findSessionContext()
- returns the context which is
on top of all subsessions. All adapters inside one session refer to the same session
context.
Adapter.findSubSessionContext()
- returns the context which
is held per subsession. Only adapters - belonging to the same subsession - share
this context.
The result is a context supporting the interface
com.softwareag.cis.context.ILookupContext
. This interface
provides two important methods:
public Object lookup(String s, boolean reactWithErrorIfNotExist); public void bind(String s, Object o);
The session context is used, for example, to refer to the current user who is logged in, the chosen language, etc. The subsession context is used to share data inside a subsession.
Do not use the context as global variable buffers in a very intensive way. It will end up in programs relying on a lot of context information to be available - and sooner or later no one knows what has to be in the context when starting the program.
Via the methods
Adapter.findSessionId()
Adapter.findSubsessionId()
you can access the internally used representations of session ID and subsession ID.
Application Designer uses its own lookup session management in order to store information of a session. You can access and manipulate this information by calling your adapter's method:
Adapter.findCISessionContext()
- returns a concrete
session context object.
Inside the session context, the following parameters are kept:
date format
time format
language
style
decimal separator
and other information.
Have a look at the JavaDoc API documentation for more details.
Access other adapters inside the same subsession by the methods:
Adapter.findAdapter(class)
- returns the adapter instance
for a given class. Method init()
is already called when
passing back the instance - but only if the adapter was not used before.
Use this method before navigating between pages in order to prepare the adapter that will be used by the next page.
You can display error messages inside the status bar (if it is defined in the page layout) by using the methods:
outputMessage(String, String (, String))
First, pass a string for the type of message. This is needed to display a corresponding icon inside the status bar. There are constants defined inside the Adapter for specifying the type:
Adapter.MT_ERROR
Adapter.MT_WARNING
Adapter.MT_SUCCESS
The second string is the message being shown.
The third string - which is optional - is the long text description of the message. It becomes visible by a dialog if the user clicks with the mouse on the message. If you do not specify a long description, the normal message is used.
Navigate to a page by using the method:
switchToPage(String pageName)
The "pageName" is the URL - either relative or absolute - of the next page.
You can open a page inside a pop-up dialog by using the method:
openPopup(String pageName)
.
The "pageName" is the URL - either relative or absolute - of the page that is displayed inside the dialog.
You can specify pop-up parameters of the pop-up you open with
openPopup()
by using the methods:
setPopupTitle(String title)
setPopupPageFeatures(String pageFeatures)
There are various methods to communicate to other frames:
openPageInTarget
openCISPageInTarget
invokeMethodInTarget
refreshTarget
sizeTarget
The default method used for closing a page is endProcess()
. It
is provided by the Adapter
class. The tasks performed by the
endProcess()
method are:
The current subsession is closed and de-registered inside the session management.
The current page is de-registered from the workplace management - if it was registered before.
Calling the endProcess()
method ensures that all memory
resources are released for the corresponding subsession.
The endProcess()
method is called by clicking inside the page
on the close icon at the top right corner of the page. You can also call it directly
inside an adapter, e.g. if you want to close the subsession as reaction to the user's
entered data.
You can access the multi language management using the methods:
replaceLiteral(String application, String textid)
replaceLiteral(String application, String textid, String
param1)
replaceLiteral(String application, String textid, String param1, String
param2)
replaceLiteral(String application, String textid, String param1, String
param2, Stirng param3)
The application is the name for the abbreviation of a defined application area for which literals are defined. In the file-based multi language management, it represents the name of a CSV file that holds the text identified by a text ID.