Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:miw08_gefardxtt_1 [2008/04/29 11:52]
gjn
pl:miw:miw08_gefardxtt_1 [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== Opis ====== ====== Opis ======
 +__**Projekt zakończony**__
 +
 Maciej Dudek (4AR) <​md5@o2.pl>​ Maciej Dudek (4AR) <​md5@o2.pl>​
  
Linia 8: Linia 10:
   * input   * input
     * Eclipse: [[http://​www.eclipse.org/​modeling/​|EMF]],​ Eclipse -> EMF -> GMF -> GEF     * Eclipse: [[http://​www.eclipse.org/​modeling/​|EMF]],​ Eclipse -> EMF -> GMF -> GEF
-    * ARD: [[hekate:​bib:​hekate_bibliography#​gjn2008flairs-ardformal-submitted|Towards Formalization of ARD+ Conceptual Design and Refinement Method]] and [[hekate:​bib:​hekate_bibliography#​gjn2008flairs-ardprolog-submitted|An ARD+ Design and Visualization Toolchain Prototype in Prolog]] and [[hekate:​bib:​hekate_bibliography#​gjn2008flairs-userv-submitted|UServ Case Study, Conceptual Design with ARD+ Method]].+    * ARD: [[hekate:​bib:​hekate_bibliography#​gjn2008flairs-ardformal|Towards Formalization of ARD+ Conceptual Design and Refinement Method]] and [[hekate:​bib:​hekate_bibliography#​gjn2008flairs-ardprolog|An ARD+ Design and Visualization Toolchain Prototype in Prolog]] and [[hekate:​bib:​hekate_bibliography#​gjn2008flairs-userv|UServ Case Study, Conceptual Design with ARD+ Method]].
   * output   * output
 Feasibility study, a description how to create such editors with GEF, a prototype editor Feasibility study, a description how to create such editors with GEF, a prototype editor
 MS Thesis regarding GEF: Interfejs graficzny do budowy aplikacji komponentowych zapewniający weryfikację semantyczną,​ ARD+ Editor [[miw:ard requirements|requirements]] MS Thesis regarding GEF: Interfejs graficzny do budowy aplikacji komponentowych zapewniający weryfikację semantyczną,​ ARD+ Editor [[miw:ard requirements|requirements]]
 +
  
 ====== Spotkania ====== ====== Spotkania ======
  
-===== 080304 =====+[[pl:​miw:​miw08_gefardxtt_1:​spotkania|Archiwum spotkań]]
  
-Wykonano: 
-  * Zapoznanie się z częścią pracy magisterską Macieja Kwietnia i Jana Rachwalika dotyczącą GEF. 
-  * Zainstalowanie plug-inu GEF na platformie Eclipse 
-  * Uruchomienie przykładowego edytora, stworzenie przykładowego grafu w tym edytorze, przeglądnięcie kodu przykładowego edytora. 
-  * Zapoznanie się ze specyfikacją ARD+ zawartą w https://​ai.ia.agh.edu.pl/​wiki/​hekate:​bib:​hekate_bibliography#​gjn2008flairs-ardformal-submitted 
-  * Zapoznanie się z opisem systemu VARDA zawartego w https://​ai.ia.agh.edu.pl/​wiki/​hekate:​bib:​hekate_bibliography#​gjn2008flairs-ardprolog-submitted 
-  * Pobieżne przestudiowanie przykładu UServ zawartego w https://​ai.ia.agh.edu.pl/​wiki/​hekate:​bib:​hekate_bibliography#​gjn2008flairs-userv-submitted 
  
-Powstałe wątpliwości:​ 
-  * Finalizacja. 
-  * Zbiór wszystkich możliwych operacji wykonywanych przez użytkownika. ​ 
-  * Język opisu powstałego grafu: <​del>​RGML?</​del>​ ATTML [[hekatedev:​hekate_markup_language]] 
-  * Przestrzeń nazw.  
-  * Czy również implementacja drzewa TPH? Na ile bezpieczne w sytuacji cykli, split/​merge,​ manual refactoring. ​ 
-  * Liczba korzeni w drzewie, czy istnieje coś takiego jak korzeń? ​ 
-  * XSD z opisem ARD+.  
-  * Co jak na końcu "​liścia"​ jest Conceptual Attribute? Jaki wpływ na system? ​ 
-  * Physical Attribute a XTT. 
-  * Attribute a Property. W prologu deklarowane oba. 
  
  
-===== 080318 ===== 
-  * [[hekate:​varda]] - uruchomiono i przeanalizowano funkcjonalność. 
-  * Zapoznano się ze specyfikacją ATTML 
-  * Zapoznano się z UServ case study 
  
  
  
  
-===== 080415 ===== 
-Planowano: 
-  * prototyp 
  
-Zrealizowano:​ 
-  * Przeanalizowanie [[http://​www.eclipse.org/​articles/​Article-GEF-diagram-editor/​shape.html|Diagram Editor]] 
-  * Przeanalizowanie [[http://​www.eclipse.org/​articles/​Article-GEF-editor/​gef-schema-editor.html|Schema Editor]] 
-  * Rozpoznanie struktury framework'​u GEF 
-  * Zainstalowanie EMF oraz GMF 
-  * Wykonanie tutorialu [[http://​wiki.eclipse.org/​index.php/​GMF_Tutorial|mindmodel]] na podstawie [[http://​dev.eclipse.org/​viewcvs/​index.cgi/​org.eclipse.gmf/​examples/​org.eclipse.gmf.examples.mindmap/​model/​mindmap.xsd?​root=Modeling_Project&​view=markup&​content-type=text%2Fvnd.viewcvs-markup&​revision=HEAD|mindmodel.xsd]] 
  
  
  
-===== 080429 ===== 
-Planowano: 
-  * model xsd, translacja do ecore 
-  * automatyczny edytor 
  
-Zrealizowano:+ 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +====== Projekt ====== 
 + 
 + 
 + 
 + 
 +===== Source ===== 
 + 
 +  - {{:​pl:​miw:​miw08_gefardxtt_1:​ardeditor_project.zip|Ard Editor Project}} 
 +  - {{:​pl:​miw:​miw08_gefardxtt_1:​ardeditor_diagram.zip|Ard Editor Diagram}} 
 +  - {{:​pl:​miw:​miw08_gefardxtt_1:​ardeditor_edit.zip|Ard Editor Edit}} 
 + 
 + 
 +==== Sposób uruchomienia ==== 
 +  - Zaimportuj Ard Editor Diagram oraz Ard Editor Edit jako projekt w Eclipse 
 +  - Otwórz oba projekty 
 +  - Kliknij prawym przyciskiem na Ard Editor Diagram: 
 +    - Run As... -> Eclipse Application 
 +  - W nowo otwartym oknie Eclipse utwórz nowy projekt (wystarczy nawet pusty katalog) 
 +  - Kliknij //New// -> Examples -> My Diagram 
 +  - Otworzy się edytor. Użytkownik musi podać 2 nazwy plików: 
 +    - Plik edytora o rozszerzeniu .hml_diagram (odpowiada za rozmieszczenie na ekranie itp) 
 +    - Plik modelu o rozszerzeniu .hml (w formacie XML) 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +====== Sprawozdanie ====== 
 + 
 + 
 + 
 +===== 1. Przygotowanie ===== 
 + 
 +==== 1.1 Lektury ==== 
 +Swoją pracę rozpocząłem od lektury następujących prac: 
 +  * {{:​pl:​miw:​mgr-gef.pdf|GEF MS Thesis}} - Część pracy magisterskiej Macieja Kwietnia i Jana Rachwalika dotycząca GEF. 
 +  * [[https://​ai.ia.agh.edu.pl/​wiki/​hekate:​bib:​hekate_bibliography#​gjn2008flairs-ardformal|Specyfikacja Ard+]] 
 +  * [[https://​ai.ia.agh.edu.pl/​wiki/​hekate:​bib:​hekate_bibliography#​gjn2008flairs-ardprolog|System varda]] 
 +  * [[https://​ai.ia.agh.edu.pl/​wiki/​hekate:​bib:​hekate_bibliography#​gjn2008flairs-userv|UServ case study]] 
 +  * [[http://​www.eclipse.org/​articles/​Article-GEF-diagram-editor/​shape.html|Diagram Editor]] 
 +  * [[http://​www.eclipse.org/​articles/​Article-GEF-editor/​gef-schema-editor.html|Schema Editor]] 
 +  * [[http://​wiki.eclipse.org/​index.php/​GMF_Tutorial|Mindmodel Tutorial]] 
 + 
 +Dalsze kroki to: 
 +  * Uruchomienie programu Varda. 
 +  * Zainstalowanie EMF, GEF, GMF. 
 +  * Uruchomienie przykładowych edytorów: Logic Diagram, Flow Diagram, Shapes Diagram. 
 + 
 +==== 1.2 Wyjaśnienie skrótów ==== 
 +Ponieważ skróty EMF, GEF i GMF są do siebie podobne, po krótce wyjaśnię między różnice między tymi frameworkami:​ 
 +  * [[http://​www.eclipsecon.com/​modeling/​emf/​|EMF]] - służy do tworzenia modeli, logiki biznesowej. Modele zapisywane są w plikach ecore. Jest możliwa konwersja między modelami w ecore oraz modelem opisanym przy pomocy [[http://​www.w3.org/​XML/​Schema|XSD (XML Schema)]]. 
 +  * [[http://​www.eclipse.org/​gef/​|GEF]] - służy do tworzenia edytorów graficznych. Opiera się na bibliotece draw2d, z której czerpie narzędzia do rysowania. Jest dość skomplikowany i trudny w opanowaniu. Daje za to szerokie możliwości. Uwaga, nie mylić z [[http://​gef.tigris.org/​|innym GEF]], który nie jest projektem Eclipse. 
 +  * [[http://​www.eclipse.org/​modeling/​gmf/​|GMF]] - plugin do Eclipse - w stosunku do GEF znacznie ułatwia tworzenie edytorów. Jest niejako graficzną "​nakładką"​ na framework GEF pomagając programiście stworzyć edytor. Można skorzystać z narzędzia [[http://​eclipser-blog.blogspot.com/​2007/​06/​gmf-project-in-5-minutes-with-gmf.html|dashboard]],​ który jest zaimplementowany jako jeden z widoków w Eclipse. Prowadzi on programistę przez proces tworzenia edytora używając do tego szeregu //​wizardów//​ i łącząc drobne części ze sobą. Na końcu generowany jest kod edytora w GEF uzupełniony o Runtime GMF. Jednak trudno wykorzystać GMF do zaawansowanych problemów. Dla niestandardowych problemów trzeba edytować kod na własną rękę korzystając z klas GEF. Podsumowując,​ zastosowanie GMF daje zautomatyzowanie generacji kodu, ale może nie wystarczyć w niestandardowych projektach.  
 + 
 +Zatem tworząc aplikację z pewnością użycie wszystkich z nich będzie nieodzowne a ich działanie będzie się przenikało. 
 + 
 + 
 + 
 +===== 2. Pierwsza próba stworzenia edytora ===== 
 + 
 +==== 2.1 Użycie definicji DTD i translacja do XSD ==== 
 +Aby skorzystać z możliwości EMF importując model XSD, przekształcono definicję [[https://​ai.ia.agh.edu.pl/​wiki/​_media/​hekate:​hml.dtd?​id=hekate%3Ahekate_markup_language&​cache=cache|HML.dtd]] z postaci DTD do postaci XSD. Efekt został przedstawiony poniżej:
 <code xml> <code xml>
 <?xml version="​1.0"​ encoding="​UTF-8"?>​ <?xml version="​1.0"​ encoding="​UTF-8"?>​
Linia 238: Linia 283:
 Dokument [[https://​ai.ia.agh.edu.pl/​wiki/​_media/​hekate:​hml-test.xml?​id=hekate%3Ahekate_markup_language&​cache=cache|hml-test.xml]] poprawnie przechodzi [[http://​www.xmlforasp.net/​SchemaValidator.aspx|walidację]] przy użyciu powyższej definicji. Konwersji dokonano przy użyciu programu [[http://​www.thaiopensource.com/​relaxng/​trang-manual.html|Trang]]. Dokument [[https://​ai.ia.agh.edu.pl/​wiki/​_media/​hekate:​hml-test.xml?​id=hekate%3Ahekate_markup_language&​cache=cache|hml-test.xml]] poprawnie przechodzi [[http://​www.xmlforasp.net/​SchemaValidator.aspx|walidację]] przy użyciu powyższej definicji. Konwersji dokonano przy użyciu programu [[http://​www.thaiopensource.com/​relaxng/​trang-manual.html|Trang]].
  
-===== 080527 ​===== +=== Problem z użyciem powyższej definicji ​=== 
-  ​* ​???+ 
 +Powyższa definicja, choć poprawna, okazała się niekompatybilna z frameworkiem GMF. Podstawowe problemy to: 
 +  * Relacja zawierania się - brak bezpośredniego połączenia korzenia z property. W definicji oryginalnej występuje następujące zawieranie: //ard -> property_set -> property//. Zgodnie z takim modelem, aby utworzyć //​property//,​ musielibyśmy tworzyć pośredni element //​property_set//​ oraz połączenia między nimi. Jest to naturalnie sprzeczne z naszym założeniem. 
 +  * Wybór korzenia - edytor tworzony jest dla konkretnego elementu w modelu. Wybierając korzeń K możemy edytować elementy zawarte w K, ale innych nie. Więc jeśli chcemy mieć możliwość edycji //​property_set//​ oraz //ard// to naszym korzeniem musiałby być element //hml//. Lecz wtedy nasz edytor rozrósłby się jeszcze bardziej - o element //ard//. 
 +  * Elementy IDREF - korzystanie z elementów IDREF nie uniemożliwia,​ lecz czyni trudniejszym tworzenie modelu. Trzeba jednak użyć [[http://​www.eclipse.org/​modeling/​emf/​docs/​overviews/​XMLSchemaToEcoreMapping.pdf|Ecore Annotations]]. 
 + 
 +Dokonano próby utworzenia edytora wszystkich elementów (bez żadnej customizacji) za pomocą pluginu do GMF o nazwie [[http://​dynamicgmf.sourceforge.net/​|Dynamic GMF]]. Ten plugin ma w założeniu dać możliwość wygenerowania edytora jedynie przez wybranie pliku xsd. Pojawiał się jednak błąd wewnętrzny programu "Null pointer exception"​. Takiego błędu nie było gdy użyłem pliku [[http://​dev.eclipse.org/​viewcvs/​index.cgi/​org.eclipse.gmf/​examples/​org.eclipse.gmf.examples.mindmap/​model/​mindmap.xsd?​root=Modeling_Project&​view=markup&​content-type=text%2Fvnd.viewcvs-markup&​revision=HEAD|mindmap.xsd]]. Sądzę, iż obecność elementów IDREF mogła się do tego przyczynić. 
 + 
 +==== 2.2 Inna metodologia tworzenia modeli ==== 
 + 
 +Dużo bardziej naturalnym, prostszym i efektywniejszym sposobem jest tworzenie modelu ecore pasującego do GMF. I tak import z XSD następuje do pliku ECORE, na którym później się operuje. 
 + 
 +Kolejnym krokiem mogłoby być eksportowanie tego modelu do XSD. W razie potrzeby można by dokonywać konwersji między róznymi definicjami XSD za pomocą szablonów XSLT. 
 + 
 +==== 2.3 Własny model ==== 
 + 
 +Stworzyłem zatem edytor opierając się o własny model. Model powstał przy pomocy EMF, który następnie wyeksportowałem do formatu XSD.  
 + 
 +Nowa wersja Ard.xsd: 
 +<code xml> 
 +<?xml version="​1.0"​ encoding="​UTF-8"​ standalone="​no"​?
 +<​xsd:​schema xmlns:​hml="​hml"​ xmlns:​xsd="​http://​www.w3.org/​2001/​XMLSchema"​ targetNamespace="​hml">​ 
 +  <​xsd:​element name="​Ard"​ type="​hml:​Ard"/>​ 
 +  <​xsd:​element name="​Property"​ type="​hml:​Property"/>​ 
 +  <​xsd:​element name="​Atrybut"​ type="​hml:​Atrybut"/>​ 
 +  <​xsd:​complexType name="​Ard">​ 
 +    <​xsd:​sequence>​ 
 +      <​xsd:​element maxOccurs="​unbounded"​ minOccurs="​0"​ name="​property"​ type="​hml:​Property"/>​ 
 +    </​xsd:​sequence>​ 
 +  </​xsd:​complexType>​ 
 +  <​xsd:​complexType name="​Property">​ 
 +    <​xsd:​sequence>​ 
 +      <​xsd:​element maxOccurs="​unbounded"​ minOccurs="​0"​ name="​atrybut"​ type="​hml:​Atrybut"/>​ 
 +    </​xsd:​sequence>​ 
 +    <​xsd:​attribute name="​dependant">​ 
 +      <​xsd:​simpleType>​ 
 +        <​xsd:​list itemType="​xsd:​anyURI"/>​ 
 +      </​xsd:​simpleType>​ 
 +    </​xsd:​attribute>​ 
 +  </​xsd:​complexType>​ 
 +  <​xsd:​complexType name="​Atrybut">​ 
 +    <​xsd:​attribute name="​nazwa"/>​ 
 +  </​xsd:​complexType>​ 
 +</​xsd:​schema>​ 
 +</​code>​ 
 + 
 +Niestety, zawiera on jedynie opis ARD, bez TPH ani XTT.  
 + 
 +Poniżej zamieszczono screen z edytora oraz odpowiadający mu plik xml. 
 + 
 +==== 2.4 Edytor oparty na własnym modelu ==== 
 + 
 +Diagram Ard 
 + 
 +{{http://​hyper.ia.agh.edu.pl/​~dudekm/​zdj/​przykladowy_edytor_1.jpg}} 
 + 
 +Wygenerowany plik XML: 
 +<code xml> 
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​ 
 +<hml:Ard xmi:​version="​2.0"​ xmlns:​xmi="​http://​www.omg.org/​XMI"​ xmlns:​hml="​hml">​ 
 +  <​property dependant="//​@property.1 //​@property.2">​ 
 +    <atrybut nazwa="​jeden"/>​ 
 +    <atrybut nazwa="​dwa"/>​ 
 +  </​property>​ 
 +  <​property>​ 
 +    <atrybut nazwa="​trzy"/>​ 
 +    <atrybut nazwa="​cztery"/>​ 
 +  </​property>​ 
 +  <​property>​ 
 +    <atrybut nazwa="​pięć"/>​ 
 +    <atrybut nazwa="​sześć"/>​ 
 +  </​property>​ 
 +</​hml:​Ard>​ 
 +</​code>​ 
 + 
 +Sprawdzono zgodność pliku xml ze schematem xsd. 
 + 
 +Możliwości edytora ważne z punktu widzenia ARD: 
 +  * Dodawanie nowych elementów //​property//​. 
 +  * Dodawanie elementów //​attribute//​ do //​property//​. 
 +  * Łączenie elementów //​property//​. 
 +  * Zapis do pliku xml. 
 + 
 + 
 + 
 +===== 3. Perspektywy projektu ===== 
 + 
 +Jest to wstępny zarys edytora. Docelowy edytor miałby posiadać bogatą funkcjonalność. Dalsze elementy, które należałoby zaimplementować to:  
 +  * Menu kontekstowe zawierające komendy //split// dla elementów //​attribute//​ oraz //​finalize//​ dla elementów //​property//​. [[http://​wiki.eclipse.org/​index.php/​GMF_Tutorial_Part_3#​Custom_Actions|Custom Actions]] 
 +  * Utworzenie dwóch dodatkowych warstw: do pierwszej należałyby elementy i połączenia ard bez tph, do drugiego same elementy tph bez ard. Następnie należałoby umożliwić włączanie oraz wyłączanie widoczności warstw. W szczególności obie warstwy mogłyby być widoczne aby widzieć zarówno drzewo TPH jak i ARD. 
 +  * Utworzenie połączenia edytora ARD z edytorem XTT. To połączenie mogłoby przyjąć różną formę: 
 +  - otwarcia property w edytorze XTT [[http://​dev.eclipse.org/​newslists/​news.eclipse.tools.gef/​msg15508.html|link]] 
 +  - edycji XTT poprzez duże zbliżenie (zoom) na sfinalizowany element property. 
 +  * Utworzenie edytora XTT. 
 + 
 + 
 + 
 +===== 4. Wnioski ===== 
 + 
 +  * Model warto tworzyć od podstaw w EMF. 
 +  * GEF to potężne narzędzie, lecz trudne w opanowaniu. 
 +  * API GMF oraz GEF zostało w ostatnim czasie uzupełnione o komentarze, lecz nadal jest wiele miejsc, gdzie ich brakuje.  
 +  * Tutoriale są ukierunkowane na kilka zagadnień, w sprawie innych trzeba się pytać na forach dyskusyjnych,​ lub wręcz pisać do twórców frameworku. 
 + 
 + 
 + 
 + 
 +===== 5. Linki ===== 
 + 
 +Poniżej zamieszczam wartościowe linki związane z moim projektem:​ 
 +=== Instalacja GMF === 
 +  * [[http://​wiki.eclipse.org/​index.php/​GMF_Tutorial|Instalacja + tutorial]] 
 +  * [[http://​www.brovig.org/​blog/​2007/​05/​17/​installing-gmf-on-eclipse-33-m7-europa/​|installing-gmf-on-eclipse-33-m7-europa]] 
 + 
 +=== Nauka === 
 +  * [[http://​www.eclipse.org/​articles/​Article-Introducing-GMF/​article.html|Introducing GMF]] 
 +  * [[http://​www.eclipse.org/​articles/​Article-GEF-editor/​gef-schema-editor.html|GEF Schema Editor]] 
 +  * [[http://​www.ibm.com/​developerworks/​library/​os-ecemf1/​|IBM tutorial]] 
 +  * [[http://​mirrors.ibiblio.org/​pub/​mirrors/​eclipse/​technology/​phoenix/​demos/​gmf-orgchart/​|Screencast]] - bardzo przydatny.  
 +  * [[http://​www.eclipse.org/​articles/​Article-FromFrontendToCode-MDSDInPractice/​article.html|Inne podejście do tematu]] 
 +  * [[http://​wiki.eclipse.org/​index.php/​GMF_Tutorial_BPMN|Tutorial]] - edytora [[http://​pl.wikipedia.org/​wiki/​BPMN|BPMN]]. Krok po kroku. 
 + 
 +=== Troubleshooting === 
 +Problemy, które napotkałem oraz linki pomocne w ich rozwiązaniu:​ 
 +  * [[http://​dev.eclipse.org/​newslists/​news.eclipse.technology.gmf/​msg03925.html|Containment Feature]] 
 + 
 +=== Support === 
 +  * [[http://​www.nabble.com/​Eclipse-GEF---Dev-f2208.html|GEF mailing list archive]] 
 +  * [[http://​eclipseforum.org.pl/​|Polskie forum eclipse]] - zostało uruchomione pod koniec 2007 roku. 
 + 
 +=== Inne === 
 +  * [[http://​wiki.eclipse.org/​index.php/​GMF_Documentation|GMF_Documentation]] - zawiera wiele dalszych linków. 
 +  * [[http://​help.eclipse.org/​help33/​index.jsp|Eclipse 3.3 API]] - zawiera również GMF, GEF. 
 +  * [[http://​eclipse-po-polsku.blogspot.com/​|Eclipse po polsku]] 
 +  * [[http://​www.redbooks.ibm.com/​redbooks/​pdfs/​sg246302.pdf|IBM red book]], [[http://​publib-b.boulder.ibm.com/​Redbooks.nsf/​RedpieceAbstracts/​sg246302.html|code]] - bardzo przydatne, wiele elementów dobrze opisanych. 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
  
-====== Projekt ====== 
-====== Sprawozdanie ====== 
 ====== Materiały ====== ====== Materiały ======
  GEF resources ([[http://​www-128.ibm.com/​developerworks/​opensource/​library/​os-eclipse-gef11/?​ca=dgr-lnxw07EclipseGEF|GEF]],​ [[http://​www.eclipse.org/​articles/​Article-GEF-editor/​gef-schema-editor.html]]), ​  GEF resources ([[http://​www-128.ibm.com/​developerworks/​opensource/​library/​os-eclipse-gef11/?​ca=dgr-lnxw07EclipseGEF|GEF]],​ [[http://​www.eclipse.org/​articles/​Article-GEF-editor/​gef-schema-editor.html]]), ​
Linia 248: Linia 433:
 {{:​pl:​miw:​mgr-gef.pdf|GEF MS Thesis}} {{:​pl:​miw:​mgr-gef.pdf|GEF MS Thesis}}
  
-Patrz też na [[hekate:​eclipse|osobne hasło]]+Patrz też na [[hekatedev:​eclipse|osobne hasło]]
  
pl/miw/miw08_gefardxtt_1.1209462760.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0