SNTT – Usemap & XPages


I thought I write this one down. A developer asked me how to make a form more user-friendly. Basically a user reports via the form a problem somewhere in the building to the central desk and they send a mechanic. To have a more precise allocation of the problem, a room number is required to fill in.

I suggested to use an image map. There are sites around that help you define the correct coordinates.


In DDE add an image as a resource. Drag that same image into your XPage. In the Properties panel find under All Properties \ Basics the usemap property. Include here the name of your image map. This is the one you have set on your map object.


In the map object you can include in the HREF attribute an URL or JavaScript. With Dojo you can establish some nice interaction with input fields on your XPage.

<?xml version=”1.0″ encoding=”UTF-8″?>
<xp:view xmlns:xp=”; dojoParseOnLoad=”true”
<xp:image url=”/bambi.jpg” id=”image1″ usemap=”imap_bambi”></xp:image>

<map id=”imap_bambi” name=”imap_bambi”>
<area shape=”rect” coords=”11,1,160,132″ alt=”daddy”
title=”daddy” href=”; />
<area shape=”rect” coords=”171,20,279,108″ alt=”mommy”
title=”mommy” href=”; />
<area shape=”rect” coords=”131,145,239,233″ alt=”bambi”
title=”bambi” href=”javascript:alert(‘hi there’)” />
<area shape=”rect” coords=”279,12,387,100″ alt=”butterfly”
href=”javascript:dojo.byId(‘#{id:inputText1}’).value = ‘found it'” />
<xp:inputText id=”inputText1″></xp:inputText>


ismap property

What I do not understand is what the ismap property is capable of. Documentation is hard to find. Maybe you know an example?


Using the Dojo widgets XPages

The following URL on the Japanse version of developerWorks leads to a nice document that describes the opportunities about using Dojo widgets on XPages:

Since the document is in Japanese Google Translate is probably your friend:

Uhm.. nice translation…

Btw, translation seems to work best with Chrome, as expected.

Using the Dojo widgets XPages

Dojo and Notes – Presentation Entwicklercamp

One of the good things of growing up in The Netherlands is that is so centrally located in Europe and you are used of travelling through different countries and (forced) talking different languages quiet early (at least I was). Beside Dutch and the local dialect (Broabants) I can manage myself well in English, German, Swedish and some bits of  Spanish and French.

Entwicklercamp is a German technical Notes event with always a good quality agenda. I found out that Bernd Hort held a presentation about Dojo and Notes which can be a good introduction for newbies in Domino, Dojo and XPage development.

The presentation is in German, but you can always upload the file to Google Translate which seems to be capable of handling the presentation quiet well. You might wonder if a dutchie was involved?

My first experience(s) with Domino Designer 8.5plus

I am testing the latest drop-code for Domino Designer 8.5plus and it is my first development experience with XPages. I just thought I will write down my first experiences, maybe it may be useful one time. At first I was not sure enough to publish this, but it was announced that design partners may write about the design program I fell more confident to do so. For now working with  XPages can not be described as love on first sight.

First impression

Coming from a generation of Notes developers prior to 4.5 this version of Designer impresses me most. It makes Notes 5 as ‘super human software’ a joke. The other releases 6 and 7 where not spectacular, you just saw Notes getting behind other development platforms.

So 8.5plus gives a refreshment and hope for the future.

My experiences

With high expectations come also delusions.

As learning example I use a workshop designing in XPages by Emvege and  Declan Lynch lines of articles how to create a basic XPages based application. I also followed the short tutorial in the Designer Help for as long at that one is helpful. Their is definitely a need for adequate developer’s tutorials IBM, you can’t release a new way of developing without providing proper educational material. The Developers Help is just not supportive enough.

Application (database) properties

Much better!  The prior properties box for database was difficult to read. Too bad that text / labels can not be copied as text to the clipboard.

DIVs are poorly visualized

In Declan’s tutorial he uses DIV’s to position blocks of data. When editing the XPage in Designer the present of DIV’s are seen when looking at the source code. Some nice mouse-over with dotted lines would make this more clear.

Okej this gets reduced when you place your DIV’s in custom controls.

Line numbering and being able to collapse blocks of code are nice new add-ons.

Source code view

Oh boy your XPages are a mess when you view the source code. Some people like to indent their code, since they know someone after them are going to give support on the applications. Indenting the source code is a disaster. Tab forward is doable for multiple lines of code but tab backwards? I wonder how the code for IBM templates will look like… Please take a look to example at good WYSIWYG editors where you can indent blocks of text via buttons.

I guess no-one wants to be hand-over unreadable messy-spreaded code, do you?

OneUI Theme

I guess you have to do your homework a bit for understanding the oneUI theme (or other defaut themes). When I tried to apply some common styles from that theme on elements on my XPage I got some unwanted results. This forces me to go back to my common CSS knowledge and not able to exploit the features in the oneUI theme. Does anyone know a good description for all the styleClasses?


Dojo is still a mystic for me, I have worked a lot with Prototype and Scriptaculous before, but basic knowledge of Dojo seems to be necessary if you want to go beyond basic XPage development. New courses seem to become available but in these low economic times budgets are frozen. Okej for now I could do with a good book on Dojo.


I do not know what your experiences are but XPages are far from fast. Just put in a rich text field and see how many files are being called.

Advanced programming

From moving to a senior Domino programmer into a novice XPage developer feels a bit awkward. Some goals you want to achieve are so basic knowledge in previous Domino development. In XPages I find it hard to find a way to solve the question. I guess my more novice co-workers will find it even hard to understand how they must develop in XPages. Best practices, tutorials that have  broad range of topics and go beyond using the default usages of core controls are rare. So no head-starts here.

I guess I am not alone in this area, so maybe an official IBM place where you can post your question and get some leads how to solve you problem would be a winner for most developers. I guess for now the 8.5 forum is that place to be. We all know that that place has never won a price for usability (sigh).

Road ahead

I guess finally we will come to a point where we release our first XPage based application and where we are proud of. For now we are far from that. Luckily the winter starts early in Sweden and it will be long so we have a lot of time to be inside and read and study.

In the meantime I am just saving all your XPages blog-posts in a Notes database so I can use that as a reference when my colleagues start developing in XPages. “Good practice does follow” so please keep contributing your findings via blogs…


IBM Lotus Notes/Domino and Lotus Notes Traveler 8.5.1 is prerelease code and there are no guarantees from IBM that the functionality presented or discussed will be in the final shipping product.

How to initiate a partial refresh from a dijit.tree?

On an XPage I have a dojo.dijitree module which uses a Notes View as the datastore.

I have the universal ID of the referring document available for each item in my tree widget.

What I would like to do know is when some clicks on an item that a part of the content on the XPage gets refreshed with a part (data field) of the referring document. But I am not sure how to do this.

The only thing I have is an onclick event on my tree-item.

When I have have a button with the partical refresh enabled it says:

<xp:eventHandler event=”onclick” submit=”true” refreshMode=”partial” refreshId=”PaneToRefresh”>

Then I can place an server side action like:


If I place this action under my script I get the problem indication:

The markup tag script can only contain controls and markup tags.

So if you have a clue how to place a partial refresh under a ‘normal’ script that collects data from a document somewhere else then I would be greatful to hear it from you…


Displaying a Domino view in the dojo dijit.tree

Just before I will stamp some time in displaying a categorzied Domino View in a dojo dijit.tree I am wondering if anyone has done this before and is willing to share the code? Google brought me do far no fortune (allthough I was near).

For now I have managed to display a flat view in the dijit.tree, for generating the proper JSON I use an agent that collects the data in a View. Calling directly a view via the ?ReadViewEntries&OutputFormat=JSON delivers an overload of information.

As source I woud like to use a View with documents in a response hierarchy like I described before here.

Introducing IBM Lotus Domino Designer 8.5. Now with Eclipse

Here is my report of jumpstart session 206 ‘Introducing IBM Lotus Domino Designer 8.5. Now with Eclipse!’.


Eclipse brings a modern IDE to Domino developers. Almost everything seems to be property-driven. The infoboxes are migrated to Eclipse properties panels which allow easier copy & paste of information that is stored in the properties.

NSF files are presented to Eclipse as an Eclipse Project, called the Eclipse Virtual File System (VFS).

A Domino Designer based upon Eclipse means further that other vendor tools can now be plugged into Domino Designer easily.

New features

  • Via Themes a set of stylesheets can be applied easily on a web application. This is for all web applications, not just applications based upon Xpages.
  • Xpages (ofcourse). More on this in separate sessions probably later at Lotuspere.
  • Through custom controls (see them as ‘subforms’) you can create reusable components for your Xpages. Each control is pointed to a particular data source. Any control can have a seperate data binding panel, in which the data source is selected. Since everything in Xpages is property driven these custom controls can look/work different based upon the Xpage which will contain them.
  • New editors for HTML/XML/CSS/ JavaScript with auto-completion. HTML editing is done via creating a new file in Eclipse. It gets saved as an HTML file in your application in the “Files” section of your project. The JavaScript editor has inline error control.
  • Right-click function to compare two forms and their design changes. It uses native Eclipse DXL functionality to evaluate all the code.
  • ‘Working sets’ allows you to filter applications you are working on. You can pick and choose different sets of applications by group. If you are working on a project that involves updating a group of applications, you can create a working set to only show these applications. You can switch between working sets anytime. 

The near future

 It appears that in Domino Designer 8.5.1 we likely will get:

  • NEW LotusScript editor with advanced code editing and all the stuff you expect from Eclipse.
  • NEW Java Editor that works as an ‘Eclipse java project’ inside an NSF database.

The reason why the new Java editor did not appear in the current Domino Designer release, 8.5 has apparently something to do with the way Java code is stored in a NSF. It looks like IBM has found a way to work around this and in Domino Designer 8.5.1.

  • iWidgets support.

 From what I have understood iWidgets support the resuse of  XPage applications as widgets in the context of Lotus Mashups or inside the portal iWidget container. 

Since Xpages are based upon Java Server Faces which are not restricted to a specific client the development team revealed the plans to bring XPages to run in the Notes client. This allows for off-line/client execution of applications built with the new XPages paradigm.  

  • Multiple datasources

 Xpages are now limited to get their data from NSF files but this is likely going to change.

Something missing?

General I noticed the ‘wow’ experience was missing among the attendees which I think is quiet odd. I have some great new feautures (mainly Xpages). However I have some recommendations for 8.5.1:

  • Add some effects options on Xpage controls. Why not have fade-in/fade-out effects on for example navigating through documents? Get some inspiration to Scriptaculous. I am sure the Dojo toolkit is able to provide effects.
  • Get the Help page back in the startpage for the Domino Designer as someone in the audience als0 noticed.
  • No support for version control or anything in that direction. 

Introduction Dojo Toolkit & IBM Lotus Domino

Currently I am collecting all sorts of information about implementing the DOJO Toolkit in Lotus Domino applications. Basically for preparing myself for a upcoming project to ‘pimp’ an existing web-application using this JS Framework.

Untill now I have been only working with Prototype and Scriptaculous (which I like a lot) but since IBM’s horizon also shines more and more Dojo I am really curious in DOJO’s capabilities. Especially since documentation seems to be getting better and better.

I have found a good presentation about implementing the Dojo Toolkit in Lotus Domino applications on Slideshare. You can find the presentation here.

Introduction Dojo Toolkit & IBM Lotus Domino - presentation

It seems that more and more Notes related people find the time and effort in uploading their presentations on this site, which is ofcourse a very good thing! (HINT)