What's new in IBM® Domino Designer 9.0 Social Edition?

Information on new features and improvements in Domino® Designer.

Domino Designer

This topic lists the new features and changes for Domino Designer 9.0 Social Edition.

Periodic updates to Domino Designer Help are available on the Web. To download the latest Designer Help file, go to the Documentation Library section of developerWorks® at http://www.lotus.com/ldd/doc. Click Technical Library then by product, then Domino Designer, and then, finally, the release you would like to see.

In the area of Domino Designer in general, the following additions or changes have been made:

JAR design element -- A new JAR design element has been introduced in this release. The JAR design element gives you the ability to work with packaged Java™ code/libraries that are included in the application NSF. This design element is only available to XPage applications, where the JAR is automatically loaded by the XPages runtime. This feature frees you from having to deploy the JARS to a server and/or include the source files uniquely in the application database. While JAR files can be added to the NSF through the virtual system, the JAR design element automatically manages the classpath and places the JAR file into web-inf/lib, which is the recommended location for JAR files used in a J2EE application. The JAR design element is found in the Application Navigator following the Code element.

You create a JAR element using steps similar to that of creating an image resource - in other words, the JAR is imported into the application in rather than creating it new. The design element list panel has an Import JAR button that lets you select and import the desired JAR file.

There is no need for JARS to have aliases and, as such, they are not supported. The design list for JAR is fairly simple and identical to that for files, with the exception that the Alias column is removed. As the size information of a JAR could be needed, that is included as a Bytes column. Finally, all the New menus have entries for this new element in the list of design elements as well.

From any of the various ways to create a JAR, you are presented with the following standard Eclipse dialog to choose a file, with the list filtered to include jars. You then select the JAR(s) you need, press Save, and the JAR is then imported into the application.

When selected in either the Designer design list panel or in the Application Navigator, a JAR element provides the standard set of property panels, but also includes a Basics panel to let you add a comment, rename the JAR, or manage the Replace flag (this feature is provided because since JARs are an imported element, you may want to be able to maintain the Note ID).

Just as with other file design elements, an Export function is also available and JARS can be signed with the Sign action.

The classpath is adjusted for each JAR in the NSF, so any design time compilations can resolve any references to the jar. The changes to .classpath are not persisted to disk, so that older versions of Designer do not malfunction.

At runtime, the JAR note is expanded to the XPage runtime file system in web-inf/lib, and is available to server JS on an XPage, as well as any Java class referenced in that environment.

Palette state saving feature -- For this release, the XPages editor's palette now remembers its state from one XPage to the next. It also remembers states between sessions of Domino Designer.

PNG file support for image resources -- For this release, you now have the ability to import PNG files into Designer as image resources. This file type is now a selection choice in the Image type combo box. This ability lets you use PNG files in places where image resources are used (for example, XPages, forms, views, outlines, etc.).

XPages Source Editor Hyperlink navigation functionality -- For this release of Domino Designer, the XPages Source Editor supports hyperlink navigation. Hyperlink navigation describes generic Eclipse functionality where text within an editor can be made into a hyperlink.

By pressing on CTRL and hovering over text within any editor in Eclipse, Eclipse provides feedback to the editor that the user is trying to perform hyperlink navigation. Each editor may opt into hyperlink navigation, by providing a hyperlink object(s) for the region pointed at by the cursor. For this release, the XPages source editor now has the ability use this functionality.

The functionality is always on with no current option or preference to disable it. Support for hyperlink navigation is also provided on a control by control basis. Hyperlink navigation is only applicable to certain controls, and in most cases only to certain attributes on certain controls. Consider using this feature while editing custom controls. When you press CTRL and hover over a Custom Control in the source editor, hyperlink navigation lets you navigate directly to that Custom Control.

For example, hovering over string.propertiesand clicking on the resulting hyperlink in the your code, opens the selected design element.

Hover help functionality for XPages Source Editor – Eclipse currently provides a simple framework for allowing editors to provide hover help based on where your cursor is when hovering within an editor. One example of this is the hover help in the Eclipse Java editor. By hovering over a particular Java construct while in the editor, the editor is able provide additional information on that construct. In Domino Designer, the LotusScript® editor currently provides hover help support for items within the LS editor.

