[[
✎ pl:miw:miw08_gefardxtt_2
]]
aiWiki
Pokaż stronę
Ostatnie zmiany
Indeks
Zaloguj
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== Opis ====== Szybura Bartek <b.szybura@interia.pl> GEFARDXTT\\ \\ GEF and Eclipse based editor for ARD and XTT. Evaluation, feasibility, prototype. XTTv2 Editor requirements \\ input:\\ \\ Eclipse: EMF, GEF resources (GEF, http://www.eclipse.org/articles/Article-GEF-editor/gef-schema-editor.html), \\ ARD: Towards Formalization of ARD+ Conceptual Design and Refinement Method and An ARD+ Design and Visualization Toolchain Prototype in Prolog and UServ Case Study, Conceptual Design with ARD+ Method.\\ \\ output:\\ \\ 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 ====== ===== 080304 ===== ===== 080311 ===== * Praca magisterska “Interfejs graficzny do budowy aplikacji kompnentowych zapewniający weryfikację semantyczną”. Autorzy: Maciej Kwiecień, Jan Rachwalik-przeglądnięcie. * Instalcja wszystkich potrzebnych pluginów do GEF-a. * Przeczytanie bibliografii znajdującej się na stronie ai.ia.agh.edu.pl na temat modelu XTT. ===== 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, ===== 080422 ===== * XSD ===== 080429 ===== * EMF->GMF->GEF * [[hekate:hekate_markup_language]] * Stwotrzenie prostego edytora biblioteki (książki, pisarz) * stworzenie modelu za pomocą "rose" * stworzenie modelu za pomocą "annotated java" * stworzenie modelu za pomocą xml schema (xsd) * Próba stowrzenie modelu XTT (predykat) w zapisie XSD (XMLSchema): <code xml> <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3schools.com" xmlns="http://www.w3schools.com" elementFormDefualt="qualified"> <xsd:element name="(?)"> <xsd:complexType> <xsd:sequence> <xsd:extension base="xs:string"> <xsd:attribute name="title_?" type="xsd:string"> </xsd:extension> <xsd:extension base="xs:string"> <xsd:attribute name="title_=" type="xsd:string"> </xsd:extension> <xsd:extension base="xs:string"> <xsd:attribute name="title_operation" type="xsd:string"> </xsd:extension> <xsd:element name="inside" minOccurs="1" maxOccurs="unbound"> <xsd:sequence> <xsd:element name="in" type="xsd:string"> <xsd:element name="=" type="xsd:string"> <xsd:element name="opearation" type="xsd:string"> </xsd:sequence> </xsd:element> </xsd:sequence> <xsd:complexTyp> </xsd:element> </code> * Dalsze prace nad wykonaniem edytora XTT w EMF (Eclipse). ===== 080527 ===== * połaczenia * prototyp edytora zg. z w.w. xsd ====== Projekt ====== ====== 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.\\ {{: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> </code> 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.\\ {{:pl:miw:eclipse1.jpg|:pl:miw:eclipse1.jpg}}\\ 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): <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> 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> ====== Tutorial - Jak uruchomić edytor? ====== W tutorialu wykorzystuję oprogramowanie: [[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ę okno, pokazane 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 w 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.ecore, automatycznie 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. ====== Materiały ====== FIXME * http://www.ibm.com/developerworks/ * http://www.ibm.com/developerworks/opensource/library/os-gef/ * http://www.ibm.com/developerworks/opensource/library/os-eclipse-gef11/ * http://www.apohllo.pl/texts/eclipse.pdf * http://www.eclipse.org/gef/overview.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 * 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.1221688252.txt.gz
· ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry