Integration with Other INT Widgets
Introduction
EditTable is a subclass of other INT widgets. For this reason, it automatically
inherits the features of any other INT widgets that belong to the same general
class. The following diagram shows the hierarchy of INT widgets in the same
class as EditTable.

Figure 14: Overall Widget Hierarchy
As part of the overall INT product family, EditTable offers integration with
the other INT widgets in this metaclass. The other widgets are summarized below:
Hardcopy Output and Coordinate Mapping (XintCompBase)
The INT CompBase widget gives all other widgets in the metaclass the ability
to produce hardcopy output and perform coordinate system mapping between the
widget's coordinate system and the application's coordinate system.
Enhanced Scrolling (XintScroll)
The Scroll widget is a container widget that scrolls an EditTable widget in
such a way that its annotation remains visible during scrolling. A Scroll
widget combines:
- One or two ScrollBar widgets.
- A viewport onto a portion of the scrolled child.
- Drawing area widgets for displaying the scrolled child widget's title, horizontal annotation and vertical annotation.
The application has control over which of the Scroll widget's components are
displayed and where they are located. Also, several Scroll widgets can share
one or both scrollbars to allow for synchronous scrolling of multiple tables.
Graphic objects (XintGraphic)
The XintGraphic object class is the base class that defines the basic resources
and methods for displaying and editing graphic objects. Graphic objects can
only be displayed in a widget that is a subclass of the XintEditObject widget
class. At the lowest level, the graphic object subclasses include:
- XintLine for drawing straight lines, with or without arrow heads.
- XintRectangle for drawing rectangular objects, which can contain other objects such as text objects and circles.
- XintTextObj for inserting a character string that can span multiple lines within a rectangular area.
- XintOval object for drawing circles or ellipses, with coordinates specified in relation to XintRectangle.
- XintPolyline object for drawing polylines or polygons.
The XintGraphic class defines all the basic methods that apply to objects,
including methods to display, select, move and resize an object. Additional
methods include group, ungroup, cut, paste, and file import/export. INT Graphic
resources define object properties such as fill pattern, color, line thickness
and line style.

Figure 15: Hierarchy for Graphic Objects
Graphic Object Editing, Storage, and Retrieval (XintEditObject)
An optional INT product called the Object Editor Library (XintEditObject) lets
users draw graphic objects such as text, lines, circles, arcs, or arrows and
superimpose them directly on a table. For example, a user may want to draw
attention to a special group of data in a report or presentation.

Figure 16: Example of Graphics Superimposed on Table
The EditObject widget provides support for displaying, editing, and
storing/retrieving graphic objects through a comprehensive set of actions,
callbacks and convenience functions.
Editing capabilities include the ability to select one or more objects and to
move, size or shape objects. A set of convenience functions lets you save and
restore objects to or from an ASCII file. An internal clipboard mechanism
provides cut and paste functionality inside an application or between two
different applications that use EditObject widgets (or widgets from a class
that has the XintEditObject as an ancestor).
Graphics can be saved to a separate file for later retrieval and use in the
table. When a component is removed from a table, any graphic object tied to
that component is removed also. However, the graphic object still exists and
will reappear when the removed element is restored.
ChartObject Library
INT ChartObject is a library of Graphic objects based on the architecture
described above. This package allows the application and the end-user to
produce all kinds of 2D and 3D charts. There is a close integration between the
EditTable and the Chart object library. An EditTable widget and a ChartObject
can be dynamically linked. It is also possible to drag and drop cells from an
EditTable widget into a ChartObject. See the ChartObject documentation for more
information on the INT ChartObject and Graphic libraries.