For this release, you can also get help in the XPages source editor. With this feature, you can get information about the 'node' that is currently being hovered over. Similar to hyperlink navigation (see previous), the Eclipse editor framework provides positioning information to the hover help layer, which is interpreted and resolved back to a DOM node within the XPage. Once the DOM node is resolved, the editor provides a description for the current tag (and attribute). All tags and attributes that provide a description for themselves via xsp-config are able to have that information made visible in the hover help functionality within the XPages source editor.

This feature is controlled using a preference within the Domino Designer Preferences tab. The feature is turned on by default, with a time-out of 500 milliseconds associated with the preference. That is, once the cursor has been 'at rest' for greater than 500 ms (milliseconds) the Eclipse editor framework invokes the XPages source editor hover help. At that point, the XPages hover help calculates which node the cursor is hovering over. Based on the node information, the functionality resolves the node against the XPages registry and retrieves a description for the node. The feature is also designed to work with the 'this.attribute' notation which is used extensively within XPages. The hover help information takes the following form in the help window if it is hovering over a tag (and not an attribute):

Tag Display Name (tagName)

Description:

If the cursor is hovering over an attribute of a tag the help takes the following form in the help window:

Tag Display Name (tagName)

Description:

Attribute Display Name (attributeName)

Attribute Description:

As mentioned, the information is pulled from the XPages registry, so the feature works with all tags - not just core XPages controls. Finally, pressing F2 while the hover help is displaying sends focus to the hover help window which let you resize the window

Memory management improvements – For this release, memory management improvements have been made in Domino Designer specifically in the area of the XPages editor. Certain previously identified memory leaks have been investigated and fixed. In the past, these leaks would sometimes surface when editing large complex XPages (i.e., XPages containing several complex design elements) with many control visualizations. These leaks would then lead to a Java Out Of Memory exception and cause Domino Designer to crash.

Content assist help – This release introduces content assist functionality in the XPages source editor. This feature lets you use content assist when working in 'source mode' in an XPage. Similar to other Eclipse editors, pressing CTRL+SPACE will activate the content assist functionality.

Content assist within Eclipse's XML editor (and the XPages source editor) is driven through the use of a schema. Domino Designer dynamically builds a schema based on the current Notes® application. The schema contains help information for each attribute of each tag within the XPages runtime. In order to enable the content assist within the XPages editor, the XSP markup must be modified to notify the XPages source editor of the location of the schema which is being used. Each new XPage created within Domino Designer npw contains the following meta data in the 'view' control of the XPage:

xsi:schemaLocation="http://www.ibm.com/xsp/core xsdxp://localhost/xsp~core.xsd

A similar location definition will be added for each namespace that is added to the XPage. When dropping controls from the palette to an XPage, Domino Designer checks if the control's namespace URI has a schema location associated with it. If it does not, a location is generated and added to the XSP markup. Domino Designer then dynamically generates a schema for the given namespace based on the contents of the FacesRegistry (which contains definitions for all XPages' controls). This lets Domino Designer add the necessary markup to the XPage.

If you already have existing XPages, you must add a new control to the XPage (via drag and drop from the Controls Palette) in order to enable the new content assist functionality.

Detection of content types and editable content type field – All contributed contents types are now detected by Domino Designer.

Editable content type field – The content type field for computed fields and view columns is now also editable. When developing controls for the Social Enabler, the content type field for the Computed Field control and for view columns was formerly read only. This was not acceptable as customers want to contribute their own content types. In the case of the Social Enabler there are several content type available.

None of these were showing up in the computed field or in the view column as options, meaning you need go to the All Properties view to enter these values. Even then, the formal panel would still display the old value of Text, even when the value was set to something else.

This change correct that problem. The view column Display panel and the computed field Basics panel now support all of the registered content types, and those fields are editable you can enter your own content type names if you desire.

Support of converters added to the XPages Checkbox control – For this release, the Checkbox control now accepts converters.

Boolean converters added to controls that accept converters – For this release, controls that accept converters now accept Boolean converters. The Boolean converter lets values saved through an XPage be stored within the data source as Boolean objects, as opposed to strings. Domino Designer now allows the Boolean converter to be added as a converter on any XPage control that supports converters.

Domino Designer Preferences changes – The following changes have been made to Domino Designer preferences:
  • XPages is now its own Preferences category
  • Extension Library and Palette Preferences have been added to the XPages category
  • XPages preferences panel group box name has changed to XPages Editor
  • Show line breaks in editor preference is now Show line breaks in design editor as it refers to the source editor
  • Bubble help preferences and hover help preferences were moved from the Domino Designer preferences panel to the XPages panel/XPages Editor group.
  • New checkboxes and associated timers for hover help and content assist were added to the XPages panel/XPages Editor group. The timer controls will be grayed out if the checkbox is unchecked.

Close Application functionality – For these release, you can now manually close applications which are open in the Domino Designer Applications navigator. To access this functionality, a new menu item has been added to the Applications Navigator which lets you manually close an application which was previously opened in the Applications Navigator.

This new menu item is only enabled when an Application is selected, and the same application is already open. The menu item will be disabled when a node in the design element tree is selected.

This menu item is notified when an application is opened without selection changing. For example, say that Application A is closed and you attempt to select the menu. In this case, the Close Application menu item will be disabled. On the other hand, if you open Application A without changing selection within the navigator and again try to select the menu, the Close Application menu item will then be enabled.

When selected, the Close Application menu item will close the currently selected application along with closing all design elements from that application that are currently open.

Data Source configuration panels -- A Select Data Source panel is provided for the Data View and Dynamic view controls in the Extension Library (see the corresponding section in this topic). This panel appears immediately after dropping one of these controls to an XPage. These panels lets you select or provide the following information:
  • The source you want to show the data from (Domino View)
  • The application providing the data source
  • The specific view you want to provide the data
  • The data source name
Designer usability improvements -- New specialized pickers have been added to help assign property values when working in the All Properties panel. The following specific property editors were added to improve usability in the Extension Library controls (see the corresponding section in this topic):
  • Bit Flags Picker
  • Currency Picker
  • Form Picker
  • Regular Expression Picker
  • Variable Name Picker
  • View and Folder Picker
  • View Picker
  • XPage Control ID Picker
You can reuse these editors within their Custom Control property definitions where desirable.
Applications Navigator changes and additions -- New items have been added to the Applications Navigator. The former Application Properties section has been renamed as the Application Configuration section. This section now gives you editing access to the following group of application elements:
  • Applications Properties - This element gives you edit access to classic application-level properties.
  • Xsp Properties - This file contains a collection of XPages framework parameters, known as xsp.properties. It is used on the application or server level to set and control XPages settings in your application XPages. Every XPages NSF application contains an xsp.properties file.
  • Faces-config - The faces-config.xml file is the main configuration file in a JSF application. The file generally lists bean resources and page navigation rules. It is placed in the WEB-INF folder of an application.
    Note: Faces-config is hidden in all perspectives except for the XPages perspective.
You can hide or display any of these items through the Navigator Preferences.

Applications not in Working Set functionality -- Domino Designer users use working sets to filter the contents of the Applications Navigator view. Working sets let you group applications into categories, which in turn let you view only applications in a specific working set or in multiple working sets at once. This lets you organize and clean up the Applications Navigator so you can focus/view a subset of the applications which you have in the Applications Navigator. Unfortunately, an issue in this area has always been that it was difficult to determine which applications were NOT contained in any working set.

New functionality has been added that lets you view all of the applications in Domino Designer which are not stored in a working set. This is very similar to the Other Projects working set which is available in the Java Package Explorer view. You can find this functionality in the Designer interface in two locations Domino Designer Home Page Applications Navigator working set toolbar drop down menu
  • Domino Designer Home Page
  • Navigator working set toolbar drop down menu

