Javadoc for Domino Designer related APIs

As part of providing additional Java™ reference documentation, Domino® Designer ships with a help plugin that contains Javadoc™ for additional Domino Designer related APIs.

Refer to the "Client APIs for Notes® and Domino Designer" plugin available from the Help Contents window for access to the desired Javadoc.

Javadoc for the following APIs is available with this release of Domino Designer:

Notes Client Java UI API

The Eclipse framework provides the ability to contribute to several locations of the Notes client. These locations include but are not limited to the global toolbar, sidebar panels, and menus on the top-level or right-click.

The Notes Client Java UI API specifies the classes available for use when contributing to these areas of the client. For example, a plug-in could be written to contribute an item to the context menu of a Notes document. The custom code run when the user chooses the item would use the Notes Client Java UI API to know more about the document and change its properties.

Generally, the APIs are similiar in scope and functionality to the front-end Lotuscript classes. The top-level classes implemented include:

  • NotesUIWorkspace: get a handle to the current document, prompt the user for input including the ability to select a database, open Notes elements in the user experience, and compose new documents.
  • NotesUIDocument: Information about document, ability to get and set fields, interact with document in a variety of ways
  • NotesUIView: Information about view

In addition, access of the Notes back-end is available through the use of the lotus.domino classes (also available in notes.jar outside of this framework). The bridge between this package and the Eclipse-based framework is the NotesSessionJob class. Overriding NotesSessionJob allows code to be given a Session. Using this, the code can leverage the same back-end logic as it would have when using notes.jar directly or within a Java agent.

Domino Designer Extensibility API

The Extensibility API that lets your custom plugins know whenever your selection changes, whether the new selection includes any Domino-based information and if so, what project (database) and what design elements are selected.

With these APIs, you can follow the selection down to the design element level for "core" based design elements. For example, you can tell what form a user is editing (thought not what field is selected). In the newer, Eclipse-based editors, you can also get more detailed information since these are derived from the standard UIs included with Eclipse. A lot of this Eclipse information is already public.

Selected properties of design elements are also available through this API. This includes "get" and "set" properties for things common to all design element types like "title," for example.

Many database properties are also available. The classes of the API are documented in standard JavaDoc available in the Javadoc plugin. The classes included in the API are:

  • DesignerResource class, containing constants and static methods for analyzing selections, opening databases, finding a design element, and the like.
  • DesignerDesignElementSelection class, with information about the current selection: whether there's a "current" Notes database, what design elements are selected, whether the current design element is in an editing window.
  • DesignerProject interface, with information about one Notes database (generally, but not necessarily, the "current" database in the selection).
  • DesignerDesignElement class, with information about one design element.
  • DesignerException, which is thrown to report errors attempting any Notes-related operations in the preceding classes.