feat: F4.8c the documentation mode's image export, as Java's
ExportRun measures Java's print panel (GUIContainer.prepareExportPanel) and image on four projects and an empty one: 10 to spare around, a light grey footer 20 below the lowest element, 20 below it, a transparent background, the documentation painted as in the design. The sidebar gains Java's "Exportieren": the surface painted with Canvas 2D (an SVG with a foreignObject taints the canvas in WebKit) and saved under the project's name; Java's message when saving fails. Not adopted: Java's empty image of an empty project (its footer overflows). The editor takes a projectName; the capture export shares the download helper. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,803 @@
|
||||
{
|
||||
"projects": {
|
||||
"nat_with_mapped_port.fls": {
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Switch",
|
||||
"bounds": [
|
||||
300,
|
||||
131,
|
||||
91,
|
||||
72
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Switch",
|
||||
"bounds": [
|
||||
676,
|
||||
161,
|
||||
91,
|
||||
72
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Vermittlungsrechner",
|
||||
"bounds": [
|
||||
551,
|
||||
90,
|
||||
167,
|
||||
78
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Vermittlungsrechner",
|
||||
"bounds": [
|
||||
559,
|
||||
263,
|
||||
167,
|
||||
78
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Vermittlungsrechner",
|
||||
"bounds": [
|
||||
562,
|
||||
426,
|
||||
167,
|
||||
78
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DNS-Server",
|
||||
"bounds": [
|
||||
837,
|
||||
119,
|
||||
101,
|
||||
114
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "192.168.0.100",
|
||||
"bounds": [
|
||||
152,
|
||||
54,
|
||||
116,
|
||||
100
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "192.168.0.101",
|
||||
"bounds": [
|
||||
157,
|
||||
202,
|
||||
116,
|
||||
100
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Webserver www.jupiter.de",
|
||||
"bounds": [
|
||||
804,
|
||||
307,
|
||||
213,
|
||||
114
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Webserver - 192.168.0.10",
|
||||
"bounds": [
|
||||
99,
|
||||
363,
|
||||
198,
|
||||
114
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Switch",
|
||||
"bounds": [
|
||||
313,
|
||||
444,
|
||||
91,
|
||||
72
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "192.168.0.100",
|
||||
"bounds": [
|
||||
260,
|
||||
538,
|
||||
116,
|
||||
100
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Heimrouter Vincent",
|
||||
"bounds": [
|
||||
384,
|
||||
438,
|
||||
158,
|
||||
78
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Heimrouter Paul",
|
||||
"bounds": [
|
||||
375,
|
||||
122,
|
||||
136,
|
||||
78
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Switch",
|
||||
"bounds": [
|
||||
694,
|
||||
342,
|
||||
91,
|
||||
72
|
||||
]
|
||||
}
|
||||
],
|
||||
"cables": [
|
||||
[
|
||||
208,
|
||||
102,
|
||||
139,
|
||||
67
|
||||
],
|
||||
[
|
||||
213,
|
||||
165,
|
||||
134,
|
||||
89
|
||||
],
|
||||
[
|
||||
632,
|
||||
127,
|
||||
91,
|
||||
72
|
||||
],
|
||||
[
|
||||
719,
|
||||
174,
|
||||
170,
|
||||
25
|
||||
],
|
||||
[
|
||||
640,
|
||||
195,
|
||||
83,
|
||||
109
|
||||
],
|
||||
[
|
||||
196,
|
||||
418,
|
||||
164,
|
||||
64
|
||||
],
|
||||
[
|
||||
316,
|
||||
478,
|
||||
44,
|
||||
112
|
||||
],
|
||||
[
|
||||
343,
|
||||
159,
|
||||
102,
|
||||
10
|
||||
],
|
||||
[
|
||||
441,
|
||||
127,
|
||||
195,
|
||||
36
|
||||
],
|
||||
[
|
||||
356,
|
||||
475,
|
||||
109,
|
||||
7
|
||||
],
|
||||
[
|
||||
461,
|
||||
463,
|
||||
186,
|
||||
16
|
||||
],
|
||||
[
|
||||
640,
|
||||
300,
|
||||
101,
|
||||
80
|
||||
],
|
||||
[
|
||||
643,
|
||||
376,
|
||||
98,
|
||||
91
|
||||
],
|
||||
[
|
||||
737,
|
||||
362,
|
||||
175,
|
||||
18
|
||||
]
|
||||
],
|
||||
"docs": [
|
||||
{
|
||||
"type": 1,
|
||||
"bounds": [
|
||||
94,
|
||||
34,
|
||||
428,
|
||||
292
|
||||
],
|
||||
"color": "204,204,204,255"
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"bounds": [
|
||||
316,
|
||||
42,
|
||||
142,
|
||||
26
|
||||
],
|
||||
"color": "0,0,0,255"
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"bounds": [
|
||||
95,
|
||||
349,
|
||||
428,
|
||||
296
|
||||
],
|
||||
"color": "204,204,204,255"
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"bounds": [
|
||||
322,
|
||||
358,
|
||||
169,
|
||||
27
|
||||
],
|
||||
"color": "0,0,0,255"
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"bounds": [
|
||||
388,
|
||||
523,
|
||||
129,
|
||||
73
|
||||
],
|
||||
"color": "0,0,0,255"
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"bounds": [
|
||||
113,
|
||||
483,
|
||||
167,
|
||||
108
|
||||
],
|
||||
"color": "0,0,0,255"
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"bounds": [
|
||||
792,
|
||||
52,
|
||||
224,
|
||||
489
|
||||
],
|
||||
"color": "204,204,204,255"
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"bounds": [
|
||||
828,
|
||||
430,
|
||||
148,
|
||||
50
|
||||
],
|
||||
"color": "0,0,0,255"
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"bounds": [
|
||||
802,
|
||||
57,
|
||||
187,
|
||||
50
|
||||
],
|
||||
"color": "0,0,0,255"
|
||||
}
|
||||
],
|
||||
"path": "nat_with_mapped_port.fls",
|
||||
"panelSize": [
|
||||
2020,
|
||||
1620
|
||||
],
|
||||
"network": {
|
||||
"minX": 99.0,
|
||||
"maxX": 1017.0,
|
||||
"minY": 54.0,
|
||||
"maxY": 638.0
|
||||
},
|
||||
"documentation": {
|
||||
"minX": 94.0,
|
||||
"maxX": 1016.0,
|
||||
"minY": 34.0,
|
||||
"maxY": 645.0
|
||||
},
|
||||
"footerArea": {
|
||||
"minX": 104.0,
|
||||
"maxX": 814.0,
|
||||
"minY": 675.0,
|
||||
"maxY": 690.0
|
||||
},
|
||||
"footer": {
|
||||
"text": "<path>",
|
||||
"bounds": [
|
||||
104,
|
||||
675,
|
||||
710,
|
||||
15
|
||||
],
|
||||
"stringWidth": 690,
|
||||
"fontHeight": 15,
|
||||
"foreground": "192,192,192,255"
|
||||
},
|
||||
"clip": [
|
||||
94,
|
||||
34,
|
||||
943,
|
||||
676
|
||||
],
|
||||
"imageSize": [
|
||||
943,
|
||||
676
|
||||
],
|
||||
"cornerPixel": "0,0,0,0",
|
||||
"footerColours": [
|
||||
[
|
||||
"0,0,0,0",
|
||||
8267
|
||||
],
|
||||
[
|
||||
"192,192,192,255",
|
||||
2383
|
||||
]
|
||||
],
|
||||
"rectangleCentre": [
|
||||
[
|
||||
"215,215,215,255",
|
||||
1
|
||||
]
|
||||
],
|
||||
"rectangleCentreColor": "204,204,204,255"
|
||||
},
|
||||
"zwei_rechnernetze_komplett.fls": {
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Switch 1",
|
||||
"bounds": [
|
||||
164,
|
||||
178,
|
||||
91,
|
||||
72
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Switch 2",
|
||||
"bounds": [
|
||||
612,
|
||||
104,
|
||||
91,
|
||||
72
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DNS-Server 2.10",
|
||||
"bounds": [
|
||||
694,
|
||||
19,
|
||||
134,
|
||||
114
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Notebook 1.10",
|
||||
"bounds": [
|
||||
53,
|
||||
100,
|
||||
123,
|
||||
100
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Notebook 1.11",
|
||||
"bounds": [
|
||||
70,
|
||||
235,
|
||||
123,
|
||||
100
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Vermittlungsrechner",
|
||||
"bounds": [
|
||||
373,
|
||||
106,
|
||||
167,
|
||||
78
|
||||
]
|
||||
}
|
||||
],
|
||||
"cables": [
|
||||
[
|
||||
112,
|
||||
148,
|
||||
99,
|
||||
68
|
||||
],
|
||||
[
|
||||
129,
|
||||
212,
|
||||
82,
|
||||
75
|
||||
],
|
||||
[
|
||||
655,
|
||||
74,
|
||||
108,
|
||||
68
|
||||
],
|
||||
[
|
||||
207,
|
||||
143,
|
||||
251,
|
||||
73
|
||||
],
|
||||
[
|
||||
454,
|
||||
138,
|
||||
205,
|
||||
9
|
||||
]
|
||||
],
|
||||
"docs": [],
|
||||
"path": "zwei_rechnernetze_komplett.fls",
|
||||
"panelSize": [
|
||||
2020,
|
||||
1620
|
||||
],
|
||||
"network": {
|
||||
"minX": 53.0,
|
||||
"maxX": 828.0,
|
||||
"minY": 19.0,
|
||||
"maxY": 335.0
|
||||
},
|
||||
"documentation": {
|
||||
"minX": 2.147483647E9,
|
||||
"maxX": 0.0,
|
||||
"minY": 2.147483647E9,
|
||||
"maxY": 0.0
|
||||
},
|
||||
"footerArea": {
|
||||
"minX": 63.0,
|
||||
"maxX": 817.0,
|
||||
"minY": 365.0,
|
||||
"maxY": 380.0
|
||||
},
|
||||
"footer": {
|
||||
"text": "<path>",
|
||||
"bounds": [
|
||||
63,
|
||||
365,
|
||||
754,
|
||||
15
|
||||
],
|
||||
"stringWidth": 734,
|
||||
"fontHeight": 15,
|
||||
"foreground": "192,192,192,255"
|
||||
},
|
||||
"clip": [
|
||||
53,
|
||||
19,
|
||||
795,
|
||||
381
|
||||
],
|
||||
"imageSize": [
|
||||
795,
|
||||
381
|
||||
],
|
||||
"cornerPixel": "0,0,0,0",
|
||||
"footerColours": [
|
||||
[
|
||||
"0,0,0,0",
|
||||
8805
|
||||
],
|
||||
[
|
||||
"192,192,192,255",
|
||||
2505
|
||||
]
|
||||
]
|
||||
},
|
||||
"documentation.fls": {
|
||||
"nodes": [],
|
||||
"cables": [],
|
||||
"docs": [
|
||||
{
|
||||
"type": 2,
|
||||
"bounds": [
|
||||
40,
|
||||
40,
|
||||
160,
|
||||
60
|
||||
],
|
||||
"color": "79,130,189,255"
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"bounds": [
|
||||
40,
|
||||
140,
|
||||
120,
|
||||
50
|
||||
],
|
||||
"color": "0,0,0,255"
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"bounds": [
|
||||
20,
|
||||
20,
|
||||
300,
|
||||
200
|
||||
],
|
||||
"color": "255,201,201,255"
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"bounds": [
|
||||
400,
|
||||
20,
|
||||
100,
|
||||
50
|
||||
],
|
||||
"color": "204,204,204,255"
|
||||
}
|
||||
],
|
||||
"path": "documentation.fls",
|
||||
"panelSize": [
|
||||
2020,
|
||||
1620
|
||||
],
|
||||
"network": {
|
||||
"minX": 2.147483647E9,
|
||||
"maxX": 0.0,
|
||||
"minY": 2.147483647E9,
|
||||
"maxY": 0.0
|
||||
},
|
||||
"documentation": {
|
||||
"minX": 20.0,
|
||||
"maxX": 500.0,
|
||||
"minY": 20.0,
|
||||
"maxY": 220.0
|
||||
},
|
||||
"footerArea": {
|
||||
"minX": 30.0,
|
||||
"maxX": 399.0,
|
||||
"minY": 250.0,
|
||||
"maxY": 265.0
|
||||
},
|
||||
"footer": {
|
||||
"text": "<path>",
|
||||
"bounds": [
|
||||
30,
|
||||
250,
|
||||
369,
|
||||
15
|
||||
],
|
||||
"stringWidth": 349,
|
||||
"fontHeight": 15,
|
||||
"foreground": "192,192,192,255"
|
||||
},
|
||||
"clip": [
|
||||
20,
|
||||
20,
|
||||
500,
|
||||
265
|
||||
],
|
||||
"imageSize": [
|
||||
500,
|
||||
265
|
||||
],
|
||||
"cornerPixel": "0,0,0,0",
|
||||
"footerColours": [
|
||||
[
|
||||
"0,0,0,0",
|
||||
4393
|
||||
],
|
||||
[
|
||||
"192,192,192,255",
|
||||
1142
|
||||
]
|
||||
],
|
||||
"rectangleCentre": [
|
||||
[
|
||||
"255,212,212,255",
|
||||
1
|
||||
]
|
||||
],
|
||||
"rectangleCentreColor": "255,201,201,255"
|
||||
},
|
||||
"modem_beispiel.fls": {
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Rechner 0.11",
|
||||
"bounds": [
|
||||
586,
|
||||
46,
|
||||
112,
|
||||
114
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Notebook 0.10",
|
||||
"bounds": [
|
||||
42,
|
||||
182,
|
||||
123,
|
||||
100
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Modem (Zugreifend)",
|
||||
"bounds": [
|
||||
237,
|
||||
212,
|
||||
165,
|
||||
76
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Modem (Zugangspunkt)",
|
||||
"bounds": [
|
||||
396,
|
||||
79,
|
||||
190,
|
||||
76
|
||||
]
|
||||
}
|
||||
],
|
||||
"cables": [
|
||||
[
|
||||
101,
|
||||
230,
|
||||
220,
|
||||
22
|
||||
],
|
||||
[
|
||||
489,
|
||||
101,
|
||||
155,
|
||||
18
|
||||
]
|
||||
],
|
||||
"docs": [],
|
||||
"path": "modem_beispiel.fls",
|
||||
"panelSize": [
|
||||
2020,
|
||||
1620
|
||||
],
|
||||
"network": {
|
||||
"minX": 42.0,
|
||||
"maxX": 698.0,
|
||||
"minY": 46.0,
|
||||
"maxY": 288.0
|
||||
},
|
||||
"documentation": {
|
||||
"minX": 2.147483647E9,
|
||||
"maxX": 0.0,
|
||||
"minY": 2.147483647E9,
|
||||
"maxY": 0.0
|
||||
},
|
||||
"footerArea": {
|
||||
"minX": 52.0,
|
||||
"maxX": 715.0,
|
||||
"minY": 318.0,
|
||||
"maxY": 333.0
|
||||
},
|
||||
"footer": {
|
||||
"text": "<path>",
|
||||
"bounds": [
|
||||
52,
|
||||
318,
|
||||
663,
|
||||
15
|
||||
],
|
||||
"stringWidth": 643,
|
||||
"fontHeight": 15,
|
||||
"foreground": "192,192,192,255"
|
||||
},
|
||||
"clip": [
|
||||
42,
|
||||
46,
|
||||
693,
|
||||
307
|
||||
],
|
||||
"imageSize": [
|
||||
693,
|
||||
307
|
||||
],
|
||||
"cornerPixel": "0,0,0,0",
|
||||
"footerColours": [
|
||||
[
|
||||
"0,0,0,0",
|
||||
7708
|
||||
],
|
||||
[
|
||||
"192,192,192,255",
|
||||
2237
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"empty": {
|
||||
"nodes": [],
|
||||
"cables": [],
|
||||
"docs": [],
|
||||
"path": null,
|
||||
"panelSize": [
|
||||
2020,
|
||||
1620
|
||||
],
|
||||
"network": {
|
||||
"minX": 2.147483647E9,
|
||||
"maxX": 0.0,
|
||||
"minY": 2.147483647E9,
|
||||
"maxY": 0.0
|
||||
},
|
||||
"documentation": {
|
||||
"minX": 2.147483647E9,
|
||||
"maxX": 0.0,
|
||||
"minY": 2.147483647E9,
|
||||
"maxY": 0.0
|
||||
},
|
||||
"footerArea": {
|
||||
"minX": 0.0,
|
||||
"maxX": 0.0,
|
||||
"minY": 30.0,
|
||||
"maxY": 45.0
|
||||
},
|
||||
"footer": {
|
||||
"text": "Filius",
|
||||
"bounds": [
|
||||
-2147483639,
|
||||
30,
|
||||
57,
|
||||
15
|
||||
],
|
||||
"stringWidth": 37,
|
||||
"fontHeight": 15,
|
||||
"foreground": "192,192,192,255"
|
||||
},
|
||||
"clip": [
|
||||
0,
|
||||
30,
|
||||
20,
|
||||
35
|
||||
],
|
||||
"imageSize": [
|
||||
20,
|
||||
35
|
||||
],
|
||||
"cornerPixel": "0,0,0,0",
|
||||
"footerColours": []
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user