XPages and other dev type stuff.

A few years ago I created a Name Picker for an XPages project I was working on at the time. The application had several fields that required the selection of users from the address book, but the available options at the time did not fit the bill. In addition, this was the first XPages application for this user base after being firmly entrenched in Notes Client applications for many years. As a result, there was a need to provide some functionality that helped build a bridge from Notes Client to web/XPage applications. Being able to select users from an address book in a similar manner as the Notes Client was a good place to build this bridge.

Multi Select Name Picker

Single Select Name Picker

Why not just use the ExtLib version?

When I first started building this control, the ExtLib version did not exist yet. Even after ExtLib was released, the environment where this was born did not have ExtLib installed on their servers. In my testing against the ExtLib name picker, this version outperformed it using the 40k entry address book, fakenames.nsf, as well as provides functionality that does not exist in the ExtLib version.

The key features of Dojo Name Picker 1.0 include:

Ability to choose People, People & Groups, or just Groups.

Multi Select via a dual column dialog.

Single Select via a single column dialog.

Lazy loading of additional entries when scrolling up or down.

Only creates one dojo dialog widget no matter how many names fields are needed on a form.

In Firefox and XPiNC the dialog will also display the associated icon for an entry (IE and Chrome do not support option tag background images).

Ability have the name picker execute a function with the selected value(s) being passed to the function as a parameter.

Ability to specify a partial refresh target on dialog close.

No dependency on ExtLib.

Will work on 8.5.3 and above (will probably work on 8.5.2 but this release has not been tested on that version).

This tip is pretty simple, and it might be common knowledge to most people, but I stumbled onto it pretty much by accident.

Copying a custom control from one XPage to another is fairly common, but when you do so and go to build your new page, you get the message:

The prefix “xc” for element “xc:ccTest” is not bound.

Previously, I never really bothered to look into this message any further. I took the easy way out and simply dragged a new copy of the custom control onto the XPage, copied any custom properties (if any), and went on my way. However, this can get annoying REAL fast if you have a lot of custom controls that need to be copied.

Luckily, there is a ridiculously easy way to quickly get rid of the above message.

Adding the bolded line above to the xp:view tag of your page will allow you to copy custom controls to your XPage without frustration. At the end of the day is it really a big time saver? No. But at least you have a better understanding of the error message.

This ssjs object contained a set of functions that were used in conjunction with one another to perform various functions.

In some cases, these functions needed to grab some data from a viewScope variable, so I figured it made perfect sense to have a key name that was consistent with my ssjs object. I had a button that was setting the value like so:

viewScope.myVar = "foo";

Innocent enough, right?

According to the XPages runtime, apparently not, because I ended up with a message like this:

This is it. Numero uno. The first blog post. The one where you sit in front of your keyboard trying to figure out exactly what you are going to say.

I plan on sharing my experience primarily with XPages, hence the name http://xpage.me. However, I reserve the right to branch out from that as I tinker around with other technologies.

Who am I? I have been a Domino developer/consultant for upwards of 16 years and have been fortunate to have some great experiences at some great companies. Currently, I’m a Senior Consultant at PSC Group focusing on (duh) XPages.

Why blog now? Why not? I really wish I had done this sooner – like years sooner. With so many people having contributed so much great information over the years, it’s easy to feel like I’m showing up at the party at 3AM and the keg is already kicked. But I’m finding that is not necessarily the case. Hopefully this platform will help me dig deeper into some things where I might have only scratched the surface previously, and provide some useful information back to the community.

Many thanks to my coworkers Kathy Brown, Brad Balassaitis, and Mark Roden for providing some gentle nudges of encouragement. Also, to David Leedy who is always encouraging people to do SOMETHING productive in the Domino/XPages community, no matter how big or small it may be. In the end, we all benefit.