File: graph_interface.docbook

package info (click to toggle)
tulip 3.7.0dfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 39,428 kB
  • sloc: cpp: 231,403; php: 11,023; python: 1,128; sh: 671; yacc: 522; makefile: 315; xml: 63; lex: 55
file content (714 lines) | stat: -rwxr-xr-x 42,368 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
<chapter id="interface"><title>Graphical User Interface</title>
	<para>We suggest to run Tulip and experiment with the concepts explained while reading this Manual.
		Here are the components of the main window:
    <graphic fileref="images/i_interface.png"/>
	</para>
  <sect1 id="main-window"><title>Menus</title>
    <para>
      <graphic fileref="images/mainmenu.png"/>
      <itemizedlist>
        <listitem>
          <para><code>File</code>: usual file operations
                                                (<code>New</code>, <code>Open</code>, <code>Save</code>, <code>Save as</code>, <code>Close Tab</code>,
						<code>Exit</code>)
						<!-- Note: keyboard shortcuts are already visible in the menus.
								 A shorter text means a more attentive reader. -->
						<!-- <itemizedlist>
								 <listitem>
									 <para><code>New</code> (<keycap>Ctrl+N</keycap>, <keycap>APPLE+N</keycap> on Mac),
									 </para>
								 </listitem>
								 <listitem>
									 <para><code>Open</code> (<keycap>Ctrl+O</keycap>, <keycap>APPLE+0</keycap> on Mac),
									 </para>
								 </listitem>
								 <listitem>
									 <para><code>Save</code> (<keycap>Ctrl+S</keycap>, <keycap>APPLE+S</keycap> on Mac),
									 </para>
								 </listitem>
								 <listitem>
									 <para><code>Save As</code> (<keycap>Ctrl+Shift+S</keycap>, <keycap>APPLE+Shift+S</keycap> on Mac),
									 </para>
								 </listitem>
								 <listitem>
									 <para><code>Print</code> (<keycap>Ctrl+P</keycap>, <keycap>APPLE+P</keycap> on Mac),
									 </para>
								 </listitem>
								 <listitem>
									 <para><code>Close Tab</code>,
									 </para>
								 </listitem>
								 <listitem>
									 <para><code>Exit</code>(<keycap>Ctrl+Q</keycap>, <keycap>APPLE+Q</keycap> on Mac).
									 </para>
								 </listitem>
						</itemizedlist> -->
						and
            <itemizedlist>
              <listitem>
                <para><code>Import</code>: when import plugins are installed, they go into this menu.
                  <itemizedlist>
                    <listitem>
                      <para><code>File</code>: import graphs in various file formats, such as
												Adjacency Matrix (see <ulink url="http://en.wikipedia.org/wiki/Adjacency_matrix">Wikipedia: Adjacency Matrix</ulink> for details),
												GML (used by the <application>graphlet</application> system, a toolkit for graph editors and graph algorithms),
												dot (graphviz),
												or TLP (Tulip's own file format).
                      </para>
                    </listitem>
                    <listitem>
                      <para><code>Graph</code>: plugins to generate graphs (random or deterministic):
												<itemizedlist>
													<listitem><para>Complete General Graph: complete graph</para></listitem>
													<listitem><para>Complete Tree</para></listitem>
													<listitem><para>Grid: 2D grid</para></listitem>
													<listitem><para>Grid approximation:
															This algorithm creates the specified number of nodes and places them randomly in the 2D plane.
															Then it adds an edge between all pairs of nodes that are at distance at most <emphasis>d</emphasis>.
															<emphasis>d</emphasis> is adjusted so that the average degree is approximately the degree requested.
													</para></listitem>
													<listitem><para>Random General Graph</para></listitem>
													<listitem><para>Random Simple Graph</para></listitem>
													<listitem><para>Uniform Random Binary Tree</para></listitem>
												</itemizedlist>
                      </para>
                    </listitem>
                    <listitem>
                      <para><code>Misc</code>:
												plugins to capture the tree structure of a file system directory under a selected root,
												or crawl the graph structure of a web site.
                      </para>
                    </listitem>
                  </itemizedlist>
                </para>
              </listitem>
              <listitem>
                <para><code>Export</code>. save a graph in GML or TLP formats. Plugins can be installed to support more file formats.
                </para>
              </listitem>
            </itemizedlist>
          </para>
        </listitem>
        <listitem>
          <para><code>Edit</code>:
						<itemizedlist>
							<listitem>
								<para><code>Cut</code> <!-- (<keycap>Ctrl+X</keycap>, <keycap>APPLE+X</keycap> on Mac), -->
								</para>
							</listitem>
							<listitem>
								<para><code>Copy</code> <!-- (<keycap>Ctrl+C</keycap>, <keycap>APPLE+C</keycap> on Mac), -->
								</para>
							</listitem>
							<listitem>
								<para><code>Paste</code>. <!-- (<keycap>Ctrl+V</keycap>, <keycap>APPLE+V</keycap> on Mac), -->
									Note that a copied element is placed at the location of the original;
									use right-click <code>View → Center View</code> or <keycap>Ctrl+Shift+C</keycap> if the pasted element is outside of the screen
								</para>
							</listitem>

							as well as modify the selection:
							<listitem>
								<para><code>Find</code> <!-- (<keycap>Ctrl+F</keycap>, <keycap>APPLE+F</keycap> on Mac) -->. This tool has 4 options:
									<itemizedlist>
										<listitem><para>Replace: Replace the current selection (nodes or edges already selected).
										</para></listitem>
										<listitem><para>Add: Add the nodes (or edges) to be selected to the current selection.
										</para></listitem>
										<listitem><para>Remove: Remove nodes (or edges) from the current selection.
										</para></listitem>
										<listitem><para>Intersect: Select the intersection between the nodes (or edges) TO BE selected, and the ones from the current selection.
										</para></listitem>
									</itemizedlist>
								</para>
							</listitem>
							<listitem>
								<para><code>Select All</code> <!-- (<keycap>Ctrl+A</keycap>, <keycap>APPLE+A</keycap> on Mac) -->,
								</para>
							</listitem>
							<listitem>
								<para><code>Delete selection</code><!--  (<keycap>Del</keycap>) -->: delete selected nodes and edges,
								</para>
							</listitem>
							<listitem>
								<para><code>Deselect all</code> <!-- (<keycap>Ctrl+Shift+A</keycap>, <keycap>APPLE+Shift+A</keycap> on Mac) -->,
								</para>
							</listitem>
							<listitem>
								<para><code>Invert Selection</code> <!-- (<keycap>Ctrl+I</keycap>, <keycap>APPLE+I</keycap> on Mac) -->.
								</para>
							</listitem>
						</itemizedlist>
						This menu also contains
						<code>Create group</code>,
						<code>Create subgraph</code>,
						<code>Undo</code>,
						<code>Redo</code>.
						<!-- <itemizedlist> 
								 <listitem>
									 <para><code>Create group</code> (<keycap>Ctrl+G</keycap>, <keycap>APPLE+G</keycap> on Mac),
									 </para>
								 </listitem>
								 <listitem>
									 <para><code>Create subgraph</code> (<keycap>Ctrl+Shift+G</keycap>, <keycap>APPLE+Shift+G</keycap> on Mac),
									 </para>
								 </listitem>
								 <listitem>
									 <para><code>Undo</code> (<keycap>Ctrl+Z</keycap>, <keycap>APPLE+Z</keycap> on Mac),
									 </para>
								 </listitem>
								 <listitem>
									 <para><code>Redo</code> (<keycap>Ctrl+Y</keycap>, <keycap>APPLE+Y</keycap> on Mac).</para>
								 </listitem>
						</itemizedlist>-->
					</para>
				</listitem>
        <listitem>
          <para><code>Algorithm</code>:
            <itemizedlist>
              <listitem>
                <para><code>Selection</code>: select nodes and/or edges based on advanced criteria. (Selecting means assigning the 'viewSelection' property, see <xref linkend="graph-properties"/> for details). For example, the 'Loop Selection' algorithm detects all edges for which the starting and ending nodes are the same.</para>
              </listitem>
              <listitem>
                <para><code>Color</code>: computes the color (the 'viewColor' property, see <xref linkend="graph-properties"/> for details) of the graph elements. A default one, 'Metric Mapping', is provided; it allows to color all graph elements according to a metric property.</para>
								<!-- This plug-in allows you to choose any number of colors, and computes an interpolation to fill in the blanks if needed (or you can force colors to some values by using the enumerated mode). -->
              </listitem>
              <listitem>
                <para><code>Measure</code>: compute and assign a value to the 'viewMetric' property of graph elements, see <xref linkend="graph-properties"/> for details. For example, when running the 'Degree' algorithm, the degree (the number of neighbors) is computed and stored, for each node, into its 'viewMetric' property.</para>
              </listitem>
              <listitem>
                <para><code>Layout</code>: compute the position of each node.
									For example, the 'Circular' algorithm places all nodes along a circle.
                </para>
                <para>
                  Before:
                  <graphic fileref="images/algorithms_circularbefor.png"/>
                </para>
                <para>
                  After:
                  <graphic fileref="images/algorithms_circularafter.png" />
                </para>
              </listitem>
              <listitem>
                <para><code>Size</code>: compute a size (the 'viewSize' property see <xref linkend="graph-properties"/> for details) of the graph elements.</para>
              </listitem>
              <listitem>
                <para><code>General</code>: more general algorithms: subgraphs, quotient graphs, groups... For example the 'Equal Value' algorithm create subgraphs for which the elements have a chosen value for a chosen 'metric' property.</para>
              </listitem>
            </itemizedlist>
            For more information, see <xref linkend="algo"/>.
          </para>
        </listitem>
        <listitem>
          <para><code>Graph </code>:
            <itemizedlist>
              <listitem><para><code>Tests</code>: test if the graph obey some constraints:
									<itemizedlist>
										<listitem><para><code>Simple </code>: Is the Graph Simple?
												As opposed to a multigraph, a simple graph is an undirected graph
												that has no loops and no more than one edge between any two different vertices.
												For more information, please visit: <ulink url="http://en.wikipedia.org/wiki/Simple_graph#Simple_graph">Wikipedia: Simple graphs</ulink></para>
										</listitem>
										<listitem><para><code>Directed Tree </code>: A directed tree is a directed graph which would be a tree if the directions on the edges were ignored. Some authors restrict the term to the case where all edges are directed towards a particular vertex, or all away from a particular vertex. More information: <ulink url="http://en.wikipedia.org/wiki/Directed_tree">Wikipedia: Directed Tree</ulink></para>
										</listitem>
										<listitem><para><code>Free Tree</code>: A tree without any designated root is called a free tree.  More information: <ulink url="http://en.wikipedia.org/wiki/Free_tree">Wikipedia: Free tree</ulink></para>
										</listitem>
										<listitem><para><code>Acyclic</code>: A graph is acyclic iff it contains no cycle. (A cycle is a path having the same start and and nodes.)  More information: <ulink url="http://en.wikipedia.org/wiki/Acyclic_Graph">Wikipedia: Acyclic graphs</ulink></para>
										</listitem>
										<listitem><para><code>Connected</code>: A graph is connected iff there is path path from any node to any other node. More information: </para> <para><ulink url="http://en.wikipedia.org/wiki/Connected_graph">Wikipedia: Connectivity </ulink></para>
										</listitem>
										<listitem><para><code>Bi-connected </code>: A connected graph is biconnected if the removal of any single node (and its adjacent edges) does not disconnect the graph.   More information:<ulink url="http://en.wikipedia.org/wiki/Biconnected_graph">Wikipedia: Biconnected Graphs </ulink></para>
										</listitem>
										<listitem><para><code>Tri-connected </code>: If it is always possible to establish a path from any node to an other one even after removing any 2 nodes, then the graph is said to be tri-connected.  More information: <ulink url="http://en.wikipedia.org/wiki/K-connected_graph">Wikipedia: k-connected graphs </ulink></para>
										</listitem>
										<listitem><para><code>Planar </code>: A  graph is said to be planar if it can be drawn on the (Euclidean) plane without any edges crossing. More information: <ulink url="http://en.wikipedia.org/wiki/Planar_graph">Wikipedia: Planar Graphs</ulink></para>
										</listitem>
            				<listitem><para><code>Outer Planar </code>: A graph is said to be outer planar if it has an embedding in the plane such that its nodes lie on a fixed circle and its edges lie inside the disk without any crossing. More information: <ulink url="http://en.wikipedia.org/wiki/Planar_graph#Outerplanar_graphs">Wikipedia: Outerplanar Graphs</ulink></para>
            				</listitem>
									</itemizedlist>
              </para></listitem>
              <listitem><para><code>Modify </code>: Modify the whole structure of a graph, to ensure the graph has one of the above properties:
									<itemizedlist>
										<listitem><para><code>Make Simple </code>:
												Makes the graph simple (by removing self loops and parallel edges, if any).
												see <ulink url="../../doxygen/tulip-lib/classtlp_1_1SimpleTest.html">Algorithm documentation</ulink></para>
										</listitem>
										<listitem><para><code>Make Acyclic</code>
												Makes the graph acyclic (by replacing each loop with a triangle, then reversing some edges).
												<!-- More information: <ulink url="http://en.wikipedia.org/wiki/Feedback_arc_set">Wikipedia: feedback arc set problem.</ulink> -->
											</para>
										</listitem>
										<listitem><para><code>Make Connected</code>
												If the graph is not connected, adds edges to make the graph connected.</para>
										</listitem>
										<listitem><para><code>Make Bi-connected </code>
												If the graph is not biconnected, adds edges to make the graph biconnected.</para>
										</listitem>
										<listitem><para><code>Make directed </code>: If the graph is a free tree, make it directed. If only one node is selected, this one will be considered as the root node. If none is selected, Tulip will heuristically choose the center of the graph as the root node. More information: <ulink url="http://en.wikipedia.org/wiki/Directed_tree">Wikipedia: Directed Tree</ulink></para>
										</listitem>
										<listitem><para>Reverse selected edges: Exchange source and target of those edges.
										</para></listitem>
									</itemizedlist>
              </para></listitem>
            </itemizedlist>
          </para>
        </listitem>
        <listitem>
          <para><code>View</code>: click one and a new subwindow will be created in the view window. For instance, table view displays the list of nodes and the list of edges. See <xref linkend="Main-views" />.</para>
        </listitem>
        <listitem>
          <para><code>Windows</code>: manages the subwindows of the view window.</para>
        </listitem>
        <listitem><para><code>Options</code>: enable/disable the display options, and show the Graph or View editor:
						<itemizedlist>
							<listitem><para>Display options:
									<itemizedlist>
										<listitem><para>Force ratio: Tries to keep a good Height/Width ratio for the graph layout.
										</para></listitem>
										<listitem><para>Map metric:
												Whenever a measure algorithm is run, show its result by updating the graph colors (i.e. applies the Color / Metric Mapping algorithm)
										</para></listitem>
										<listitem><para>Morphing: when a new layout is applied, displays an animation morphing the old layout to the new one.
										</para></listitem>
									</itemizedlist>
							</para></listitem>
							<listitem><para>Show Graph/View editor: if you have closed the Graph or View editor tab (in the left dock widget),
									you can show it again thanks to this menu</para></listitem>
						</itemizedlist>
				</para></listitem>
				<listitem>
          <para><code>Help</code>:
						<code>Documentation</code> (the present one),
						<code>Preferences</code>,
						<code>Plugins</code> manager,
						<code>About</code> this software, including version number.
					</para>
        </listitem>
      </itemizedlist>
    </para>
  </sect1>

  <sect1 id="main-window-toolsbar"><title>Toolbar</title>
    <para>
      <graphic fileref="images/tools_bar.png"/>
      The toolbar contains 6 tools: 
      <itemizedlist>
      	<listitem>
      		<para><inlinegraphic fileref="images/i_open.png"/><code> Open file</code>: Open a new graph.
          </para>
      	</listitem>
      	<listitem>
      		<para><inlinegraphic fileref="images/i_save.png"/><code> Save file</code>: Save the current graph.
          </para>
      	</listitem>
      	<listitem>
      		<para><inlinegraphic fileref="images/i_print.png"/><code> Print</code>: Print the current graph.
          </para>
      	</listitem>
      	<listitem>
      		<para><inlinegraphic fileref="images/i_undo.png"/><code> Undo</code>: Undo the last operation on the graph.
          </para>
      	</listitem>
      	<listitem>
      		<para><inlinegraphic fileref="images/i_redo.png"/><code> Redo</code>: Redo the last undo operation.
          </para>
      	</listitem>
      	<listitem>
      		<para><inlinegraphic fileref="images/i_snapshot.png"/><code> Snapshot</code>: Record an image of the current view.
          </para>
      	</listitem>
      </itemizedlist>
   	</para>
  </sect1>

  <sect1 id="infoeditor"><title>Graph Editor</title>
    <para>
      This subwindow is divided into three tabs: Property, Element, Hierarchy.
    </para>
    <sect2 id="property"><title>Property</title>
      <para>
        This tab displays the properties of nodes and edges as a table.
				(Properties will be covered in <xref linkend="graph-properties"/>.)
				This tab can also be acessed by clicking the <inlinegraphic fileref="images/i_select.png"/> tool,
				then clicking on a graph element (node or edge).
			</para>
			<para>
				It is composed of two parts: click on the bottom one to choose which property to display in the top one.
				Check <code>selected only</code> to restrict the table to the nodes selected in the node link diagram (i.e. the drawing).
				<!-- The bottom part of the tab displays the lists of all the local and inherited properties of a graph. An inherited property is a property which is defined for an upper graph in the hierarchy of graphs (see <xref linkend="hierar"/>). -->
        <graphic fileref="images/info-editor.png"/>

				Right-click (<keycap>Ctrl</keycap>-click on Mac) on a table row to display this pop-up menu about the corresponding element:
        <graphic fileref="images/info-contextmenu.png"/>
        <itemizedlist>
          <listitem><para><code>Add to/Remove from selection</code>: change the selection state of the element,</para>
          </listitem>
          <listitem><para><code>Select</code>: the current element replaces the whole selection,</para>
          </listitem>
          <listitem><para><code>Delete</code>: permanently remove the element from the current graph,</para>
          </listitem>
          <listitem><para><code>Properties</code>: show the element properties in the <quote>Element</quote> tab (which we now explain).</para>
          </listitem>
        </itemizedlist>
      </para>
    </sect2>
    <sect2 id="element"><title>Element</title>
      <para>
				Click this button in the toolbar <inlinegraphic fileref="images/i_select.png"/>,
				then click an element (node or edge). The element tab opens:
        <graphic fileref="images/element.png"/>
				Like before, double-click a cell (in the value column) to update it.
      </para>
    </sect2>
    <sect2 id="hierar"><title>Hierarchy</title>
      <para>
        This tab shows the hierarchy, i.e. the inclusions between the subgraphs and groups of the current graph.
				<!-- All of them could be created with the Tulip tools. -->
				Hierarchies will be explained in <xref linkend="hierarchy"/>. A hierarchy is often the result of a clustering algorithm.
        <graphic fileref="images/hierachy.png"/>
				Right-click an element to remove, clone or rename it.
      </para>
    </sect2>
  </sect1>

  <sect1 id="configuration"><title>View Editor</title>
    <para>
			Click the "View editor" tab at the bottom left corner to access this subwindow.
			Here one can configure the interactor (see picture below) and the view.
			Thus, when the type of active view changes, this window also changes.
      For example, when the view is the Node Link Diagram (i.e. a drawing), there is a tab with Rendering parameters (like on the picture below),
			but when the view is the Table view, there is no need for a rotation interactor!
    </para>
    <graphic fileref="images/view_editor.png"/>
    <para>
    </para>
  </sect1>

  <sect1 id="Main-views"><title>Standard views</title>
    <sect2 id="NodeLinkDiagramComponent"><title>Node Link Diagram view</title>
			<para>This is the most intuitive view: it draws the graph.
			</para>
      <sect3 id="mouse"><title>Mouse Interaction Toolbar</title>
        <para>
          <graphic fileref="images/mouse-tool.png"/>
					Buttons to act on the graph with the mouse.
          <itemizedlist>
            <listitem id="navigator3D" xreflabel="Node Link Diagram 3D Navigator">
              <para><inlinegraphic fileref="images/i_navigation.png"/><code>3D Navigation</code>: move, rotate and zoom the view.
								Zooming behavior: the point under the cursor is moved closer to the center.
              </para>
            </listitem>
            <listitem>
              <para><inlinegraphic fileref="images/i_select.png"/><code>Get Information</code>:
								click an element (node or edge) and Tulip displays all available properties of that element.
								<!--, in the <code>Element</code> tab of the <code>Info Editor</code> sub-window 	(see <xref linkend="infoeditor"/>). -->
							</para>
            </listitem>
            <listitem id="rectangleSelection" xreflabel="Node Link Diagram Rectangle Selection">
              <para><inlinegraphic fileref="images/i_selection.png"/><code>Rectangle Selection</code>: select all elements intersecting the selection box (the previous selection is replaced, but can be recovered with <code>Undo</code>). With <keycap>Shift</keycap>, the newly selected elements are added to the current selection; with <keycap>Ctrl</keycap> (<keycap>Alt</keycap> on Mac), the selected elements are removed from the current selection.
              </para>
            </listitem>
            <listitem>
              <para><inlinegraphic fileref="images/i_move.png"/><code>Selection edition</code>: modify the shape and position.
								<keycap>Shift</keycap>-click modifies only coordinates.
								<keycap>Ctrl</keycap>-click modifies only size.
								Left-click outside the selection resets the selection.
              </para>
              <itemizedlist>
                <listitem>
                  <para>
                    <inlinegraphic fileref="images/i_selection_click-inside.png"/> Click inside the selection to translate it.
                  </para>
                </listitem>
                <listitem>
                  <para>
                    <inlinegraphic fileref="images/mousebarselectcircle.png"/> The circle rotates the selection.
                  </para>
                </listitem>
                <listitem>
                  <para>
                    <inlinegraphic fileref="images/mousebarselecttriangle.png"/> The triangle streches (horizontally or vertically) the selection.
                  </para>
                </listitem>
                <listitem>
                  <para>
                    <inlinegraphic fileref="images/mousebarselectsquare.png"/> The square does the same as triangles, but in both directions.
                  </para>
                </listitem>
                <listitem>
                  <para>
                    <inlinegraphic fileref="images/mousebarselectalign.png"/> Align the selected nodes:
                    <itemizedlist>
                      <listitem>
												<inlinegraphic fileref="images/i_align_vert_center.png"/> align vertically on center
                      </listitem>
                      <listitem>
												<inlinegraphic fileref="images/i_align_horiz_center.png"/> align horizontally on center
                      </listitem>
                      <listitem>
												<inlinegraphic fileref="images/i_align_vert_right.png"/> align vertically on the right side
                      </listitem>
                      <listitem>
												<inlinegraphic fileref="images/i_align_vert_left.png"/> align vertically on the left side
                      </listitem>
                      <listitem>
												<inlinegraphic fileref="images/i_align_horiz_bottom.png"/> align horizontally on the bottom side 
                      </listitem>
                      <listitem>
												<inlinegraphic fileref="images/i_align_horiz_top.png"/> align horizontally on the top side
                      </listitem>
                    </itemizedlist>
                  </para>
                </listitem>
              </itemizedlist>
            </listitem>
            <listitem>
              <para><inlinegraphic fileref="images/i_magic.png"/><code>Magic Selection</code>: selects all the nodes having the same metric and connected to the clicked node. Thus, it works like the magic selection in image editing software, but consider neighboring nodes instead of neighboring pixels.
              </para>
            </listitem>
            <listitem>
              <para><inlinegraphic fileref="images/i_zoom.png"/><code>Zoom on Rectangle</code>: Zooms on a specified rectangle area. <keycap>mouse left</keycap> down indicates the first corner, <keycap>mouse left</keycap> up indicates the opposite corner.
              </para>
            </listitem>
            <listitem id="zoomBox" xreflabel="Node Link Diagram Zoom Box">
              <para><inlinegraphic fileref="images/i_del.png"/><code>Delete element</code>: click a node or edge to delete it.
              </para>
            </listitem>
            <listitem>
              <para><inlinegraphic fileref="images/i_addnode.png"/><code>Add node</code>: click to add a node at the mouse position.
              </para>
            </listitem>
            <listitem>
              <para><inlinegraphic fileref="images/i_addedge.png"/><code>Add edge</code>:
								to add an edge, click the source node,
								optionally click outside of nodes to add bends,
								finally click the target node.
								When not tracing a link, click outside of nodes to add a node.
              </para>
            </listitem>
            <listitem>
              <para><inlinegraphic fileref="images/i_bends.png"/><code>Edit edge bends</code>:
								click on an edge to select it (with this tool),
								then <keycap>Shift</keycap>-click to add a new bend,
								click a bend to move it,
								or <keycap>Ctrl</keycap>-click (<keycap>Alt</keycap> on Mac) to remove a bend.
              </para>
            </listitem>
          </itemizedlist>
        </para>
      </sect3>

			<sect3 id="view-window"><title>View window</title>
        <para>
          This is where the graph is drawn, in 2D or 3D.
					Several 3D views can be displayed, each one in a subwindow.
					Here is an example graph with 9 nodes:
          <graphic fileref="images/3d-view.png"/>
					<!-- If the user lets the mouse during few seconds on a node/edge, a tooltip window displays its id and label (use <quote>Options</quote> menu to enable tooltips). -->
        </para>
        <sect4 id="pop-up"><title>Context menu</title>
          <para>
						Right-click (<keycap>Ctrl</keycap>-click Mac) to display this menu:
						<graphic fileref="images/view-contextmenu.png"/>
            <itemizedlist>
							<listitem>
								<para><code>View</code>: <code>Redraw view</code>, <code>Center view</code>.</para>
							</listitem>
							<listitem>
								<code>Dialog</code>:
								<itemizedlist>
									<listitem><para><code>3D Overview</code>: toggle top left overview</para></listitem>
									<listitem><para><code>Augmented Display</code></para></listitem>
								</itemizedlist>
              </listitem>
							<listitem>
								<code>Options</code>:
								<itemizedlist>
									<listitem><para><code>Tooltips</code>: toggle the display of tooltips when hovering nodes or edges</para>
									</listitem>
									<listitem><para><code>Grid</code>: shows the grid configuration dialog.</para>
									</listitem>
									<listitem><para><code>Z Ordering</code>: Use this option when you have graph with transparent nodes or edges.</para>
									</listitem>
									<listitem><para><code>Antialiasing</code>: toggle antialiasing.</para>
									</listitem>
									<listitem><para><code>Textured meta node</code>: toggle meta node texture rendering.</para>
									</listitem>
								</itemizedlist>
							</listitem>
							<!-- <listitem><para><code>Save picture as → ...</code>: save the graph picture in different format.</para> -->
              <!-- </listitem> -->
            </itemizedlist>
          </para>
					Right-click a graph element to display this menu:
          <graphic fileref="images/view-contextmenu-element.png"/>
					If the element is a metanode, the following extra entries are available:
          <para>
            <itemizedlist>
              <!-- <listitem><para><code>Add to/Remove from selection</code>: this allows to change the selection state of the element,</para> -->
              <!-- </listitem> -->
              <!-- <listitem><para><code>Select</code>: the current element replaces the whole selection,</para> -->
              <!-- </listitem> -->
              <!-- <listitem><para><code>Delete</code>: this permanently removes the element from the current graph,</para> -->
              <!-- </listitem> -->
              <listitem><para><code>Go inside</code>: shows the corresponding subgraph in the current view,</para>
              </listitem>
              <listitem><para><code>Ungroup</code>: removes the metanode (the nodes of its subgraph are kept in the current graph),</para>
              </listitem>
              <!-- <listitem><para><code>Properties</code>: this shows the element properties in the <quote>Element</quote> tab.</para> -->
              <!-- </listitem> -->
            </itemizedlist>
          </para>
        </sect4>
      </sect3>

      <sect3 id="renderingparams"><title>Rendering Parameters</title>
        <para>
          <graphic fileref="images/renderingparams.png"/>
					Actions in this dialog are aplied only on the current view window.
          <itemizedlist>
            <listitem><para><code>Labels</code>:
                <itemizedlist>
                  <listitem><para><code>metric ordering</code>: if checked, labels are displayed in decreasing order of the selected property (default is viewMetric).</para>
                  </listitem>
                  <listitem><para><code>Density</code>: move this slider to the left to have less labels displayed.</para>
                  </listitem>
									<listitem><code>Scale labels to fit node size</code></listitem>
              </itemizedlist></para>
            </listitem>
            <listitem><para><code>Edges</code>:
                <itemizedlist>
                  <!-- <listitem><para><code>arrows</code>: enables/disables the display of arrows.</para> -->
                  <!-- </listitem> -->
                  <!-- <listitem><para><code>3D</code>: enables/disables the display of edges in 3D.</para> -->
                  <!-- </listitem> -->
                  <listitem><para><code>Color interpolation</code>: if checked, the edge color is a gradient from the color of its source node to the color of its target node.</para>
                  </listitem>
                  <listitem><para><code>Size interpolation</code>: like color interpolation, but for edge width.</para>
                  </listitem>
                  <listitem><para><code>Block max edge size to node size</code>: if checked, the edge size cannot be greater than the node size.</para>
                  </listitem>
              </itemizedlist></para>
            </listitem>
            <listitem><para><code>Others</code>:
                <itemizedlist>
                  <listitem><para><code>Orthogonal projection</code>: If not checked, the perspective projection is used instead of the orthogonal one.</para>
                  </listitem>
                  <!-- <listitem><para><code>Background color</code>: background color of a graph view.</para> -->
                  <!-- </listitem> -->
                  <listitem><para><code>Selection color</code>: how to show that a node is selected.
											Click "Save at default" to apply this selection color to new views.</para>
                  </listitem>
              </itemizedlist></para>
            </listitem>
          </itemizedlist>
        </para>
      </sect3>

      <sect3 id="layermanager"><title>Layer Manager</title>
        <para>
          <graphic fileref="images/layermanager.png"/>
					Actions in this dialog are aplied only on the current view window.
          <itemizedlist>
            <listitem><para><code>Visible</code>: should the element be displayed?
            </para></listitem>
            <listitem><para><code>Stencil</code>: priority to display the entity
            </para></listitem>
          </itemizedlist>
        </para>
        <para>If the visibility checkbox next to Hull is clicked, the convex hull of each subgraph is computed.</para>
        <!-- <para>In a future version you could add/modify/remove entity</para> -->
      </sect3>
    </sect2>

    <sect2 id="SpreadsheetComponent"><title>Table view</title>
      <graphic fileref="images/spreadsheet_view.png"/>
    <para> In this view you can visualize and edit the values of each graph elements (nodes or edges) using a table form. Each column represents a graph property and each row a node or an edge.</para>
    <para> The picture <inlinegraphic fileref="images/spreadsheet_inherited_properties.png"/>  beside a property mean that property is inherited.</para>
    <para> Nodes and edges are drawn in different tables. To switch the current table click on the <code>Nodes</code> or the <code>Edges</code> tab at the top of the view.</para>
    <graphic fileref="images/spreadsheet_tabs.png"/>
    <para>To edit a value double click on the corresponding cell. Once the modification done press the <code>Enter</code> key to commit the modification or <code>Escape</code> to cancel it.</para>
    <sect3><title>Sort elements</title>
    <para>To sort elements click on the label of the property. To invert the sort order click again on the label of the property.</para>
    </sect3>
    <sect3><title>Contextual menu</title>
    <para>There is three kinds of contextual menu : </para>
    <itemizedlist>
      <listitem><para>Property menu</para></listitem>
      <listitem><para>Nodes menu</para></listitem>
      <listitem><para>Edges menu</para></listitem>
    </itemizedlist>
    <sect4><title>Property menu</title>
    <para>Right click on the label of a property to show it's contextual menu.</para>
    <itemizedlist>
      <listitem><para><code>Hide</code>: hide the property in the table. To show it again use the property management panel.</para></listitem>
      <listitem><para><code>Create new property</code>: display the property creation dialog. Choose a property type and input a property name then click on Ok.</para></listitem>
      <listitem><para><code>Copy to</code>: display the property copy dialog. In this dialog you can choose to copy the property in a new property or in an existing property.</para></listitem>
      <listitem><para><code>Set all values</code>: set the value of each element of the table. If a filter is defined update only displayed elements.</para></listitem>
      <listitem><para><code>Reset</code>: reset properties values to default value. Do not take in account filter.</para></listitem>
      <listitem><para><code>Delete</code>: delete the property. You cannot delete inherited properties.</para></listitem>
    </itemizedlist>
    </sect4>
    <sect4><title>Nodes menu</title>
    <para>Right click on the label of a node or on a row in the table to show the contextual menu.</para>
    <itemizedlist>
      <listitem><para><code>Select</code>: replace the nodes selected in the graph by the nodes highlighted in the table.</para></listitem>
      <listitem><para><code>Add to the graph selection</code>: add the nodes highlighted in the table to the graph selection. Do not clear the old selection.</para></listitem>
      <listitem><para><code>Remove from the graph selection</code>: remove the nodes highlighted in the table from the graph selection.</para></listitem>
      <listitem><para><code>Highlight selection</code>: highlight in the table the nodes selected in the graph. Clear previously highlighted nodes.</para></listitem>
      <listitem><para><code>Clone</code>: duplicate highlighted nodes in the table. Also copy the properties values.</para></listitem>
      <listitem><para><code>Group</code>: create a meta node with the highlighted nodes. This action is available if more than one node is highlighted</para></listitem>
      <listitem><para><code>Ungroup</code>: extract all the nodes in the highlighted metanodes. Metanodes will be deleted. This action is available if all highlighted nodes are metanodes.</para></listitem>
      <listitem><para><code>Delete</code>: remove highlighted nodes from the current graph.</para></listitem>
    </itemizedlist>
    </sect4>
    <sect4><title>Edges menu</title>
    <para>Right click on the label of an edge or on a row in the table to show the contextual menu.</para>
    <itemizedlist>
      <listitem><para><code>Select</code>: replace the edges selected in the graph by the edges highlighted in the table.</para></listitem>
      <listitem><para><code>Add to the graph selection</code>: add the edges highlighted in the table to the graph selection. Do not clear the old selection.</para></listitem>
      <listitem><para><code>Remove from the graph selection</code>: remove the edges highlighted in the table from the graph selection.</para></listitem>
      <listitem><para><code>Highlight selection</code>: highlight in the table the edges selected in the graph. Clear previously highlighted edges.</para></listitem>
      <listitem><para><code>Delete</code>: remove highlighted edges from the current graph.</para></listitem>
    </itemizedlist>
    </sect4>
    </sect3>
    <sect3><title>Properties management panel</title>
    <para>To show the property management panel click on the <code>Properties</code> button at the top left corner of the view.</para>
    <para>Each table has it's own property management panel, so displayed properties can be different in nodes table and in edges table.</para>
    <graphic fileref="images/spreadsheet_property_management.png"/>
    <sect4><title>Displayed properties widget</title>
    <para>This widget allows the user to show and hide properties in the table. Check or uncheck the check-box beside a property to show or hide it.</para>
    <para>A right click on the list display a contextual menu : </para>
    <itemizedlist>
      <listitem><para><code>Show</code>: show the highlighted properties. Do not hide previously displayed properties.</para></listitem>
      <listitem><para><code>Show selected only</code>: show the highlighted properties and hide all the other.</para></listitem>
      <listitem><para><code>Hide</code>: hide the highlighted properties.</para></listitem>
      <listitem><para><code>Create new property</code>: display the property creation dialog. Choose a property type and input a property name then click on Ok.</para></listitem>
      <listitem><para><code>Copy to</code>: display the property copy dialog. In this dialog you can choose to copy the property in a new property or in an existing property.</para></listitem>
      <listitem><para><code>Delete</code>: delete the property. You cannot delete inherited properties.</para></listitem>
    </itemizedlist>
    </sect4>
    <sect4><title>Filter displayed properties</title>
    <para>This widget allow the user to select group of properties.</para>
    <para>The <code>Visual properties</code> button selects all the properties that affect visual rendering.</para>
    <para>The <code>Data properties</code> button selects all the properties containing user data i.e. properties created by the user, an algorithm or properties imported from a CSV file.</para>
    <para>The <code>Custom filter</code> field allow the user to filter displayed properties using a regular expression. Each property with a name matching the pattern will be displayed.</para>
    </sect4>
    </sect3>
    <sect3><title>Filter data</title>
    <para>This widget allow the user to filter displayed elements in the current table.</para>
    <graphic fileref="images/spreadsheet_filter.png"/>
    <para>The <code>Show only selected elements</code> check-box hide all the elements that are not selected in the graph.</para>
    <para>To filter elements using regular expression : input a pattern in the <code>Search</code> filed, choose to search in a specific property or in all the properties and click on the <code>Filter</code> button.</para>
    </sect3>
    </sect2>
  </sect1>
</chapter>

<!--  LocalWords:  GML TLP viewSelection viewColor viewMetric viewSize Tri nd
	-->
<!--  LocalWords:  subgraphs biconnected Outerplanar subgraph interactor th
	-->
<!--  LocalWords:  tooltip tooltips metanode viewLabelColor
	-->