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_2 [2008/04/22 12:32]
gjn
pl:miw:miw08_gefardxtt_2 [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== Opis ====== ====== Opis ======
 +__**Projekt zakończony**__
 +
 Szybura Bartek <​b.szybura@interia.pl>​ Szybura Bartek <​b.szybura@interia.pl>​
  
Linia 11: Linia 13:
 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 requirements \\ 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 requirements \\
  
-====== ​Spotkania ​====== +====== ​Projekt ​====== 
-===== 08.03.04 =====+[[pl:​miw:​miw08_gefardxtt_2:​spotkania]]
  
-===== 080311 ​=====+====== Sprawozdanie ======
  
 +Celem projektu było zapoznanie się z dostępnymi Frameworkami pozwalającymi na budowę edytora XTT. Na początku przeanalizowałem framewrok GEF (Graphical Editing Framework). Niestety w przypadku GEF zbudowanie odpowiedniego edytora było bardzo pracochłonne. Praca w GEF-ie zaczynała się o stworzenia odpowiednich tablic, połączeń,​ etykiet tablic lub połączeń. Korzystając tylko z GEF-a wszystkie właściwości takie jak miejsce narysowania strzałki, tablicy trzeba ręcznie ustawiać.\\ ​  
 +Dlatego też poszukałem inne rozwiązania,​ które są wykorzystywane w budowie edytorów. Znalazłem następny framework EMF (Eclipse Modeling Framework). Dzięki temu rozwiązaniu udało mi się stworzyć opis XTT w XML Schema.\\
  
-===== 080401 ===== 
-  * model, można użyć XTTML2.0 -> to co w hqed 
-  * [[hekate:​hqed|edytor XTT]]  [[hekate:​varda]] 
-  * uproszczony model XTT 
-  ​ 
-  * wykonanie tutoriali dotyczących GEF-u, DRAW2D, GMF, 
  
 +{{:​pl:​miw:​xtt-xsd.xml|Poniżej przedstawiam opis XTT w .xsd:}}\\
  
 +<code xml>
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +<​xsd:​schema targetNamespace="​http://​student.agh.edu.pl/​~szybura/​xtt"​
 +    xmlns:​ecore="​http://​www.eclipse.org/​emf/​2002/​Ecore"​
 +    xmlns:​xtt="​http://​student.agh.edu.pl/​~szybura/​xtt"​
 +    xmlns:​xsd="​http://​www.w3.org/​2001/​XMLSchema">​
 +
 + <​xsd:​complexType name="​Graph">​
 + <​xsd:​sequence>​
 + <​xsd:​element name="​TitleGraph"​ type="​xsd:​string"​ />
 + <​xsd:​element name="​DescribeGraph"​ type="​xsd:​string"​ />
 + <​xsd:​element maxOccurs="​unbounded"​ minOccurs="​1"​
 + name="​TableGarph"​ type="​xtt:​Tabel"​ />
 + </​xsd:​sequence>​
 + </​xsd:​complexType>​
 + <​xsd:​complexType name="​Tabel">​
 + <​xsd:​sequence>​
 + <​xsd:​element name="​TitleTabel"​ type="​xsd:​string"​ />
 + <​xsd:​element name="​DescribeTabel"​ type="​xsd:​string"​ />
 + <​xsd:​element maxOccurs="​unbounded"​ minOccurs="​1"​
 + name="​DataTabel"​ type="​xtt:​Row"​ />
 + </​xsd:​sequence>​
 + </​xsd:​complexType>​
 + <​xsd:​complexType name="​InsideRow">​
 + <​xsd:​sequence>​
 + <​xsd:​element name="​DescribeInsideRow"​ type="​xsd:​string"​ />
 + <​xsd:​element name="​DataInsideRow"​ type="​xsd:​string"​ />
 + </​xsd:​sequence>​
 + </​xsd:​complexType>​
 + <​xsd:​complexType name="​Row">​
 + <​xsd:​sequence>​
 + <​xsd:​element name="​TitleRow"​ type="​xsd:​string"​ />
 + <​xsd:​element name="​IdRow"​ type="​xsd:​int"​ />
 + <​xsd:​element maxOccurs="​unbounded"​ minOccurs="​1"​
 + name="​DataRow"​ type="​xtt:​InsideRow"​ />
 + <​xsd:​element maxOccurs="​1"​ minOccurs="​0"​ name="​ConectorRow"​
 +          type="​xsd:​anyURI"​ ecore:​reference="​xtt:​Row"​ ecore:​opposite="​IdRow"/>​
 + </​xsd:​sequence>​
 + </​xsd:​complexType>​
 +</​xsd:​schema>​
  
-===== 080422 ===== +</​code>​
-  * ??+
  
-===== 080429 ===== +Dzięki danemu plikowi mogłem wygenerować pliki {{:​pl:​miw:​xtt-ecore.xml|xtt.ecore}} oraz {{:​pl:​miw:​xtt-genmodel.xml|xtt.genmodel}},​ które potrzebne mi były do stworzenia edytora XTT.\\ 
-  * EMF->GMF->GEF +{{:pl:​miw:​eclipse1.jpg|:​pl:​miw:​eclipse1.jpg}}\\ 
-  * [[hekate:hekate_markup_language]]+Rysunek 1.\\
  
  
 +{{:​pl:​miw:​miw08_gefardxtt_2_eclipse2.jpg|:​pl:​miw:​miw08_gefardxtt_2_eclipse2.jpg}}\\
 +Rysunek 2.\\
  
 +Dzięki stworzonemu edytorowi XTT mogę wygenerować opis grafów XTT, np. (opis skrócony):
  
-====== Projekt ======+<code xml> 
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​ 
 +<​xtt:​Graph xmlns:xtt="​http://​student.agh.edu.pl/​~szybura/​xtt">​ 
 +  <​TitleGraph>​Termostat</​TitleGraph>​ 
 +  <​DescribeGraph>​Example. Termostat</​DescribeGraph>​ 
 +  <​TableGarph>​ 
 +    <​TitleTabel>​ms</​TitleTabel>​ 
 +    <​DescribeTabel>​Table id: 1 - ms</​DescribeTabel>​ 
 +    <​DataTabel>​ 
 +      <​TitleRow>​Describe row</​TitleRow>​ 
 +      <​DataRow>​ 
 +        <​DescribeInsideRow>​(?​) month</​DescribeInsideRow>​ 
 +        <​DataInsideRow>​(?​) month</​DataInsideRow>​ 
 +      </​DataRow>​ 
 +      <​DataRow>​ 
 +        <​DescribeInsideRow>​(?​) season</​DescribeInsideRow>​ 
 +        <​DataInsideRow>​(?​) season</​DataInsideRow>​ 
 +      </​DataRow>​ 
 +    </​DataTabel>​ 
 +  </​TableGarph>​ 
 +</​xtt:​Graph>​ 
 +</​code>​
  
-====== 080421 ======+W każdym pliku mogę wygenerować odpowiednie tabele, w których mogę stworzyć wiersze, które są akurat potrzebne do przedstawienia danego modelu. Odpowiednie wiersze mogę ze sobą łączyć:​\\
  
 +<code xml>
 +<​ConectorRow>#//​@tableGarph.0/​@dataTabel.0</​ConectorRow>​
 +</​code>​
  
-  * XTT Logic 
  
-  * Próba przejścia: 
-         - z XTTML 2.0 do XSLT, 
-         - z XTTML 2.0 do XSL (kod przykładowy) 
-  ​ 
-  XTTML do XSL:  
  
-<​code>​ 
-<​xsl:​stylesheet version="​1.0"​ xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​ xmlns="​http://​www.w3.org/​2000/​svg"​ xmlns:fn ="​http://​www.w3.org/​2005/​02/​xpath-functions">​ 
-    <​xsl:​variable name="​temp"​ /> 
-    <​xsl:​output method="​xml"​ indent="​yes"​ omit-xml-declaration="​no"​ />    ​ 
-    <​xsl:​template match="/">​ 
-        <svg 
  
-        </​svg>​ +====== Tutorial ​Jak uruchomić edytor? ​======
-    </​xsl:​template>​ +
-    <​xsl:​template match="//​xtt_table">​ +
-       ​ postion +
-        <​xsl:​for-each select="​...">​ +
- pętla  +
-        </​xsl:​for-each>​ +
-                <​xsl:​for-each select="​...">​ +
-                    <​xsl:​variable name="​..."​ select="​..."/>​ +
-                    <xsl:for-each select="​...">​ +
-                        <​xsl:​variable name="​..."​ select="​..."/>​  +
-                        <​text>​...</​text>​ +
-                    </​xsl:​for-each>​ +
-                </​xsl:​for-each> ​          +
-    </​xsl:​template>​ +
-     <​xsl:​template match="​...">​ +
- <​xsl:​variable name="​..."​ select="​..."/>​ +
-    </​xsl:​template> ​   +
-</​xsl:​stylesheet>​ +
-</​code>​+
  
 +W tutorialu wykorzystuję oprogramowanie:​
  
-  ​Próba stowrzenia modelu w GMFa nie GEF (GEFdraw2d ​bardzo pracochłonne). Niestety nie mogłem dolinkować org.eclipse.runtime+[[ftp://​ftp.man.szczecin.pl/​pub/​eclipse/​technology/​epp/​downloads/​release/​ganymede/​R/​eclipse-jee-ganymede-win32.zip|Eclipse Platform Version: 3.4.0]]  
 + 
 +  ​Uruchom eclipse.exe. 
 +  * Następnie naciśnij File -> New -> Other. 
 +  * Pojawi się oknopokazane na Rysunku 3. Wybierz Eclipse Modeling Framework -> EMF Project. 
 + 
 +{{:​pl:​miw:​eclipse3.jpg|:​pl:​miw:​eclipse3.jpg}}\\ 
 +Rysunek 3.\\ 
 +  * Następnie wpisz naciśnij NEXT oraz wpisz kolejnym oknie nazwę projektu i naciśnij NEXT (Rysunek 4). 
 + 
 +{{:​pl:​miw:​eclipse4.jpg|:​pl:​miw:​eclipse4.jpg}}\\ 
 +Rysunek 4.\\ 
 +  * Wybierz następnie Ecore model (modele importowane). 
 + 
 +{{:​pl:​miw:​eclipse5.jpg|:​pl:​miw:​eclipse5.jpg}}\\ 
 +Rysunek 5.\\ 
 +  * W kolejnym kroku trzeba wczytać istniejący model stworzony z pliku xsd. Należy pobrać plik {{:​pl:​miw:​xtt.xml|xtt.xml}} następnie zmienić rozszerzenie na xtt.ecore. 
 +  * Wybieramy model xtt.ecoreautomatycznie plik jest ładowany (Rysunek 6). Wciskamy FINISH. 
 + 
 +{{:​pl:​miw:​eclipse6.jpg|:​pl:​miw:​eclipse6.jpg}}\\ 
 +Rysunek 6.\\ 
 +  * Następnie gdy pojawi nam się okno z edytorem xtt.genmodel. Naciskamy prawym przyciskiem myszy i na xtt i wybieram GENERATE ALL (Rysunek 7). 
 + 
 +{{:​pl:​miw:​eclipse7.jpg|:​pl:​miw:​eclipse7.jpg}}\\ 
 +Rysunek 7.\\ 
 +  * Generują się odpowiednie pliki, które potrzebne są do stworzenia edytora XTT (Rysunek 8). 
 + 
 +{{:​pl:​miw:​eclipse8.jpg|:​pl:​miw:​eclipse8.jpg}}\\ 
 +Rysunek 8.\\ 
 +  * Gdy plik są wygenerowane,​ uruchamiamy myEditorXTT jako Eclipse Application (Rysunek 9). 
 + 
 +{{:​pl:​miw:​eclipse9.jpg|:​pl:​miw:​eclipse9.jpg}}\\ 
 +Rysunek 9.\\ 
 +  * Gdy zrobimy wszystkie kroki podane wyżej powinno się wyświetlić drugie okno Eclipse. W którym musi utworzyć nowy projekt (File -> New -> General -> Project), musimy wpisać nazwę projektu i nacisnąć FINISH. 
 +  * W kolejnym kroku musimy stworzyć nowy model xtt (File -> New -> Other -> Example EMF Model Creatione Wizards -> Xtt Model, Rysunek 10). 
 + 
 +{{:​pl:​miw:​eclipse10.jpg|:​pl:​miw:​eclipse10.jpg}}\\ 
 +Rysunek 10.\\ 
 +  * Następnie należy wpisać nazwę pliku np. My.xtt. Wcisnąć NEXT. W polu Model Object wybieramy Graph (Rysunek 11). I wciskamy FINISH. 
 + 
 +{{:​pl:​miw:​eclipse11.jpg|:​pl:​miw:​eclipse11.jpg}}\\ 
 +Rysunek 11.\\ 
 +  * Gdy wszystko zostanie wykonane zgodnie z instrukcją możemy zacząć tworzyć nasz model xtt. Dodając poszczególne tabele, a w środku tabel wiersz, w wierszach zaś dodajemy poszczególne komórki (przyładowy wygląd tabel xtt). Oczywiście każdy graf, tabela, wiersz oraz wnętrze wiersza ma swoje właściwości,​ które możemy zmieniać w oknie Properties. 
 + 
 +{{:​pl:​miw:​eclipse12.jpg|:​pl:​miw:​eclipse12.jpg}}\\ 
 +Rysunek 12.\\ 
 + 
 +  * Każdy wiersz można połączyć z innym istniejącym wierszem. Ustawia się to w oknie Properties -> Connector Row. 
 +  
 + 
  
  
  
  
-====== Sprawozdanie ====== 
  
 ====== Materiały ====== ====== Materiały ======
Linia 94: Linia 177:
   * http://​www.eclipse.org/​articles/​Article-GEF-Draw2d/​GEF-Draw2d.html   * http://​www.eclipse.org/​articles/​Article-GEF-Draw2d/​GEF-Draw2d.html
   * Praca magisterska "​Interfejs graficzny do budowy aplikacji kompnentowych zapewniający weryfikację semantyczną"​. Autorzy: Maciej Kwiecień, Jan Rachwalik   * Praca magisterska "​Interfejs graficzny do budowy aplikacji kompnentowych zapewniający weryfikację semantyczną"​. Autorzy: Maciej Kwiecień, Jan Rachwalik
-  * http://​www.w3schools.com/​xml/xml_xsl.asp+  ​* http://​www.eclipse.org/​articles/​Article-Introducing-GMF/​article.html 
 +  * http://​www.eclipse.org/​articles/​Article-Using%20EMF/​using-emf.html 
 +  * http://​dev.eclipse.org/​viewcvs/​index.cgi/​org.eclipse.emf/​org.eclipse.emf/​doc/​org.eclipse.emf.doc/​references/​overview/​EMF.html?​root=Modeling_Project&​view=co 
 +  ​* http://​www.w3schools.com/​Schema/default.asp
  
  
pl/miw/miw08_gefardxtt_2.1208860355.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