Practical RDPi: Fixing the Open Member Dialog Feature

Development Tools
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

Step-by-step instructions show you how to restore one of the more useful capabilities of the Remote Systems Explorer, the Open Member dialog.


The Open Member dialog is one of the most useful shortcuts in the Remote Systems Explorer tooling of Rational Developer for Power (RDP). However, when you combine RDP with other Rational tools—for example, Rational Business Developer (RBD)—sometimes that simple shortcut becomes a bit more complex to execute. This article shows you how to return that capability to its original ease of use.

Shortcuts to Productivity

Graphical IDEs often have a tough time bridging the gap between the novice and the power user. Making a user interface intuitive enough for first-timers to easily navigate often means burying more advanced options under multiple layers of menus or in context-sensitive locations that aren't immediately obvious. While dialogs and wizards are powerful devices to get things done, getting to a specific dialog is sometimes a problem. Multiple selections or unnecessary mouse movement will drive experts to distraction, especially users who are used to the pure speed of command line execution. Even a sequence as seemingly simple as mouse, right-click, click is enough to make some green-screen power users gnash their teeth in frustration.


And while this problem has existed pretty much since the first GUI screen, so has an answer: the keyboard shortcut. The concept has many names and variations: "hot-key" and "key action" are just a couple of common terms. Pretty much any key on the keyboard can be used to trigger a shortcut, and sometimes you don't even need to press a key; some IDEs allow mouse events to be configured as shortcuts, as I pointed out in my article "Supercharge Your Editor." Add the ability to use Control, Alt, Shift, and combinations of those modifiers keys, and it would seem that more shortcuts exist than you could possibly use. Unfortunately, that's not the case, especially with an IDE like Eclipse. Eclipse allows you to combine different products, each of which might decide to use the same shortcut; this can lead to conflicts. In our particular case, the shortcut used for Open Member in RDP conflicts with a different command in RBD. Luckily, the RBD command isn't one we traditional IBM i programmers rely on, so we're going to disable it. First, though, let's see the problem in detail.

Opening a Member


Figure 1: This is the fast and flexible Open Member in Editor dialog (whose shortcut is Ctrl+Shift+A).


Opening a member can be done without a shortcut. You move your mouse onto the Objects container in the Remote System Explorer, right-click to bring up the context menu, and select the Open Member option, and up comes the dialog in Figure 1. However, this is a perfect example of how sometimes menu-driven interfaces aren't exactly the most productive. To me, it would make sense to have that same option available at various places in the tree, especially on a source file. Depending on which object you clicked on to reach the dialog, the IDE would plug in values such as library and file name. But that's not how the menu is set up; if you want to open a member through a menu option, you have only one spot on the entire connection from which to launch the dialog.


That's one reason I really love the shortcut. Ctrl+Shift+A immediately brings up the same dialog, no matter where your cursor is (well, the IDE needs to have focus and I think you need to be in either the RSE view or a source editor, but the point is that you don't need to mouse around and find a particular container in the RSE tree). It's fast and easy. Right up until you add RBD into the mix.



Figure 2: This is the result of Ctrl+Shift+A after you've installed both RDP and RBD into the same workbench.


Figure 2 shows what happens after you've combined RBD and RDP into a single workbench. The problem is that RBD also uses Ctrl+Shift+A as the shortcut for the command "Open Plug-in Artifact." It's not necessary to even understand what this command does; it's enough to know that it uses the same shortcut key, so when you hit Ctrl+Shift+A, the IDE realizes you could have meant one of two things and politely asks you to tell it which one. This little dialog shows up in the lower-right corner of the IDE, and sometimes you might not even notice it; you just realize that Ctrl+Shift+A doesn't work anymore. And even if you do notice the dialog, you have to click on the line that says "Open a member..." so now it's just about as bad as the original "mouse, right-click, click" maneuver that the shortcut alleviated. So let's fix this, shall we?

The Ties That Bind (and Unbind)

Let me tell you the ending first: once you execute these commands, the Open Plug-in Artifact command will no longer have a shortcut key. If you use this command a lot, you may not want to follow along here. But if, like me, you primarily use the tools for IBM i development and you've never had an opportunity to open an artifact, then I'm confident that this will be an acceptable tradeoff. So let's get to it. The rest of the article moves right along. The dialog in Figure 2 tells you to hit Ctrl+Shift+L to get to the preference page. Do that.



Figure 3: This Preferences page is displayed when you hit Ctrl+Shift+L on the previous dialog. (Click images to enlarge.)


Figure 3 shows the Preferences page that is displayed. Basically, this particular page (which can be navigated to at page Keys under category General) shows all the keyboard shortcuts currently registered by the various components of this workbench. It is automatically positioned to the Open Plug-in Artifact, and you can see the various properties of the shortcut: the key (Ctrl+Shift+A), where it's available, and most importantly the fact that there is a conflict. The conflict is what causes the dialog in Figure 2 to appear, and our goal is to resolve that conflict. To do that, we first unbind the Ctrl+Shift+A key. Unfortunately, Eclipse provides no way to unbind one command at a time. When you unbind the key, it unbinds all actions, which means we'll need to execute one more step to rebind the command key to the desired action. But Figure 3 shows the unbind step. Just hit the Unbind Command button.



Figure 4: Use this dialog to filter the commands and then rebind Ctrl+Shift+A to Open member.


Almost done. All you have to do is rebind Ctrl+Shift+A to Open member. Figure 4 shows the final screen of that procedure, but the intermediate steps are pretty straightforward. First you have to find the command. Open the filter field at the top of the dialog type "member" and the list will be reduced to a small number of commands that contain the word "member." Look for "Open a member in Remote System LPEX Editor" and click on that line (when you do, the Binding, When, and User fields will all be blank). Then position the cursor in the Binding field and press the Ctrl+Shift+A combination. Hit Apply to apply the change, and then hit OK to dismiss the dialog. That's what is shown in Figure 4, the last OK.

Productive Again!

You can hit Ctrl+Shift+A in most IBM i-related places and the Open Member dialog will appear. If it does not, you may have forgotten to hit the Apply button before pressing OK in Figure 4. I do that all the time. But if you've followed this procedure correctly, you should once again be productive with the Open Member dialog!

as/400, os/400, iseries, system i, i5/os, ibm i, power systems, 6.1, 7.1, V7,