XPages Tip: Adding a Bootstrap Class to All Labels via the Theme (Redux)  

By Brad Balassaitis | 7/20/16 6:18 AM | - | Added by Oliver Busse

In this post, I showed how to set all labels in an application to include a class to pick up Bootstrap styling so it could be applied application-wide and not require touching every label control individually.

XPages Tip: Displaying Bootstrap Applications Properly on Mobile Devices  

By Brad Balassaitis | 5/31/16 7:05 AM | - | Added by John Oldenburger

Do you have a Bootstrap navigation menu in XPages that collapses properly in a full browser but not on a mobile device? You may need to set a meta tag to force it to display properly. In this post, I’ll show the effects with and without the tag on a mobile device.

Efficiently Keeping an XPages Session Alive with JSON RPC  

By Brad Balassaitis | 5/25/16 8:04 AM | - | Added by John Oldenburger

In my last post, I talked about the difference between two reasons that a user may be prompted to login again while using an XPages application: idle session timeouts and LTPA token expiration. There are a variety of ways to programmatically prevent an browser session from timing out due to inactivity.

Browser Session Lifespan – Idle Session Timeout vs LTPA Token Expiration  

By Brad Balassaitis | 5/24/16 9:31 AM | - | Added by John Oldenburger

I recently spent some time investigating a client’s reports of unexpected behavior with the duration of browser sessions while testing an application on a test server. From time to time, they were required to login even while actively using an application.

XPages Tip: Passing an Array to a Custom Control Property  

By Brad Balassaitis | 4/12/16 5:46 AM | - | Added by John Oldenburger

Custom properties are extremely useful for modular design and reuse by sending custom values into each instance. There are a number of data types that can be selected, but no obvious way to pass an array value. In this post, I’ll describe the issue and how to work around it.

XPages Tip: Beware Server-Side code in Multiple onClientLoad Events  

By Brad Balassaitis | 4/7/16 6:03 AM | - | Added by John Oldenburger

Server-side code in onClientLoad causes a page refresh and prevents additional onClientLoad events with server-side code from running. In this post, I’ll show an example and describe how it behaves.It is extremely useful to have an event trigger that executes when the page is fully loaded.

Transferring a Bitbucket Repository  

By Brad Balassaitis | 3/22/16 6:47 AM | - | Added by John Oldenburger

I recently needed to move control of a source control repository on Bitbucket from a personal account to a company account. Fortunately, there’s a relatively easy built-in process to transfer it between accounts. In this post, I’ll show how it’s done.

Handling Errors in an XPages RPC Method  

By Brad Balassaitis | 2/17/16 6:11 AM | - | Added by Oliver Busse

The Remote Service (aka xe:jsonRPCService) is an extremely useful control in XPages because it examples client- and server-side code interaction, runs asynchronously, performs well, and is easy to use. But if you don’t handle errors well, it can fail quietly and the user may never know. In this post, I’ll show how to handle client- and server-side JavaScript errors with an RPC method.

Domino Designer Tip – RegEx Searching for a String with Single or Double Quotes  

By Brad Balassaitis | 1/27/16 8:05 AM | - | Added by John Oldenburger

If you’re looking for a string value in code throughout your application, it can sometimes be frustrating to weed through extraneous results. If you know the exact string, you can make the search more efficient by including the quotes in the search.

Fixing the Width of a Select 2 with a Long Value in a Bootstrap Form Group or Input Group  

By Brad Balassaitis | 9/17/15 7:53 AM | - | Added by John Oldenburger

If you have a Select2 control within a form-group or input-group div in a Bootstrap UI, a long value can cause the Select2 to grow to become wider than its container. In this post, I’ll show how to fix the issue. In this demo, I have a form with two columns of fields, each within a well (which makes the container size very clear).

Fixing a Bug with Dropdown Buttons in 9.0.1 FP3 and FP4  

By Brad Balassaitis | 9/8/15 1:40 AM | - | Added by Oliver Busse

If you use Dropdown Buttons in XPages on Domino 9.0.1 and a OneUI 2.x theme, there’s a bug with two recent fixpacks (FP3 and FP4) that breaks them. In this post, I’ll show what happens and share code I’ve used to fix them.

