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 |
|
|
"name": <string>, //název archetypu
|
23 |
|
|
"text": <string> //může sloužit jako popisek archetypu, nemusí být použit
|
24 |
|
|
},
|
25 |
|
|
...
|
26 |
|
|
],
|
27 |
|
|
|
28 |
|
|
"vertices": [ //vrcholy
|
29 |
|
|
{
|
30 |
|
|
"archetype": <int>, //typ vrcholu (index v poli vertexArchetypes)
|
31 |
|
|
"attributes": [
|
32 |
|
|
[
|
33 |
|
|
<string-key>
|
34 |
|
|
<string-value>
|
35 |
|
|
],
|
36 |
|
|
...
|
37 |
|
|
],
|
38 |
|
|
"id": <int>, //identifikátor vrcholu - použito např. při definici odkud kam vede hrana
|
39 |
|
|
"originalId": <int>, //identifikátor vrcholu, který byl použit před zpracováním(filtrací) v backendu
|
40 |
|
|
"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á
|
41 |
|
|
"title": <string>, //jméno vrcholu
|
42 |
|
|
},
|
43 |
|
|
...
|
44 |
|
|
],
|
45 |
|
|
|
46 |
|
|
"edges": [ //hrany
|
47 |
|
|
{
|
48 |
|
|
"subedgeInfo": [
|
49 |
|
|
{
|
50 |
|
|
"originalId": <int>, //identifikátor hrany, který byl použit před zpracováním(filtrací) v backendu
|
51 |
|
|
"archetype": <int>, //typ hrany (index v poli edgeArchetypes)
|
52 |
|
|
"attributes": [ //struktura atributu je vzdy klic - hodnota
|
53 |
|
|
[
|
54 |
|
|
<string-key>
|
55 |
|
|
<string-value>
|
56 |
|
|
],
|
57 |
|
|
...
|
58 |
|
|
]
|
59 |
|
|
},
|
60 |
|
|
...
|
61 |
|
|
],
|
62 |
|
|
"from": <int>, //orignal id počátečního vrcholu
|
63 |
|
|
"id": <int>, //identifikátor hrany
|
64 |
|
|
"text": <string>, //podobně jako text u vertices
|
65 |
|
|
"to": <int>, //original id koncového vrcholu
|
66 |
|
|
},
|
67 |
|
|
...
|
68 |
|
|
],
|
69 |
|
|
|
70 |
|
|
"possibleEnumValues": {
|
71 |
|
|
<attribute idx>: [
|
72 |
|
|
<string>,
|
73 |
|
|
<string>,
|
74 |
|
|
...
|
75 |
|
|
],
|
76 |
|
|
...
|
77 |
|
|
},
|
78 |
|
|
|
79 |
|
|
"archetypeIcons": [ //Definice archetypových ikon
|
80 |
|
|
{
|
81 |
|
|
"name": "archetypeName", //ikony identifikovány pomocí jmén
|
82 |
|
|
"value": "archetype svg" //dát pozor na escapování uvozovek
|
83 |
|
|
|
84 |
|
|
//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]
|
85 |
|
|
},
|
86 |
|
|
...
|
87 |
|
|
],
|
88 |
|
|
|
89 |
|
|
"groups": [ //obsahuje jednotlivé skupiny uzlů
|
90 |
|
|
{
|
91 |
|
|
"groupId": <int>, //identifikátor skupiny
|
92 |
|
|
"id": <int>, //identifikátor, který je jedinečný v rámci skupin i všech uzlů
|
93 |
|
|
"name": <string>, //název skupiny
|
94 |
|
|
"verticesId": [<int>, <int>, ...], //identifikátory uzlů, které jsou ve skupině
|
95 |
|
|
"verticesEdgeFromId": [<int>, <int>, ...], //identifikátory uzlů, jejichž odchozí hrany jsou viditelné v grafu
|
96 |
|
|
"verticesEdgeToId": [<int>, <int>, ...] //identifikátory uzlů, jejichž příchozí hrany jsou viditelné v grafu
|
97 |
|
|
},
|
98 |
|
|
...
|
99 |
|
|
],
|
100 |
|
|
|
101 |
|
|
"positions": [ //obsahuje relativní pozice uzlů a skupin v grafu
|
102 |
|
|
{
|
103 |
|
|
"id": <int>, //identifikátor uzlu nebo skupiny
|
104 |
|
|
"x": <int>, //X-ová pozice v grafu
|
105 |
|
|
"y": <int> //Y-ová pozice v grafu
|
106 |
|
|
},
|
107 |
|
|
...
|
108 |
|
|
],
|
109 |
|
|
|
110 |
|
|
"sideBar": [ //obsahuje seznam uzlů a skupin, které jsou umístěné v postraním panelu
|
111 |
|
|
{
|
112 |
|
|
"id": <int>, //identifikátor uzlu nebo skupiny
|
113 |
|
|
"isHighlighted": <bool> //identifikuje, zda budou u sousedů zobrazeny ikony
|
114 |
|
|
},
|
115 |
|
|
...
|
116 |
|
|
],
|
117 |
|
|
|
118 |
|
|
"selectedVertex": <int>, //identifikátor uzlu nebo skupiny, který je zvýrazněn
|
119 |
|
|
"selectedEdge": <int> //identifikátor hrany, která je zvýrazněna
|
120 |
|
|
}
|