Archive | Domino Designer RSS for this section

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

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. However, if you’re working on someone else’s (because you would never do that) application where there’s inconsistent usage of single and double quotes throughout the code, you either have to search twice or you may miss some results. In this post, I’ll show how to do a single search to find all instances in single or double quotes.

Example

Here’s a bad example that I can easily use as a straw man to illustrate the point.

I created an empty NSF and added two script libraries.

One has this line:
var x = 'doc';

The other has this line:
var x = "doc";

A search for doc (without quotes) brings back 13 results because it’s part of a bunch of words. And this is in an otherwise empty NSF.

RegexSearch_A

In order to narrow the results, I can limit the search by wrapping the search term in quotes to find only instances of the full string. In this example, I searched for "doc"

RegexSearch_B_DocDblQuotes

This search only found the instance that used double quotes, but it misses the other instance in single quotes.

RegEx to the Rescue

Fortunately, Eclipse search can handle regular expressions. (H/T to Jessie Gallagher for that tip awhile back.)

Just check the ‘Regular expression’ box and use regex syntax for finding one of multiple characters (square brackets) to build a search string that will find the value with either single or double quotes.

["']doc["']

RegEx_SearchBox

And now I get the results I was looking for, including the term in both single and double quotes.

RegexSearch_C_BothQuotes

Note: If you only know part of the term, you can use wildcards or just include the quote search on one end of the term.

XPages Tip: Select a Working Set in Package Explorer (and Navigator)

If you’ve been using Domino Designer for any length of time, you’re likely aware that you can group your applications into Working Sets in the Applications view. But did you know that you can do the same thing in the Package Explorer and Navigator views?

Working Sets in the Applications View

Here’s what it looks like to select a working set in the Applications view in DDE:

Blog - Package Explorer - 1

You can choose one or select the Multiple... option to select multiple working sets.

Working Sets in the Package Explorer View

Until recently, I didn’t realize that I could make a similar selection in the Package Explorer view. I always just saw it as annoying that I had to dig through every NSF I’ve worked on until I looked around for this option.

If you click on the icon with 3 horizontal gray lines, you get this drop-down:

Blog - Package Explorer - 2 - None Selected

You can select a single working set or choose the magic Window Working Set option to have the Package Explorer databases automatically updated based on your working set selection in the Applications view.

Blog - Package Explorer - 3 - Window Working Set Selected

If you want to disable this option and show them all, you can select Deselect Working Set from the menu.

Working Sets in the Navigator View

Interestingly, you can also choose a working set in the Navigator view, but the options are more limited; there’s no option to link it up with the current working set.

Blog - Package Explorer - 4 - Navigator

Monitor Source Control Synchronization with the Console View in DDE

If you’d like to monitor the synchronization of an application with the local source control repository, you can use the Console view in Domino Designer. In this post, I’ll show different kinds of helpful information that the view displays.

Console View

If you’re using source control, the Console view displays information about the synchronization of design elements between the NSF and the (source control) on-disk repository.

This can be helpful to see what’s going on if your DDE client is responding slowly (and may help you decide whether you want to enable or disable automatic synchronization). It may also be helpful in tracking down the creation of the dreaded .orig files.

Opening the Console View

Select Window > Show eclipse views > Other...

Blog - Console Sync - Add 1

Under General, select Console

Blog - Console Sync - Add 2

Console Output

When you open an application in DDE, you’ll see the console start the synchronization process. (There’s even a misspelling to keep the grammar cops on alert.)

Console - Show initial synch

When you update an existing design element, you see that it exports the change to the on-disk repository (for the .xsp and related .xsp-config file).

Console - Show Element Modified

When you add a new design element, it creates the .xsp, .xsp.metadata, and .xsp-config files in the on-disk repository.

Console - Show Element Added

Automatic Synchronization

If you have automatic synchronization enabled, it will happen when the application is built. (If you have Build Automatically enabled, it will happen automatically. Otherwise, it’ll happen when you build the application.)

These two properties in the Domino Designer preferences determine whether synchronization is automatic:
Console - DDE Prefs - Auto Sync

 

Simple Sync Conflicts

If you’ve seen a popup like this, then there is a synchronization conflict:

Blog - Console Sync Conflict

Here’s the corresponding message in the Console view:

Nsf file AppProperties/database.properties and disk file AppProperties/database.properties both have been updated since last sync or are never synced:Wed Aug 20 20:17:36 EDT 2014

It indicates a conflict and it’s making it easy for you to choose how to resolve it. You can also see evidence of this in the Console view. I tend to see this often with the database.properties (because the time stamps are always being modified). This type of popup is displayed when you synchronize with source control before opening the application in DDE. (If you modify the same element as someone else, conflicts will show up differently when you try to commit changes within your source control plugin or application.)

One View – Multiple Uses

The Console view is displayed as Console (DDE Sync Console) when displaying source control sync information. You can also switch it to be used as a Java stack trace console by via the Display Selected Console icon.

XPages Tip: Adding Custom Controls to a Separate Drawer in the Controls Palette

When looking at the Controls Palette in Domino Designer, there is a ‘Custom Controls’ drawer that is automatically populated with all custom controls in the current application. In this post, I’ll show how you can better organize your custom controls by displaying them in additional drawers.

The Custom Controls Drawer

Here’s an example: in this test database I have 5 custom controls. They are automatically added to the ‘Custom Controls’ drawer in the Controls Palette.

ControlsPalette_1_Default

Creating a New Drawer in the Controls Palette

If you want to organize one or more custom controls into a separate drawer, you can set the Category property on the custom control’s properties panel.

ControlsPalette_2_CustomDrawer

Now, this custom control will be displayed separately in the controls palette.

ControlsPalette_3_CustomDrawerInPalette

If you have a large application with a lot of elements, this feature can be helpful in keeping groups of controls together. One great way to use it is to group related controls that are all required together to implement a feature so it’s easy to tell what you need to add to a page in order to make it work.