MWLUG Slides – AD114 Take Your XPages Development to the Next Level  

By Brad Balassaitis | 8/25/15 7:24 AM | - | Added by Oliver Busse

In this session at MWLUG 2015, Paul Calhoun and I dug into a number of features already available in XPages, but not as widely used. We only had time to cover half of the sections, but the full set of slides is available here.

Updating Select2 Styling to Match Bootstrap Fields  

By Brad Balassaitis | 8/11/15 8:10 AM | - | Added by John Oldenburger

Select2 is an awesome jQuery plugin to enhance the functionality of combo boxes. But if you implement it in an application with a Bootstrap UI, you’ll notice that the styling is not consistent. In this post, I’ll show how to make the styling of Select2 fields consistent with other fields on the form.

Fixing an Issue with Glyphicons with a Bootswatch Theme in XPages  

By Brad Balassaitis | 8/7/15 10:07 AM | - | Added by John Oldenburger

In this post, I'll describe an issue that I had with glyphicons when using a Bootswatch theme in XPages and how to fix it. When you use a Bootswatch theme, you do not need to separately include the original bootstrap.css file. In fact, it would be inefficient to do so, because the styling is provided by the Bootswatch CSS file.

XPages Tip: Displaying View Panel Sort Icons on a Separate Line  

By Brad Balassaitis | 4/16/15 1:54 AM | - | Added by Johnny Oldenburger

If there isn’t enough room to display both the column title and sort icons in all column headers in a view panel, you can end up with an uneven look. In this post, I’ll show how to use CSS to move the sort icons down to a new line. If you’re using a view panel with sortable columns, you will ideally not have too many columns and instead have enough screen real estate that the sort icons don’t make a difference.

XPages Tip — Adding Attributes to the HTML Tag  

By Brad Balassaitis | 4/14/15 1:56 AM | - | Added by Johnny Oldenburger

By default, the HTML tag rendered for an XPage only includes an attribute for the page language (<html lang="en">). In this post I’ll show how to add additional attributes to the HTML tag rendered for the page. You can add an attribute to the HTML tag via the attrs property, which can be found in All Properties > basics > attrs.

Gridx in XPages – 33: Adding a Column Header Menu  

By Brad Balassaitis | 3/11/15 2:22 AM | - | Added by Johnny Oldenburger

Another handy feature that you can add to Gridx is a popup menu from the column headers. In this post, I’ll show how to build a menu and add it to the grid. As always, you have to include the required gridx module (gridx.modules.HeaderMenu) and add it to the grid object’s modules list.Create a new dijit.Menu object to build the menu. You don’t need to add any resources to the page.

Gridx in XPages – 32: Editable Cell Widgets  

By Brad Balassaitis | 3/9/15 2:34 AM | - | Added by Oliver Busse

In the last couple of posts in this series, I showed how to edit data inline and save the changes. But you’re not limited to plain text fields. In this post, I’ll show how to make cells editable with additional input widgets.

XPages Tip: Component API Documentation  

By Brad Balassaitis | 2/28/15 1:46 AM | - | Added by Johnny Oldenburger

I’m sure you’ve seen the standard XPages Reference that’s part of the Domino Designer help, but you may not be aware that there’s also API documentation for XPages controls that’s available. It’s documentation of the API for the underlying Java classes and it can be very useful in letting you know what methods are available for each component.

Localization Tip: Troubleshooting “The code for the static initializer is exceeding the 65535 bytes limit”  

By Brad Balassaitis | 2/24/15 8:56 AM | - | Added by Johnny Oldenburger

I came across this error message recently: "The code for the static initializer is exceeding the 65535 bytes limit" while adding supported languages to a localized XPages application. In this post, I'll explain the cause of the error and a couple of ways to approach fixing it. Every XPage and Custom Control is boils down to a corresponding Java class behind the scenes. You can find these .java files in Packages Explorer under Local\xsp.

Gridx in XPages – 31: Saving Inline Edits  

By Brad Balassaitis | 2/10/15 8:20 AM | - | Added by Johnny Oldenburger

