1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2
<!--Converted with LaTeX2HTML 98.1p1 release (March 2nd, 1998)
3
originally by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds
4
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
5
* with significant contributions from:
6
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
9
<TITLE>3. Diagram Editing</TITLE>
10
<META NAME="description" CONTENT="3. Diagram Editing">
11
<META NAME="keywords" CONTENT="User">
12
<META NAME="resource-type" CONTENT="document">
13
<META NAME="distribution" CONTENT="global">
14
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
15
<LINK REL="STYLESHEET" HREF="User.css">
16
<LINK REL="next" HREF="usersguidenode6.html">
17
<LINK REL="previous" HREF="usersguidenode4.html">
18
<LINK REL="up" HREF="User.html">
19
<LINK REL="next" HREF="usersguidenode6.html">
22
<!--Navigation Panel-->
24
HREF="usersguidenode6.html">
25
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_motif.gif"></A>
28
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_motif.gif"></A>
30
HREF="usersguidenode4.html">
31
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="previous_motif.gif"></A>
33
HREF="usersguidenode1.html">
34
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents_motif.gif"></A>
36
HREF="usersguidenode15.html">
37
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index_motif.gif"></A>
39
<B> Next:</B> <A NAME="tex2html866"
40
HREF="usersguidenode6.html">4. Data View Editors</A>
41
<B> Up:</B> <A NAME="tex2html862"
42
HREF="User.html">Toolkit for Conceptual Modeling</A>
43
<B> Previous:</B> <A NAME="tex2html856"
44
HREF="usersguidenode4.html">2. Document Editing</A>
47
<!--End of Navigation Panel-->
48
<!--Table of Child-Links-->
49
<A NAME="CHILD_LINKS"><strong>Subsections</strong></A>
51
<LI><A NAME="tex2html867"
52
HREF="usersguidenode5.html#SECTION00510000000000000000">3.1 Definitions</A>
53
<LI><A NAME="tex2html868"
54
HREF="usersguidenode5.html#SECTION00520000000000000000">3.2 Creating Nodes</A>
55
<LI><A NAME="tex2html869"
56
HREF="usersguidenode5.html#SECTION00530000000000000000">3.3 Creating Edges</A>
57
<LI><A NAME="tex2html870"
58
HREF="usersguidenode5.html#SECTION00540000000000000000">3.4 Selection Commands</A>
59
<LI><A NAME="tex2html871"
60
HREF="usersguidenode5.html#SECTION00550000000000000000">3.5 Editing Text</A>
61
<LI><A NAME="tex2html872"
62
HREF="usersguidenode5.html#SECTION00560000000000000000">3.6 Moving Shapes</A>
63
<LI><A NAME="tex2html873"
64
HREF="usersguidenode5.html#SECTION00570000000000000000">3.7 Resizing Shapes</A>
65
<LI><A NAME="tex2html874"
66
HREF="usersguidenode5.html#SECTION00580000000000000000">3.8 Deleting Subjects</A>
67
<LI><A NAME="tex2html875"
68
HREF="usersguidenode5.html#SECTION00590000000000000000">3.9 Cutting and Pasting Subjects</A>
69
<LI><A NAME="tex2html876"
70
HREF="usersguidenode5.html#SECTION005100000000000000000">3.10 Creating and Deleting Duplicates of a Node</A>
71
<LI><A NAME="tex2html877"
72
HREF="usersguidenode5.html#SECTION005110000000000000000">3.11 Changing Shape Properties</A>
73
<LI><A NAME="tex2html878"
74
HREF="usersguidenode5.html#SECTION005120000000000000000">3.12 Miscellaneous Edit Commands</A>
75
<LI><A NAME="tex2html879"
76
HREF="usersguidenode5.html#SECTION005130000000000000000">3.13 Undo and Redo</A>
77
<LI><A NAME="tex2html880"
78
HREF="usersguidenode5.html#SECTION005140000000000000000">3.14 The Generic Diagram Editor (TGD)</A>
80
<LI><A NAME="tex2html881"
81
HREF="usersguidenode5.html#SECTION005141000000000000000">3.14.1 Nodes and Edges</A>
83
<!--End of Table of Child-Links-->
86
<H1><A NAME="SECTION00500000000000000000"> </A> <A NAME="DiagramEditing"> </A>
93
<H1><A NAME="SECTION00510000000000000000">
98
Diagrams that are made by some TCM diagram
99
editor are a special kind of <B>graph</B><A NAME="3019"> </A> with a
100
certain <B>representation</B><A NAME="3021"> </A> (layout, view).
101
Each TCM editor is a specialization of the generic graph editor.
102
A graph consists of a set of <B>subjects</B>.<A NAME="3023"> </A> A subject
103
is either a <B>node</B><A NAME="3025"> </A> or an <B>edge</B><A NAME="3027"> </A> that
104
connects two subjects.
105
Subjects are of different <B>node types</B><A NAME="3029"> </A>
106
and <B>edge types</B>.<A NAME="3031"> </A> For example, a TDFD
107
data flow diagram graph consists amongst others of nodes of type data
108
process and nodes of type data store, and edges of type data flow.
111
The graphs that are edited with TCM contain edges that connect exactly
112
two (not necessarily different) subjects. So some kind of special
113
relationship between more than two nodes, for instance the specialization
114
relationship in an ER diagram (made by the TESD editor), is specified in
115
TCM as a node (a taxonomy junction node in this case) that is connected
116
by three or more different edges (generalization or is-a relationship
120
In general, edges connect two (not necessarily) different subjects.
121
So in principle it is possible that an edge connects to another edge.
122
This feature is available in the generic diagram editor (TGD) and
123
also in a limited form in a few of the specific diagram editors.
124
In the other editors an edge connects only nodes, it never connects
128
In a representation of a graph, nodes and edges are shown
129
as <B>shapes</B>.<A NAME="3033"> </A>
130
In the case of nodes the representing shapes are boxes,
131
diamonds, ellipses etc. In the case of edges, shapes
132
are lines, arrows etc. In general, there is a many-many
133
relationship between a certain subject type and a certain shape type
134
and also between a particular subject instance and a particular
135
shape instance. It is possible that a subject type is represented by
136
more than one shape type. For instance a class-diagram
137
made by TSSD can contain different kinds of class boxes (e.g. boxes
138
with three compartments that show the class name, attributes and operations,
139
and boxes that only contain two compartment to show only the name and
140
the attributes). Also, it is possible that a particular subject
141
instance is represented by more than one shape instance. This feature
142
can be used when you want to represent the same subject at different
143
positions in the same diagram (duplication).
144
But in most cases, the relationship between subjects and their representations is one-one
145
and for this reason, subjects and their shape representations will often be mixed up.
148
A <B>TCM diagram</B><A NAME="3035"> </A>
149
is composed of a graph, its representing shapes,
150
and extra diagram information, such as the diagram name, the author
151
and the creation date.
152
A TCM diagram has an empty graph after creation. You can build a
153
graph by interactively drawing it with the TCM user interface,
154
node by node, edge by edge.
157
Some diagrams are <B>hierarchic.</B><A NAME="3037"> </A><A NAME="3038"> </A>
158
This means that the underlying mathematical structure is a <B>hierarchic graph</B><A NAME="3040"> </A> rather than a graph.
159
In a hierarchic graph, nodes are organized in trees:
160
a node may be a child of another node.
161
The parent-child relationship is represented by inclusion:
162
a node shape contains the node shapes of its children.
163
(In hierarchic documents, duplication is forbidden.
164
This ensures that the parent-child relationship is acyclic.)
165
In non-hierarchic diagrams, overlapping of nodes has no special meaning.
168
TCM documents should satisfy certain <B>constraints</B>.
169
<A NAME="3042"> </A> Most constraints are specific for the particular
170
diagram technique supported by the editor. Many constraints
171
are checked by TCM. The constraints that are checked, are classified
172
according to how TCM deals with possible violations.
175
<DD><B>Built-in constraints</B>.<A NAME="3045"> </A>
176
<A NAME="3046"> </A> These are constraints which are built-in
177
and which can never be violated because there is no command in the
178
user interface to achieve that. We give two examples of built-in constraints:
179
1. an edge connects exactly two (not necessarily different) existing subjects,
180
2. an entity type in TESD is always represented by a box or a double box.
183
<DD><B>Immediately enforced constraints</B>.
184
These are constraints that are immediately enforced by TCM if that is
185
<A NAME="3048"> </A><A NAME="3049"> </A>
186
possible. When you perform a command that would violate
187
a constraint that is immediately enforced, this command is rejected
188
immediately by TCM and a pop-up window with an error message is displayed.
189
Examples of immediately enforced constraints are: 1. an entity type
190
and a relationship node in TESD cannot be connected by a Generalization
191
and 2. two entity types cannot have the same (non-empty) name.
195
<DD><B>Soft constraints</B>.<A NAME="3051"> </A><A NAME="3052"> </A>
196
These are constraints that can be violated.
197
Soft constraints are needed because the TCM user interface
198
demands that you draw only one node or one edge at the time, and
199
only edit the label of an existing subject.
200
So there are certain commands that produce diagrams
201
that might violate a constraint and that can not
202
be immediately enforced.
203
Two examples of soft constraints are:
204
1. all entity types have a non-empty name and 2.
205
a relationship node in TESD should be connected to entity type nodes by
206
two or more different edges.
209
Soft constraints are checked by TCM when the <B>Check Document</B>
210
<A NAME="3054"> </A> command is issued by you.
211
Check Document displays a list of error messages in a pop-up window
212
and the nodes and edges that cause these errors are selected in
213
the diagram. As opposed to the previous two classes of constraints, you
214
are responsible for correcting the diagram.
219
It is possible that some immediately enforced constraints can still be
220
violated by some user command. Such a constraint is then classified
221
as both an immediately enforced and a soft constraint. Example:
222
if a part of a diagram is copied and pasted into the same diagram,
223
the unique name constraint is a soft constraint as it can be
224
violated by the paste command. But when you have edited the text
225
of one of the nodes in the diagram, and you issue the stop edit command,
226
the unique name constraint can and will be immediately enforced.
230
<H1><A NAME="SECTION00520000000000000000"> </A><A NAME="3057"> </A><A NAME="3058"> </A>
234
The set of tiled buttons labeled <TT>Nodes</TT>, at the left
235
side of the main window, contains
236
radio buttons indicating the current type of node that
237
can be created. You can change the current node type
238
selection by clicking another tiled button with button-1.
241
For creating a node, first choose the desired node type from
242
the node tiles. Click button-1 in the background of the
243
drawing area, at the desired position. A new node shape appears,
244
having its center at the position where is clicked and having the
245
shape as indicated by the selected node type in the tiles.
246
The node shape is surrounded by a set of <B>selection handles</B>
247
which are black or grey rectangles, showing that the shape is selected.
248
Selection handles of a node shape are also used for resizing
249
the node.<A NAME="3061"> </A><A NAME="3062"> </A>
253
<H1><A NAME="SECTION00530000000000000000"> </A><A NAME="3064"> </A><A NAME="3065"> </A>
257
The set of tiled buttons named <TT>Edges</TT> contains radio
258
buttons indicating the current type of edge that can be drawn.
259
Furthermore there is a so-called check button labeled
260
<TT>create curve</TT>.
261
If the curve button is on, new edges that are created
262
are drawn as a Bezier curve.
263
If the curve button is off, a multi-segment line is
264
drawn as a set of connected straight
265
line segments. To create a new edge, first choose the desired
266
edge type in the edge tiles. There are three sorts of edges
269
<LI><B>Straight edges</B>.<A NAME="3070"> </A><A NAME="3071"> </A>
270
Drag with button-2 from a node to a
271
node. This means you push and hold down button-2 somewhere inside the
272
source node and move the mouse with button-2 still pushed down.
273
During dragging the mouse pointer turns into
275
<!-- MATH: $\epsfig{figure=p/sightP.ps}$ -->
277
WIDTH="25" HEIGHT="25" ALIGN="BOTTOM" BORDER="0"
278
SRC="usersguideimg22.gif"
279
ALT="\epsfig{figure=p/sightP.ps}">
280
and a line from the source node
281
follows the movement of the mouse.<A NAME="3073"> </A>
282
You can always abort creating an edge while dragging by
283
clicking button-1. When you are arrived in the target node and
284
release button-2, then a straight edge is created. The two points
285
of the edge at the borders of the connected nodes are called
286
the <B>end points</B><A NAME="3075"> </A> of the edge.
289
<LI><B>Segmented edges</B>.<A NAME="3077"> </A><A NAME="3078"> </A>
290
These edges consist of more than one segment. The points where
291
the segments are connected are called <B>intermediate points</B>.
292
<A NAME="3080"> </A> To create such a segmented edge, release
293
button-2 in the background while you are dragging. Then the first
294
intermediate point is created. After that, the line follows the mouse
295
all by itself. Then you can add another intermediate point by
296
clicking button-2 somewhere else in the background. You
297
complete the edge by moving into the target node and clicking
302
<B>Curved edges</B>.<A NAME="3082"> </A><A NAME="3083"> </A>
303
<A NAME="3084"> </A>
304
You can also create an edge drawn as a Bezier curve <A NAME="tex2html53"
305
HREF="#foot3559"><SUP>3.1</SUP></A>.
306
For this, turn on the create curve toggle button in the tiled menu.
307
The Bezier curve requires <I>exactly two</I> intermediate points,
308
which makes four edge points in total. These intermediate points
309
are added in the same way as creating normal multiple line segments as
310
described for segmented edges. When the four points are
311
determined, a smooth curve is drawn between the end points and
312
the two intermediate points act as controlling points.
313
You can toggle between the curved and segmented edge representation
314
by invoking the <B>Convert From/To Curves</B>
315
<A NAME="3089"> </A> command from the Edit menu.
319
<DIV ALIGN="CENTER"><A NAME="CreateEdgeExample"> </A><A NAME="3094"> </A>
321
<CAPTION><STRONG>Figure 3.1:</STRONG>
322
Three forms of edges.</CAPTION>
326
<!-- MATH: $\includegraphics{p/createedges.eps}$ -->
328
WIDTH="400" HEIGHT="224" ALIGN="BOTTOM" BORDER="0"
329
SRC="usersguideimg23.gif"
330
ALT="\includegraphics{p/createedges.eps}"></DIV></TD></TR>
335
After creating the edge, the edge is selected which is visible by a selection
336
handle on each line point. You can adjust the line points by
337
moving the handles; see section <A HREF="usersguidenode5.html#MovingShapes">3.6</A>.
340
When an edge is created and it is the only <I>straight</I> edge
341
connecting this particular couple of nodes, it will go (virtually) through
342
the center points of the nodes. When there are multiple straight edges
343
connecting the same pair of nodes, they will be equally distributed
344
by default over the opposing sides.
345
Segmented and curved edges are not equally distributed when they
346
connect the same pair of nodes. TCM tries to intersect the first
347
and last segment of a segmented line orthogonally with the sides of the
348
connected nodes. If this is geometrically impossible, the segment will
349
be directed to the center of the node like with straight edges.
350
For understanding how it works it helps when you try it out
354
<B>Tip:</B> When you want to enforce that a straight edge is always
355
orthogonal to a node, then you can draw a segmented line of three points that
356
looks like a straight line. You enforce then that the line is always
357
connected orthogonally with both of the nodes (providing that this
358
is geometrically possible). This gives often a more pleasant optical result
359
especially when you want to connect two nodes that differ a lot
363
It is possible to move the end points of an edge as well, in the
364
same way as you move the intermediate points. When you drag with
365
button-1 the handle of an end point to another position then the new
366
end point will be the position at the border of the node shape that is
367
the closest to where you released the handle. However, when you drag with
368
button-1 the handle of an end point into <I>a different</I> node shape
369
then the edge will be <B>redirected</B> to that node. This means that
370
you can change the nodes that an edge connects.<A NAME="3103"> </A>
371
<A NAME="3104"> </A>
374
After an edge is created you can add
375
<A NAME="3105"> </A><A NAME="3106"> </A>
376
extra intermediate points. When you drag with button-1 on an existing
377
line, a new intermediate point is
378
created at the position where you stop dragging, and a new segment will be
380
Press Button-2 on a line handle to
381
<A NAME="3107"> </A><A NAME="3108"> </A>
382
remove the line handle/segment from an existing line.
385
In TGD and some other editors it is possible to connect an edge with an edge
386
like in figure <A HREF="usersguidenode5.html#EdgeEdge">3.2</A>. You create these kinds of edges in the same way
387
as edges that connect nodes. Only you start to press button-2 while the
388
mouse pointer is positioned at an edge and/or you release button-2, after dragging,
389
when the mouse is on some edge.
393
<DIV ALIGN="CENTER"><A NAME="EdgeEdge"> </A><A NAME="3113"> </A>
395
<CAPTION><STRONG>Figure 3.2:</STRONG>
396
An edge connects another edge.</CAPTION>
400
<!-- MATH: $\includegraphics{p/edgeedge.eps}$ -->
402
WIDTH="355" HEIGHT="161" ALIGN="BOTTOM" BORDER="0"
403
SRC="usersguideimg24.gif"
404
ALT="\includegraphics{p/edgeedge.eps}"></DIV></TD></TR>
410
<H1><A NAME="SECTION00540000000000000000"> </A><A NAME="3118"> </A>
412
3.4 Selection Commands
414
The current selection is a subset of the displayed shapes.
415
Shapes in the selection have visible selection handles.
416
The shape in the selection that was first selected has
417
black selection handles and the other shapes in the selection
418
have grey selection handles.
421
Shapes have a <B>selection area.</B>
422
For lines, it is a band around the segment(s) of the line.
423
The selection area for node shapes changes when you toggle hierarchy on or off:
424
In non-hierarchic documents, it is just the inside of the node shape.
425
In hierarchic documents,
426
the selection area is a band around the visible parts of the node shape
427
(boundary lines, interior lines, text labels).
430
The following operations on the selection exist:
434
<LI><B>Select a single shape</B>.<A NAME="3122"> </A>
435
Click button-1 in the selection area of an unselected shape
437
The selection will contain only this shape
438
which will show black handles.
441
<LI><B>Add a shape to the selection</B>.<A NAME="3124"> </A>
442
Click button-2 in the selection area of an unselected shape.
443
The first selected shape will show black selection handles,
444
the other selected shapes will show grey selection handles.
447
<LI><B>Remove a shape from the selection</B>.<A NAME="3126"> </A>
448
Click button-2 in the selection area of a selected shape.
449
The selection handles disappear.
452
<LI><B>Empty the selection</B>.<A NAME="3128"> </A>
453
Click button-2 somewhere in the background.
454
All selection handles disappear.
457
<LI><B>Select a part of the diagram</B>. Drag button-1 starting
458
in the background. The area that you are selecting, is enclosed by
459
a stippled box, and its bottom-right corner is attached to the
460
mouse. If you release button-1 then every shape that was (partly)
461
inside the stippled box is selected and every other shape outside
462
the box is unselected. One of these selected shapes will show
463
black selection handles, the others will become grey.<A NAME="3130"> </A>
466
<LI><B>Make selected shape first selected</B>.
467
You can enforce that a selected shape is the first selected
468
by clicking button-1 in the selection area of an already selected (grey) shape.
469
The selection handles of the old first selected shape will become grey
470
and the clicked shape's handles will become black.
473
<LI>The <B>Select All</B> command from the Edit menu<A NAME="3133"> </A>
474
selects all shapes of the diagram.
475
By clicking button-2 in the background you deselect all shapes.
479
<H1><A NAME="SECTION00550000000000000000"> </A><A NAME="3136"> </A><A NAME="3137"> </A>
485
For getting into edit mode make sure that the shape with the label that
486
you want to edit is the only selected shape.
487
When you move the mouse pointer into the single selected shape,
488
the mouse pointer turns into a
489
<!-- MATH: $\epsfig{figure=p/ibeamP.ps}$ -->
491
WIDTH="16" HEIGHT="24" ALIGN="BOTTOM" BORDER="0"
492
SRC="usersguideimg10.gif"
493
ALT="\epsfig{figure=p/ibeamP.ps}">.
494
By clicking button-1 on the shape or typing the first character
495
you go into edit mode. See section <A HREF="usersguidenode4.html#EditingText">2.5.1</A> for the different
496
text edit commands that exist in TCM. These apply to all document
497
editors including all diagram editors.
500
Every TCM diagram and tree editor has a special node type called
501
<B>Comment</B>,<A NAME="3141"> </A> which solely consists of a text label
502
and is intended to add comment to the diagram.
503
This node type cannot be connected by any other edge, except
504
in the generic diagram editor, TGD. But comment nodes can be
505
selected, moved and of course edited, like any other node type.
509
<DIV ALIGN="CENTER"><A NAME="PersonExample"> </A><A NAME="3145"> </A>
511
<CAPTION><STRONG>Figure 3.3:</STRONG>
512
Example diagram with some text labels.</CAPTION>
516
<!-- MATH: $\includegraphics{p/labelsexample.eps}$ -->
518
WIDTH="525" HEIGHT="156" ALIGN="BOTTOM" BORDER="0"
519
SRC="usersguideimg25.gif"
520
ALT="\includegraphics{p/labelsexample.eps}"></DIV></TD></TR>
525
<B>Tip:</B> If you want to edit the label of an edge, and you try to select it
526
first with button-1 you could miss the edge and create an unwanted node.
527
To avoid this, make the selection empty and select the edge by
528
button-2 instead, because, when you miss no node is created.
532
<H1><A NAME="SECTION00560000000000000000"> </A> <A NAME="MovingShapes"> </A>
536
You can reposition the following things in a diagram:
540
<LI><A NAME="3153"> </A>
541
<B>A node shape</B>. You can move a node shape by positioning
543
that node shape and then drag it with button-1. The shape does
544
not need to be selected. A grey node outline
545
moves along with the mouse. The mouse pointer turns
547
<!-- MATH: $\epsfig{figure=p/movingP.ps}$ -->
549
WIDTH="22" HEIGHT="23" ALIGN="BOTTOM" BORDER="0"
550
SRC="usersguideimg26.gif"
551
ALT="\epsfig{figure=p/movingP.ps}">.
552
If you release button-1 then this node shape is redrawn at the
553
new position and all its adjacent lines are redrawn too.
556
<LI><A NAME="3156"> </A>
557
<B>The selection</B>. If you drag one of the selected node
558
shapes, all other selected shapes are moved with over the
559
same distance, including the line handles of the
563
<LI><A NAME="3158"> </A>
564
<B>Intermediate line handle</B>. You cannot move the line as a whole,
565
but you can drag the individual handles of a line. When a line is
566
selected and the mouse is in one of the handles
567
(which is indicated by a
568
<!-- MATH: $\epsfig{figure=p/movingP.ps}$ -->
570
WIDTH="22" HEIGHT="23" ALIGN="BOTTOM" BORDER="0"
571
SRC="usersguideimg26.gif"
572
ALT="\epsfig{figure=p/movingP.ps}">), then
573
you can drag with button-1 this handle
574
and a grey outline of the new line follows the mouse. You can move
575
the intermediate handles of a line to an arbitrary place in the drawing
579
When you drag a line outside a line handle with button-1, a
580
new line handle will be created
581
<A NAME="3161"> </A><A NAME="3162"> </A>
582
and the line is extended with
584
When you hit a line handle with button-2 (instead of button-1), the
585
line handle is deleted
586
<A NAME="3163"> </A><A NAME="3164"> </A>
587
and consequently the line will be deprived of
591
<LI><A NAME="3165"> </A>
592
<B>End line handle</B>. When you drag and release one
593
of the end point handles with button-1 into the connected node
594
or somewhere in the background, then the end point will be
595
placed at the border of the connected node at a position
596
that is the closest to the place where the handle was released.
597
However, when you drag the handle into a different node then
598
the edge will be <B>redirected</B><A NAME="3168"> </A> to that
599
node. The result is that the edge now connects to a different
600
node <A NAME="tex2html56"
601
HREF="#foot3169"><SUP>3.2</SUP></A>.
604
<LI><A NAME="3170"> </A>
605
<B>The label of an edge</B>. You can move the label of an edge by
606
dragging it with button-1. The edge need not be selected. You
607
cannot move the label of a node; when you move or resize a node,
608
the label positions inside the node are recalculated, as well
609
as the labels of the adjacent edges.
612
<A NAME="3172"> </A>
613
<LI>The <B>Align nodes</B> command in the Edit menu has six
614
variants as you can see in the Align Nodes submenu of the Edit menu.
615
See figure <A HREF="usersguidenode5.html#AlignNodes">3.4</A> for the various alignments.
616
The alignment takes place according to the position and size of
617
the first selected shape, which should be
618
a node shape. Depending on the chosen alignment
619
type, the rest of the nodes in the selection will be
620
aligned to the first shape, either horizontally
621
(same center y-coordinates),
622
vertically (same center x-coordinates), to the top
623
(same top y-coordinates), to the bottom (same bottom y-coordinates),
624
to the left (same left x-coordinates) or to the right
625
(same right x-coordinates).
629
<DIV ALIGN="CENTER"><A NAME="AlignNodes"> </A><A NAME="3179"> </A>
631
<CAPTION><STRONG>Figure 3.4:</STRONG>
632
TCM Node Alignment Dialog.</CAPTION>
636
<!-- MATH: $\includegraphics[width=3in]{p/nodealignmentdialog.ps}$ -->
638
WIDTH="345" HEIGHT="353" ALIGN="BOTTOM" BORDER="0"
639
SRC="usersguideimg27.gif"
640
ALT="\includegraphics[width=3in]{p/nodealignmentdialog.ps}"></DIV></TD></TR>
645
When you want to abort a move command, while you are moving,
646
you have to click button-2.<A NAME="3183"> </A>
650
<H1><A NAME="SECTION00570000000000000000"> </A><A NAME="3185"> </A>
654
Resizing a node shape in all directions is possible by
655
dragging button-1 on the selection handles.
657
turns into one of the eight symbols that indicate to what
658
direction the node shape can be resized:
659
<!-- MATH: $\epsfig{figure=p/8sizeP.ps}$ -->
661
WIDTH="66" HEIGHT="66" ALIGN="BOTTOM" BORDER="0"
662
SRC="usersguideimg28.gif"
663
ALT="\epsfig{figure=p/8sizeP.ps}">.
664
You can use button-2 to resize a node shape in the desired direction only.
665
When you want to abort the command while you are resizing,
666
you have to click button-2.<A NAME="3187"> </A>
669
Unlike moving, resizing only works on one shape at the time i.e. it does not influence the other shapes of the selection.
670
If you want to resize multiple shapes in one command then
671
you could use the Same Size command in the Edit menu.
672
The <B>Same Size</B><A NAME="3189"> </A> command makes the
673
size of all selected node shapes the same size as the first selected
674
shape (the shape with the black handles). The first selected shape
675
should be a node shape of course. The edges in the rest of
676
the selection are ignored by this command.
679
<B>Tip:</B> when node shapes have been moved or resized then their
680
adjacent edges are redrawn and all their handles and labels are placed
681
back to their default positions. This is sometimes
682
undesirable <A NAME="tex2html57"
683
HREF="#foot3191"><SUP>3.3</SUP></A>. To avoid that your effort gets lost, postpone moving
684
edge labels and handles to their final positions until when you
685
think that the connected nodes are OK. Draw the graph first and
686
then you can bother about the layout.
690
<H1><A NAME="SECTION00580000000000000000"> </A><A NAME="DeleteSubjects"> </A><A NAME="3194"> </A><A NAME="3195"> </A>
692
3.8 Deleting Subjects
694
The edit command <B>Delete</B> (called from the Edit menu, or by the
695
accelerator <Ctrl+D>), removes all subjects from the selection.
696
If a node is deleted then all its adjacent edges are deleted too.
697
If a node has duplicate shapes (see section <A HREF="usersguidenode5.html#Duplicates">3.10</A>) of which
698
some but not all are selected then a question dialog is raised asking
699
whether you want to delete all duplicates (and henceforth the node in the
700
graph) or that you only want to delete the selected duplicate shapes.
703
The Edit menu command <B>Delete All</B> removes all subjects,
704
selected or not. Before the command is executed, you are first asked
705
by means of a question dialog if you really want to delete
706
everything.<A NAME="3200"> </A>
709
Fortunately, like all commands, deletion commands can be undone
714
<H1><A NAME="SECTION00590000000000000000"> </A><A NAME="3202"> </A><A NAME="3203"> </A>
716
3.9 Cutting and Pasting Subjects
718
The diagram editors have a <B>buffer</B> for cutting, copying
719
and<A NAME="3205"> </A> <A NAME="PasteSubjects"> </A>pasting parts of a diagram (selected shapes plus the subjects that
720
they represent) inside the same editor.
723
You can either <B>Cut (</B><<B>Ctrl+X</B>><B>)</B> or <B>Copy (</B><<B>Ctrl+C</B>><B>)</B> the
724
selection to the buffer.<A NAME="3209"> </A><A NAME="3210"> </A>
725
When you perform a cut, all selected subjects are copied into the
726
buffer, and the selection is removed from the diagram (including
727
the unselected edges that are adjacent to the selected nodes).
728
When you perform a copy,<A NAME="3211"> </A><A NAME="3212"> </A> no subjects are
729
removed from a diagram, but a copy of the selection is
730
made and put into the buffer.
731
Both Cut and Copy copy the unselected nodes that are
732
connected by selected edges into the paste buffer.
735
Pasting means that the contents of the paste buffer is being copied
736
into the diagram. When you perform a <B>Paste (<Ctrl+Y>)</B>
737
command, a stippled box is shown that has the size of the
738
pasted area which is attached to the mouse pointer near its top-left corner.
739
When you click button-1, the subjects in the paste
740
buffer are copied into the diagram. The Append Diagram command is
741
also implemented as a paste command. When you want to abort pasting
742
while you are moving the paste box, you have to click button-2.<A NAME="3214"> </A>
745
You can paste the same contents of the paste buffer more than once
746
because always a copy of the contents is made.
747
Pasted nodes and edges are new nodes and edges, not duplicates
748
of existing nodes or edges.
749
The paste buffer remains intact when you load another diagram,
750
so it is possible to cut and paste between different diagrams
751
(but only in the same editor).
755
<H1><A NAME="SECTION005100000000000000000"> </A> <A NAME="Duplicates"> </A><A NAME="3217"> </A><A NAME="3218"> </A>
756
<A NAME="3219"> </A>
758
3.10 Creating and Deleting Duplicates of a Node
762
It is possible to represent one node by several instances of
763
the same shape in non-hierarchic diagrams.
764
The <B>Duplicate</B> command copies the node shapes in the
765
selection and puts them into a box, lust like the Paste command.
767
duplicate command does not make use of the paste buffer.
768
The copied node shapes can be positioned at an arbitrary place,
769
just like the Paste command. Edges cannot be
770
duplicated <A NAME="tex2html58"
771
HREF="#foot3221"><SUP>3.4</SUP></A>.
772
Unlike the Copy command, the new node shapes have the same node
773
subject as the original. When a node has duplicate shapes then
774
all these shapes have a small asterisk in the top-left corner.
777
When the label of a duplicate shape is updated then all its
778
duplicate shapes are updated too and when a node is deleted
779
(with Delete) then all the duplicate shapes of this node are
780
deleted too by that command.
783
The duplicate command is intended to be used when the same node
784
has to be represented at different places to avoid cluttering
785
up the diagram. For instance, in a DFD, the same external
786
entity or data store is often drawn at different positions
787
in the same diagram, and TCM keeps track that these are
788
in reality representations of the same subjects.
791
The <B>Delete</B> command can be used to delete all selected
792
duplicate shapes, see section <A HREF="usersguidenode5.html#DeleteSubjects">3.8</A>.
793
When all the shapes of a node are deleted then the node itself
794
is deleted too. But you can delete individual duplicate
799
<H1><A NAME="SECTION005110000000000000000">
800
3.11 Changing Shape Properties</A>
804
All Update <I>shape property</I> commands are undo-able
805
commands and they are called from the Properties menu of the main
811
<LI>The <B>Update Line Style</B> command from the Properties menu
812
pops up a dialog window with a number of toggle buttons for the different
813
line styles: solid, dashed, dotted, dual, invisible and wide dotted
814
(see figure <A HREF="usersguidenode4.html#LineStyleDialog">2.9</A>).
815
Select the line style that you want and press <TT>Apply</TT> and then
816
the line styles of all the selected shapes are updated to this style.
819
<LI>The <B>Update Line Width</B> command from the Properties menu
820
shows a dialog window with a number of toggle buttons for the different
821
line widths. The line width icons range from 1 pixel to 9 pixels wide,
822
and are used to set the line widths of shapes. When you press <TT>Apply</TT>
823
then of every selected shape the line width is set to the chosen
828
<B>Update Line Ends</B>.<A NAME="3233"> </A><A NAME="3234"> </A>
829
This entry pops up a dialog window to set the line ends of a line.
830
See figure <A HREF="usersguidenode5.html#LineEndDialog">3.5</A>.
831
You can change the 'begin of a line' as well
832
as the 'end of a line'; for each line end a set of tiled toggle buttons is displayed,
833
each containing a bitmap symbol for the corresponding line end.
834
When you issue a command to change the line ends, each selected
835
line is redrawn according to this new line ends.
836
This command is currently only available in the generic diagram editor (TGD).
839
<DIV ALIGN="CENTER"><A NAME="LineEndDialog"> </A><A NAME="3239"> </A>
841
<CAPTION><STRONG>Figure 3.5:</STRONG>
842
TCM line ends dialog.</CAPTION>
846
<!-- MATH: $\includegraphics[width=4.5in]{p/line_endsdialog.ps}$ -->
848
WIDTH="517" HEIGHT="480" ALIGN="BOTTOM" BORDER="0"
849
SRC="usersguideimg29.gif"
850
ALT="\includegraphics[width=4.5in]{p/line_endsdialog.ps}"></DIV></TD></TR>
855
<LI>The <B>Update Text Font</B> command from the Properties menu pops
856
up a dialog window in which you can select a font (see figure <A HREF="usersguidenode4.html#FontDialog">2.11</A>).
858
of the attributes font family, font style and point size.
859
For each of the three attributes there is a list of toggle buttons.
860
Also, each list of toggle buttons in the dialog has an extra check
861
button called <TT>update</TT> <I>attribute</I> that indicates whether
862
that font particular attribute should be updated or not.
863
This makes it possible, for instance, to only change point sizes
864
or font families of some texts but to keep the other font
868
The dialog also shows a preview of some text in the selected font
869
so you can see how it will look in your diagram.
870
When you press the <TT>Apply</TT>-button then the dialog is dismissed and
871
of each selected shape, the font is updated to the selected font.
874
With the <B>Default Text Font</B> entry<A NAME="3249"> </A>
875
<A NAME="3250"> </A>
876
from the Default Properties submenu you get a similar dialog window.
877
Here you can set the default text font. The text shapes of every newly
878
created node or edge will get this font. The page headers and numbers
879
are also drawn in this default font.
880
<LI>The <B>Update Text Alignment</B> command from the Properties menu
881
shows a dialog window with three toggle buttons, <TT>left</TT>, <TT>center</TT>
882
and <TT>right</TT>. Choose the alignment and press <TT>Apply</TT>. Then
883
the text alignments of all the text shapes in the selected shapes
884
are updated to the selected alignment. Note that this alignment determines
885
only the alignment of texts of multiple lines, not the positioning of
886
the text shape itself in or near its parent shape.
889
<LI>The <B>Set/Unset Text Underlining</B> command from the Properties menu
890
sets/unsets (toggles) the text underlining of the selected shapes.
893
<LI>The <B>Update Line Color</B> command from the Properties menu
894
pops up a color chooser dialog (see figure <A HREF="usersguidenode4.html#ColorDialog">2.13</A>).
895
The color chooser shows the
896
names of all the available colors in a scrolled list. With clicking
897
button-1 in the list you can select a color name. The associated
898
color is made visible in a label below the scrolled list, named
899
<TT>preview</TT>. When you press the <TT>Apply</TT> button then the line
900
colors of all the selected shapes are updated to this color.
903
<LI>The <B>Update Text Color</B> command from the Properties menu
904
pops up a color chooser dialog. This works the same as the
905
Update Line Color command except that after pressing <TT>Apply</TT>
906
the colors of all text shapes of the selected shapes are updated
910
<LI>The <B>Update Fill Color</B> command from the Properties menu
911
pops up a color chooser dialog. This works the same as the
912
Update Line Color command except that after pressing <TT>Apply</TT>
913
all selected shapes are filled with the chosen color.
917
<H1><A NAME="SECTION005120000000000000000">
918
3.12 Miscellaneous Edit Commands</A>
922
<LI>The <B>Node/Edge annotation</B> command from the properties
923
menu pops up a text edit dialog<A NAME="3269"> </A>
924
in which you can type arbitrary text to annotate the subject.
925
See section <A HREF="usersguidenode4.html#TextEditDialog">2.5</A> for using the text edit dialogs.
928
<LI>With the <B>Find</B> menu entry in the Search menu you
929
call<A NAME="3272"> </A><A NAME="3273"> </A>
930
a dialog in which you can search for some text string in
931
the diagram. The find dialog is described in section <A HREF="usersguidenode4.html#TextEditor">2.5.3</A>.
932
From this dialog you can <B>find the next text</B> or
933
<B>find all texts</B> that matches the string to find.
934
In the first case, the first shape that is found is
935
selected and the scrollbars of the main window are moved to
936
center the shape in the main window. When you click <TT>Find Next</TT>
937
again, the next shape is selected (round-robin).
938
When you choose <TT>Find All</TT>, all shapes that contain a string
939
that matches are selected.
942
<LI>With the <B>Replace</B> menu entry in the Search menu you
943
call<A NAME="3280"> </A><A NAME="3281"> </A>
944
a dialog in which you can replace texts in the diagram.
945
The replace dialog is described in section <A HREF="usersguidenode4.html#TextEditor">2.5.3</A>.
946
It has a find next command that works the same as in the
947
find dialog. Furthermore, the replace dialog has a replace next
948
and a replace all button. <B>Replace next</B> means that for the next
949
shape (the shape that is found with find next) all their text
950
strings that match are substituted by the string to replace
951
(that is the second string filled in in the dialog).
952
In the case of <B>Replace all</B> this happens to all shapes in one
953
command (global substitution).
958
Note that find and replace work on entire shapes at the
959
same time. But keep in mind that a shape could have multiple
960
text labels and each individual text label could match the string
961
to find or the string to replace multiple times (at least when you
962
look for a substring). When you want to find or replace within a single
963
text label or table cell, you should load that text label first in
964
the out-line text editor and then do a find or replace within that dialog.
965
The out-line text editor only works on a single text shape at the
969
Note also that you can fill an empty string for the string to find
970
in both dialogs. An empty string matches only the text shapes
971
that are empty. You can also fill in an empty string in the replace
972
with text field, providing that the string to find field is not
977
<H1><A NAME="SECTION005130000000000000000"> </A><A NAME="3287"> </A><A NAME="3288"> </A>
981
The last issued edit commands can always be undone and, when undone, also redone
982
again. <B>Undo</B> is the first entry of the Edit menu (in the menu bar and
983
also under button-3). Undo has the accelerator <Ctrl+U>.
984
Undo is multiple levels deep. <B>Redo</B> is the second entry of the Edit menu
985
and has the accelerator <Ctrl+R>. You can redo the last undone
986
commands. Redo is also multiple levels. However, when you have undone a command
987
and then issued a new command then the undone command can not be redone anymore.
988
Both undo as redo show in their menu entry the name of the command that
989
can be undone respectively redone. In the current implementation the undo can
990
be several hundreds of levels deep, but when a new diagram is created by
991
Load or New, the undo history is deleted. When undo or redo is not possible,
992
the corresponding menu entry is shaded and can not be issued.
995
While you are busy performing a command, like creating an edge, moving
996
the paste box or resizing or moving some shapes, you can abort the
997
command by clicking button-1 during edge creation or button-2
998
for the other commands. When you have aborted, nothing is changed and the
999
undo or redo of that command is not possible nor necessary and the undo menu
1000
entry lists the command issued before the aborted command.
1003
Figure <A HREF="usersguidenode5.html#AtomicEditCommands">3.6</A> summarizes all atomic commands
1004
that are available in every diagram editor.
1005
These commands are either issued by the mouse, via the Edit or
1006
Properties menu, or via an accelerator. Each of these commands is
1007
undo- and redo-able.
1011
<DIV ALIGN="CENTER"><A NAME="AtomicEditCommands"> </A><A NAME="3297"> </A>
1013
<CAPTION><STRONG>Figure 3.6:</STRONG>
1014
All atomic diagram edit commands.</CAPTION>
1016
<DIV ALIGN="CENTER">
1018
<!-- MATH: $\includegraphics{p/diagramcommands.eps}$ -->
1020
WIDTH="746" HEIGHT="1031" ALIGN="BOTTOM" BORDER="0"
1021
SRC="usersguideimg30.gif"
1022
ALT="\includegraphics{p/diagramcommands.eps}"></DIV></TD></TR>
1028
<H1><A NAME="SECTION005140000000000000000"> </A>
1029
<A NAME="3302"> </A><A NAME="3303"> </A>
1030
<A NAME="3304"> </A>
1032
3.14 The Generic Diagram Editor (TGD)
1036
The generic diagram editor is a diagram editor that has
1037
all the features that are described in this chapter.
1041
<H2><A NAME="SECTION005141000000000000000">
1042
3.14.1 Nodes and Edges</A>
1046
<A NAME="3306"> </A><A NAME="3307"> </A>
1047
The generic diagram editor has three node types <B>generic node</B>,
1048
<B>empty node</B> and <B>comment</B>, and one edge type, <B>generic edge</B>.
1049
Empty nodes are nodes that don't have a name label. TGD has
1050
no immediately enforced and no soft constraints. A generic or empty
1051
node can be represented by a number of node shape types and a
1052
generic edge can be represented by a number of line types,
1053
see figure <A HREF="usersguidenode5.html#GDRepresentations">3.8</A>.
1056
Each node shape and each line can be drawn in the line styles
1057
solid, dashed or dotted. You can set the default line style
1058
of the node shapes via an option menu below the tiled node buttons
1059
in the main window. The default line style for lines can be
1060
set via the same kind of option menu below the tiled edge buttons.
1061
The line style of a node shape or line can be changed via
1062
the Update Line Style command in the properties menu. This command
1063
sets the line style of all selected shapes to the chosen line style.
1066
All node shapes in TGD, except comments, bulls eyes, black dots and
1067
solid horizontal and vertical bars can have an index text label.
1068
If you want to see these text labels select the <TT>create/edit index</TT>
1069
<A NAME="3314"> </A><A NAME="3315"> </A> <A NAME="3316"> </A> toggle button
1070
below the node tiled buttons. By default the index labels are numbers
1071
between 1 and the total number of nodes having an index. Each new node
1072
shape will get the lowest currently unused index number higher than 0.
1073
When you deselect the <TT>create/edit index</TT> toggle, all node indexes
1074
remain visible, but new node shapes will not get an index number.
1075
When the <TT>create/edit index</TT> toggle is selected you can edit the node
1076
indexes just like the name of a node. You can create a new index label
1077
for a node shape by editing the empty index label of the node shape.
1078
The node index can be made any string in TGD. If you issue the
1079
Renumber Indexes<A NAME="3319"> </A><A NAME="3320"> </A>
1080
command from the Edit menu of TGD then the current indexes of the diagram
1081
are renumbered. Each node shape that has an index will get as index
1082
a unique number between 1 and the total number of node shapes with an
1086
In TGD it is possible to convert between different node shape types.
1087
For this, select the shapes that you want to convert to some other
1088
node shape type and choose the desired shape type from the submenu
1089
of <TT>Convert Node Shape Type</TT> in the Edit
1090
menu.<A NAME="3322"> </A><A NAME="3323"> </A>
1091
This will pop up a dialog window containing toggle buttons for the
1092
various node shape types you can convert to.
1093
See figure <A HREF="usersguidenode5.html#ConvertNodeShapeTypes">3.7</A> for the available node shape types.
1094
This makes it possible to change a box in an ellipse or vice versa.
1095
Note however that only the representation is changed. The node itself
1100
<DIV ALIGN="CENTER"><A NAME="ConvertNodeShapeTypes"> </A><A NAME="3328"> </A>
1102
<CAPTION><STRONG>Figure 3.7:</STRONG>
1103
Possible node shape types to convert to.</CAPTION>
1105
<DIV ALIGN="CENTER">
1107
<!-- MATH: $\includegraphics[width=3.5in]{p/convertnodeshapetype.eps}$ -->
1109
WIDTH="402" HEIGHT="774" ALIGN="BOTTOM" BORDER="0"
1110
SRC="usersguideimg31.gif"
1111
ALT="\includegraphics[width=3.5in]{p/convertnodeshapetype.eps}"></DIV></TD></TR>
1116
In TGD, every node, including comment nodes, can be connected by any
1117
type of edge and given the facts that you can make comment nodes
1118
invisible by emptying its text string or make the line style of
1119
a node shape invisible and that you can connect edges with edges too,
1120
you can make very complex drawings in TGD. The arrows and other kinds
1121
of line endings of the lines in TGD can be changed via the Update Line
1122
End command in the Properties menu.
1126
<DIV ALIGN="CENTER"><A NAME="GDRepresentations"> </A><A NAME="3555"> </A>
1128
<CAPTION><STRONG>Figure 3.8:</STRONG>
1129
Generic diagram nodes and edges.</CAPTION>
1131
<DIV ALIGN="CENTER">
1132
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
1133
<TR><TD ALIGN="CENTER">
1135
<DIV ALIGN="CENTER">
1137
<!-- MATH: $\includegraphics{p/box.eps}$ -->
1139
WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
1140
SRC="usersguideimg32.gif"
1141
ALT="\includegraphics{p/box.eps}">
1145
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1148
<DIV ALIGN="CENTER">
1150
<!-- MATH: $\includegraphics{p/diamond.eps}$ -->
1152
WIDTH="88" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
1153
SRC="usersguideimg33.gif"
1154
ALT="\includegraphics{p/diamond.eps}">
1158
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Comment</TD>
1161
<DIV ALIGN="CENTER">
1163
<!-- MATH: $\includegraphics{p/ellipse.eps}$ -->
1165
WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
1166
SRC="usersguideimg34.gif"
1167
ALT="\includegraphics{p/ellipse.eps}">
1171
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1173
<TR><TD ALIGN="CENTER"><P>
1175
<DIV ALIGN="CENTER">
1177
<!-- MATH: $\includegraphics{p/circle.eps}$ -->
1179
WIDTH="70" HEIGHT="70" ALIGN="BOTTOM" BORDER="0"
1180
SRC="usersguideimg35.gif"
1181
ALT="\includegraphics{p/circle.eps}">
1185
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1188
<DIV ALIGN="CENTER">
1190
<!-- MATH: $\includegraphics{p/square.eps}$ -->
1192
WIDTH="70" HEIGHT="71" ALIGN="BOTTOM" BORDER="0"
1193
SRC="usersguideimg36.gif"
1194
ALT="\includegraphics{p/square.eps}">
1198
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1201
<DIV ALIGN="CENTER">
1203
<!-- MATH: $\includegraphics{p/blackdot.eps}$ -->
1205
WIDTH="10" HEIGHT="10" ALIGN="BOTTOM" BORDER="0"
1206
SRC="usersguideimg37.gif"
1207
ALT="\includegraphics{p/blackdot.eps}">
1211
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Empty node</TD>
1213
<TR><TD ALIGN="CENTER"><P>
1215
<DIV ALIGN="CENTER">
1217
<!-- MATH: $\includegraphics{p/roundedbox.eps}$ -->
1219
WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
1220
SRC="usersguideimg38.gif"
1221
ALT="\includegraphics{p/roundedbox.eps}">
1225
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1228
<DIV ALIGN="CENTER">
1230
<!-- MATH: $\includegraphics{p/verticalbar.eps}$ -->
1232
WIDTH="35" HEIGHT="89" ALIGN="BOTTOM" BORDER="0"
1233
SRC="usersguideimg39.gif"
1234
ALT="\includegraphics{p/verticalbar.eps}">
1238
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1241
<DIV ALIGN="CENTER">
1243
<!-- MATH: $\includegraphics{p/horizontalbar.eps}$ -->
1245
WIDTH="89" HEIGHT="36" ALIGN="BOTTOM" BORDER="0"
1246
SRC="usersguideimg40.gif"
1247
ALT="\includegraphics{p/horizontalbar.eps}">
1251
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1253
<TR><TD ALIGN="CENTER"><P>
1255
<DIV ALIGN="CENTER">
1257
<!-- MATH: $\includegraphics{p/triangle.eps}$ -->
1259
WIDTH="70" HEIGHT="58" ALIGN="BOTTOM" BORDER="0"
1260
SRC="usersguideimg41.gif"
1261
ALT="\includegraphics{p/triangle.eps}">
1265
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1268
<DIV ALIGN="CENTER">
1270
<!-- MATH: $\includegraphics{p/hexagon.eps}$ -->
1272
WIDTH="116" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
1273
SRC="usersguideimg42.gif"
1274
ALT="\includegraphics{p/hexagon.eps}">
1278
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1281
<DIV ALIGN="CENTER">
1283
<!-- MATH: $\includegraphics{p/ellipsedbox.eps}$ -->
1285
WIDTH="88" HEIGHT="44" ALIGN="BOTTOM" BORDER="0"
1286
SRC="usersguideimg43.gif"
1287
ALT="\includegraphics{p/ellipsedbox.eps}">
1291
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1293
<TR><TD ALIGN="CENTER"><P>
1295
<DIV ALIGN="CENTER">
1297
<!-- MATH: $\includegraphics{p/blackdotellipse.eps}$ -->
1299
WIDTH="24" HEIGHT="24" ALIGN="BOTTOM" BORDER="0"
1300
SRC="usersguideimg44.gif"
1301
ALT="\includegraphics{p/blackdotellipse.eps}">
1305
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Empty node</TD>
1308
<DIV ALIGN="CENTER">
1310
<!-- MATH: $\includegraphics{p/solidverticalbar.eps}$ -->
1312
WIDTH="4" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
1313
SRC="usersguideimg45.gif"
1314
ALT="\includegraphics{p/solidverticalbar.eps}">
1318
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1321
<DIV ALIGN="CENTER">
1323
<!-- MATH: $\includegraphics{p/solidhorizontalbar.eps}$ -->
1328
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Empty node</TD>
1330
<TR><TD ALIGN="CENTER"><P>
1332
<DIV ALIGN="CENTER">
1334
<!-- MATH: $\includegraphics{p/stickman.eps}$ -->
1336
WIDTH="33" HEIGHT="77" ALIGN="BOTTOM" BORDER="0"
1337
SRC="usersguideimg47.gif"
1338
ALT="\includegraphics{p/stickman.eps}">
1342
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1345
<DIV ALIGN="CENTER">
1347
<!-- MATH: $\includegraphics{p/folder.eps}$ -->
1349
WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
1350
SRC="usersguideimg48.gif"
1351
ALT="\includegraphics{p/folder.eps}">
1355
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1358
<DIV ALIGN="CENTER">
1360
<!-- MATH: $\includegraphics{p/subfolder.eps}$ -->
1362
WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
1363
SRC="usersguideimg49.gif"
1364
ALT="\includegraphics{p/subfolder.eps}">
1368
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1370
<TR><TD ALIGN="CENTER"><P>
1372
<DIV ALIGN="CENTER">
1374
<!-- MATH: $\includegraphics{p/cube.eps}$ -->
1376
WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
1377
SRC="usersguideimg50.gif"
1378
ALT="\includegraphics{p/cube.eps}">
1382
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1385
<DIV ALIGN="CENTER">
1387
<!-- MATH: $\includegraphics{p/buildingblock.eps}$ -->
1389
WIDTH="100" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
1390
SRC="usersguideimg51.gif"
1391
ALT="\includegraphics{p/buildingblock.eps}">
1395
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1398
<DIV ALIGN="CENTER">
1400
<!-- MATH: $\includegraphics{p/disk.eps}$ -->
1402
WIDTH="89" HEIGHT="55" ALIGN="BOTTOM" BORDER="0"
1403
SRC="usersguideimg52.gif"
1404
ALT="\includegraphics{p/disk.eps}"></DIV>
1407
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1409
<TR><TD ALIGN="CENTER"><P>
1411
<DIV ALIGN="CENTER">
1413
<!-- MATH: $\includegraphics{p/bce_boundary.eps}$ -->
1415
WIDTH="73" HEIGHT="57" ALIGN="BOTTOM" BORDER="0"
1416
SRC="usersguideimg53.gif"
1417
ALT="\includegraphics{p/bce_boundary.eps}">
1421
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1424
<DIV ALIGN="CENTER">
1426
<!-- MATH: $\includegraphics{p/bce_controller.eps}$ -->
1428
WIDTH="57" HEIGHT="70" ALIGN="BOTTOM" BORDER="0"
1429
SRC="usersguideimg54.gif"
1430
ALT="\includegraphics{p/bce_controller.eps}">
1434
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1437
<DIV ALIGN="CENTER">
1439
<!-- MATH: $\includegraphics{p/bce_entity.eps}$ -->
1441
WIDTH="57" HEIGHT="57" ALIGN="BOTTOM" BORDER="0"
1442
SRC="usersguideimg55.gif"
1443
ALT="\includegraphics{p/bce_entity.eps}"></DIV>
1446
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1448
<TR><TD ALIGN="CENTER"><P>
1450
<DIV ALIGN="CENTER">
1452
<!-- MATH: $\includegraphics{p/comment.eps}$ -->
1454
WIDTH="39" HEIGHT="9" ALIGN="BOTTOM" BORDER="0"
1455
SRC="usersguideimg56.gif"
1456
ALT="\includegraphics{p/comment.eps}">
1460
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic node</TD>
1463
<DIV ALIGN="CENTER">
1465
<!-- MATH: $\includegraphics{p/notebox.eps}$ -->
1467
WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
1468
SRC="usersguideimg57.gif"
1469
ALT="\includegraphics{p/notebox.eps}">
1473
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Empty node</TD>
1474
<TD ALIGN="CENTER"> </TD>
1475
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47> </TD>
1477
<TR><TD ALIGN="CENTER"><P>
1479
<DIV ALIGN="CENTER">
1481
<!-- MATH: $\includegraphics{p/line.eps}$ -->
1483
WIDTH="94" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
1484
SRC="usersguideimg58.gif"
1485
ALT="\includegraphics{p/line.eps}"></DIV>
1488
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic edge</TD>
1491
<DIV ALIGN="CENTER">
1493
<!-- MATH: $\includegraphics{p/arrow.eps}$ -->
1495
WIDTH="94" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
1496
SRC="usersguideimg59.gif"
1497
ALT="\includegraphics{p/arrow.eps}"></DIV>
1500
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic edge</TD>
1503
<DIV ALIGN="CENTER">
1505
<!-- MATH: $\includegraphics{p/doubleheadedarrow.eps}$ -->
1507
WIDTH="98" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
1508
SRC="usersguideimg60.gif"
1509
ALT="\includegraphics{p/doubleheadedarrow.eps}"></DIV>
1512
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic edge</TD>
1514
<TR><TD ALIGN="CENTER"><P>
1516
<DIV ALIGN="CENTER">
1518
<!-- MATH: $\includegraphics{p/doublearrow.eps}$ -->
1520
WIDTH="94" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
1521
SRC="usersguideimg61.gif"
1522
ALT="\includegraphics{p/doublearrow.eps}"></DIV>
1525
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic edge</TD>
1528
<DIV ALIGN="CENTER">
1530
<!-- MATH: $\includegraphics{p/generalizationarrow.eps}$ -->
1532
WIDTH="92" HEIGHT="25" ALIGN="BOTTOM" BORDER="0"
1533
SRC="usersguideimg62.gif"
1534
ALT="\includegraphics{p/generalizationarrow.eps}"></DIV>
1537
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic edge</TD>
1540
<DIV ALIGN="CENTER">
1542
<!-- MATH: $\includegraphics{p/openarrow.eps}$ -->
1544
WIDTH="93" HEIGHT="22" ALIGN="BOTTOM" BORDER="0"
1545
SRC="usersguideimg63.gif"
1546
ALT="\includegraphics{p/openarrow.eps}"></DIV>
1549
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47>Generic edge</TD>
1551
<TR><TD ALIGN="CENTER"><P></TD>
1552
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47> </TD>
1553
<TD ALIGN="CENTER"> </TD>
1554
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47> </TD>
1555
<TD ALIGN="CENTER"> </TD>
1556
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=47> </TD>
1558
</TABLE></DIV></TD></TR>
1563
<BR><HR><H4>Footnotes</H4>
1565
<DT><A NAME="foot3559">... curve </A><A NAME="foot3559"
1566
HREF="usersguidenode5.html#tex2html53"><SUP>3.1</SUP></A>
1568
<A NAME="tex2html50"
1569
HREF="http://www.moshplant.com/direct-or/bezier">http://www.moshplant.com/direct-or/bezier</A>
1570
for more information
1571
about Bezier curves.
1573
<DT><A NAME="foot3169">...
1574
node </A><A NAME="foot3169"
1575
HREF="usersguidenode5.html#tex2html56"><SUP>3.2</SUP></A>
1576
<DD>The question is if it is still
1577
the same edge when it connects to a different node...
1579
<DT><A NAME="foot3191">...
1580
undesirable </A><A NAME="foot3191"
1581
HREF="usersguidenode5.html#tex2html57"><SUP>3.3</SUP></A>
1582
<DD>But imagine the situation that labels do
1583
not move when nodes and edges are moved, that would be far more
1586
<DT><A NAME="foot3221">...
1587
duplicated </A><A NAME="foot3221"
1588
HREF="usersguidenode5.html#tex2html58"><SUP>3.4</SUP></A>
1589
<DD>Duplicate lines are meaningful too in
1590
our opinion, so we want to add them to TCM in the future.
1593
<!--Navigation Panel-->
1594
<A NAME="tex2html865"
1595
HREF="usersguidenode6.html">
1596
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_motif.gif"></A>
1597
<A NAME="tex2html861"
1599
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_motif.gif"></A>
1600
<A NAME="tex2html855"
1601
HREF="usersguidenode4.html">
1602
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="previous_motif.gif"></A>
1603
<A NAME="tex2html863"
1604
HREF="usersguidenode1.html">
1605
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents_motif.gif"></A>
1606
<A NAME="tex2html864"
1607
HREF="usersguidenode15.html">
1608
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index_motif.gif"></A>
1610
<B> Next:</B> <A NAME="tex2html866"
1611
HREF="usersguidenode6.html">4. Data View Editors</A>
1612
<B> Up:</B> <A NAME="tex2html862"
1613
HREF="User.html">Toolkit for Conceptual Modeling</A>
1614
<B> Previous:</B> <A NAME="tex2html856"
1615
HREF="usersguidenode4.html">2. Document Editing</A>
1616
<!--End of Navigation Panel-->
1618
<I>Henk van de Zandschulp</I>
1619
<BR><I>2003-01-20</I>