On the Home Page, Domino Designer checks if all of the applications contained within the Applications Navigator are contained within a Working Set. If it is determined that one or more applications are not contained within one or more working sets then Designer reloads the Home Page. During that process it then adds a new Applications Not in a Working Set list item to the Home Page.

From the Applications Navigator, when you click on the menu button, Domino Designer determines if any of the applications are not in a working set. If it determines that one or more are not, then the newly added Applications Not in a Working Set menu item is enabled. Conversely, the same menu item will be disabled if all applications are organized in working sets or if there are no working sets (in which case all applications are not in a working set).

When the Applications Not in a Working Set feature is enabled, the Applications Navigator only shows applications which are not currently in a working set. The title bar of the Applications Navigator changes to say Other and the tool tip will read Applications Not in a Working Set.

You can add applications which are not currently contained in a working set to a working set. If it is the case that all applications that were not contained in a working set are then added to working sets while Applications Not in a Working Set is enabled, the Applications Navigator appears empty and the Home Page is reloaded. This time, however, the Applications Not in a Working Set item will not be visible and the Applications Not in a Working Set menu item in the Applications Navigator menu will be checked but disabled.

XPages

In the area of XPages, the following additions or changes have been made.

XPages Extension Library -- The XPages Extension Library provides additional controls that are ready to use. The controls include new container controls (such as the Application Layout, Data View and others), improved dialogs, pickers, in-place forms, Dojo components, dynamic content, and much more. The controls also support enhancements to the Domino® templates.

The controls available in the new Extension Library cover the following functional areas:
  • Data Access - expose data access services.
  • Dojo Form - mimic components from the Dojo toolkit.
  • Dojo Layout - mimic components from the Dojo toolkit.
  • Extension Library - extend the capabilities of the Designer Core Controls.
  • iNotes® - support certain views, lists, and stores. Mobile - support mobile applications.
The XPages Extension Library includes the following feature highlights:
  • Mobile controls - This new set of controls provides support for building applications for mobile devices including the following feature highlights:
    • Out of the box styles for iPhone and Android
    • Ability to provide custom styles
    • A view control to display Domino views
    • Documents can be rendered easily via forms controls and manipulated as in desktop applications
    • Header, outline and tab bar controls
    • Single Page Application control to change a mobile page without reloading the whole application
    These controls have been implemented as library controls so that they can be used in custom applications without having to copy and paste design elements.
  • New tooling for library controls - New plugins provide new basic Domino Designer visualizations for all Extension Library controls, as well as enhanced visualizations for more complex controls like the Application Layout control. Other enhancements include new specialized editors to help assign property values when working in the All Properties panel and new design panels to help with the Data View and Dynamic Content controls.
  • Enhanced accessibility and localization support - Previous versions of some of the controls and complex types in the XPages Extension Library were not fully compliant with accessibility and localization standards. For example, the use of the 'title' attribute as a control label rather than as a descriptive tag for assistive technologies (such as screen readers, etc). Issues like this and others have been addressed in this release.
  • Additional minor fixes and enhancements - Additional minor fixes have been applied to the runtime. Many of the control property descriptions and tooltips have been updated.

For further information on this feature, refer to the Adding controls from the XPages Extension Library section of this User Guide. For additional information and reference material on using the Extension Library controls, also refer to the Domino Designer XPages Extension Library documentation found in the Product Documentation section of the Notes and Domino Application Development wiki at http://www-10.lotus.com/ldd/ddwiki.nsf.

Updated application templates -- This release provides updated versions of the Notes/Domino Discussion and TeamRoom templates that have been extended to use new features from the latest release (discussion8xl.ntf and teamrm8xl.ntf). These templates can be used to create XPages applications that will run on the web, the Notes client, or on mobile devices. You are encouraged in particular to try the mobile application implementations as these templates are a good sample reference point for getting started with XPages mobile development. The Discussion and TeamRoom templates for this release are English only.

Application Layout control -- One highlight of the Extension Library is the Application Layout control (applicationLayout/com.ibm.xsp.extlib.component.layout.UIApplicationLayout). This control is an object for rendering the main application frame and the layout of an XPages application.

