Okruženje

Pregled

Gaphor je izgrađen za jednostavan, uslužno orijentirani način. Aplikacija je podijeljena na niz usluga, kao što su upravljači datoteka, događaja i poništavanja. Te se usluge učitavaju na temelju ulaznih točaka definiranih u datoteci pyproject.toml. Za više informacija o arhitekturi, pogledaj opis za Service Oriented Architecture.

Vođeno događajima

Parts of Gaphor communicate with each other through events. Whenever something important happens, for example, an attribute of a model element changes, an event is sent. When other parts of the application are interested in a change, they register an event handler for that event type. Events are emitted though a central broker so you do not have to register on every individual element that can send an event they are interested in. For example, a diagram item could register an event rule and then check if the element that sent the event is actually the event the item is representing. For more information see the full description of the event system.

Transakcijski

Gaphor je transakcijski, što znači da prati funkcije koje obavlja kao niz transakcija. Transakcije funkcioniraju tako da šalju događaj kada transakcija započne i šalju drugi događaj kada transakcija završi. To na primjer omogućuje upravljaču poništavanja da vodi dnevnik prethodnih transakcija tako da se transakcija može poništiti ako se pritisne gumb za poništavanje.

Glavne komponente

Glavni dio Gaphora koji se najprije izvršava zove se Aplikacija. Gaphor može imati više otvorenih modela u bilo kojem trenutku. Svaki model se čuva u Sesiji. Aktivna je samo jedna instanca aplikacije. Svaka će sesija učitati vlastite usluge definirane kao gaphor.usluge.

Najistaknutije usluge su:

event_manager

Ovo je središnja komponenta koja se koristi za slanje događaja. Svaka usluga koja radi nešto s događajima (slanje i primanje) ovisi o ovoj komponenti.

element_factory

Sam model podataka održava se u tvornici elemenata (ElementFactory). Ova se usluga koristi za stvaranje elemenata modela, kao i za pregledvanje elemenata ili za traženje skupa elemenata.

undo_manager

Jedna od najcjenjenijih usluga. Omogućuje korisnicima da tu i tamo pogriješe!

Upravljač poništavanja je transakcijski. Korisničke radnje se spremaju samo ako je transakcija aktivna. Ako je transakcija dovršena (poslana), sprema se nova radnja poništavanja. Transakcije se također mogu vratiti. U tom slučaju se sve promjene reproduciraju izravno. Za više informacija pogledaj opis undo manager.

file_manager

Učitavanje i spremanje modela vrši se putem ove usluge.