feat(editor): F4.5a the device sheet for PCs, notebooks, switches and modems

Measured first: the new oracle SheetRun types 77 texts into FILIUS' own
settings panels and records what was marked red, what the device took and
what the field showed afterwards. Java's two judgements disagree (red text
taken, black text refused, any int as a modem port, a refused text dropped
without a word); here one rule decides both (packages/doc fields.ts), a
refused text stays marked in the field, and only what Java's model accepts
reaches the document.

- doc: settings.ts (name, label policy, addresses, IP forwarding, DHCP
  stopping the own DHCP server, LAN/WLAN with the wireless connection,
  switch SSID dropping its wireless hosts, retention time, cloud, modem
  port as its pair), sheet.ts (what the sheet shows)
- fls: modemPair/modemPort in one place
- editor: DeviceSheet beside the surface or below it on a phone, opened
  with the selection; every change one undo step
- not adopted from Java: the name overwritten by the MAC address, the
  access point search depending on unrelated devices

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-03 11:22:28 +00:00
co-authored by Claude Opus 5.5
parent 806df6baca
commit 9b7ec2fc72
25 changed files with 2667 additions and 73 deletions
+34
View File
@@ -1095,3 +1095,37 @@ Gemessen (03.10.2026):
`msg26` (drahtlos nicht möglich), `msg12` (bereits verbunden).
* Ein Wettlauf im Swing-Thread wirft beim Speichern gelegentlich eine
Ausnahme; die Datei wird trotzdem vollständig geschrieben.
## Das Geräte-Blatt (F4.5a)
`SheetRun` tippt die Texte aus `packages/doc/test/sheet.cases.txt` in
Filius' eigene Einstellungsfelder (`JHostKonfiguration`,
`JSwitchKonfiguration`, `JModemKonfiguration`, per Reflection), ruft wie
beim Verlassen eines Felds `aenderungenAnnehmen` und hält je Fall fest, ob
das Feld beim Tippen rot war, was das Gerät danach hält und was das Feld
dann zeigt (`packages/doc/test/sheet.java.json`). Jeder Fall beginnt mit
einem neuen Gerät; ein Rechner hat Gateway 192.168.0.254 und DNS
192.168.0.253, ein Switch die SSID „Start“, damit sichtbar wird, was ein
Fall stehen lässt. Dazu drei Abläufe der Kästchen.
Gemessen (03.10.2026):
* Markieren (beim Tippen: das Muster auf den Text) und Übernehmen (beim
Verlassen: `IP.ipCheck`, dann das Muster auf dessen Ergebnis) sind zwei
Urteile, die sich widersprechen. Rot, aber übernommen: „10..0.0.1“,
„+10.0.0.1“, „10.0.0.1.“, „١٠.0.0.1“, „-0.0.0.1“ (als 0.0.0.1),
„255..255.0.0“, „192.168..1.1“, Haltezeit „-5“ (−5000 ms) und „٣“.
Schwarz, aber verworfen: „.0.0.1“, Haltezeit „“ und
„99999999999999999999“.
* Gateway und DNS: Nur Leerzeichen gelten als leer (rot, aber übernommen);
ein ungültiger Text lässt den alten Wert stehen.
* Ein verworfener Text verschwindet ohne Meldung: Das Feld zeigt danach,
was das Gerät hält.
* Name: jeder Text, auch leer und mit Leerzeichen. SSID: druckbares ASCII,
mindestens ein Zeichen, Leerzeichen eingeschlossen.
* Modem: Der Port wird nie markiert und jede `int` übernommen (0, 65536,
−1, „080“ als 80); nur Text, der keine Zahl ist, bleibt ohne Wirkung.
* „MAC-Adresse als Name verwenden“, dann ein anderes Feld übernommen: Der
Name wird zur MAC-Adresse und bleibt es nach dem Abschalten (bei der
IP-Adresse nicht).
* „DHCP zur Konfiguration verwenden“ schaltet den eigenen DHCP-Server ab.