Hallo
Ich bastle gerade an einem Editor (vereinfacht gesagt: Für etwas, was aus Knoten und Kanten besteht) und wollte dabei zum ersten mal eine richtige Unterstützung für Undo/Redo einbauen. Die grundlegenden Konzepte mit UndoManager und UndoableEdit sind ja recht einleuchtend. Was mich aber doch (mehr als erwartet) irritiert ist der ungeheure Planungsaufwand. DASS es aufwändig ist, war mir klar, und auch dass es praktisch unmöglich ist, so etwas nachträglich in ein bestehendes System einzubauen. Ich merke jetzt aber, dass ich viele Dinge nur für das Undo/Redo komplett anders mache, als ich es eigentlich machen würde. Die ganzen Schnittstellen scheinen sich immer mehr an dem Ziel zu orientieren, alles mit Undo/Redo behandeln zu können, und werden dadurch irgendwie un-intuitiv...
Kennt jemand gute Beispiele dazu, wie man auch kompliziertere Anwendungen mit Undo/Redo aufbaut? Die Dinge, die man mit schnellen Websuchen findet, beziehen sich meistens auf irgendwelche Trivialbeispiele. Insbesondere habe ich noch kein vernünftiges Beispiel gefunden, das zeigt, wie man sinnvoll mehrere Edits zu einem größeren Edit gruppieren kann. Der Versuch, aus den bestehenden Implementierungen z.B. rund um 'AbstractDocmument' herum schlau zu werden scheint ein ungünstiges Verhältnis zwischen Quellcode-Scrollen und Aha-Effekten zu haben...
bye
Ich bastle gerade an einem Editor (vereinfacht gesagt: Für etwas, was aus Knoten und Kanten besteht) und wollte dabei zum ersten mal eine richtige Unterstützung für Undo/Redo einbauen. Die grundlegenden Konzepte mit UndoManager und UndoableEdit sind ja recht einleuchtend. Was mich aber doch (mehr als erwartet) irritiert ist der ungeheure Planungsaufwand. DASS es aufwändig ist, war mir klar, und auch dass es praktisch unmöglich ist, so etwas nachträglich in ein bestehendes System einzubauen. Ich merke jetzt aber, dass ich viele Dinge nur für das Undo/Redo komplett anders mache, als ich es eigentlich machen würde. Die ganzen Schnittstellen scheinen sich immer mehr an dem Ziel zu orientieren, alles mit Undo/Redo behandeln zu können, und werden dadurch irgendwie un-intuitiv...
Kennt jemand gute Beispiele dazu, wie man auch kompliziertere Anwendungen mit Undo/Redo aufbaut? Die Dinge, die man mit schnellen Websuchen findet, beziehen sich meistens auf irgendwelche Trivialbeispiele. Insbesondere habe ich noch kein vernünftiges Beispiel gefunden, das zeigt, wie man sinnvoll mehrere Edits zu einem größeren Edit gruppieren kann. Der Versuch, aus den bestehenden Implementierungen z.B. rund um 'AbstractDocmument' herum schlau zu werden scheint ein ungünstiges Verhältnis zwischen Quellcode-Scrollen und Aha-Effekten zu haben...
bye