next up previous contents
Next: Metody pro manipulaci s hierarchií Up: Funkční část Previous: Funkční část

Editační operace

Editační operace grafických elementů implementujeme jako tzv. akce pomocí třídy GAction, která obsahuje datové prvky určující vlastnosti, zda je operace vratná (undo), obsahuje odkaz na grafický editor, v němž byla vyvolána, a popis stavu (ukončena/ probíhající). Aktuálně probíhající akce zachycuje pro příslušný editor sítě události vyvolané uživatelem (kliknutí, pohyb myši; stisknutí klávesy, apod.)

Pro každou operaci je od třídy GAction odvozena specifická třída. Samotná třída GAction nemá žádné instance. Metody jejích odvozených tříd zajišťují zpracování příslušných událostí a implementují operaci undo, je-li akcí podporována. Vztahy abstraktní třídy GAction s ostatními třídami aplikace popisuje diagram na obrázku gif.

  
Figure: Vzájemné vztahy třídy akce s ostatními třídami aplikace

Editor sítě obsahuje ukazatel na aktuální a předchozí akci, u níž může být vyvolána metoda undo. Ta je odpovědná za návrat editoru do stavu před provedením příslušné akce, za destrukci akce a vynulování ukazatele na ni (ukazatele na předchozí akci příslušného editoru sítě).

Aktuální akce komunikuje prostřednictvím signálů a slotů přes příslušný editor sítě a hlavní okno se stavovou lištou, kde je zobrazován popis aktuálně probíhající fáze akce. Aktuální akce je při svém ukončení označena přísluišným editorem sítě jako předchozí akce (přiřazením odpovídajícímu ukazateli).



David Safranek
Fri Apr 6 23:53:25 MET DST 2001