Significant Rational Developer for i enhancements are being delivered at a faster rate than we've seen in a while. We wrote about the many new features introduced by version 9.6 back in January. We even did a short video to demonstrate some of our favorites. Since then, there have been more new releases and even more new features have arrived.
In this article, we want to concentrate on just one new feature that hasn't received the attention it deserves—some major enhancements to the Object Table. You may have heard something about the PDM perspective (and this new Object Table is a major component of that) but the Object Table is also part of the default Remote System Explorer perspective as well. And if you think of these new features as being only for RDi newbies who don't want to let go of PDM, then you should take a closer look.
RDi's Object Table has been around from the very beginning—all the way back to its WDSC incarnation. If you’re wondering "What's an Object Table?" you're not alone. We run into many RDi users who’ve never used it. If you feel you really know the Object Table already, you may want to skip ahead to the "New and Improved" section. But we should warn you that we actually learned a couple of things about the "classic" Object Table when writing this article that we hadn't realized before. For the rest of you, a brief introduction is in order.
RDi's Original Object Table Primer
Figure 1 is a picture of the older style Object Table, showing a list of objects in a library. It can contain a list of libraries, objects or members. In that sense, its content overlaps information from the Remote Systems tree view. However, as you can see, you get more information than just the name and type of library/object/member. Furthermore, you can sort any of the columns by clicking on the table heading. This can help you find things more quickly.
Figure 1: An older style object table
There were originally two primary ways to populate the Object Table. Our usual way was to right-click on a list of items in the Remote Systems view—it could be the name of a library or a source file or a custom named filter. From the context menu, choose "Show in table."
Alternatively, there's a "Work with" option from the Object Table's view menu, which is accessed from the menu icon in the upper right corner as highlighted in Figure 1.
One additional way to get items into the list is to link the Object Table to the Remote systems view. In that case, every time you click on something in Remote Systems that represents a list of libraries, objects or members, the Object Table is automatically populated for that list as well. This feature is not enabled by default. If you want to give it a try, it is controlled by the "Lock/Unlock" icon in the toolbar as highlighted in Figure 1.
Once you have a list of items in the table, you can interact with them in much the same way as the list of items in Remote Systems. For example, double click on a library to see a list of its objects. Double clicking on a source member will open the member in the editor.
You can customize which columns you see in the table. From the view menu, you can use the "Show columns >" option, which allows you to choose between seeing the default columns, all columns, or a customized list of columns. The list is customized via Preferences, which can be accessed directly from that view menu. We particularly find the columns for date created and date last modified useful.
Figure 2 below shows an Object Table with a list of members, which we populated via a double click on the QRPGLESRC source file name from the list shown in Figure 1. In this case, we asked to see all available columns of information for the members (using the view menu) and we clicked on the "Last modified" column twice to see the list sorted in descending order of
You can see in Figure 2 that there's a command line near the bottom. It can be handy but also takes up a lot of real estate, so it can be easily hidden from view using the twisty (i.e., the icon in the upper left corner of the command dialog as highlighted in Figure 2). It's also good to know that you can go backward to previously viewed lists. And unlike PDM, you can also go forward again without having to re-type an option. You do this using the forward and back toolbar buttons. Plus, the "Work with" view menu option shows a list of previously visited lists so you can jump to any previous table any time.
The classic Object Table has more talents than this but hopefully this gives you a good idea of its primary features. Prior to the recent enhancements we didn't use Object Table often. We originally used it mostly to see the text for objects and members, but once we could see them directly in the Remote Systems view courtesy of the iSphere plug-in we no longer needed the Object Table for the purpose. However, because of all the new features we're already using the new version much more often.
The New and Improved Object Table
What's new and improved about it? Quite a lot! The new features have been described by us and others as providing PDM affinity to make the transition between PDM and RDi easier. But don't think that just because you're a dyed-in-the-wool RDi user who loves Remote System Explorer (RSE) that you won't find these new features interesting. They have reinvented the Object Table and have given it a new lease on life.
Take a look at an example of the new object table in Figure 3.
Figure 3: An example of the new object table.
The most obvious new PDM-like thing you'll notice here is an option column on the left. You can use some (but not all) of the PDM options you've used in the past, including your own user-defined PDM options, provided you do a little extra work to copy/paste them to create RDi User Actions first. In the figure you can see that we've entered "My LIBL Action" to invoke our User Action. While we don't plan on using long names like this all the time, it is nice to be freed from the two-character limit of PDM. If you were looking at a list of objects in a library, you could put a 12 next to a source file and the table would be populated with a list of members in that file. Then you could put a 2 next to a member to open it for edit or a 5 to open it for browse.
The highlighted box on the right is known as a Quick Filter dialog. You can populate your Object Table by specifying similar options to those you would see if you took the option to Work with Libraries/Objects/Members with PDM. Here the choice is controlled by "Mode" in the Quick Filter dialog. Select the appropriate Mode, enter the filer criteria and press "Apply" to fill the table with the specified list of items. But that is just the beginning of the ways this handy new feature can be used.
Notice the "Named filter" box near the bottom of the Quick Filter dialog? This can be used in two ways. First, you can enter (or find in the pulldown list) the name of an existing RSE filter and then press "Load" to populate your table. Second, you can save the filtering criteria of the current content in the Object Table by keying a name and pressing "Save." This will create a new named RSE filter from the information. That new filter will then also appear in your Remote Systems view along with your other named filters.
We find this method of creating new RSE filters much faster and easier than the old method. Likewise it's often faster to populate the Object Table from an existing filter compared to right clicking on the filter in Remote Systems and choosing the Show in Table option.
Looking at Figure 3 above, notice that the Quick Filter box also has an option to "Subset" the list. That option further subsets the list of items already in the table—it doesn’t go back to the host to retrieve information. Therefore, subsetting is virtually instantaneous. We now create filters that are less specific than we used to do because we have this ability to quickly subset the filter's content.
More to Come
Many more new features have been added to RDi this year. Be on the lookout for future articles on topics such as the new PDM perspective, the Edit/Browse toggle, and some small, but nice improvements to features such as Block Nesting, Hover and Annotations.