This control is used most effectively when placed in a custom control, where you can configure the layout once and then reuse the custom control on multiple XPages. You can set up a layout with up to three areas for titles and navigation links, a content area with as many as three columns, and up to two footer areas.

Once you have dragged the control to the XPage and have done your initial setup, you can use the control's Property Panels to further set additional options for your application layout control properties. These include:
  • Basic property panel - Lets you set the control Name, Configuration, and Visible (with a computed value). When the control is in a Custom Control, this panel also lets you add facets to any of the three main columns, to allow dropping of controls to these facets when using the Custom Control.
  • Banner property panel - Lets you set all layout banner options and settings for a banner area. For example, a logo (text field with image picker), global links, etc.).
  • Banner - Application Links property panel - Found as part of the Banner property panel, this panel lets you add application links and set the link properties.
  • Banner - Utility Links property panel - Found as part of the Banner property panel, this panel lets you add links in the banner for utilities such as Help and Login and set their related properties.
  • Title Bar property panel - Lets you set the title bar, title text, set title options, add links (in custom order), and add additional tabs (with child tabs) to your application layout.
  • Title Bar - Search property panel - Lets you add search controls to the title bar and set all related search URLs and properties. An editable area (facet) is also provided as an alternative way to specify the search UI. If used, the facet overrides the controls specified on this panel.
  • Place Bar property panel - Lets you set options to display a place bar area for a secondary title. You can also set links to be styled as buttons or buttons with dropdowns. These can be buttons with or without images and labels.
  • Footer property panel - Gives you the option to display a footer under the application content area and use it for links or text. To display just text in the footer, you should specify just a label text as a property and not an HREF (link).
  • Legal property panel - Gives you the option to specify an area in your application to display legal text as well as set all logo and text properties (with computed values if desired).

For complete information on how to use this control, refer to this Control Reference section found in this guide.

Dynamic Content control -- Another highlight of the Extension Library is the Dynamic Content control (dynamicContent / com.ibm.xsp.extlib.component.dynamiccontent.UIDynamicContent). This control that lets you include a dynamic page or page part in your XPage application. The control lets you conditionally create and render child controls, enabling you to show and hide parts of a page. This control has been provided with complete tooling and visualization. The tooling for the Dynamic Content control consists of one Dynamic Content property panel. The properties that can be set from this panel include:
  • Control name
  • Option to make the control visible (Visible checkbox)
  • Drop down list to select the default facet. Content defined in the default facet is rendered if no other conditions are met.
  • Option to Use URL hash (checkbox)

XPages Properties Editor -- An XPages Property Editor user interface has been added to make it easier to edit XPages properties when in the Eclipse Navigator view.

To display the Eclipse Navigator view, choose Window - Show Eclipse Views - Navigator.

To launch the XPages Property Editor:
  • Locate the XPages properties file xsp.properties in the Eclipse Navigator view. The path should be something like: Application-name.nsf/WebContent/WEB-INF/xsp.properties.
  • Right click xsp.properties and select Open With - XPages Property Editor. The XPages Properties Editor panel opens with 4 tabs available to set XPages Properties. These properties tabs are General, Persistence, Page Generation, and Source.
The XPages Properties General tab lets you set properties in the following general areas:
  • Theme defaults - Lets you set application theme properties. You can also set theme choice override settings depending on whether the application is being displayed in the Notes client or on the Web.
  • Window Behavior for Navigation and Links - Lets you specify window and link behaviors in your application as well as link behaviors when they are not specified on the links themselves.
  • Error Handling - Lets you specify error handling (error page) options. If you elect to have an XPage runtime error page displayed, you can have the default error page displayed by the XSP layer. This can be helpful for providing extra error information.
  • Minimum supported release - Lets you specify the minimum supported Notes/Domino release for your compiled application to run on and also lets set style support requirements.
  • Timeouts - Lets you specify application, session, and partial update timeout intervals. For an application or session, you can set a time period interval in minutes for when it is removed from memory after inactivity. The default interval is 30 minutes unless specified otherwise. For partial updates, you can set a timeout interval in seconds. The default value is 20 seconds. Additional refresh and persist options can also be set.
  • Dojo - Lets you specify the Dojo version to use in your application as well as specify parameters to the djConfig attribute of Dojo. For example, you could specify isDebug=true to let you to switch to debug mode if needed.
  • Time Zone - Lets you specify time zone information. If you do not use this, then the server timezone is used.
  • File upload options - Lets you specify application file upload size and location. This includes the maximum size of a file being uploaded to an application as well as the directory location to temporarily store an uploaded attachment.
