XPages and Me

My Journey into XPages Development

Monthly Archives: December 2013

Happy New Year!

I’d like to wish all my readers / followers and their families a Happy New Year!


So, you got your Web application’s Home Page done, what about the Lotus Notes Client (Part 1)?

I came across many Lotus Notes applications that had been developed to be accessed thru the browser only, which is perfectly fine, until a user opens the application in the Notes Client. What they usually see is the default view of your app (I hope you have one, otherwise you might run into some issues with certain things) and a list of views on the left-hand side.

The user might be confused by what he / she sees, not knowing that the application is actually a web application. Therefore, I think it is good practice to have a home page available that:

  • Informs the user that the application is a web application
  • Provides a link / button to the user to open the application in the browser

even if the possibility of a user opening the application in the Notes Client might be small.

Read more of this post

XPages Development: A Health Hazard?

Ever been in a situation like this:

You have a requirement / issue which seems to be easy enough to implement / fix. You say to yourself “That shouldn’t take long, an hour max”.

And then, it happens: It doesn’t work the way you thought, hoped, prayed for. An hour turns into two, three, five even a day or two for one measly, little requirement / issue.

You start to doubt yourself, your abilities. You pull your hair out, bash your head on the desk, bite the keyboard (all health hazards to you), ready to throw your computer out the window (health hazard to others, unless you live in a rural part of the country like me ;o) ).

You tried everything, turning uppercase letters into lowercase letters and back, with spaces, without spaces, ifs, whens, selects, quotes, double quotes, build, clean. Your frustration grows, you are desperate and then, then it happens. It works, finally. Not the way you had planned originally but it works and that’s all that matters.

Let me know about your experience and how long it took you to get it to work.

P.S.: Just had a prime example: I was going to give users the ability to download file attachments directly from a view. If the number of attachments on any given document is < 5, display the file type icons in the column, if the number of attachments is > 5, display a paper clip on which the user can click to open a tooltip with the list of attached files. I first tried to see, if you can open a tooltip with a list of attachments from a view column, which worked great. When I then implemented the if-then-condition, the icons were displayed and, if the number of files was > 5, the paper clip. However, now the tooltip wouldn’t open for me. After trying a couple of things, which didn’t work, I left it alone until today, figuring that putting the tooltip box outside of the view might help. But, oh surprise, the tooltip box worked today without any further changes.

Replicating the Notes Client “Allow Values Not in List” function used by Dialog List and Combobox on a XPage form (Part 2 – How to use the Custom Control on your form)

In part 1 I showed you how to create the Custom Control that you can use on any of your XPages form, where you’d like to give the user the ability to add values that might not be in the list of keywords.

Now I’ll show you how to use this Custom Control.

Read more of this post

Replicating the Notes Client “Allow Values Not in List” function used by Dialog List and Combobox on a XPage form (Part 1 – Create the reusable Custom Control)

I had a requirement to allow users to enter values that are not in the list of keywords. As some of you might know, this is not an option in XPages. My first tries to provide for this functionality were rather crude and the clients didn’t like it. So, after reading this post on the Inner Ring Solutions blog,  I came up with the following solution, which can be reused on any form for single value and multi-value fields.

Read more of this post