Adding the optgroup tag quickly to your xp:combobox

Today I was working on modernizing an xpages application when I came up with a simple enhancement: adding the optgroup tag to a xp:combobox.

By default this option is no available in XPages and if you look around there are some suggestions from hard-coded to DOM modification but I rather looked for a proper JSF implementation.

The data for my combobox resides in a categorized Notes view in a solid NSF so I had two options: navigating through the NotesView via a ViewNavigator (probably next post) or a quick and dirty combo of a dbcolumn and dblookup.

In context with the combobox control the dbcolumn/lookup combo seems suitable 🙂

Here is the simplified setup for my xp:combobox:

As data source I am calling a method on a managed bean. The method is as followed:

The result is nice and straight-forward:

If you questions or difficulties with the implementation, just give me call. Happy development 🙂

Domino2025 webinar – a technology U-turn?

In the last webinar around #Domino2025 time was spent on announcing NodeJS to/for/on Domino, a new search engine, NSF improvements but very little was discussed about the AppDev environment.

Today we have XPages as AppDev tool. Nothing about the lifecycle of this was announced. Or embracing an open source UI framework for JSF like Primefaces.

Some words about an “open IDE” environment which might be good to have the option to choose your favorite development environment. But the main problem I have that the whole webinar sounded like a complete U-turn in technology.

What will be your options as a Java developer?

Should you dump your learned skills and switch over to JavaScript and React, Angular or Vue?

Is there hope that JSF on Domino will be upgraded to a recent version so you can bring in new opportunities to your applications?

What must companies do with their existing XSP applications? Re-write them (again)?

To me it sounded IBM is keeping its hands of from developing and maintaining any development framework. The “traditional” Domino development framework with forms, views, pages, subforms is left dead. The “Web 2.0” Domino development framework with XPages and Java will be left for dead. The only thing that remains is a platform where applications reside, services like mail, replication, http, etc runs on. BUT WHAT ABOUT APPDEV?

I am not aware if there are any drag and drop IDE’s for react or angular but the power to Notes was and has always been rapid application framework. I build applications in close relation to my customer (an IT manager or a LOB manager) which does not have the time or competence to set up and gather all the specifications in front. It is a journey of implementing capabilities and discovering opportunities. I may develop a new idea within an hour or rebuild or remove another idea within another hour.

I heard nothing about this during the webinar!

Java and XPages

I still meet Domino developers who want to use XPages in the way IBM told them how to use it. Completely wrong I would say. Now that you have to chance to learn Java skills – EMBRACE IT!

Okay the other way around is sometimes a pain in the ass and complete examples are scarce but it gives you a better way to control your application and it’s behavior. After a while you get better understanding of the underlying technique and there is nothing wrong with that.

At the end it is mostly about creating, reading, updating and deleting stuff.

So for those developers I have setup a simple presentation to get a better understanding of JSF, Java and XPages:

XPages sufficient for line of business type of applications?

Hi there, currently I am following another Angular course since it seems to have become the leading development framework at work. So back to learning all the rules within Angular.

At the moment I am modernizing a Domino application with the help of XPages which:

  1. Implements Model-View-Controller architecture, mostly inspired by the guys at Pipelia since IBM never told us to do so.
  2. Is written in Java to support the MVC architecture and to have close integration with XPages runtime.
  3. Is using Expression Language wherever possible to avoid usage of SSJS.
  4. Uses the lifecycle of JSF in XPages at the max.
  5. To cover support for different devices I am using Bootstrap as front-end framework. So I miss some native behavior which I do not tend to cover-up.

So far so good and I think I have come quiet long in my project so I still dare to call it rapid application development.

The code-base has been reduced dramatically and all exotic upcoming JavaScript libraries from the early 2000 I have been able to replace with just XPages. With my latent UX skills and extending the out of the box Bootstrap I might now even call this application ‘sexy’ 🙂

I know I haven’t touched many areas discussed in the XPages community such as:

  • Websockets (I do not see a use-case yet).
  • Writing Java servlets (please pass me a demo NSF).
  • Watson services (cloud is still a sensitive topic).
  • set up micro-services with smartNSF and consume them in my Java code with an mapper library (requires changes in the environment).
  • Integration with IBM Connections.
  • Redefining my data with the help of a Graph DB.

Either I see little usage, it is not possible or there is no-one to guide me (the information is certainly not provided by the vendor).

So now back to Angular. Learning all these rules, technologies and new tools setup I was wondering what new technical options this framework will bring me at work. Reflecting on the type of customer-orders I receive I am wondering:

Is XPages not sufficient for most of your line of business apps?

Perhaps you have a though about this?

Happy development & enjoy your summer 🙂