GEF - Graphical Editing Framework

GEF jest Frameworkiem (zrębem) do budowy graficznego środowiska zintegrowanego z Eclipsowym Workbenchem. Wykorzystuje wzorzec Model-View-Controler.

Na powyższym rysunku widzimy, że GEF jest kolejną warstwą nadbudowaną nad Draw2d, która z kolej opakowuje nam SWT.

Warstwa Draw2d odpowiada za renderowanie, layouty, skalowanie tego co widzimy na ekranie, natomiast GEF jest odpowiedzialny bardziej za interakcje między elementami, wspiera mapowanie Model-View, zapewnia integrację z Workbenchem.

Gdybyśmy chcieli popatrzeć na GEFa w połączeniu z RCP (Rich Client Platform), to wyglądałoby to tak:

Funkcjonalności, jakie zapewnia nam GEF to między innymi:

  • Przesuwanie, skalowanie, tworzenie, łączenie elementów
  • Kasowanie, Cofnij/Ponów, Bezpośrednia edycja
  • Podgląd i powiększanie/pomniejszanie
  • Konfigurowalną paletę
  • Geometrię typu Snap-to-Grid
  • Dostęp do funkcji poprzez skróty klawiaturowe

Zalety GEFa:

  • Zapewnia graficzną interpretację modelu
  • Pozwala użytkownikowi na interakcje z modelem:
    • kontrola za pomocą klawiatury i myszki
    • przetwarzanie danych od użytkownika
    • aktualizowanie modelu
    • cofnij/ponów zmiany
  • Zapewnia integrację z Workbenchem:
    • akcje, przyciski, menu
    • paski narzędzi
    • skróty klawiszowe

EditParty są swoistą jednostką interakcji użytkownika z modelem. One na podstawie żądań klienta tworzą odpowiednie komendy, które działąją na modelu.

Odnosząc się do poprzedniego rysunku wyglądałoby to tak:

Inaczej można to przedstawić w następujący sposób:

Rysunki pochodzą z prezentacji Eclipse CON.2005 - Tutorial #23 GEF In Depth (c) 2005 by International Business Machines; made available under the EPL v1.0