The Performance Properties (Persistence) tab lets you set properties in the following application performance areas:
  • Persistence options - Lets you set Server (JSF) page persistence modes and options as well as persistent page count settings to fine tune application performance vs. available memory.
  • Temporary Locations - Lets you specify locations for temporary persistence storage of attachments, uploaded files, and JSF pages.
  • Options - Lets you specify additional performance settings for things like page refresh, cache size, resource expiration time, and JavaScript and CSS resource options.
The Page Generation Properties (Page Generation) tab lets you set properties in the following application page generation areas:
  • HTML generation - Lets you specify HTML generation setting like client side HTML validation, compression settings, encoding (character set), and HTML doctype as well as other options.
  • Rich text option- Lets you specify how to save links in a Domino documents - in either Notes or Web format.
  • Active content filtering - Lets you specify active content filters including display and save filtering types as well as specifying which ACF CONFIG file to use.
  • Active content filtering (ACF) cis used to remove potentially malicious active content from application content that is displayed in a browser.

Finally, the Source tab lets you display and edit the actual XPages properties source file in a text editor without the assistance of the XPages Properties Editor user interface.

Hover/mouse-over help is provided to give additional assistance on the various options and properties that you can set on these tabs.

Calendaring and Scheduling (C&S) back end Java classes – A framework and set of methods is available for a Java API exposing Domino calendar and scheduling functionality. These provide the ability to create, read, update, and remove calendar data in a personal mailfile using standardized iCalendar (RFC 5545) data format. They also allow explicit calendar actions on calendar entries and notices (accept, decline, cancel, etc). Refer to the next section of this topic for more complete details.

Runtime language support -- The XPages runtime in this release supports Language Groups 1, 2, and 3. The Discussion and TeamRoom templates are English only.

Template language support -- The Discussion and TeamRoom templates are English only.

Launch option to run server-based XPages applications directly on a Domino server – Because XPages Notes applications run in the local Notes XPD web container, all of the XPages Java classes (XPages and custom controls) must be copied across the network from the remote server to the Notes client to be executed. Similarly, all page resources (CSS, JavaScript, GIFs, etc.) must be fetched from the remote server, as well as the actual data documents. Moreover, if your XPages application leverages other Notes design artifacts (for example, using the computeWithForm feature), then large design elements like forms, subforms, shared fields and so forth must also be fetched remotely. On high latency networks, this can have significant performance impacts, particularly if your application has been designed primarily for the web and not optimized for the Notes client.

A Domino Designer launch option now lets you avoid this situation. The Notes client launch option is called Run server-based XPages applications directly on Domino server. When this option is checked and the application is launched by a Notes user, the XPages runtime is requested to run the application on the Domino server over HTTP. This option lets you request that remote applications be run on the Domino HTTP server - just as they are for the web user - and displayed in the Notes XPages container. The advantage to this approach is that a lot of network transactions are eliminated to improve performance.

For this request to be honored, a number of conditions must be in place. Primarily, you must have a Notes HTTP account set up. These accounts can be set up directly on the Notes client or remotely on the Domino server and then provisioned to the Notes client. To create or view Notes accounts select File > Preferences > Accounts in Notes. In attempting to honor the request to the XPages application on Domino, XPages iterates through all the Notes accounts defined in the Notes client installation until it finds an HTTP account that matches the name of the server where the application resides. Once those criteria are met, then a Domino XPages URL is constructed and the request is sent to the Domino server and the application then loads in the Notes client. If a matching account is not found or if the request to the server cannot be serviced (e.g. some other incorrect account detail) then you will be prompted to close the application window or to revert to running the application using the local Notes web container.

