Browsers and Inspectors

XOTclIDE was designed as a set of browsers that let you investigate your system in the way that you need for your task. Other IDEs offer one all purpose single window to access all functions which tend to be overloaded and complex. In software development you have many different tasks that need special views into your system. You need different views and functions for programming, debugging, version management, deployment, quality management, code review. These views should be similar enough to reuse user knowledge and offer consistent handling. Of course some browsers (for example the Component Browser) will be used more often and should have more functionality. The right balance must be found between the two extremes - either one view with overloaded function or many views with only a few functions. This section presents all XOTclIDE browsers sorted by main programming task.

In XOTclIDE we distinguish between browsers and inspectors. A Browser offers a view on code definition (classes, methods and other). Inspectors allow the user to navigate through Tcl Interpreter data space. They can show the state of XOTcl Objects and global variables.

All browsers in XOTclIDE are built on the same principles. All browsers are divided (composed) into areas (panes). There can be many list areas (list-views) and one or more edit areas. Each view area has a corresponding pop-down menu in the main menu. Pop-up menus with the most used menu items let you reach needed functions in the place you need them. Many browser subcomponents (sub views) are reused in different browser windows with the same functionality.

Almost all component windows have a special System menu that offers access for launching other browsers and reaching main IDE functions, like settings.

In XOTclIDE you can open one browser type several times. They work independently. Normally you will use more than one component browser to see different code at the same time. You can write a method call in one browser and open another browser to see the called method body.

[Warning]Warning

XOTclIDE Browsers use a passive “model view controller”. If two browsers show the same code and in one of them the code is changed the changes are not updated automatically in the other view (browser). You can force the view to be updated by double-clicking on the list-view item.

Writing Source

Component Browser

Probably the most used browser. It is suitable for viewing and changing components, classes (or object, Tcl-Proc-Groups), categories, procs or methods. With this browser you have access to all the source code in your system (definition space). The browser also has functions to search after a specific class in your system.

Heritage Browser

This browser is suitable for examining and developing class hierarchies. The XOTcl language provides multiple inheritance - one class can have many parent classes. To visualize this relationship the parent classes are represented as leaves of a tree in this view. To see the inheritance of a class select it in the Component Browser and use menu Class->Heritage Browser. You can also launch this browser with the System->Heritage Browser In this case you must specify (by Name or choice-list) the class name you want to view.

Children Browser

This browser is suitable for examining and developing class hierarchies. Unlike the Heritage Browser in this view the children of a class are shown. To see the descendants of a class select the Component Browser and use menu Class->Children Browser.

Method List Browser

This Browser is launched as a result of searching on method bodies. Menu Method->Search ....

Refactoring

Refactoring is a normal part of developing. We learn every day we develop. Refactoring allows transferring new knowledge to old code, and adapting old code for new purposes.

The main condition for successful refactoring is quick understanding of old code that was probably written by another people. Code reading skills are important in this point. Since methods in object oriented system are relatively short, the main question is to know and find the context of their usage. To view the definition of a method that you see in a method body select the method's name in the editor and use menu Method->Search Implementors. If you want to know where a method is called from select it in Methods view and use menu Method->Search Senders. Also the function “Browse it” in Menu Method->Search Implementors (Control-r) is very useful in finding symbol definitions. Just select a symbol (word) in any editor area and invoke it from the pop-up menu. The function first searches for a class or object name equal to the selected text, then for a method or procedure name.

The following refactoring functions are possible in XOTclIDE

Rename Component

Menu Component->Rename

Moving Classes to Another Component

Menu Class->Move to Component

Coping Classes/Objects

Menu Class->Copy Class/Object This function can be also used to rename a class. Just copy the class to a new name and delete the old class.

Extract method body parts

Menu Method->Selection to new method This task is normally done if the method becomes too long and you want to divide it into smaller methods. This function cannot resolve the correct variable definitions and functions parameters.

Rename method name

There is no direct function for it. Select the method, then in the editor type a new name in method body, and then accept the change in the editor. The new method will be added. The old one must be removed with the delete function.

Debugging running Systems

Debugger

This is a pure Tcl debugger. Call “::xotcl::Object halt” in the method body.

Object Inspector

In the Object Inspector you can view and change variables of an XOTcl object. It also has method lists that can be used to invoke methods on objects. To launch the object inspector Class->Inspect All Instances You can also call method inspect on every XOTcl object.

Version Control

If you start XOTclIDE with version control the browsers offer additional functions for managing version control. The component, class and method areas (views) have an additional sub menu Version Control

Configuration Management and Deploying

Configuration Map Browser

Launch from the menu System->Configuration Map Browser

Configuration Browser

Available only if you started XOTclIDE with Version Control System->Version Control->Configuration Browser

Special Browsers

Transcript

This is a main singleton edit area that is either used to display system messages (per command: Transcript message "Hallo World") or to evaluate short Tcl scripts.

Workspace

It is a simple edit area that can be used to evaluate Tcl scripts. You can load text files into a workspace or save the contents into a text file.

Global Variable Inspector

Access from the menu System->Global Vars Inspector It can be used to inspect all global variables, or namespace variables.