1 |
acbc9fff
|
Tomáš Šimandl
|
Návrh JSONu
|
2 |
|
|
{
|
3 |
|
|
"attributeTypes": [
|
4 |
|
|
{
|
5 |
|
|
"dataType": <string>, //datový typ atributu (number, string, enum, ...)
|
6 |
|
|
"name": <string>, //název atributu
|
7 |
|
|
"text": <string> //může sloužit jako popisek atributu, nemusí být použit
|
8 |
|
|
},
|
9 |
|
|
...
|
10 |
|
|
],
|
11 |
|
|
|
12 |
|
|
"edgeArchetypes": [ //možné archetypy hran
|
13 |
|
|
{
|
14 |
|
|
"name": <string>, //název archetypu
|
15 |
|
|
"text": <string> //může sloužit jako popisek archetypu, nemusí být použit
|
16 |
|
|
},
|
17 |
|
|
...
|
18 |
|
|
],
|
19 |
|
|
|
20 |
|
|
"vertexArchetypes": [ //možné archetypy vrcholů
|
21 |
|
|
{
|
22 |
9ba3ab04
|
Tomáš Šimandl
|
"icon": <string>, // svg s ikonou
|
23 |
acbc9fff
|
Tomáš Šimandl
|
"name": <string>, //název archetypu
|
24 |
|
|
"text": <string> //může sloužit jako popisek archetypu, nemusí být použit
|
25 |
9ba3ab04
|
Tomáš Šimandl
|
|
26 |
|
|
// svg musí být pro správnou vizualizaci definován tak, aby obsahoval objekty, které leží uvnitř obdélníka [0; 0] až [12; 15]
|
27 |
|
|
// dát pozor u svg na escapování uvozovek
|
28 |
acbc9fff
|
Tomáš Šimandl
|
},
|
29 |
|
|
...
|
30 |
|
|
],
|
31 |
|
|
|
32 |
|
|
"vertices": [ //vrcholy
|
33 |
|
|
{
|
34 |
|
|
"archetype": <int>, //typ vrcholu (index v poli vertexArchetypes)
|
35 |
|
|
"attributes": [
|
36 |
|
|
[
|
37 |
|
|
<string-key>
|
38 |
|
|
<string-value>
|
39 |
|
|
],
|
40 |
|
|
...
|
41 |
|
|
],
|
42 |
fc56d1b6
|
Tomáš Šimandl
|
"id": <int>, //identifikátor vrcholu, který byl použit před zpracováním(filtrací) v backendu
|
43 |
acbc9fff
|
Tomáš Šimandl
|
"text": <string>, //text pro případné dodatečné info mimo atributy - nemusí být použito, může sloužit jako popisek vrcholu, např. když si uživatel zobrazí jeho detaily, nejdříve se zobrazí tento popisek a až pak hodnoty atributů, může sloužit i jen jako nosič informace, která nebude uživateli přístupná
|
44 |
|
|
"title": <string>, //jméno vrcholu
|
45 |
9ba3ab04
|
Tomáš Šimandl
|
"position": { //obsahuje relativní pozici uzlu v grafu
|
46 |
|
|
"x": <float>,
|
47 |
|
|
"y": <float>
|
48 |
|
|
}
|
49 |
acbc9fff
|
Tomáš Šimandl
|
},
|
50 |
|
|
...
|
51 |
|
|
],
|
52 |
|
|
|
53 |
|
|
"edges": [ //hrany
|
54 |
|
|
{
|
55 |
|
|
"subedgeInfo": [
|
56 |
|
|
{
|
57 |
fc56d1b6
|
Tomáš Šimandl
|
"id": <int>, //identifikátor hrany, který byl použit před zpracováním(filtrací) v backendu
|
58 |
acbc9fff
|
Tomáš Šimandl
|
"archetype": <int>, //typ hrany (index v poli edgeArchetypes)
|
59 |
|
|
"attributes": [ //struktura atributu je vzdy klic - hodnota
|
60 |
|
|
[
|
61 |
|
|
<string-key>
|
62 |
|
|
<string-value>
|
63 |
|
|
],
|
64 |
|
|
...
|
65 |
|
|
]
|
66 |
|
|
},
|
67 |
|
|
...
|
68 |
|
|
],
|
69 |
|
|
"from": <int>, //orignal id počátečního vrcholu
|
70 |
|
|
"id": <int>, //identifikátor hrany
|
71 |
|
|
"text": <string>, //podobně jako text u vertices
|
72 |
|
|
"to": <int>, //original id koncového vrcholu
|
73 |
|
|
},
|
74 |
|
|
...
|
75 |
|
|
],
|
76 |
|
|
|
77 |
|
|
"possibleEnumValues": {
|
78 |
|
|
<attribute idx>: [
|
79 |
|
|
<string>,
|
80 |
|
|
<string>,
|
81 |
|
|
...
|
82 |
|
|
],
|
83 |
|
|
...
|
84 |
|
|
},
|
85 |
|
|
|
86 |
|
|
"groups": [ //obsahuje jednotlivé skupiny uzlů
|
87 |
|
|
{
|
88 |
fc56d1b6
|
Tomáš Šimandl
|
"id": <int>, //identifikátor skupiny
|
89 |
acbc9fff
|
Tomáš Šimandl
|
"name": <string>, //název skupiny
|
90 |
9ba3ab04
|
Tomáš Šimandl
|
"verticesId": [<int>, <int>, ...], //original id uzlu, které jsou ve skupině
|
91 |
acbc9fff
|
Tomáš Šimandl
|
"verticesEdgeFromId": [<int>, <int>, ...], //identifikátory uzlů, jejichž odchozí hrany jsou viditelné v grafu
|
92 |
|
|
"verticesEdgeToId": [<int>, <int>, ...] //identifikátory uzlů, jejichž příchozí hrany jsou viditelné v grafu
|
93 |
9ba3ab04
|
Tomáš Šimandl
|
"position": { //obsahuje relativní pozici skupiny v grafu
|
94 |
|
|
"x": <float>,
|
95 |
|
|
"y": <float>
|
96 |
|
|
}
|
97 |
acbc9fff
|
Tomáš Šimandl
|
},
|
98 |
|
|
...
|
99 |
|
|
],
|
100 |
|
|
|
101 |
1d0ce2e9
|
Tomáš Šimandl
|
"sideBar": [ //obsahuje seznam uzlů a skupin, které jsou umístěné v postraním panelu
|
102 |
acbc9fff
|
Tomáš Šimandl
|
{
|
103 |
1d0ce2e9
|
Tomáš Šimandl
|
"id": vertex-<int>/group-<int>, //identifikátor uzlu nebo skupiny
|
104 |
|
|
"isIconsDisplayed": <bool> //identifikuje, zda budou u sousedů zobrazeny ikony
|
105 |
acbc9fff
|
Tomáš Šimandl
|
},
|
106 |
|
|
...
|
107 |
|
|
],
|
108 |
|
|
|
109 |
1d0ce2e9
|
Tomáš Šimandl
|
"highlightedVertex": vertex-<int>/group-<int>, //identifikátor uzlu nebo skupiny, který je zvýrazněn
|
110 |
|
|
"highlightedEdge": <int> //identifikátor hrany, která je zvýrazněna
|
111 |
acbc9fff
|
Tomáš Šimandl
|
}
|