The Notes Accounts framework and the underlying XULRunner browser automatically passes the user credentials to the web server for automatic authentication. Thus the user should not be challenged for authentication. If you are prompted for user name and password then the runtime Notes/Domino configuration is not correctly set up (for example, incorrectly configured Domino SSO). However, you should be able to verify this independently of XPages by simply entering a URL to the application via the Notes browser address widget on the Notes toolbar.

When running an application on the Domino server within the Notes client, all custom Notes functionality should function as it does when running in native XPages mode. For example, context menus should behave the same, dirty document save, client-side JavaScript functions. etc). One exception is that composite applications will not be able to utilize client property broker functionality when running on the server.

You can bypass setting this option in Domino Designer by setting a NOTES.INI feature, as follows: XPagesRunRemoteAppsOnServer=1. This setting will be applied to all XPages applications, not individual applications.

Spell checker added to CKEditor – A spell checker has been added to the CKEditor in XPages. It will be available on both the server and the client.

Programmability and languages

In the area of programmability and languages, the following additions or changes have been made:

Domino Data Services -- The Domino® Data Service is a REST API that accesses databases on Domino servers. It is part of Domino Access Services. The Domino Data Service receives requests and sends responses using HTTP and HTTPS protocols with body content in JSON format. The Domino Data Service allows you to obtain information on databases, views, folders, and documents. You can update, add, and delete documents.

For more complete information and reference material on using the Data Services, refer to the information found in the Product Documentation section of the Notes and Domino Application Development wiki at http://www-10.lotus.com/ldd/ddwiki.nsf.

Calendaring and Scheduling (C&S) back end Java classes – A framework and set of methods is available for a Java API exposing Domino calendar and scheduling functionality. These provide the ability to create, read, update, and remove calendar data in a personal mailfile using standardized iCalendar (RFC 5545) data format. They also allow explicit calendar actions on calendar entries and notices (accept, decline, cancel, etc).

Note: iCalendar allows for the capture and exchange of information normally stored within a calendaring and scheduling application; such as a Personal Information Manager (PIM) or a Group-Scheduling application product. The iCalendar format is suitable as an exchange format between applications or systems. The format is defined in terms of a MIME content type. This lets the object to be exchanged use several transports, including but not limited to SMTP, HTTP, a file system, desktop interactive protocols such as the use of a memory-based clipboard or drag/drop interactions, point-to-point asynchronous communication, wired-network transport, or some form of unwired transport such as infrared.

The purpose of these initial classes and methods is to provide a basis for exploring development possibilities and for building small, simple calendar and scheduling prototype applications without needing to be fully versed in the internals of Notes Calendar and Scheduling.

Some of the new classes (with methods) that were added include the following:

Session.getCalendar

Creates a NotesCalendar object from the Database object. The database is not verified to be a valid C&S database until it is actually accessed.

lotus.domino.NotesCalendar getCalendar(lotus.domino.Database db)throws NotesException

NotesCalendar - with the following methods:
  • NotesCalendar.getEntry
  • NotesCalendar.createEntry
  • NotesCalendar.readRange

The following information provides additional details for using these methods:

NotesCalendar.getEntry

Returns a NotesCalendarEntry object that is associated with the provided uid (iCal identifier). This does not do validity checking to be sure that the entry actually exists.

NotesCalendarEntry getEntry(String uid) throws NotesException

NotesCalendar.createEntry

Returns a NotesCalendarEntry from the iCal provided when given an iCalendar string (iCal) properly formatted according to RFC 5545.

NotesCalendarEntry createEntry(String iCal) throws NotesException

NotesCalendar.readRange

Returns an iCalendar string that represents all calendar entries that appear on your Notes calendar and start between the provided start and end times. For recurring entries, each instance within the range is output separately. This represents only summary data for each entry, but each entry will contain a UID that can be used to get a NotesCalendarEntry object with the getEntry method. The caller is responsible for parsing the output.

String readRange(DateTime start, DateTime end) throws NotesException

NotesCalendarEntry
  • NotesCalendarEntry.read
  • NotesCalendarEntry.update
  • NotesCalendarEntry.remove

