An extension point is characterized by the following properties:
An ID by which it can be referenced.
An interface to be implemented by plug-ins. In most cases there is also an abstract base class available that implements the interface. It is recommended to extend this class for your own extensions.
Names of properties to be provided by a plug-in.
Optionally, it may be related / compared to a corresponding extension point offered in an Eclipse environment.
An extension point provides the name of a class that implements the interface and property values. In general, if there is an abstract base class, its usage is strongly encouraged.
The available extension points are described in the following sections.
Usage | Use this when the layout of a plug-in needs to be localized. |
Attributes |
|
Interface | I18NHandler |
Standard class |
Common18NHandler |
Processing |
Class |
Provided by | PluggableUI |
Example |
<extension point="com.softwareag.cis.plugin.i18n" id="CentraSiteControl" class="com.softwareag.cis.plugin.ext.Common18NHandler" project="CentraSiteControl" prefix="INMCS" file="com.centrasite.control.adapters.util.INMMessages" > </extension> |
Usage |
|
Attributes |
|
Interface | No interface to be implemented. |
Processing | Use the plug-in call
ApplicationContext.getParameter() to obtain
value.
|
Provided by | PluggableUI |
Example |
<extension point="com.softwareag.cis.plugin.parameter" id="welcomePageDefault" value="true"> </extension> |
Usage |
|
Attributes |
|
Interface |
ConnectionHandler
|
Processing |
|
Provided by | PluggableUI |
Example |
<extension point="com.softwareag.cis.plugin.connectionHandler" id="login" class="com.centrasite.control.ext.CentraSiteConnectionHandler"> </extension> |
Perspectives allow certain predefined screen layouts to be stored. When several perspectives are defined, it is possible to switch from one to the other easily.
The
button will only be shown if more than one perspective is available. When you click the button, a popup dialog appears, which allows you to select the required perspective.The perspective can be switched in two ways:
Select one or more rows (perspectives) and click
.Double click a single row.
Multiple perspectives will be represented in a way that the union of the corresponding topics is displayed on the right hand side. The header will be changed depending on the perspective to which the currently selected topic belongs.
The following features are provided for perspectives:
A fixed set of perspectives as configured via extensions. You can switch a perspective via the Select Perspective dialog.
A fixed set of topics per perspective. The association between topics and the corresponding perspective is established via the plug-in configuration file. Each declaration of a topic extension must contain a reference to the ID of the associated perspective extension.
A perspective may contribute the following components:
A name and an icon being used to represent the perspective in the Select Perspective dialog.
An ICONLISTInfo
object used to create a
toolbar in the header frame. This can be suppressed if the perspective's
supportsViews()
method returns
"false".
The label and valid values for the View list box. This can be suppressed.
A tailored layout to be used as the workplace background. This will only be used if the perspective is used as the initial perspective (see the section Setting the Preferred Plug-in and Order of Plug-ins for more information).
Usage |
|
Attributes |
|
Interface |
Perspective
|
Abstract base class |
AbstractPerspective |
Provided by | PluggableUI |
Example |
(CentraSite Control/plugin.xml) <extension point="com.softwareag.cis.plugin.perspective" id="controlPerspective" <---+ class="com.centrasite.control.ext.ControlPerspective"> | </extension> | <extension point="com.softwareag.cis.plugin.topic" | id="registry" | perspective="com.centrasite.control.controlPerspective" ---+ class="com.centrasite.control.ext.ImportantTypesTopic"> </extension> |
If a perspective is selected for display, all topics belonging to that perspective become visible. If one of these perspectives is selected in the navigation pane, the content of the header frame is adjusted with respect to the toolbar, the View listbox and the visible logo.
Usage |
|
Attributes |
|
Interface |
Topic
|
Abstract base class | AbstractTopic |
Processing |
|
Provided by | PluggableUI |
Example |
<extension point="com.softwareag.cis.plugin.topic" id="registry" perspective="com.centrasite.control.perspective" class="com.centrasite.control.ext.ImportantTypesTopic"> </extension> |
Usage |
|
Attributes |
|
Interface |
ExtensionCommand
|
Abstract base class |
AbstractExtensionCommand |
Processing |
|
Provided by | CentraSite Control |
Example |
<extension point="com.centrasite.control.itemCommand" id="test" class="com.centrasite.control.extpt.junit.DisplayRegObjKeyCommand"> </extension> |
Usage |
|
Attributes |
|
Interface |
ExtensionCommand
|
Abstract base class |
AbstractExtensionCommand |
Processing |
|
Provided by | CentraSite Control |
Example |
<extension point="com.centrasite.control.itemBulkCommand" id="test" class="com.centrasite.control.extpt.junit.DisplayRegObjKeyCommand"> </extension> |
Usage |
|
Attributes |
|
Interface |
ExtensionPropertyAccessor
|
Abstract base class |
AbstractPropertyAccessor (must be explicitly implemented) |
Processing |
|
Provided by |
CentraSite Control |
Example |
<extension point="com.centrasite.control.registryObjectProperty" id="test" class="com.centrasite.control.extpt.junit.LastModifiedPropertyAccessor"> </extension> |
Note:
Additional columns might also show up in upper table of the
General tab.
Usage |
|
Attributes |
|
Interface |
DetailViewTab
|
Abstract base class |
AbstractDetailViewTab |
Processing |
|
Provided by | CentraSite Control |
Example |
<extension point="com.centrasite.control.detailViewTab" id="lifecycle" class="com.centrasite.control.lifecycle.LifeCycleDetails" > </extension> |
Usage |
|
Attributes |
|
Interface |
ReportExtensionItemsProvider
|
Abstract base class |
AbstractReportExtensionItemsProvider |
Processing |
|
Provided by | CentraSite Control |
Example |
<extension point="com.centrasite.control.addRowToMyNotifications" id="MyNotificationsApprovalItemsProvider" class="com.softwareag.centrasite.control.lms.ext. MyNotificationsApprovalItemsProvider"> </extension> |
Usage |
|
Attributes |
|
Interface |
NodeDecorator
|
Abstract base class |
(none) |
Processing |
|
Provided by | CentraSite Control |
Example |
<extension point="com.centrasite.control.assocNavigatorNodeDecorator" id="ExternalLinkNodeDecorator" class="com.centrasite.control.ext.ExternalLinkNodeDecorator"> </extension> |
The following picture illustrates how ExternalLinks objects are decorated with icons representing the type of the object they are referencing:
Usage |
|
Attributes |
|
Interface |
TopicItems
|
Abstract base class |
AbstractTopicItems |
Processing |
|
Provided by | CentraSite Control |
Example |
<extension point="com.centrasite.control.topicItems" id="filesystem" topic="com.centrasite.control.administration" class="com.centrasite.control.ext.junit.FileSystemTopicItems"> </extension> Note: |
Usage |
|
Attributes |
|
Interface |
ItemEditor
|
Abstract base class |
AbstractItemEditor |
Processing |
|
Provided by | CentraSite Control |
Example |
<extension point="com.centrasite.control.itemEditor" id="DataType" class="com.softwareag.centrasite.ext.DataTypeEditor"> </extension> |
Usage |
|
Attributes |
|
Interface |
PredicateEditor
The interface Predicate (many implementing classes are already available in CentraSiteUtils.jar) with its abstract subclass AbstractPredicate has the following methods
AbstractPredicate also provides implementations for the following methods
|
Abstract base class |
AbstractPredicateEditor |
Processing |
|
Provided by | CentraSite Control |
Example |
<extension point="com.centrasite.control.searchPredicate" id="ObjectTypePredicateEditor" class="com.centrasite.control...ObjectTypePredicateEditor"> </extension> |
There is a menu entry in each asset's context menu that allows you to create a zipped archive of the asset and optionally any attached documents, and to download the zipped archive to the file system. You can customize the way in which the download feature behaves:
You can make the download entry in the context menu visible or invisible for users with the Guest role.
You can change the text string displayed in the context menu.
You can change the format of the zipped archive.
If a user with the Guest role can access an asset and view its context menu, the context menu entry
is visible by default. You can specify whether this entry is visible or invisible for such users as follows:To make the download menu entry visible/invisible for guest users
Locate the configuration file plugin.xml in the <RuntimeDir>\workspace\webapps\PluggableUI\CentraSiteControl directory.
Open the file and locate the entry:
<extension point="com.softwareag.cis.plugin.parameter" id="guestCanDownloadDocuments" value="true" />
To make the context menu entry invisible for guest users, change "true" to "false" and restart Software AG Runtime. Similarly, if the context menu entry is already invisible and you want to make it visible for guest users, set the value to "true" and restart Software AG Runtime.
The text string displayed in the context menu is by default
"Download Document". If you wish to change this, you
can do so by extending the CentraSite Control functionality via the extension
point downloadDocumentCommand
. This extension point has
the following definition:
Usage |
|
Attributes |
|
Interface |
See the sample code. |
Abstract base class | AbstractExtensionCommand |
Provided by | CentraSite Control |
Example |
See the sample code. |
To change the text displayed for the context menu, your
implementation of the extension point must define a method
getName()
of type
String
. The return value of this method is the
text that will be displayed in the context menu.
You can find sample code for defining the extension point in the file DownloadDocumentCustomCommand.java that is provided in the demo folder under the CentraSite installation folder.
By default, the zipped archive contains the folder structure of the
asset and its attached documents. If you wish to change this, you can do so by
extending the CentraSite Control functionality via the extension point
downloadDocumentCommand
. The definition of the extension
point is given above.
To change the format of the zipped archive, your implementation of
the extension point must define a method that extends the base class
DownloadOperation
.
You can find sample code for defining the extension point in the files DownloadDocumentCustomCommand.java and DownloadCustomOperation.java that are provided in the demo folder under the CentraSite installation folder.
Some assets include file-related attributes that allow you to attach
supporting document(s) such as programming guides, sample code and script files
with the asset. When trying to attach a supporting document with an asset,
CentraSite Control displays the available documents underneath their
respective organization directory by default. If you wish to change this (that
is, simply display the documents by the side of its organization directory),
you can do so by extending the CentraSite Control functionality via the
extension point attachDocumentCommand
.
To customize the document layout:
Locate the configuration file plugin.xml in the <RuntimeDir>\workspace\webapps\PluggableUI\CentraSiteControl directory.
Open the file and locate the entry:
<extension point="com.softwareag.cis.plugin.parameter" id="isCustomAttachDocument" value="false" />
<extension point="com.centrasite.control.attachDocumentCommand" id="AttachDocumentCustomCommand" class="com.centrasite.control.extpt.AttachDocumentCustomCommand" />
Where
com.centrasite.control.extpt.AttachDocumentCustomCommand
is the name of the abstract base class that implements the interface.
To define your custom document layout, change "false" to "true" and restart Software AG Runtime. Similarly, if the document layout is already customized and you want to revert back to the standard layout, set the value to "false" and restart Software AG Runtime.
Usage |
|
Attributes |
|
Interface |
See the sample code. |
Abstract base class | AbstractExtensionCommand |
Processing |
|
Provided by | CentraSite Control |
Example |
<extension point="com.centrasite.control.attachDocumentCommand" id="AttachDocumentCustomCommand" class="com.centrasite.control.extpt.AttachDocumentCustomCommand" /> |
You can find sample code for defining the extension point in the files AttachDocumentCustomCommand.java , AttachFile.xml and AttachFileAdapter.java that are provided in the demo folder under the CentraSite installation folder.
The CentraSite distribution kit contains an IDE (integrated development environment) that you can use to create and design a layout page. The IDE is a web application whose clients run inside a web browser. The URL (assuming installation defaults) to start the IDE on a machine where CentraSite is installed is:
http://localhost:53307/PluggableUI/HTMLBasedGUI/workplace/ide.html
The IDE is deactivated by default. In order to activate the IDE, set
the attribute plugindevelopment
in the file
cisconfig.xml to "true". This
file is located in the CentraSite Control web application (in the Application
Server or Software AG Runtime location) in the folder
cis/cisconfig.
The following example illustrates the required configuration setting:
<cisconfig plugindevelopment="true" ...> ... </cisconfig>
When activated, the IDE and included development tools do not require
further authentication. The following example illustrates the
security-constraint
and
login-config
elements to protect the IDE and
development tools with the HTML basic authentication method.
<security-constraint> <web-resource-collection> <web-resource-name>Plugin Development</web-resource-name> <url-pattern>/HTMLBasedGUI/workplace/*</url-pattern> <url-pattern>/servlet/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>developer</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>Plugin Development</realm-name> </login-config>
In order to protect passwords transmitted in clear text between a browser and development tools running on the application server, it is recommended to protect the communication through the use of SSL. For information about SSL, refer to the section Configuring Secure Communication between CentraSite Components in the document Basic Operations.
A step-by-step guide of how to create customized plug-ins for the CentraSite Control content pages is provided in Appendix A: Step-by-Step Guide.