In the last post, I showed how to enable inling editing on a grid column. However, the changes made were only stored in the in-memory data store. In this post, I’ll show how to save the updated value to the back-end document. The process will run after the change has been made. The changes will be saved asynchronously so the user isn’t blocked while waiting for the update to happen on the server.

Gridx in XPages – 30: Getting Started with Inline Editing  

By Brad Balassaitis | 2/9/15 1:02 AM | - | Added by Johnny Oldenburger

Like other modern grids, Gridx can provide the ability for users to edit data inline. This can very handy for making quick changes without having to leave the page or load another one to edit a form. In this post, I’ll show how to get started with editing data in the grid. To make a grid column editable, you need to include two modules and set a property in the column definition.

Gridx in XPages – 29: Programmatic API for Details on Demand  

By Brad Balassaitis | 2/5/15 1:02 AM | - | Added by Johnny Oldenburger

In the last post, I showed how to add an expandible detail section to each row via Gridx’ Details on Demand feature. In this post, I’ll show how use the provided methods to programmatically expand and collapse the details, as well as how to attach event handlers to run after a detail section is opened or closed.

Slide Deck from BP105: Take Your XPages Development to the Next Level  

By Brad Balassaitis | 2/4/15 6:55 AM | - | Added by Johnny Oldenburger

This intermediate-level session is for anyone who has a little bit of XPages experience. In the session, we dug deeper into a number of features that are built into XPages and can help improve application responsiveness, streamline design with code reuse, and take more control over the output that is generated by XPages controls.

Gridx in XPages – 28: Expandable Details on Demand  

By Brad Balassaitis | 2/3/15 1:02 AM | - | Added by Johnny Oldenburger

The Details on Demand module of Gridx allows you to expand a row and show additional related information, much like the detail facet of an XPages Data View. This gives you a lot of flexibility to add custom content related to the row, but without requiring it to be visible by default. You could display more information about the current row, look up related information to display, draw a chart, provide a form, etc.

Gridx in XPages – 27: Exporting to Excel  

By Brad Balassaitis | 1/22/15 1:07 AM | - | Added by Johnny Oldenburger

No application would be complete without the ability to export all of the data to Excel. In reality, this request still comes up a lot, so it’s a very handy feature that Gridx provides the ability to export the grid data. In this post, I’ll show what the exporter module provides, the easy way to send the data in CSV format, and how to tie the process together.

Gridx in XPages – 26: Column and Row Locking  

By Brad Balassaitis | 1/21/15 1:07 AM | - | Added by Johnny Oldenburger

Another handy feature of Gridx is the ability to lock one or more columns or rows in place while you scroll through the grid. It’s similar to the Freeze Panes feature of Excel, although you can only lock one or the other at a time. In this post, I’ll show how to implement column and row locking. When you lock one or more columns, they remain in place on the left side of the grid.

Gridx in XPages – 25: Customizing the Top and Bottom Bars  

By Brad Balassaitis | 1/20/15 1:02 AM | - | Added by Johnny Oldenburger

In the last post, I showed how to add a button toolbar to the grid. In this post I’ll show a few more ways to customize the top and bottom bars. Picking up from where we left off last time with a button toolbar added to the top of the grid, we now have a grid where there’s a button toolbar left justified on the top line. The Bar contents are added in a table structure, so you can modify it to pass styling to update the layout as desired.

Gridx in XPages – 24: Adding Toolbars to the Grid Header  

By Brad Balassaitis | 1/19/15 1:08 AM | - | Added by Oliver Busse

Gridx provides the ability to add a toolbar with buttons at the top and/or bottom of the grid. In this post, I’ll show how to implement it.

Gridx in XPages – 23: Rearranging Columns with Drag and Drop  

By Brad Balassaitis | 1/15/15 1:45 AM | - | Added by Johnny Oldenburger

Gridx can provide users the ability to rearrange content via drag and drop. This can be very handy in making a grid more flexible, which can, in turn, cut down the number of views or grids that you need to provide. In this post, I’ll show how to implement column drag and drop. To rearrange columns, do the following.