Tabellen D — Grafiekdataraster: zelfde cel-navigatie en rekenblad-look #2055

Closed
opened 2026-09-11 06:13:36 +00:00 by brenno · 2 comments
Owner

Onderdeel van #2051.

Wat je wilt bereiken

Het gegevensraster van een grafiek (dia-editor én document-invoegdialoog) voelt als hetzelfde rekenblad: cellen zonder Outline-kaders, Tab/Enter lopen door het raster en groeien het, pijlen eerst door de cel dan naar de buur, plakken vanuit de cel — niet via een aparte knop als enige weg.

Dit is D in de serie (#2051). Onafhankelijk van #2052–#2054. Raakt lib/widgets/editors/chart_editor_grid.dart en de plak/toetsen in chart_editor.dart.

Wat er nu is

  • Cellen zijn TextFormField + OutlineInputBorder, vaste cellWidth uit de paneelbreedte.
  • Tab volgt ReadingOrderTraversalPolicy — op de laatste cel verlaat de focus het raster. Geen groeien.
  • Geen Enter-als-rij-lager, geen tableArrowTarget.
  • Plakken: _pasteClipboardTable (herkent spreadsheet/CSV) bestaat, maar hangt niet op dezelfde cel-toetsen als TableEditController (geen Shift+Insert in de cel, Cmd+V is niet de cel-intercept).
  • Extra chroom dat een gewone tabel niet heeft en moet blijven: reekskleur, rijkleur, getalfilter op waardecellen, gedempte taart-kolommen >2, CSV-import, sorteren, bound-fields.

Een grafiek is géén GFM-tabel: eerste kolom labels, verdere kolommen reeksen, data vaak in data/*.json. Niet forceren door DocumentMarkdownView.

Wat je bouwt

  1. Zelfde celgedrag als TableEditController.handleCellKey / tableArrowTarget / nextTableCell (hergebruik de utils, geen derde kopie). Tab op de laatste cel voegt een datarij toe; Enter gaat een rij lager en groeit onderaan.
  2. Cellen visueel in lijn met TableEditableCell: chroomloos in een gestileerd raster (zebra / kopvet / actieve-celtint), geen Outline per veld. Kolombreedte mag nog uit de beschikbare breedte komen — grafiekreeksen zijn geen Markdown-kolommen.
  3. Cmd/Ctrl+V en Shift+Insert in een cel: herkende tabel → _pasteClipboardTable (groeit reeksen/rijen); anders gewone tekst in die cel.
  4. Behoud reekskleur, sorteren, CSV-import, numeriek filter op waardecellen, pie-mute.

Wat je niet doet

  • De grafiek zelf of data/*.json-opslag veranderen.
  • ChartEditor in een TableEditor veranderen.
  • Presenteren / hovertooltips.
  • Formulier-slides.

Klaar als

  • Tab vanaf de laatste waardecel maakt een rij; de focus landt in het labelfeld van die rij.
  • Enter in een waardecel gaat naar dezelfde reeks één rij lager (niet: “klaar met bewerken”).
  • Pijlen gedragen zich als in tableArrowTarget.
  • Plakken vanuit Excel in een cel vult het raster; een komma in een label blijft één cel.
  • Reekskleur en CSV-import werken nog.
  • Tests in de bestaande chart-editor/grid-tests: navigatie + groeien + plakken. Geen visuele golden verplicht; wel “geen OutlineInputBorder op een datacel” als widget-verwachting mag.

Kosten

Waarschijnlijk geen nieuwe l10n. chart_editor.dart zit tegen het regelplafond — toetsen in de bestaande chart_editor_grid.dart-part. Geen nieuwe dependency.

Onderdeel van #2051. ## Wat je wilt bereiken Het **gegevensraster van een grafiek** (dia-editor én document-invoegdialoog) voelt als hetzelfde rekenblad: cellen zonder Outline-kaders, Tab/Enter lopen door het raster en groeien het, pijlen eerst door de cel dan naar de buur, plakken vanuit de cel — niet via een aparte knop als enige weg. Dit is **D** in de serie (#2051). Onafhankelijk van #2052–#2054. Raakt `lib/widgets/editors/chart_editor_grid.dart` en de plak/toetsen in `chart_editor.dart`. ## Wat er nu is - Cellen zijn `TextFormField` + `OutlineInputBorder`, vaste `cellWidth` uit de paneelbreedte. - Tab volgt `ReadingOrderTraversalPolicy` — op de laatste cel **verlaat** de focus het raster. Geen groeien. - Geen Enter-als-rij-lager, geen `tableArrowTarget`. - Plakken: `_pasteClipboardTable` (herkent spreadsheet/CSV) bestaat, maar hangt niet op dezelfde cel-toetsen als `TableEditController` (geen `Shift+Insert` in de cel, Cmd+V is niet de cel-intercept). - Extra chroom dat een gewone tabel niet heeft en **moet blijven**: reekskleur, rijkleur, getalfilter op waardecellen, gedempte taart-kolommen >2, CSV-import, sorteren, bound-fields. Een grafiek is géén GFM-tabel: eerste kolom labels, verdere kolommen reeksen, data vaak in `data/*.json`. Niet forceren door `DocumentMarkdownView`. ## Wat je bouwt 1. Zelfde *celgedrag* als `TableEditController.handleCellKey` / `tableArrowTarget` / `nextTableCell` (hergebruik de utils, geen derde kopie). Tab op de laatste cel voegt een datarij toe; Enter gaat een rij lager en groeit onderaan. 2. Cellen visueel in lijn met `TableEditableCell`: chroomloos in een gestileerd raster (zebra / kopvet / actieve-celtint), geen Outline per veld. Kolombreedte mag nog uit de beschikbare breedte komen — grafiekreeksen zijn geen Markdown-kolommen. 3. Cmd/Ctrl+V en Shift+Insert in een cel: herkende tabel → `_pasteClipboardTable` (groeit reeksen/rijen); anders gewone tekst in die cel. 4. Behoud reekskleur, sorteren, CSV-import, numeriek filter op waardecellen, pie-mute. ## Wat je niet doet - De grafiek zelf of `data/*.json`-opslag veranderen. - `ChartEditor` in een `TableEditor` veranderen. - Presenteren / hovertooltips. - Formulier-slides. ## Klaar als - [ ] Tab vanaf de laatste waardecel maakt een rij; de focus landt in het labelfeld van die rij. - [ ] Enter in een waardecel gaat naar dezelfde reeks één rij lager (niet: “klaar met bewerken”). - [ ] Pijlen gedragen zich als in `tableArrowTarget`. - [ ] Plakken vanuit Excel in een cel vult het raster; een komma in een label blijft één cel. - [ ] Reekskleur en CSV-import werken nog. - [ ] Tests in de bestaande chart-editor/grid-tests: navigatie + groeien + plakken. Geen visuele golden verplicht; wel “geen OutlineInputBorder op een datacel” als widget-verwachting mag. ## Kosten Waarschijnlijk geen nieuwe l10n. `chart_editor.dart` zit tegen het regelplafond — toetsen in de bestaande `chart_editor_grid.dart`-part. Geen nieuwe dependency.
Author
Owner

Opgepakt. Tak: feature/table-spreadsheet-ux. Hele serie A–E op één tak. Reikwijdte: table_editor, table_edit_controller, document_editor_inserts, document_editor_layouts, chart_editor_grid, matrix_editor, USER_GUIDE, SHORTCUTS.

Opgepakt. Tak: feature/table-spreadsheet-ux. Hele serie A–E op één tak. Reikwijdte: table_editor, table_edit_controller, document_editor_inserts, document_editor_layouts, chart_editor_grid, matrix_editor, USER_GUIDE, SHORTCUTS.
Author
Owner

Op main: 0fd96349f. Tab groeit een datarij, Enter gaat omlaag, pijlen via tableArrowTarget, Cmd/V en Shift+Insert plakken vanaf de cel. Geen Outline per datacel. Reekskleur/CSV/taart-demping blijven. Niet in: opslag (data/*.json) ongewijzigd; de plakknop vervangt nog het hele raster.

Op main: 0fd96349f. Tab groeit een datarij, Enter gaat omlaag, pijlen via tableArrowTarget, Cmd/V en Shift+Insert plakken vanaf de cel. Geen Outline per datacel. Reekskleur/CSV/taart-demping blijven. Niet in: opslag (data/*.json) ongewijzigd; de plakknop vervangt nog het hele raster.
brenno 2026-09-11 07:40:53 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#2055
No description provided.