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/06/15 11:54]
miw
pl:miw:miw08_gefardxtt_1 [2019/06/27 15:50] (aktualna)
Linia 14: Linia 14:
 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 ======
  
 +[[pl:​miw:​miw08_gefardxtt_1:​spotkania|Archiwum spotkań]]
  
  
Linia 37: Linia 39:
  
  
-===== 080610 ===== 
-Moja propozycja ard.xsd (wersja 1.0) 
-<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>​ 
  
-W powyższym modelu brakuje TPH oraz całego XTT. W przypadku TPH jestem na etapie szukania możliwości automatycznej generacji części xml'a odpowiadającej za TPH. Jednak z powodu dużego zautomatyzowania GMF'a nie wiem na ile to będzie możliwe lub kiedy uda mi się to zrobić. 
  
-Screen z prostego edytora ard oraz odpowiadający mu plik xml.+====== Projekt ======
  
-Przykład 1: 
-Diagram Ard 
  
-{{http://​hyper.ia.agh.edu.pl/​~dudekm/​zdj/​przykladowy_edytor_1.jpg}} 
  
-Wygenerowany 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.+===== Source =====
  
----- +  ​{{:​pl:​miw:​miw08_gefardxtt_1:​ardeditor_project.zip|Ard Editor Project}} 
-Perspektywy +  ​- {{:​pl:​miw:​miw08_gefardxtt_1:​ardeditor_diagram.zip|Ard Editor Diagram}} 
-  ​* XSLT? +  ​- {{:​pl:​miw:​miw08_gefardxtt_1:​ardeditor_edit.zip|Ard Editor Edit}}
-  ​* Automatyczne TPH +
-  * Menu kontekstowe na operacje Finalizacji i Splitu?+
  
-====== Projekt ====== 
  
 +==== 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)
  
  
Linia 118: Linia 77:
 ====== Sprawozdanie ====== ====== Sprawozdanie ======
  
-=== Przygotowanie === 
  
 +
 +===== 1. Przygotowanie =====
 +
 +==== 1.1 Lektury ====
 Swoją pracę rozpocząłem od lektury następujących prac: 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.   * {{:​pl:​miw:​mgr-gef.pdf|GEF MS Thesis}} - Część pracy magisterskiej Macieja Kwietnia i Jana Rachwalika dotycząca GEF.
Linia 134: Linia 96:
   * Uruchomienie przykładowych edytorów: Logic Diagram, Flow Diagram, Shapes Diagram.   * 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:​ 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.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)]].
Linia 141: Linia 104:
 Zatem tworząc aplikację z pewnością użycie wszystkich z nich będzie nieodzowne a ich działanie będzie się przenikało. Zatem tworząc aplikację z pewnością użycie wszystkich z nich będzie nieodzowne a ich działanie będzie się przenikało.
  
-=== Pierwsza próba stworzenia edytora === 
  
 +
 +===== 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: 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>
Linia 317: 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]].
  
-== Problem z użyciem powyższej definicji ==+=== Problem z użyciem powyższej definicji ​===
  
 Powyższa definicja, choć poprawna, okazała się niekompatybilna z frameworkiem GMF. Podstawowe problemy to: Powyższa definicja, choć poprawna, okazała się niekompatybilna z frameworkiem GMF. Podstawowe problemy to:
Linia 326: Linia 292:
 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ć. 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ć.
  
-== Metodologia ​tworzenia modeli ==+==== 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. 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.
Linia 332: Linia 298:
 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. 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.
  
-=== Własny model ===+==== 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.  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. 
Linia 368: Linia 334:
 Poniżej zamieszczono screen z edytora oraz odpowiadający mu plik xml. Poniżej zamieszczono screen z edytora oraz odpowiadający mu plik xml.
  
-Przykład 1:+==== 2.4 Edytor oparty na własnym modelu ==== 
 Diagram Ard Diagram Ard
  
Linia 401: Linia 368:
  
  
-=== Perspektywy ===+ 
 +===== 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:  Jest to wstępny zarys edytora. Docelowy edytor miałby posiadać bogatą funkcjonalność. Dalsze elementy, które należałoby zaimplementować to: 
Linia 412: Linia 380:
  
  
-=== Wnioski ===+ 
 +===== 4. Wnioski ​=====
  
   * Model warto tworzyć od podstaw w EMF.   * Model warto tworzyć od podstaw w EMF.
Linia 420: Linia 389:
  
  
-=== Linki ===+ 
 + 
 +===== 5. Linki =====
  
 Poniżej zamieszczam wartościowe linki związane z moim projektem: Poniżej zamieszczam wartościowe linki związane z moim projektem:
-== Instalacja ==+=== Instalacja ​GMF ===
   * [[http://​wiki.eclipse.org/​index.php/​GMF_Tutorial|Instalacja + tutorial]]   * [[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]]   * [[http://​www.brovig.org/​blog/​2007/​05/​17/​installing-gmf-on-eclipse-33-m7-europa/​|installing-gmf-on-eclipse-33-m7-europa]]
  
-== Nauka ==+=== Nauka ===
   * [[http://​www.eclipse.org/​articles/​Article-Introducing-GMF/​article.html|Introducing GMF]]   * [[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.eclipse.org/​articles/​Article-GEF-editor/​gef-schema-editor.html|GEF Schema Editor]]
Linia 435: Linia 406:
   * [[http://​wiki.eclipse.org/​index.php/​GMF_Tutorial_BPMN|Tutorial]] - edytora [[http://​pl.wikipedia.org/​wiki/​BPMN|BPMN]]. Krok po kroku.   * [[http://​wiki.eclipse.org/​index.php/​GMF_Tutorial_BPMN|Tutorial]] - edytora [[http://​pl.wikipedia.org/​wiki/​BPMN|BPMN]]. Krok po kroku.
  
-== Troubleshooting ==+=== Troubleshooting ​===
 Problemy, które napotkałem oraz linki pomocne w ich rozwiązaniu:​ 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]]   * [[http://​dev.eclipse.org/​newslists/​news.eclipse.technology.gmf/​msg03925.html|Containment Feature]]
  
-== Support ==+=== Support ​===
   * [[http://​www.nabble.com/​Eclipse-GEF---Dev-f2208.html|GEF mailing list archive]]   * [[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.   * [[http://​eclipseforum.org.pl/​|Polskie forum eclipse]] - zostało uruchomione pod koniec 2007 roku.
  
-== Inne ==+=== Inne ===
   * [[http://​wiki.eclipse.org/​index.php/​GMF_Documentation|GMF_Documentation]] - zawiera wiele dalszych linków.   * [[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://​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://​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.   * [[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.
 +
 +
 +
 +
 +
 +
 +
 +
  
 ====== Materiały ====== ====== Materiały ======
Linia 454: 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.1213523673.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