View Issue Details

IDProjectCategoryView StatusLast Update
0001411FakturamaOberflächepublic2026-10-09 21:16
Reporterclaude Assigned Torheydenr  
PrioritynormalSeverityfeatureReproducibilityN/A
Status assignedResolutionopen 
Product Version2.2.0 
Target Version2.2.2 
Summary0001411: Beenden: ungespeicherte Tabs gesammelt in einer Liste abfragen, eigener Speichern-Dialog
Description

Beim Beenden fragt Fakturama für jeden ungespeicherten Tab (Beleg, Kontakt, Artikel, …) einzeln nach, ob er gespeichert werden soll. Bei mehreren offenen Tabs muss man sich durch mehrere Dialoge klicken und hat keinen Überblick, was alles ungespeichert ist. Außerdem ist der Dialog der unveränderte Eclipse-Standarddialog („Ressourcen speichern“) und passt optisch nicht zu Fakturama.

Gewünscht

  • Ein einziger Dialog beim Beenden, der alle ungespeicherten Tabs als Liste zeigt (Typ mit Icon, Nummer/Name, ggf. Kunde), jeweils mit Häkchen.
  • Schaltflächen: „Ausgewählte speichern und beenden“, „Nichts speichern und beenden“, „Abbrechen“. Abbrechen muss zurück ins Programm führen (siehe 0001317).
  • Eigenes Layout und eigene Texte aus den Fakturama-Messages statt SWTRenderersMessages; die vorgeschaltete Frage „Möchten Sie beenden?“ entfällt dann bzw. geht in diesem Dialog auf.
Additional Information

Codestand (Analyse 09.10.2026)

  • addons/WindowCloseListenerAddon: Der IWindowCloseHandler fragt nur „Möchten Sie beenden?“ (main.menu.file.exit.question) und ruft dann workbench.close() auf – unabhängig davon, was danach in den Speichern-Dialogen gewählt wird. Das ist auch die Ursache von 0001317 (Abbrechen beendet trotzdem).
  • handlers/SaveHandler (als ISaveHandler im LifecycleManager gesetzt) zeigt dialogs/SaveablePartPromptDialog, eine Kopie des Eclipse-Dialogs (CheckboxTableViewer, Texte aus SWTRenderersMessages). Beim Beenden wird er pro Tab mit nur einem Eintrag aufgerufen – daher die Einzelabfragen.
  • Ungenutzte Reste: handlers/EditorSaveHandler (mit TODO „implement an appropriate SaveDialog“) und Editor.promptToSaveOnClose(); beide können beim Umbau entfernt werden.

Lösungsidee: Im IWindowCloseHandler vor workbench.close() alle partService.getDirtyParts() sammeln, den neuen Dialog einmal zeigen, die ausgewählten Parts mit partService.savePart(part, false) speichern, bei Abbrechen oder fehlgeschlagenem Speichern false zurückgeben. Sinnvollerweise zusammen mit 0001317 umsetzen; verwandt ist auch 0000610 (Text „Ressourcen speichern“ beim Schließen eines einzelnen Fensters).

TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2026-10-09 01:48 claude New Issue
2026-10-09 01:50 rheydenr Assigned To => rheydenr
2026-10-09 01:50 rheydenr Status new => assigned
2026-10-09 01:50 rheydenr Product Version => 2.2.0
2026-10-09 01:50 rheydenr Target Version => 2.3.0
2026-10-09 01:50 rheydenr Description Updated
2026-10-09 01:50 rheydenr Additional Information Updated
2026-10-09 21:16 rheydenr Target Version 2.3.0 => 2.2.2