The following information provides additional details for using these methods:

NotesCalendarEntry.read

Returns the iCalendar string representing this calendar entry. If recurID is specified for a recurring entry, returns the iCalendar string for just that occurrence. recurID is expected to be a string representing the data/time that a particular instance was originally schedule at, formatted like an iCalendar RECURRENCE-ID. For example: 19960120T120000Z. See RFC 5545, section 3.8.4.4.

String read() throws NotesException

String read(String recurID) throws NotesException

NotesCalendarEntry.update

Given an iCalendar string (iCal) properly formatted according to RFC 5545, updates this calendar entry by passing in iCalendar. For recurring meetings, this is only currently supported for individual instances and the iCalendar input must contain a single VEVENT that specifies the appropriate instance with a RECURRENCE-ID, as defined in RFC 5545.

If no comments are specified, this will NOT send notices even if this is a meeting. If this is a meeting where the mailfile owner is the organizer, appropriate notices will be sent, including the comments provided. Currently, any provided comments are ignored.

void update(String iCal) throws NotesException

void update(String iCal, String comments) throws NotesException

NotesCalendarEntry.remove

Removes (deletes) a calendar entry from the mailfile. If recurID is specified, then only that occurrence is removed. If this calendar entry is a scheduled meeting, it will be properly cancelled or declined, and appropriate notices will be sent to the organizer or participants.

void remove() throws NotesException

void remove(recurID) throws NotesException

For complete information on these and additional classes and methods, refer to the Domino section of the Domino Designer XPages Reference.

Server-Side JavaScript debugger – A Server-Side JavaScript (SSJS) debugger is available to debug against either the Designer preview server or against a Domino server.
Note: The debugger keyword used with this feature is NOT backwards compatible and will not work if an application is hosted on an earlier version of the server. The keyword acts as a static breakpoint within the Server Side JavaScript code when the server/application is running in debug mode. Using the keyword will not cause a problem within an XPages application at design time, but the application will have runtime issues when executed on an earlier version of the server.

The debugger user interface has also been updated to make the debugging process less complex in the Eclipse environment. A new Debug IBM Domino Designer Server-Side JavaScript toolbar button has been added to the main toolbar. For more complete information, refer to the Scripting in XPages section of the Programming section of the Domino Designer User Guide.

Property/preference for using uncompressed Dojo resources for debugging - A public property in the xsp.properties file called xsp.client.script.uncompressed can be edited and set to TRUE to enable easier debugging with uncompressed resources.

Selecting the Use uncompressed resource files (CSS & Dojo) check box in the XPage Properties Editor - Performance Properties tab of your application also enables this feature. The check box will edit this line in the xsp.properties file as follows: xsp.client.resources.uncompressed=true.

When set to true, this property lets Dojo resources be served up uncompressed with all the indentation, spaces, variable names and comments so that you can thoroughly debug your application. In a production environment, this property should be set to false to maximize application performance.

Technically, the uncompressed version of the resources is served up by a different library. You must have two libraries registered (for example, 1.7.2 for the compressed version and 1.7.2-u for the uncompressed version). The last version mentioned (1.7.2-u) is then only used if the property is set to True. The property is not present by default, which is equivalent to setting the property to False.

Preference to turn off auto-indenting in the LotusScript editor - A preference is provided that lets you turn auto-indenting on or off in the LotusScript editor. This preference is found in the General section of the LotusScript Editor Preferences tab. The current default value is that this feature is NOT enabled.

Preference to turn off auto-indenting in the LotusScript editor - A preference is provided that lets you turn auto-indenting on or off in the LotusScript editor. This preference is found in the General section of the LotusScript Editor Preferences tab. The current default value is that this feature is NOT enabled.

Send Mail simple action added – A Send Mail simple action has been added to an XPage lets you perform a pre-programmed activity that can be modified by arguments. Simple actions apply to event handlers and can be grouped. This simple action has been added to let send an email from an XPages application more easily. It also lets you send Embedded Experience email. Refer to the product documentation for more complete information.


Additional Documentation | Trademarks |