change: Falt-Voreinstellung wird ein Umschalter, Schwelle ab M abwärts (D44)
Statt eines Aufklapp-Menüs mit zwei Einträgen jetzt ein Umschalter neben „verworfene einblenden" und „günstigster Pfad". Die beiden Einträge waren nie unabhängige Befehle, sondern die zwei Stellungen einer Sache — jeder beschreibt einen vollständigen Faltzustand, zusammen decken sie ihn ab. Die Schwelle schließt M jetzt ein (atMostM statt belowM): Ein M-Paket ist selbst noch die Einheit, die man als Ganzes plant, seine Zerlegung ist schon das Innere. Offen bleiben L, XL, XXL — und Knoten ohne Größenangabe. Der Zustand des Knopfes wird bei jedem Rendern am Baum abgelesen, nicht gemerkt: Klappt jemand danach einen Knoten von Hand um, springt er von selbst heraus, statt etwas zu behaupten, das nicht mehr stimmt. Deshalb auch nicht persistiert — der Faltzustand steht im Text. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
9bbe7d78cc
commit
417006960f
+48
-32
@@ -2718,22 +2718,27 @@ und der Footer-Link rückt zwischen Versionsnummer und Copyright — zur
|
||||
Werkzeug-Ecke des Footers statt ans Ende hinter die Rechtstexte. Der
|
||||
Dateiname bleibt als Linktext (übersetzungsfrei), die Wurzel-Lage bleibt.
|
||||
|
||||
## D44 — Falt-Voreinstellungen: ein Menü, „unter M“ statt einer Tiefenzahl
|
||||
## D44 — Falt-Umschalter: „ab M abwärts“ statt einer Tiefenzahl
|
||||
Einzeln zu falten (D38) reicht für einen Plan mit 167 Knoten nicht — man will
|
||||
den Baum am Stück auf eine Arbeitshöhe bringen. Der Diagramm-Kopf bekommt
|
||||
deshalb ein Menü mit zwei Einträgen: **alle aufklappen** und **unter Größe M
|
||||
zuklappen**.
|
||||
dafür einen **Umschalter** neben „verworfene einblenden“ und „günstigster
|
||||
Pfad“: gedrückt ist alles **ab Größe M abwärts** zugeklappt, nicht gedrückt
|
||||
ist der ganze Baum offen.
|
||||
|
||||
**Das Kriterium ist die Größe, nicht die Tiefe.** Die naheliegende Alternative
|
||||
wäre „bis Ebene n aufklappen“ gewesen. Die Ebene ist aber eine Eigenschaft der
|
||||
Schreibweise, nicht der Sache: Wie tief etwas steht, hängt davon ab, wie fein
|
||||
der Autor zerlegt hat, und ein sorgfältig aufgeschlüsselter Zweig verschwände
|
||||
bei derselben Zahl früher als ein grob notierter. Die T-Shirt-Größe sagt
|
||||
dagegen etwas über die **Arbeit**, und die Notation hat dafür bereits eine
|
||||
Schwelle: Ab `M` **muss** ein Element zerlegt sein (§5/D8). „Unter M“ ist also
|
||||
genau die Menge, die keine Zerlegung mehr braucht — was darunter hängt, ist
|
||||
Detail. Die Voreinstellung zeigt damit den Plan auf der Höhe, auf der noch
|
||||
Entscheidungen anstehen.
|
||||
dagegen etwas über die **Arbeit** — und weil `M` die kleinste Größe ist, die
|
||||
überhaupt eine Zerlegung verlangt (§5/D8), ist „M und kleiner“ genau die
|
||||
Menge, deren Inneres Detail ist. Übrig bleibt der Plan auf der Höhe von `L`
|
||||
aufwärts, also dort, wo die großen Brocken stehen.
|
||||
|
||||
*(Zuerst gebaut war die Schwelle **unter** M — offen blieb dann auch jedes
|
||||
`M`. Der Nutzer hat sie auf `M` einschließlich korrigiert: Ein M-Paket ist
|
||||
selbst noch die Einheit, die man als Ganzes plant; seine Zerlegung ist schon
|
||||
das Innere.)*
|
||||
|
||||
**Ohne Größenangabe wird nicht zugeklappt.** Der günstigste Pfad wertet eine
|
||||
fehlende Größe als `M` (D18) — das wäre hier der falsche Präzedenzfall: Dort
|
||||
@@ -2743,15 +2748,34 @@ nichts gesagt; einen Zweig deswegen zu verbergen, behandelte eine Vermutung
|
||||
wie eine Angabe. Ein Knoten ohne Größe bleibt also offen — und fällt dadurch
|
||||
angenehmerweise auf.
|
||||
|
||||
**Beide Einträge beschreiben einen vollständigen Zustand.** „Unter M
|
||||
zuklappen“ klappt nicht nur zu, es klappt alles **andere auf**. Sonst wäre die
|
||||
Wirkung vom Vorzustand abhängig und zweimal Drücken ergäbe zweierlei — für
|
||||
eine Voreinstellung die falsche Eigenschaft. Der Preis: Ein von Hand gesetztes
|
||||
`>` an einem großen Knoten wird dabei aufgelöst. Das ist vertretbar, weil der
|
||||
Nutzer gerade ausdrücklich eine Gesamtansicht angefordert hat, und weil
|
||||
**Rückgängig** den ganzen Vorgang in einem Schritt zurücknimmt (nachgemessen:
|
||||
`replaceTextUndoable` schreibt genau einmal, Strg+Z stellt Text und Diagramm
|
||||
wieder her).
|
||||
**Ein Umschalter, kein Menü.** Zuerst gebaut war ein Aufklapp-Menü mit zwei
|
||||
Einträgen („alle aufklappen“ / „zuklappen“); der Nutzer wollte einen
|
||||
Umschalter. Das ist die bessere Form, und der Grund ist nicht nur Platz: Die
|
||||
beiden Einträge waren nie unabhängige Befehle, sondern die **zwei Stellungen
|
||||
einer Sache** — jeder beschreibt einen vollständigen Faltzustand, und
|
||||
zusammen decken sie ihn ganz ab. Genau das ist ein Umschalter. Ein Menü
|
||||
verlangte zwei Klicks für etwas, das einen braucht, und der Diagramm-Kopf hat
|
||||
das Idiom längst zweimal (D18, D4).
|
||||
|
||||
**Der Zustand wird abgelesen, nicht gemerkt.** Ein gemerktes Flag würde lügen,
|
||||
sobald jemand danach einen einzelnen Knoten umklappt. Stattdessen prüft
|
||||
`render()` bei jedem Durchlauf, ob **jeder** faltbare Knoten so steht, wie die
|
||||
Voreinstellung ihn stellen würde; nur dann ist der Knopf gedrückt. Er springt
|
||||
damit von selbst heraus, wenn man von Hand etwas aufklappt, und von selbst
|
||||
wieder hinein, wenn man es zurücknimmt (beides nachgemessen). Deshalb wird er
|
||||
auch **nicht** in `werkbaum-ui` persistiert: Der Faltzustand steht im Text
|
||||
(D38-Nachtrag 2), der Knopf liest ihn nur ab. Sonderfall: Gäbe es gar keinen
|
||||
Knoten bis `M`, wären beide Stellungen derselbe Zustand — dann bleibt der
|
||||
Knopf heraußen, statt gedrückt dazusitzen, ohne dass etwas zugeklappt ist.
|
||||
|
||||
**Beide Stellungen beschreiben einen vollständigen Zustand.** Zuklappen klappt
|
||||
also alles **andere auf**. Sonst wäre die Wirkung vom Vorzustand abhängig und
|
||||
zweimal Drücken ergäbe zweierlei — für einen Umschalter die falsche
|
||||
Eigenschaft. Der Preis: Ein von Hand gesetztes `>` an einem großen Knoten wird
|
||||
dabei aufgelöst. Vertretbar, weil der Nutzer gerade ausdrücklich eine
|
||||
Gesamtansicht angefordert hat, und weil **Rückgängig** den ganzen Vorgang in
|
||||
einem Schritt zurücknimmt (nachgemessen: `replaceTextUndoable` schreibt genau
|
||||
einmal, Strg+Z stellt Text und Diagramm wieder her).
|
||||
|
||||
**Umgesetzt über denselben Weg wie das einzelne Umklappen** — die
|
||||
Sitzungs-Überlagerungen setzen, dann in den Text schreiben (D38-Nachtrag 2).
|
||||
@@ -2762,18 +2786,10 @@ Rückfall-Kette unverändert — ist der Zustand in Marken **nicht ausdrückbar*
|
||||
wird nicht geschrieben und die Überlagerung trägt ihn für die Sitzung.
|
||||
|
||||
Genau der Fall tritt im mitgelieferten Werkbaum-Plan auf und ist beim Bauen
|
||||
nachgemessen worden: Zwei Knoten sind kleiner als `M` und haben Kinder
|
||||
(Zeile 94 und 100), aber in Zeile 103 steht eine Fokusmarke `!!!` unterhalb
|
||||
von 94 — die holt ihren Knoten immer wieder hervor, „94 eingeklappt“ ist als
|
||||
Markensatz also nicht schreibbar. Das Bild stimmt trotzdem (die Überlagerung
|
||||
gewinnt in `render()`), der Text bleibt unangetastet. In einem Plan ohne `!!!`
|
||||
werden die Marken geschrieben: `- [ ] > Klein (S)` und `- [ ] > Teil 3 (S)`,
|
||||
während `(L)`, `(XL)` und der Knoten ohne Größe offen bleiben.
|
||||
|
||||
**Ein Menü, nicht zwei Knöpfe.** Der Diagramm-Kopf trägt schon acht
|
||||
Bedienelemente und bricht auf dem Telefon knapp nicht um (D17). Zwei weitere
|
||||
Icon-Knöpfe hätten das gekostet — und die beiden Einträge brauchen **Text**:
|
||||
„unter Größe M zuklappen“ ist als Piktogramm nicht zu sagen. Dasselbe Idiom
|
||||
wie das Download-Menü (D17), nur auf **allen** Bildschirmgrößen aufklappend
|
||||
statt nur auf schmalen. Nachgemessen bei 375 px: Das Menü steht mit 159 px
|
||||
vollständig im Bild, die Kopfzeile bleibt einzeilig.
|
||||
nachgemessen worden: In Zeile 103 steht eine Fokusmarke `!!!` unterhalb eines
|
||||
Knotens, der zugeklappt werden soll — die holt ihren Knoten immer wieder
|
||||
hervor, dieser Markensatz ist also nicht schreibbar. Das Bild stimmt trotzdem
|
||||
(die Überlagerung gewinnt in `render()`), der Text bleibt unangetastet. In
|
||||
einem Plan ohne `!!!` werden die Marken geschrieben: `- [ ] > Mittel (M)`,
|
||||
`- [ ] > Klein (S)` und `- [ ] > Teil 3 (M)`, während `(L)`, `(XL)` und der
|
||||
Knoten ohne Größe offen bleiben.
|
||||
|
||||
Reference in New Issue
Block a user