How the 97sbde2ht Demo Was Produced
This file summarizes the steps required to produce this demonstration:
These diagrams are Structure Chart diagrams for the static nesting levels
of state-based action code. Each canvas drawing operation contains one switch
statement on a current state variable. Within each case block there is a second
switch statement with case blocks for each event type. In the case
of bde canvas operations, the events are mouse move, button up and button down.
Anchor points are created within source text by GenAnchor and CtoHTML.
The converter which creates html versions of the diagrams is called bde2src
because it links diagram nodes and links to source code. Its exercutable is in
$CASE/96f523/bde2ht1/anchen/executables/bde2src.
Diagram HG000001:
Three clickable hotspots are created per node on this diagram.
The left, middle and right third of a node's area are hyperlinked to expansion
diagrams, to source text and to a dummy Attribute-text block, respectively,
if any of these exist. The latter opens up the node's hidden block of
HA-text which could contain pseudo-code specifications for node actions.
Diagrams HG000002 and HG000003:
One clickable hotspot is created in each node and in each link's event label
text in these diagrams. These diagrams show the static nesting structure
of the state and event case branches. The same hotspots may be placed in
call trees, state diagrams or other multi-level behavioral models.
A comparable State Diagram example is TBD for comparison purposes.
The upper or leftmost hotspot links to an expansion diagram in the same file,
if there is one.
The middle one links to source code for the state action,
if it can be located automatically.
The lower right hotspot of each node links to node attribute text lines
(HA-rows) if they exist.
Here are the steps used to create this browsable diagram hierarchy:
- Using BDE three diagrams were created in one file: HG000001 has nodes
for the two Link operations (Link Create and Link Delete).
These two nodes have expansion diagrams which describe the static
structure of these two operations.
- The 3 diagrams were saved in StateD.dat.
[Note: The following steps can be done using bde2HTScript.]
- Adding expansion diagram foreign keys and fixing BDE schema
version incompatibilities:
- GenAnchor was run to insert anchor points into source file linkops.cc
- CtoHTML was run to produce the html version of linkops.cc
- BDE2HTM (bde2src) was run on the bde diagram file StateD.dat to produce the
required *.html and *.map files for each diagram.
- From bde we saved
.ps files and ran ps2gif to get browsable images.
[From now on, users should use the new (97s523/bde2gif/yuwong) bde option 'bde2gif',
which produces all compressed images (*.gif) at one time. - RJL]