Grafisk redigeringsram
The Graphical Editing Framework (GEF) är ett Eclipse- projekt som tillhandahåller ramverk och slutanvändarkomponenter relaterade till grafiska applikationer.
Historia
GEF utvecklades ursprungligen som en del av IBMs etools (com.ibm.etools.gef) och bidrog till Eclipse 2002 i version 2.0.0, som då bestod av två komponenter: Draw2d, en 2D-visualiseringskomponent baserad på Standard Widget Toolkit ( SWT) och GEF (MVC), ett relaterat ramverk för modellvy-kontroller som kan användas för att realisera grafiska redigerare som en del av Eclipse Rich Client Platform (RCP)-applikationer. Den första utgåvan på Eclipse var GEF 2.1.0 i mars 2003. Nästa stora version, GEF 3.0.0, släpptes i juni 2004, med många nya funktioner som stöd för regler och guider. Zest lades till som en tredje projektkomponent 2007 i version 1.0.0 som en del av GEF 3.4.0-versionen. Sedan 2004, när GEF 3.0.0 släpptes, har endast kompatibla ändringar tillämpats på ramverkets applikationsprogrammeringsgränssnitt (API).
En ny större revidering av ramverket har utvecklats parallellt med underhållet av GEF 3.x-komponenterna av projektgruppen sedan 2010. Det är en komplett omdesign som är mycket mer modulär, använder JavaFX istället för SWT som underliggande renderingsramverk, och kan även användas oberoende av Eclipse RCP-applikationer. Vanligtvis kallad GEF4, dess komponenter släpptes ursprungligen i version 0.1.0 (med fortfarande provisoriskt API) i juni 2015 som en del av GEF 3.10.0 (Mars) release. GEF4-komponenterna ska publiceras i version 1.0.0 som en del av GEF 4.0.0 (Neon) i juni 2016.
GEF 3.x
GEF 3.x tillhandahåller ramteknik för att realisera grafiska redigerare och vyer som en del av Eclipse Rich Client Platform (RCP) -applikationer. Det är internt uppdelat i tre komponenter:
- Draw2d – En 2D-visualiseringskomponent baserad på Standard Widget Toolkit (SWT)
- GEF (MVC) - En modell-vy-kontrollerkomponent som kan användas för att realisera grafiska redigerare som en del av Eclipse Rich Client Product (RCP)-applikationer
- Zest - En grafbaserad visualiseringsverktygssats som kan användas för att realisera vyer för visualisering av grafliknande datastrukturer som en del av Eclipse RCP-applikationer
Även om grafiska applikationer kan byggas ovanpå GEF 3.x-komponenterna direkt, används Draw2d och GEF (MVC) också av Graphical Modeling Framework (GMF) , som kombinerar dem med Eclipse Modeling Framework (EMF) för att skapa koden för både datamodellen och den grafiska editorn.
Arkitektur
Redaktörer skapade med GEF (MVC) består av följande komponenter:
- Diagramredigeraren inklusive verktygspalett
- Figurer som grafiskt representerar de underliggande datamodellelementen
- EditParts som matchar figurer och deras respektive modellelement
- Begär objekt för användarinmatning
- EditPolicy-objekt som utvärderar förfrågningarna och skapar lämpliga kommandoobjekt
- Kommandoobjekt som redigerar modellen och ger ångra -gör om
Designmönsteranvändning
GEF använder sig mycket av designmönster . Dessa mönster är ofta obligatoriska under GEF och utvecklare måste förstå dem.
-
Model-View-Controller är ett arkitektoniskt designmönster som delar upp en applikation i separata delar som kommunicerar med varandra på ett specifikt sätt. Målet är att separera datamodell (modell), grafiskt användargränssnitt (vy) och affärslogik (controller). GEF använder MVC-mönstret i stor utsträckning.
- Modell: Datamodellen kan antingen genereras med hjälp av EMF, självimplementerad av användaren eller så kan den redan existera i fallet med en äldre programvara.
- Controller: EditParts fungerar som kontroller. Vanligtvis har varje modellelement sin matchande EditPart. EditParts kan innehålla andra EditParts och därmed matcha modellelement som innehåller andra modellelement. EditParts har också en hänvisning till figuren som grafiskt representerar modellelementet. Slutligen utvärderar EditParts förfrågningar och skapar lämpligt kommando för att redigera den underliggande modellen.
- Visa: För varje element i modellen, inklusive anslutningar, måste en figur implementeras med Draw2d-ramverket. Ofta är figuren någon geometrisk teckning.
- Fabrik : Skapa modeller från palett, skapa EditParts och skapa figurer
- Observer : Vanligtvis en styrenhet (EditPart) som lyssnar på Model och View
- Kommando : För att implementera funktionerna Ångra och Gör om
- Strategi : EditParts kan installera och ta bort EditPolicies dynamiskt
- Ansvarskedja : Att bestämma vilken EditPolicy som ska hantera en förfrågan
Begäran och svarsmekanism
Alla användaråtgärder med redigeraren kan generera en begäran. Begärans natur förstås av sammanhanget för anropet. Kontexten bestäms av den EditPart som användaren interagerar med och det aktiva verktyget. Verktyget kan vara valfri vald post i en verktygspalett. Begäran lämnas över till den valda EditPart, som i sin tur returnerar ett kommando.
Detta uppnås genom att använda mekanismen för ansvarskedjan över Editpolicies. Redigeringspolicyerna avgör om de kan hantera begäran, annars går de vidare till nästa redigeringspolicy. Ordningen för deklaration av redigeringspolicyer bestämmer i vilken ordning förfrågan skickas. Den kapabla redigeringspolicyn skapar ett kommando. Detta kommando lämnas tillbaka till verktyget som initierade "Request". Utförande av kommandot gör att modellen ändras (Response).
externa länkar
- GEF-projektsidan
- GEF Wiki
- Skapa en eclipse-baserad applikation med hjälp av grafisk redigeringsram
- Skapa en eclipse-baserad applikation med hjälp av Graphical Editing Framework (ny version)