To jest stara wersja strony!
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
080422
080429
<?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>
080527
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.
Poniżej przedstawiam opis XTT w .xsd:
<?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>
Dzięki danemu plikowi mogłem wygenerować pliki xtt.genmodel oraz xtt.ecore, które potrzebne mi były do stworzenia edytora XTT.
Rysunek 1.
Rysunek 2.
Dzięki stworzonemu edytorowi XTT mogę wygenerować opis grafów XTT, np. (opis skrócony):
<?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>
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ć:
<ConectorRow>#//@tableGarph.0/@dataTabel.0</ConectorRow>
Tutorial - Jak uruchomić edytor?
W tutorialu wykorzystuję oprogramowanie:
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.
Rysunek 3.
Rysunek 4.
Rysunek 5.
Rysunek 6.
Rysunek 7.
Rysunek 8.
Rysunek 9.
Materiały