Browsers and Inspectors

XOTclIDE was designed as s set of browsers that let you investigate your system in the way that you need for your task. In software developing you have to do many different tasks that need special views on you system. In opposite to another IDEs XOTclIDE do not offer one all purpose single window to access all functions that tend to be overloaded and complex. You need another views and functions for programming, debugging, version management, deployment, quality management, code review. Anyway these browsers should be similar enough to reuse user knowledge and offer consistent handling. Of course some of these browsers (for example Component Browser) will be often used and have more functionality. The right way must be found between two extreme. View with overloaded function or many views with only a few functions. This section present all browser sorted by main programmer tasks.

In XOTclIDE we can distinguish between browsers and inspectors. Browser offer view on code definition (classes, methods and other). Inspectors allow to navigate through Tcl Interpreter date space. The can show state of XOTcl Objects and all global variables.

All browser in XOTclIDE are built after same the principle. All browser are divided (composed) into areas (panes). There can be many list areas (list-views) and also many (most only one) edit area. All view areas have corresponding pop-down menu (main menu) and also pop-up menu but only with most used menu items. So you can reach the needed function from pop-up menu in the place you need it. Many browser subcomponents (sub views) are reused in different browsers and have the same functionality.

Almost all components have special System menu that offers access for lunching another browsers types and main IDE functions like settings.

In XOTclIDE you can open one browser type several times. They work independent. So in normal case you will use more than one component browser to see different code in same time. If you code a program function call you can open another browser to see the called method body.

Warning

XOTclIDE Browsers use so called passive "model view controller". If two browser show the same code and in the one of them the code will be changed the changes are not updated automatically in the another view (browser). You can force updating the view by double-click on list-view item.

Writing Source

Component Browser

The probably most used browser. It is suitable to view and changes components, classes (or object, Tcl-Proc-Groups) , categories , proc or methods. With this browser you have access to every source code in your system (definition space). There are also functions to search after specific class in system.

Heritage Browser

This browser is suitable to browse and develop class heritages. XOTcl provide multi heritage. Therefore one class can have many parents classes. To visualize this relationship the parents classes are represented as leaves of one tree in this view. To see the heritage of one class select in Component Browser and use menu Class->Heritage Browser. You can also lunch this browser per System->Heritage Browser In this case you must specify (per Name or chose-list) the class name you want to view.

Children Browser

This browser is suitable to browse and develop class heritages. In opposite to Heritage Browser in this view the children of one class are shown. To see the heritage of one class select in Component Browser and use menu Class->Children Browser.

Method List Browser

This Browser is lunched as result of searching operation on methods body. Menu Method->Search ....

Refactoring

Refactoring is normal part of developing. We learn every day we develop. Refactoring is the possibility to transfer new knowledge to old code. Also adapting old code for new purposes is a task of refactoring.

The main condition for successful refactoring are quick understand of old code that was probably written by another people. The code reading skills are important in this point. Methods in object oriented system are relative short. The main question is to know and find the context of their usage. To access the definition of one method (that you see in method body) select it in editor and use menu Method->Search Implementors. If you want to know where one method is called form select it in Methods view and use menu Method->Search Implementors. Also the function "Browse it" in Menu Method->Search Implementors (Control-r) is very usefull to find symbol definition. Just select a symbol (world) in any editor area and invoke it. The function search first a class or object name equal to selected text after it a method or procedure name.

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 class. Just copy it and delete the old one.

Extract method body parts

Menu Method->Selection to new method This task is normally done if the method become too long and you want to divide it in smaller methods. This functions can not resolve the correct variable definitions and functions parameters

Rename method name

There is not direct function for it. Just select this method and type in editor new name in method body and then accept the change it in editor. The new method will be added but the old one you must remove with normal delete function.

Debugging running Systems

Debugger

This is pure Tcl debugger. Place the method call "[self] inspect" in the method body. There are no breakpoint possible.

Extended Debugger

This debugger requires atkdebugger extension. You must load it per menu System->Extended Debugger->Load Debugger

Object Inspector

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

Version Control

If you start XOTclIDE with version control the browsers offer additional function for managing version control. The component, classes and methods areas (views) have additional sub menu Version Control

Configuration Management and Deploying

Configuration Map Browser

Lunch per menu System->Configuration Map Browser

Configuration Browser

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

Special Browsers

Transcript

This is main singleton edit area that is used to display system messages (per command: Transcript message "Hallo World") or is normal edit area and can be used to evaluate short Tcl scripts

Workspace

It is simple edit area that can be used to evaluate Tcl scripts. You can load text files into workspace or safe their content into file system.

Global Variable Inspector

Access per menu System->Global Vars Inspector It can be used to inspect all global defined variables (also in sub namespaces)