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:
@@ -1699,3 +1699,35 @@ Gemessen (04.10.2026):
|
||||
|
||||
Falle der Sonde: Der Menüpunkt „Normal“ steht in beiden Untermenüs; die
|
||||
Sonde nimmt den ersten (Schriftgröße).
|
||||
|
||||
### Dokumentation: „Exportieren“ (F4.8c)
|
||||
|
||||
`ExportRun` öffnet ein Projekt, wie Javas Menü es öffnet
|
||||
(`Information.reset`, `SzenarioVerwaltung.laden`, `updateViewport`,
|
||||
`updateCables`), holt per Reflection das Druckpanel
|
||||
(`GUIContainer.prepareExportPanel`) und liest dessen Ausschnitt
|
||||
(`getClipX` … `getClipHeight`), die Grenzen seiner drei Ebenen (Netz,
|
||||
Dokumentation, Fußzeile; `GUIMainArea.minX` …) und die Fußzeile. Dann malt es
|
||||
mit `createNetworkImage` das Bild und misst Größe, Eckpixel, die Farben der
|
||||
Fußzeile und die Füllung einer Fläche darin. Vier Projekte
|
||||
(`nat_with_mapped_port`, `zwei_rechnernetze_komplett`, die Fixture
|
||||
`documentation.fls`, `modem_beispiel`) und ein leeres
|
||||
(`packages/editor/test/networkImage.java.json`; Javas Bilder unter
|
||||
`.build/export`).
|
||||
|
||||
Gemessen (04.10.2026):
|
||||
|
||||
* Ausschnitt: alle Geräte, Kabel (die beiden Mitten mit 2 Rand) und
|
||||
Dokumentationselemente, links, oben und rechts 10 Rand. Die Fußzeile steht
|
||||
20 unter dem untersten Element, bündig mit dem linkesten; sie ist so breit
|
||||
wie ihr Text und 20 mehr, so hoch wie ihre Schrift; unter ihr 20 Rand. Ist
|
||||
die Fußzeile breiter als der Inhalt, reicht das Bild 20 über sie hinaus.
|
||||
* Fußzeile: der Pfad der Datei, ohne Datei „Filius“, hellgrau (192).
|
||||
* Hintergrund durchsichtig; Dokumentation unter dem Netz, gemalt wie im
|
||||
Entwurf (Fläche 204 → 215, 201 → 212); nichts ausgewählt.
|
||||
* Leeres Projekt: ein leeres Bild 20 × 35. Die Fußzeile landet durch einen
|
||||
Überlauf (`Integer.MAX_VALUE + 10`) außerhalb. Nicht übernommen.
|
||||
|
||||
Falle der Sonde: Das Druckpanel nimmt Javas Geräte-Etiketten aus der
|
||||
Oberfläche (eine Swing-Komponente hat nur einen Elternteil); erst
|
||||
`updateViewport` legt sie zurück.
|
||||
|
||||
Reference in New Issue
Block a user