Software(technik)praktikum Tutorial: Einführung in GEF

Slides:



Advertisements
Ähnliche Präsentationen
Einführung in das Graphical Editor Framework Tutorial, iX-Konferenz , nh-Hotel, Heidelberg Dr. Boris Bokowski
Advertisements

Software Engineering 2 Übung – Konstruktion interaktiver (CASE) Tools SS 2007 Leif Geiger, Carsten Reckord, Software Engineering.
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
1. 2 Microsoft.NET Überblick Dirk Primbs Technologieberater Developer Platform & Strategy Group Microsoft Deutschland GmbH.
Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,
Design by Contract with JML - Teil 2
Einführung in die Entwicklungsumgebung
Personalisierte Benutzeroberflächen BFD WS 12/13 Übung 6 Producing an end-user experience that is uniquely appropriate for each individual. [Sears]
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
AUFGABE 1: Ein Wagen (dargestellt durch ein Rechteck) soll sich von links nach rechts bewegen. Tipp: Timer benutzen AUFGABE 2: Zusätzlich zu Aufgabe.
Praxisbeispiel Cocoa Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Re-usable Content in 3D und Simulationssystemen Prof.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
Eclipse - Entwicklungsumgebung und mehr ETIS SS05.
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
Seminar Web-Engineering Nina Aschenbrenner / Ruben Jubeh 1 FG Software Engineering Software Engineering Seminar Web Engineering Seminar des Fachgebiet.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 GUI Konstruktion: 1. Entwurf mit Papier und Bleistift / Post Ist 2. Eventuell.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 Model View Controller Pattern.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. funktionsorientierte Organisation.
Memoir von Andreas Heinze Eine Klasse für sich Die Memoir- Klasse -- Andreas Heinze 2 Gliederung 1. Geschichtlicher Abriss 2. Eigenschaften.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational.
USE2ANT Die Umstellung von Use Makefiles zu Ant & Junit Von Isaac, Maleen und Marc.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Herzlich Willkommen zu „Einführung in die Programmierung mit Java“
Zusammenfassung der Vorlesung
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Medien zwischen Technologie und Gesellschaft Dozent: Herr Prof. Dr. Manfred Thaller SS 13 Referent: Christian Braun.
Programmiermethodik Übung 6
Tutorial im Rahmen des Software(technik)praktikums
Automated Software Testing
MDA – Framework AndroMDA
Calendar Week 40 Gunnar Beutner. Bug Tracker Hi zusammen, bei der Vorbereitung auf das Meeting ist mir folgende aufgefallen bzw. unklar: - # Ich.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
BAS5SE | Fachhochschule Hagenberg | Daniel Khan | S SPR5 MVC Plugin Development SPR6P.
...ich seh´es kommen !.
Java und Eclipse.
Mahmoud Zoabi Khaled Isa
Informatik – Programmierpraktikum Alexander Volodarski Gruppe 14
Developer Day Webseiten auf Windows Azure hosten Britta Labud bbv Software Services AG Roland Krummenacher bbv Software Services AG.
Jan Hentschel Microsoft Expert Student Partner Windows Azure Windows Azure Windows Azure Mobile Services.
Cooperation unlimited © Zühlke August 2008 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
MVVM in Windows 8 und Windows Phone 8
PresenterCompanyContact Windows Azure ASP.NET Web-Anwendungen schnell und zuverlässig bereitstellen.
2 Software Management SCRUM, Project Management, Quality Management, Business Analysis Innovation and Technology Management, Coaching, R&D Processes Quality.
Auslegung eines Vorschubantriebes
XML IV: Cocoon 2.
F-Sharp (F#) Eine multiparadigmatische Sprache. Merkmale von F# Multiparadigmatisch.NET-Sprache Skalierbar und effizient Als Forschungsprojekt von Microsoft.
Template v5 October 12, Copyright © Infor. All Rights Reserved.
Testtechniken-Praktikum WS 2005/06 1 Testen mit Mock- Objekten Andreas Höfer Dr. Matthias Müller.
Design Patterns Ein Muster (pattern) ist eine Idee, die sich in einem praktischen Kontext als nützlich erwiesen hat und dies auch in anderen sein wird.
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Eclipse Modeling Framework (EMF)
GMF (Graphical Modeling Framework)
Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.
Analyseprodukte numerischer Modelle
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
1 GEOMETRIE Geometrie in der Technik H. Pottmann TU Wien SS 2007.
Agile ALM for Plex/2E CM MatchPoint ALM. Themen Agenda CM MatchPoint ALM Übersicht CM MatchPoint 5.2 Web und Mobile Entwicklung Agile ALM / DevOps CM.
KIT – die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Vorlesung Knowledge Discovery - Institut AIFB Tempus fugit Towards.
Testtechniken-Praktikum WS 2005/06 1 Arbeiten mit JUnit Andreas Höfer Dr. Matthias Müller Mit Beiträgen von Johannes Link.
Technische Universität München 1 CADUI' June FUNDP Namur G B I The FUSE-System: an Integrated User Interface Design Environment Frank Lonczewski.
Der Erotik Kalender 2005.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Seite 1 © 2007 Dr. Schwaiger Roland VP SW-Technologien WS 2007/2008 VP Softwaretechnologien WS2007/2008 SAP GUI Pattern und Componentry Dr.
Digitale Annotationen. Grundlage: John Bradley “Towards a Richer Sense of Digital Annotation: Moving Beyond a Media Orientation of the Annotation of Digital.
 Präsentation transkript:

Software(technik)praktikum Tutorial: Einführung in GEF GEF-Tutorial

Motivation: Editor für einen Graphen Editor für Graphstruktur bestehend aus Knoten und Kanten soll erstellt werden Vision: Graph Node Connection/Edge GEF-Tutorial

Modell für einen Graphen Objektstruktur Daten, auf denen der Editor arbeitet :Graph :Node :Edge :Node :Edge :Node :Edge GEF-Tutorial

Modell für einen Graphen Modell (Klassendiagramm)‏ Anleitung für den Bau eines Graphen Meta-Modell von Graphen Modell eines Graphen GEF-Tutorial

Vision: Rectangle-Figure Canvas Connection-Figure Grafischer Editor GEF-Tutorial

Grafischer Editor: Darstellung Figure-Hierarchie Visualisierung der Objektstruktur eines Graphen :Canvas :Rectangle-Figure :Connection-Figure :Rectangle-Figure ... GEF-Tutorial

Grafischer Editor: Darstellung Figure-Hierarchie Es kann mehr geben! :Canvas :Rectangle-Figure :Connection-Figure :Rectangle-Figure ... :Label :Rectangle-Figure :Rectangle-Figure GEF-Tutorial

Grafischer Editor: Modell und Darstellung Wie hängen Modell und Grafik zusammen? Wie stellt die Grafik das Modell dar? Wie wird das Modell geändert? Wie stelle ich Änderungen am Modell dar? :Node :Edge :Graph ? :Canvas :Rectangle-Figure :Connection-Figure :Rectangle-Figure GEF-Tutorial

Grafischer Editor: Modell und Darstellung Wie hängen Modell und Grafik zusammen? durch EditParts :GraphEditPart :Node-EditPart :Edge-EditPart :Node-EditPart :Node :Edge :Graph :Canvas :Rectangle-Figure :Connection-Figure :Rectangle-Figure GEF-Tutorial

Grafischer Editor: Modell und Darstellung Model-View-Controller-Paradigma (MVC)‏ Controller :GraphEditPart :Node-EditPart :Edge-EditPart :Node-EditPart :Node :Edge :Graph :Canvas :Rectangle-Figure :Connection-Figure :Rectangle-Figure Model View GEF-Tutorial

Grafischer Editor: Modell und Darstellung Model-View-Controller-Paradigma (MVC)‏ Anwendungslogik Synchronisation Darstellung Model Controller (EditParts)‏ View (Figures)‏ GEF-Tutorial

Grafischer Editor: Synchronisation EditParts 1. Aktion Modell Figures Editor GEF-Tutorial

Grafischer Editor: Synchronisation EditParts 2. Request 1. Aktion Modell Figures Editor GEF-Tutorial

Grafischer Editor: Synchronisation EditParts Command 3. erzeugt 2. Request 1. Aktion Modell Figures Editor GEF-Tutorial

Grafischer Editor: Synchronisation EditParts Command 3. erzeugt 2. Request 4. modifiziert 1. Aktion Modell Figures Editor GEF-Tutorial

Grafischer Editor: Synchronisation EditParts Command 3. erzeugt 2. Request 4. modifiziert 1. Aktion Modell Figures 5. Notification Editor GEF-Tutorial

Grafischer Editor: Synchronisation EditParts Command 3. erzeugt 2. Request 4. modifiziert 1. Aktion 6. aktualisiert Modell Figures 5. Notification Editor GEF-Tutorial

Grafischer Editor: Synchronisation EditParts und EditPolicies Verhalten von EditParts beschrieben durch EditPolicies für bestimmte Rollen EditParts Command 3. erzeugt public class GraphEditPart{ protected void createEditPolicies() { installEditPolicy(EditPolicy.LAYOUT_ROLE, new ExampleXYEditPolicy()); } ... GEF-Tutorial

Grafischer Editor: Synchronisation EditParts und EditPolicies EditPolicies bearbeiten Requests erzeugen Commands EditParts Command 3. erzeugt public class ExampleXYEditPolicy { public Command getCommand(Request request) { ... } protected Command createChangeConstraintCommand( EditPart child, Object constraint) { ChangeNodePositionCommand locationCommand = new ChangeNodePositionCommand(); locationCommand.setModel((Node) child.getModel()); locationCommand.setLocation((Rectangle) constraint); return locationCommand; GEF-Tutorial

Grafischer Editor: Synchronisation Commands und CommandStack Änderung des Modells durch Commands Modell Command 4. modifiziert public class ChangeNodePositionCommand extends Command { public void execute() { oldXPos = node.getXPos(); oldYPos = node.getYPos(); node.setXPos(newXPos); node.setYPos(newYPos); } public void undo() { node.setXPos(oldXPos); node.setYPos(oldYPos); ... ausgeführtes Command CommandStack GEF-Tutorial

Grafischer Editor: Synchronisation Notifications Informieren über Modelländerungen Eine Notification gibt an geändertes Objekt (notifier, z.B.: Node-Objekt)‏ Art der Änderung (event type, z.B.: REMOVE)‏ Geänderte Eigenschaft (feature, z.B.: Referenz outgoingEdge)‏ Vorherigen Wert (old value, z.B.: bisheriges Edge-Objekt)‏ Neuen Wert (new value, z.B.: null)‏ Modell EditParts 5. Notification GEF-Tutorial

Grafischer Editor: Synchronisation Empfang von Notifications Modellobjekte sind Notifier EditParts sind Adapter und reagieren auf Notifications Modell EditParts 5. Notification NodeEditPart Adapter notifyChanged(Notification)‏ «implements» nodeEP:NodeEditPart node:Node 1.2: nodeEP.notifyChanged(new Notification(…))‏ 1.1: node.setXPos(5)‏ GEF-Tutorial

Grafischer Editor: Synchronisation Empfang von Notifications EditParts müssen sich als Listener bei Modellobjekten registrieren nur dann erhalten sie Notifications Modell EditParts 5. Notification nodeEP:NodeEditPart node:Node 1: node.eAdapters().add(nodeEP)‏ GEF-Tutorial

Grafischer Editor: Synchronisation Reagieren auf Notifications EditParts aktualisieren Figures bei Modelländerungen Figures EditParts 6. aktualisiert public class NodeEditPart implements Adapter { public void notifyChanged( Notification notification) { refreshVisuals(); } protected void refreshVisuals()‏ { Point loc = new Point( ((Node) getModel()).getXPos(), ((Node)getModel()).getYPos()); Dimension size = new Dimension(50,50); Rectangle r = new Rectangle(loc ,size); ((GraphEditPart) getParent())‏ .setLayoutConstraint(this, getFigure(), r); ... GEF-Tutorial

Überblick: Model-View-Controller EditParts Command 3. erzeugt 2. Request 4. modifiziert 1. Aktion 6. aktualisiert Modell Figures 5. Notification Editor GEF-Tutorial

Eclipse: Eclipse-eigene Hilfe Wo Hilfe suchen? Eclipse: Eclipse-eigene Hilfe Eclipse-Artikel: http://www.eclipse.org/articles/ Viele Beiträge zu Eclipse, SWT, JFace, GEF, EMF, ... Eclipse-Forum: http://www.eclipse.org/forums/ Source Code und speziell Beispiel-Plug-ins, z.B. Logic- und Shapes-Editoren (GEF Examples)‏ EclipseWiki: http://wiki.eclipse.org/ GEF-Tutorial

Quellen und nützliche Links Eclipse und Plug-ins: Buch: „Eclipse – Building Commercial-Quality Plug-ins“, Eric Clayberg, Dan Rubel, Addison-Wesley, 2006 Buch: „Contributing to Eclipse – Principles, Patterns, and Plug-ins“, Erich Gamma, Kent Beck, Addison-Wesley, 2004 Eclipse Artikel: http://www.eclipse.org/articles/ „PDE Does Plug-ins“ „Eclipse User Interface Guidelines“ (Version 2.1)‏ GEF-Tutorial

Quellen und nützliche Links GEF, Draw2d, SWT, JFace: Buch (PDF): „Eclipse Development using the Graphical Editing Framework and the Eclipse Modeling Framework“, William Moore et al., IBM Redbook, http://www.redbooks.ibm.com/abstracts/sg246302.html?Open Buch: „SWT/JFace in Action – GUI Design with Eclipse 3.0“, Matthew Scarpino et al., Manning, 2004 Artikel: „Create an Eclipse-based application using the Graphical Editing Framework“, Randy Hudson (IBM), http://www-128.ibm.com/developerworks/opensource/library/os-gef/ Eclipse-Artikel: http://www.eclipse.org/articles/ „A Shape Diagram Editor“ „Using GEF with EMF“ „Display a UML Diagram using Draw2D“ GEF-Tutorial

Quellen und nützliche Links EMF: „Eclipse Modeling Framework“, Frank Budinsky et al., Prentice Hall, 2003 Artikel: The Eclipse Modeling Framework (EMF) Overview Sonstiges: FAQs auf SWTPRA-Web-Seite Weitere Eclipse-Plug-ins: http://eclipse-plugins.2y.net/eclipse/index.jsp GEF-Tutorial