Changes for page KIML Layout Options

Last modified by Alexander Schulz-Rosengarten on 2023/09/11 16:17

From version 17.1
edited by msp
on 2014/03/07 16:46
Change comment: There is no comment for this version
To version 18.1
edited by msp
on 2014/03/07 17:04
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -2,25 +2,29 @@
2 2  This is preliminary and incomplete documentation. You've been warned.
3 3  {{/warning}}
4 4  
5 -KIML defines a whole set of standard layout options that many layout algorithms support. Whether an algorithm supports a layout option depends on the option and on the algorithm. When an option is supported by an algorithm, it may change the option's default value. Algorithms may also provide more specialized documentation for a given layout option.
5 +KIML defines a whole set of standard layout options that many layout algorithms support. Whether an algorithm supports a layout option depends on the option and on the algorithm. When an option is supported by an algorithm, that algorithm may override the option's default value. Algorithms may also provide more specialized documentation for layout options.
6 6  
7 7  **Contents**
8 8  
9 9  
10 10  
11 -{{toc/}}
11 +{{toc maxLevel="2"/}}
12 12  
13 13  = Overview =
14 14  
15 -Beside a human-readable name, layout options are defined by the following properties:
15 +Beside a user-friendly name, layout options are defined by the following properties:
16 16  
17 17  * An ID to identify them.
18 -* A type. One of Boolean, String, Int, Float, Enum, EnumSet (a {{code language="none"}}Set{{/code}} over a given enumeration), or Object. The types Enum and EnumSet have to be further defined by an enumeration class. The Object type can be constricted to a certain class.
19 -* The kinds of graph objects the option applies to. At least one of Parents (nodes that have children, including the diagram root node), Nodes, Edges, Ports, and Labels.
20 -* An optional default value. If an option is not set on an object and if the option does not have a default value, {{code language="none"}}null{{/code}} is returned when it is accessed.
18 +* A type. One of Boolean, String, Int, Float, Enum, EnumSet (a s{{code language="none"}}et{{/code}} over a given enumeration), or Object (a non-primitive Java object). The types Enum and EnumSet have to be further defined by an enumeration class. The Object type can be constricted to a certain Java class.
19 +* The kinds of graph objects the option applies to. At least one of Parents (nodes that have children, including the diagram root node), Nodes, Edges, Ports, or Labels.
20 +* An optional default value. A default value may also be provided by the layout algorithm using the option, or by the modeling application you are using. In these cases the value given here is overridden.
21 21  
22 -KIML defines the following set of layout options:
22 +Layout options can be assigned to two main categories: user options and programmatic options.
23 23  
24 +== User Options ==
25 +
26 +User options are those that you can see in the "//Layout View//" available in Eclipse if the KIML user interface is installed. That view is restricted to layout options that are supported by the currently active layout algorithm. Furthermore, some options are visible only when the //Show Advanced Properties// button is active in the view.
27 +
24 24  |=(((
25 25  Option
26 26  )))|=(((
... ... @@ -76,22 +76,6 @@
76 76  )))|(((
77 77  
78 78  )))
79 -|(% colspan="1" %)(% colspan="1" %)
80 -(((
81 -Comment Box
82 -)))|(% colspan="1" %)(% colspan="1" %)
83 -(((
84 -de.cau.cs.kieler.commentBox
85 -)))|(% colspan="1" %)(% colspan="1" %)
86 -(((
87 -Boolean
88 -)))|(% colspan="1" %)(% colspan="1" %)
89 -(((
90 -Nodes
91 -)))|(% colspan="1" %)(% colspan="1" %)
92 -(((
93 -false
94 -)))
95 95  |(((
96 96  Debug Mode
97 97  )))|(((
... ... @@ -103,22 +103,6 @@
103 103  )))|(((
104 104  false
105 105  )))
106 -|(% colspan="1" %)(% colspan="1" %)
107 -(((
108 -[[Diagram Type>>doc:||anchor="diagramType"]]
109 -)))|(% colspan="1" %)(% colspan="1" %)
110 -(((
111 -de.cau.cs.kieler.diagramType
112 -)))|(% colspan="1" %)(% colspan="1" %)
113 -(((
114 -String
115 -)))|(% colspan="1" %)(% colspan="1" %)
116 -(((
117 -
118 -)))|(% colspan="1" %)(% colspan="1" %)
119 -(((
120 -
121 -)))
122 122  |(((
123 123  Direction
124 124  )))|(((
... ... @@ -130,22 +130,6 @@
130 130  )))|(((
131 131  
132 132  )))
133 -|(% colspan="1" %)(% colspan="1" %)
134 -(((
135 -Edge Label Placement
136 -)))|(% colspan="1" %)(% colspan="1" %)
137 -(((
138 -de.cau.cs.kieler.edgeLabelPlacement
139 -)))|(% colspan="1" %)(% colspan="1" %)
140 -(((
141 -Enum
142 -)))|(% colspan="1" %)(% colspan="1" %)
143 -(((
144 -Labels
145 -)))|(% colspan="1" %)(% colspan="1" %)
146 -(((
147 -
148 -)))
149 149  |(((
150 150  [[Edge Routing>>doc:||anchor="edgeRouting"]]
151 151  )))|(((
... ... @@ -157,22 +157,6 @@
157 157  )))|(((
158 158  
159 159  )))
160 -|(% colspan="1" %)(% colspan="1" %)
161 -(((
162 -Edge Type
163 -)))|(% colspan="1" %)(% colspan="1" %)
164 -(((
165 -de.cau.cs.kieler.edgeType
166 -)))|(% colspan="1" %)(% colspan="1" %)
167 -(((
168 -Enum
169 -)))|(% colspan="1" %)(% colspan="1" %)
170 -(((
171 -Edges
172 -)))|(% colspan="1" %)(% colspan="1" %)
173 -(((
174 -NONE
175 -)))
176 176  |(((
177 177  Expand Nodes
178 178  )))|(((
... ... @@ -184,54 +184,6 @@
184 184  )))|(((
185 185  false
186 186  )))
187 -|(% colspan="1" %)(% colspan="1" %)
188 -(((
189 -Font Name
190 -)))|(% colspan="1" %)(% colspan="1" %)
191 -(((
192 -de.cau.cs.kieler.fontName
193 -)))|(% colspan="1" %)(% colspan="1" %)
194 -(((
195 -String
196 -)))|(% colspan="1" %)(% colspan="1" %)
197 -(((
198 -Labels
199 -)))|(% colspan="1" %)(% colspan="1" %)
200 -(((
201 -
202 -)))
203 -|(% colspan="1" %)(% colspan="1" %)
204 -(((
205 -Font Size
206 -)))|(% colspan="1" %)(% colspan="1" %)
207 -(((
208 -de.cau.cs.kieler.fontSize
209 -)))|(% colspan="1" %)(% colspan="1" %)
210 -(((
211 -Int
212 -)))|(% colspan="1" %)(% colspan="1" %)
213 -(((
214 -Labels
215 -)))|(% colspan="1" %)(% colspan="1" %)
216 -(((
217 -
218 -)))
219 -|(% colspan="1" %)(% colspan="1" %)
220 -(((
221 -Hypernode
222 -)))|(% colspan="1" %)(% colspan="1" %)
223 -(((
224 -de.cau.cs.kieler.hypernode
225 -)))|(% colspan="1" %)(% colspan="1" %)
226 -(((
227 -Boolean
228 -)))|(% colspan="1" %)(% colspan="1" %)
229 -(((
230 -Nodes
231 -)))|(% colspan="1" %)(% colspan="1" %)
232 -(((
233 -false
234 -)))
235 235  |(((
236 236  Interactive
237 237  )))|(((
... ... @@ -279,63 +279,56 @@
279 279  )))
280 280  |(% colspan="1" %)(% colspan="1" %)
281 281  (((
282 -Minimal Height
174 +Node Label Placement
283 283  )))|(% colspan="1" %)(% colspan="1" %)
284 284  (((
285 -de.cau.cs.kieler.minHeight
177 +de.cau.cs.kieler.nodeLabelPlacement
286 286  )))|(% colspan="1" %)(% colspan="1" %)
287 287  (((
288 -Float
180 +EnumSet
289 289  )))|(% colspan="1" %)(% colspan="1" %)
290 290  (((
291 291  Nodes
292 -Parents
293 293  )))|(% colspan="1" %)(% colspan="1" %)
294 294  (((
295 -0.0
186 +
296 296  )))
297 -|(% colspan="1" %)(% colspan="1" %)
298 -(((
299 -Minimal Width
300 -)))|(% colspan="1" %)(% colspan="1" %)
301 -(((
302 -de.cau.cs.kieler.minWidth
303 -)))|(% colspan="1" %)(% colspan="1" %)
304 -(((
305 -Float
306 -)))|(% colspan="1" %)(% colspan="1" %)
307 -(((
188 +|(((
189 +Port Constraints
190 +)))|(((
191 +de.cau.cs.kieler.portConstraints
192 +)))|(((
193 +Enum
194 +)))|(((
308 308  Nodes
309 -Parents
310 -)))|(% colspan="1" %)(% colspan="1" %)
311 -(((
312 -0.0
196 +)))|(((
197 +
313 313  )))
314 314  |(% colspan="1" %)(% colspan="1" %)
315 315  (((
316 -No Layout
201 +Port Label Placement
317 317  )))|(% colspan="1" %)(% colspan="1" %)
318 318  (((
319 -de.cau.cs.kieler.noLayout
204 +de.cau.cs.kieler.portLabelPlacement
320 320  )))|(% colspan="1" %)(% colspan="1" %)
321 321  (((
322 -Boolean
207 +Enum
323 323  )))|(% colspan="1" %)(% colspan="1" %)
324 324  (((
325 -
210 +Nodes
326 326  )))|(% colspan="1" %)(% colspan="1" %)
327 327  (((
328 -false
213 +OUTSIDE
329 329  )))
330 330  |(% colspan="1" %)(% colspan="1" %)
331 331  (((
332 -Node Label Placement
217 +Port Spacing
333 333  )))|(% colspan="1" %)(% colspan="1" %)
334 334  (((
335 -de.cau.cs.kieler.nodeLabelPlacement
220 +de.cau.cs.kieler.portSpacing
336 336  )))|(% colspan="1" %)(% colspan="1" %)
337 337  (((
338 -EnumSet
223 +Float
339 339  )))|(% colspan="1" %)(% colspan="1" %)
340 340  (((
341 341  Nodes
... ... @@ -344,44 +344,58 @@
344 344  
345 345  )))
346 346  |(((
347 -Port Constraints
232 +Position
348 348  )))|(((
349 -de.cau.cs.kieler.portConstraints
234 +de.cau.cs.kieler.position
350 350  )))|(((
351 -Enum
236 +Object
352 352  )))|(((
238 +Labels
353 353  Nodes
240 +Ports
354 354  )))|(((
355 355  
356 356  )))
244 +|(((
245 +Priority
246 +)))|(((
247 +de.cau.cs.kieler.priority
248 +)))|(((
249 +Int
250 +)))|(((
251 +Edges
252 +Nodes
253 +)))|(((
254 +
255 +)))
357 357  |(% colspan="1" %)(% colspan="1" %)
358 358  (((
359 -Port Label Placement
258 +Randomization Seed
360 360  )))|(% colspan="1" %)(% colspan="1" %)
361 361  (((
362 -de.cau.cs.kieler.portLabelPlacement
261 +de.cau.cs.kieler.randomSeed
363 363  )))|(% colspan="1" %)(% colspan="1" %)
364 364  (((
365 -Enum
264 +Int
366 366  )))|(% colspan="1" %)(% colspan="1" %)
367 367  (((
368 -Nodes
267 +Parents
369 369  )))|(% colspan="1" %)(% colspan="1" %)
370 370  (((
371 -OUTSIDE
270 +
372 372  )))
373 373  |(% colspan="1" %)(% colspan="1" %)
374 374  (((
375 -[[Port Offset>>doc:||anchor="portOffset"]]
274 +Separate Connected Components
376 376  )))|(% colspan="1" %)(% colspan="1" %)
377 377  (((
378 -de.cau.cs.kieler.offset
277 +de.cau.cs.kieler.separateConnComp
379 379  )))|(% colspan="1" %)(% colspan="1" %)
380 380  (((
381 -Float
280 +Boolean
382 382  )))|(% colspan="1" %)(% colspan="1" %)
383 383  (((
384 -Ports
283 +Parents
385 385  )))|(% colspan="1" %)(% colspan="1" %)
386 386  (((
387 387  
... ... @@ -388,16 +388,16 @@
388 388  )))
389 389  |(% colspan="1" %)(% colspan="1" %)
390 390  (((
391 -Port Side
290 +Size Constraint
392 392  )))|(% colspan="1" %)(% colspan="1" %)
393 393  (((
394 -de.cau.cs.kieler.portSide
293 +de.cau.cs.kieler.sizeConstraint
395 395  )))|(% colspan="1" %)(% colspan="1" %)
396 396  (((
397 -Enum
296 +EnumSet
398 398  )))|(% colspan="1" %)(% colspan="1" %)
399 399  (((
400 -Ports
299 +Nodes
401 401  )))|(% colspan="1" %)(% colspan="1" %)
402 402  (((
403 403  
... ... @@ -404,73 +404,118 @@
404 404  )))
405 405  |(% colspan="1" %)(% colspan="1" %)
406 406  (((
407 -Port Spacing
306 +Size Options
408 408  )))|(% colspan="1" %)(% colspan="1" %)
409 409  (((
410 -de.cau.cs.kieler.portSpacing
309 +de.cau.cs.kieler.sizeOptions
411 411  )))|(% colspan="1" %)(% colspan="1" %)
412 412  (((
413 -Float
312 +EnumSet
414 414  )))|(% colspan="1" %)(% colspan="1" %)
415 415  (((
416 416  Nodes
417 417  )))|(% colspan="1" %)(% colspan="1" %)
418 418  (((
318 +DEFAULT_MINIMUM_SIZE
319 +)))
320 +|(% colspan="1" %)(% colspan="1" %)
321 +(((
322 +Spacing
323 +)))|(% colspan="1" %)(% colspan="1" %)
324 +(((
325 +de.cau.cs.kieler.spacing
326 +)))|(% colspan="1" %)(% colspan="1" %)
327 +(((
328 +Float
329 +)))|(% colspan="1" %)(% colspan="1" %)
330 +(((
331 +Parents
332 +)))|(% colspan="1" %)(% colspan="1" %)
333 +(((
419 419  
420 420  )))
336 +
337 +== Programmatic Options ==
338 +
339 +Programmatic options are such that are meant to be configured exclusively through the KIML API. They should not be visible in the user interface.
340 +
341 +|=(((
342 +Option
343 +)))|=(((
344 +ID
345 +)))|=(((
346 +Type
347 +)))|=(((
348 +Applies to
349 +)))|=(((
350 +Default
351 +)))
421 421  |(((
422 -Position
353 +[[Diagram Type>>doc:||anchor="diagramType"]]
423 423  )))|(((
424 -de.cau.cs.kieler.position
355 +de.cau.cs.kieler.diagramType
425 425  )))|(((
426 -Object
357 +String
427 427  )))|(((
428 -Labels
429 -Nodes
430 -Ports
359 +Parents
431 431  )))|(((
432 432  
433 433  )))
434 434  |(((
435 -Priority
364 +Edge Label Placement
436 436  )))|(((
437 -de.cau.cs.kieler.priority
366 +de.cau.cs.kieler.edgeLabelPlacement
438 438  )))|(((
439 -Int
368 +Enum
440 440  )))|(((
441 -Edges
442 -Nodes
370 +Labels
443 443  )))|(((
444 444  
445 445  )))
446 446  |(% colspan="1" %)(% colspan="1" %)
447 447  (((
448 -Randomization Seed
376 +Edge Type
449 449  )))|(% colspan="1" %)(% colspan="1" %)
450 450  (((
451 -de.cau.cs.kieler.randomSeed
379 +de.cau.cs.kieler.edgeType
452 452  )))|(% colspan="1" %)(% colspan="1" %)
453 453  (((
454 -Int
382 +Enum
455 455  )))|(% colspan="1" %)(% colspan="1" %)
456 456  (((
457 -Parents
385 +Edges
458 458  )))|(% colspan="1" %)(% colspan="1" %)
459 459  (((
388 +NONE
389 +)))
390 +|(% colspan="1" %)(% colspan="1" %)
391 +(((
392 +Font Name
393 +)))|(% colspan="1" %)(% colspan="1" %)
394 +(((
395 +de.cau.cs.kieler.fontName
396 +)))|(% colspan="1" %)(% colspan="1" %)
397 +(((
398 +String
399 +)))|(% colspan="1" %)(% colspan="1" %)
400 +(((
401 +Labels
402 +)))|(% colspan="1" %)(% colspan="1" %)
403 +(((
460 460  
461 461  )))
462 462  |(% colspan="1" %)(% colspan="1" %)
463 463  (((
464 -Separate Connected Components
408 +Font Size
465 465  )))|(% colspan="1" %)(% colspan="1" %)
466 466  (((
467 -de.cau.cs.kieler.separateConnComp
411 +de.cau.cs.kieler.fontSize
468 468  )))|(% colspan="1" %)(% colspan="1" %)
469 469  (((
470 -Boolean
414 +Int
471 471  )))|(% colspan="1" %)(% colspan="1" %)
472 472  (((
473 -Parents
417 +Labels
474 474  )))|(% colspan="1" %)(% colspan="1" %)
475 475  (((
476 476  
... ... @@ -477,58 +477,110 @@
477 477  )))
478 478  |(% colspan="1" %)(% colspan="1" %)
479 479  (((
480 -Size Constraint
424 +Hypernode
481 481  )))|(% colspan="1" %)(% colspan="1" %)
482 482  (((
483 -de.cau.cs.kieler.sizeConstraint
427 +de.cau.cs.kieler.hypernode
484 484  )))|(% colspan="1" %)(% colspan="1" %)
485 485  (((
486 -EnumSet
430 +Boolean
487 487  )))|(% colspan="1" %)(% colspan="1" %)
488 488  (((
489 489  Nodes
490 490  )))|(% colspan="1" %)(% colspan="1" %)
491 491  (((
492 -
436 +false
493 493  )))
494 494  |(% colspan="1" %)(% colspan="1" %)
495 495  (((
496 -Size Options
440 +Minimal Height
497 497  )))|(% colspan="1" %)(% colspan="1" %)
498 498  (((
499 -de.cau.cs.kieler.sizeOptions
443 +de.cau.cs.kieler.minHeight
500 500  )))|(% colspan="1" %)(% colspan="1" %)
501 501  (((
502 -EnumSet
446 +Float
503 503  )))|(% colspan="1" %)(% colspan="1" %)
504 504  (((
505 505  Nodes
450 +Parents
506 506  )))|(% colspan="1" %)(% colspan="1" %)
507 507  (((
508 -DEFAULT_MINIMUM_SIZE
453 +0.0
509 509  )))
510 510  |(% colspan="1" %)(% colspan="1" %)
511 511  (((
512 -Spacing
457 +Minimal Width
513 513  )))|(% colspan="1" %)(% colspan="1" %)
514 514  (((
515 -de.cau.cs.kieler.spacing
460 +de.cau.cs.kieler.minWidth
516 516  )))|(% colspan="1" %)(% colspan="1" %)
517 517  (((
518 518  Float
519 519  )))|(% colspan="1" %)(% colspan="1" %)
520 520  (((
466 +Nodes
521 521  Parents
522 522  )))|(% colspan="1" %)(% colspan="1" %)
523 523  (((
470 +0.0
471 +)))
472 +|(% colspan="1" %)(% colspan="1" %)
473 +(((
474 +No Layout
475 +)))|(% colspan="1" %)(% colspan="1" %)
476 +(((
477 +de.cau.cs.kieler.noLayout
478 +)))|(% colspan="1" %)(% colspan="1" %)
479 +(((
480 +Boolean
481 +)))|(% colspan="1" %)(% colspan="1" %)
482 +(((
524 524  
484 +)))|(% colspan="1" %)(% colspan="1" %)
485 +(((
486 +false
525 525  )))
488 +|(% colspan="1" %)(% colspan="1" %)
489 +(((
490 +[[Port Offset>>doc:||anchor="portOffset"]]
491 +)))|(% colspan="1" %)(% colspan="1" %)
492 +(((
493 +de.cau.cs.kieler.offset
494 +)))|(% colspan="1" %)(% colspan="1" %)
495 +(((
496 +Float
497 +)))|(% colspan="1" %)(% colspan="1" %)
498 +(((
499 +Ports
500 +)))|(% colspan="1" %)(% colspan="1" %)
501 +(((
502 +
503 +)))
504 +|(% colspan="1" %)(% colspan="1" %)
505 +(((
506 +Port Side
507 +)))|(% colspan="1" %)(% colspan="1" %)
508 +(((
509 +de.cau.cs.kieler.portSide
510 +)))|(% colspan="1" %)(% colspan="1" %)
511 +(((
512 +Enum
513 +)))|(% colspan="1" %)(% colspan="1" %)
514 +(((
515 +Ports
516 +)))|(% colspan="1" %)(% colspan="1" %)
517 +(((
518 +
519 +)))
526 526  
527 -= The Most Important Options =
521 += Detailed Documentation =
528 528  
523 +== The Most Important Options ==
524 +
529 529  While most layout options are used to affect how the active layout algorithm computes concrete coordinates for the graph elements, there are some layout options that have a special role in KIML.
530 530  
531 -== Layout Algorithm ==
527 +=== Layout Algorithm ===
532 532  
533 533  {{id name="layoutAlgorithm"/}}
534 534  
... ... @@ -553,7 +553,7 @@
553 553  * **OGDF** ((% style="color: rgb(0,0,0);" %)[[www.ogdf.net>>url:http://www.ogdf.net/||shape="rect"]](%%)) - A self-contained C++ class library for the automatic layout of diagrams. The version that is shipped with KIELER is compiled as an executable that reads files in OGML format and outputs the computed concrete layout.
554 554  * **Graphviz** ([[www.graphviz.org>>url:http://www.graphviz.org/||shape="rect"]]) - An open source graph visualization tool with several graph layout programs, web and interactive graphical interfaces, auxiliary tools, libraries, and language bindings. Graphviz needs to be installed separately in order to be used within KIELER, since it is called in a separate process using the DOT language for communication.
555 555  
556 -== Diagram Type ==
552 +=== Diagram Type ===
557 557  
558 558  {{id name="diagramType"/}}
559 559  
... ... @@ -575,11 +575,9 @@
575 575  * **Comment Box** ({{code language="none"}}de.cau.cs.kieler.commentBox{{/code}}) - A node that is marked as comment box is treated as a label that needs to be placed somewhere. This is different to normal node labels, which are usually regarded as fixed.
576 576  * **No Layout** ({{code language="none"}}de.cau.cs.kieler.noLayout{{/code}}) - Elements that are marked with this option are excluded from layout. This is used to identify diagram objects that should not be regarded as graph elements.
577 577  
578 -= Detailed Documentation =
579 -
580 580  This section explains every layout option in more detail.
581 581  
582 -== Edge Routing ==
576 +=== Edge Routing ===
583 583  
584 584  {{id name="edgeRouting"/}}
585 585  
... ... @@ -596,7 +596,7 @@
596 596  
597 597  (% style="color: rgb(153,51,0);" %)**TODO:** Add an image illustrating the different routing styles.
598 598  
599 -== Port Offset ==
593 +=== Port Offset ===
600 600  
601 601  {{id name="portOffset"/}}
602 602  
Confluence.Code.ConfluencePageClass[0]
Id
... ... @@ -1,1 +1,1 @@
1 -9470006
1 +9470010
URL
... ... @@ -1,1 +1,1 @@
1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/9470006/KIML Layout Options
1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/9470010/KIML Layout Options