iTools Object Model Diagram
The following figure shows inheritance among the iTools component object classes that define the base functionality of all iTools. The diagram is intended to provide a visual overview of the structure of the iTools, and to provide a quick indication of the methods and properties available to objects of a given class. See the IDL Reference Guide for details regarding the available properties and methods of these components.
Every iTool is constructed using the hierarchy of predefined and documented object classes shown in the previous figure. Each of these predefined (as opposed to user-defined) object classes are available to use or customize in your iTool application. However, there is no need to create and instantiate the entire hierarchy when creating a custom iTool object.
Launching an iTool application creates instances of objects in the iTools class hierarchy, as well as others subclassed from the predefined classes. Developing an application that subclasses from the IDLitToolBase class automatically includes the functionality of parent object classes, such as IDLitTool, and IDLitIMessaging. This will also include and register manipulator and operation objects that are common among the predefined iTools. Unwanted items can be unregistered. Other predefined objects are instantiated as needed. For example, an iTool application may be started without a data argument. Only when data is imported into the tool is a predefined or custom IDLitVisualization object created to contain the data. For instance, an IDLitVisPlot object is instantiated when data is imported into the iPlot tool, which may or may not be when the tool is initiated.
Once the hierarchy of component objects have been instantiated, there is no need to maintain a long list of object references to access and manipulate individual objects. Each component is assigned an identifier when it is instantiated; an identifier is a simple string that can be used to access an object (such as an IDLItVisPlot object) in order to change properties, apply operations, or make other modifications. See iTool Object Identifiers for details.
The following sections further describe the chain of inheritance followed by the objects that make up a particular iTool. The classes listed below are subclassed from the iTool object classes shown in the iTools Object Model Diagram. With the exception of the atomic graphic objects (listed in Atomic Graphic Objects), these subclasses are not documented and are subject to change. While we encourage you to inspect these undocumented subclasses and use them as examples when creating your own subclasses, we discourage you from subclassing from them directly.
Note
ITT Visual Information Solutions may add, change, or remove undocumented subclasses of the documented iTools classes at any time. The following lists may not exactly match the set of subclasses shipped with any particular version of IDL.
Except for the atomic graphic objects, all of the classes listed below are written in the IDL language. Their definitions can be found in the lib/itools/components subdirectory of your IDL installation. See About the iTools Code Base for additional information about iTools code and the differences between documented and undocumented classes.
IDLitVisualization Classes
The IDLitVisualization class provides methods for adding, deleting, and grouping objects within a visualization. The following predefined classes contain graphic objects and other visualizations. For example, the IDLitVisPlot is a container for plot, symbol, and selection visual objects as well as other items that as a group, provide the complete visual representation of the plot data. See Creating a Visualization for details.
IDLitTool Classes
The IDLitTool class provides the iTools system infrastructure used by every iTool. All of the standard iTools are based on a subclass of IDLitTool called IDLitToolbase. The IDLitToolbase class provides all of the base functionality found in the standard iTools including menu items, file readers and writers, operations, and manipulators. See Subclassing from the IDLitToolbase Class for more information on included functionality. See the iTool User's Guide for information on using individual iTools.
IDLitData Classes
The IDLitData class stores core IDL data types, gets and sets data, and receives updates regarding data changes. The predefined IDLitData classes listed in the following table are designed to hold data which can then be displayed in an iTool. See Data Management for details.
IDLitReader Classes
The IDLitReader class contains predefined file readers that determine the type of data being accessed, and create an IDLitData object to contain the data. See Creating a File Reader for details on creating and using file readers.
IDLitWriter Classes
The IDLitWriter class contains predefined file writers that export graphics or data to a file of a specified type. See Creating a File Writer for details on creating and using file writers.
IDLitOperation Classes
The IDLitOperation class defines an action on data, or a change to an iTool visualization. Transaction recording provides undo/redo capabilities. See Creating an Operation for information on creating a new operation or using predefined operations.
Note
There are many additional operations (named with the prefix "idlitop") in the lib\itools\components subdirectory of your IDL installation.
IDLitManipulatorContainer Classes
The IDLitManipulatorContainer class provides a container for a group of manipulators, among which an active manipulator may be set. The following manipulator containers are predefined. The manipulators held within each predefined container are described in Predefined iTool Manipulators.
IDLitManipulator Classes
The IDLitManipulator class allows the user to select and interact with a visualization through mouse movements and keyboard events. See Creating a Manipulator for information on the following predefined manipulators and creating a new manipulator.
Atomic Graphic Objects
In addition to IDLgrModel and IDLgrWindow objects shown in the iTools Object Model Diagram, the following IDL objects inherit from IDLitComponent: