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: o The last two nodes (HN-rows) of the top-level diagram (HG000001) in file StateD.dat were manually changed to insert a value in the second fkey field HN.HGlink which identifies the expansion graph HG000002 or HG000003 for use in bde2html conversion (bde2ht3). For example: HN000003 HG000001 HG000003 R 304.0000 ... 52.0000 Fixed ... 13 link_delete where HG000003 was added manually. o The following commands were used to fix HA and HI fields inherited from an older version of bde. [This is no longer necessary - RJL] awk -f HAfix.awk StateD.dat > tmp; cp tmp StateD.dat awk -f HIfix.awk StateD.dat > tmp: cp tmp StateD.dat * 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]