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…