The Call Hierarchy
OK, on to the tip. The feature in question is the "call hierarchy," and it's a view that is not available in any of the standard WDSC perspectives. (If the terms "view" and "perspective" are foreign to you, this tip may be a bit advanced, but just a little work with WDSC will clear things up. To start, go into the Help menu and select Help Contents. A help window will come up with topics on the left side. Expand Navigating and customizing the workbench, then Workbench basics, then Concepts, and finally select Perspectives.)
This view can be opened using the standard technique of selecting Window, Show View, Other... from the main menu and then expanding the Java category and selecting the Call Hierarchy view. Another way is to highlight a method name anywhere in your Java source code and then select Navigate, Open Call Hierarchy from the main menu (the keyboard shortcut is Ctrl-Alt-H). Once it's open, your workbench will look like Figure 1 (without the red rectangles and circled letters).
Figure 1: This is the workbench with the Call Hierarchy view displayed. (Click images to enlarge.)
In Figure 1, I've marked three sections of the screen. Section A is the standard editing window (if you look closely, I'm using it for both Java and RPG editing, which is yet another reason I love WDSC). Section B shows the call hierarchy for the method execute in the class com.pbd.jdspf.JdspfProxyImpl. You can display either the caller hierarchy or the callee hierarchy; this is the caller hierarchy, which shows the places where a procedure is called. As you can see, execute is called by processMessage, which in turn is called by run, which is called by receiveRequest. Note, though, that receiveRequest is called by two methods, sendToServer and startProgram. And by expanding each of those entries, I can continue up the chain.
The other feature of Section B is that if I double-click on one of the lines, as I show in Figure 1, the line is highlighted and the source for that class is opened with the editor positioned to the call. Note: If the source is already opened, you only have to single-click on the line.
Section C shows the select line. In this case, it shows the line number in the class com.pbd.jdspf.ScJdspfServlet where the run method is called. If the class called the method more than once, you would see multiple lines in Section C. Section C also has a toolbar with multiple options. Of special significance are the two tool buttons shown in Figure 2.
Figure 2: These two tool buttons switch between caller and callee hierarchies.
The left button sets you to caller hierarchy, the right one to callee hierarchy. You can also change the orientation of the panes and set the scope of the search (which can be very important with large projects).
I noted that many RPG programmers would recognize this concept; it's similar to the functionality available in cross-referencing products like Pathfinder's Hawkeye and ASC's ABSTRACT. Unfortunately, I also noted that today the capability exists only in Java. It would be nice if the same functionality existed in the base WDSC product, and if you agree with me, you might want to let the WDSC team know.