Projektarbeit EchoBinding Entwurf und Implementierung eines Data Binding Layer für das Echo Web Framework Aufgabensteller: Prof. Dr. Martin Wirsing Betreuer:

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

Objektrelationales Mapping mit JPA
programmiert April-Juni 2003 von Knut Riechmann
Objektorientierte Programmierung
Imperative Programmierung
der Universität Oldenburg
Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Stephan Munkelt, Stefan Salzmann - 03IN.
Ein Beispiel in Java.
Aufbau des Internets Überblick Prof. Dr. T. Hildebrandt
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Übersicht zur Vorlesung.
Tomcat Web-Server installieren
Daniel Höfler Markus Thurner XMLApplicationPlatform Siemens OpenStage 60/80.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Objektorientierte Programmierung
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
Java: Grundlagen der Objektorientierung
Komponentenbasierter Taschenrechner mit CORBA
Ein Beispiel in Java.
Web 3.0 – Programmierung – Semantic Web / CIDOC CRM
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Programmieren mit JAVA
Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang
Projekt Web Engineering
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
DVG Klassen und Objekte
03 - Paint Das Zeichenprogramm EMMA Paint2 Aufgabenstellung Entwicklung eines ausschließlich in JAVA programmierten Graphikprogrammes. Vergleichsprodukte:
NetUSE Web Application Framework Kai Voigt NetUSE AG 28. Februar 2003.
Zukunft des Webs? Dennis Beer Christian Blinde
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Web-Anwendungsentwicklung à la MVC. Übersicht Über Georg Heeg Ein industrielles Beispiel Web-Anwendungen aus Smalltalker-Sicht MVC für das Web Programmierdemo.
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Universität zu Lübeck Institut für Informationssysteme Die Präsentationsschicht - mit Swing.
Herzlich Willkommen… welcome… soyez la bienvenue….
AWT und JFC Abstract Windowing Toolkit
Applets Java für’s Web.
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 3 Folie 2 Windows Presentation Foundation (WPF) s.a.
Seminar Web-Anwendungen mit JSP u. ASP.NET entwickeln JavaServer Faces Vortragender: Thomas Dermin Custom-Components.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Informatik – Programmierpraktikum Alexander Volodarski Gruppe 14
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 Commands (1) s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Oliver Spritzendorfer Thomas Fekete
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Java-AG Benutzeroberflächen Juni 2001 Michael Haas.
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
Web-basierter Unterricht in der Computergraphik: Konzepte und Realisierung von interaktiven Online-Kursen Reinhard Klein, Frank Hanisch Wilhelm-Schickard.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Robuste Programme durch Ausnahmebehandlung
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
/14Mohamed Sabbar, Medieninformatik - Fachseminar 14/12/09 Java Server Faces (JSF) „JSF“ ist mehr als nur eine Insel Fachseminar WS 09/10 Mohamed Sabbar.
Vorteile von XML Die installed base von HTML, HTTP und Webbrowsern XML ist einfach und portabel XML kann Dokumente beliebiger Komplexität abbilden XML.
GUI Programmierung in Java Branimir Djordjevic. GUI - Wichtige Begriffe -  Die Swing-Bibliothek in Java stellt zum Beispiel die folgenden Windows zur.
Jakarta Struts Quasi-Standard für JSP-basierte Entwicklung: Jakarta Struts Key Features von Struts: Implementierung des Action-Command-Pattern („Model.
Informatik Softwareentwicklung – 4.3 Entwurfsmuster
 Präsentation transkript:

Projektarbeit EchoBinding Entwurf und Implementierung eines Data Binding Layer für das Echo Web Framework Aufgabensteller: Prof. Dr. Martin Wirsing Betreuer: Axel Rauschmayer Philipp Mpalampanis

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 2 Übersicht  Echo  Data Binding  EchoBinding

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 3 Echo Web Framework Echo ermöglicht einfache Entwicklung von sog. Rich Internet Applications (RIA) Echo Applikationen werden zu 100% in Java programmiert Framework erzeugt notwendiges HTML und JavaScript

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 4 Echo Web Framework Client-Server-Architektur: server-seitig Java Servlets, client-seitig HTML+JavaScript Kommunikation zwischen Client und Server erfolgt über XmlHttpRequests (Ajax)

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 5 Echo Web Framework Echo adaptiert Java Swing Programmiermodell Echo ist komponentenbasiert: jedes GUI Element ist eine Komponente (Window, Panel, TextField, SelectField, Table usw.) Echo ist ereignisgesteuert: Anwendung wird durch Events gesteuert (Benutzerinteraktionen, Benachrichtigungen)

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 6 Echo - Beispiel final Label helloLabel = new Label("Hello!"); mainPane.add(helloLabel); mainPane.add(new Label("What's your name?")); final TextField tfYourName = new TextField(); Button submitButton = new Button("Submit"); submitButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { helloLabel.setText("Hello "+tfYourName.getText()+"!"); } });...

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 7 Übersicht  Echo  Data Binding  EchoBinding

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 8 Motivation: Album Manager

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 9 Motivation: Synchronisation I public class AlbumManagerView extends Column { TextField tfArtist; TextField tfTitle; CheckBox cbClassical; TextField tfComposer; Album album;... } tfArtist.setText( album.getArtist() ); tfTitle.setText( album.getTitle() ); cbClassical.setSelected(... );... View Model

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 10 Motivation: Synchronisation II Speichern der modifzierten Daten Benutzer drückt „Apply“-Button album.setArtist( tfArtist.getText() ); album.setTitle( tfTitle.getText() ); album.setClassical( cbClassical.is... View Model

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 11 Motivation: Album Manager Extended Zusätzliches Feld „Erscheinungsdatum“ album.setReleaseDate( tfRelease.getText() ); tfRelease.setText( album.getReleaseDate() ); album.setReleaseDate(format.parse( tfRelease.getText() ); DateFormat format = new SimpleDateFormat(...); Validierung notwendig! Konvertierung notwendig!

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 12 Data Binding: Aufgaben Synchronisation von Model und View Automatische Typ-Konvertierung Eingabevalidierung (Plausibiltätsprüfung)

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 13 Data Binding: Voraussetzung Verknüpfung von Elementen der Benutzer- schnittstelle mit Attributen aus Domänenmodell

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 14 Übersicht  Echo  Data Binding  EchoBinding

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 15 EchoBinding: PropertyAdapter Repräsentiert eine bestimmte Bean- Eigenschaft Zugriff auf Wert der Eigenschaft: getValue(Object bean) setValue(Object bean, Object value) An keinen Typ gebunden Eigenschaft wird z.B. durch Expression Language-Ausdruck spezifiziert Bean sollte in PA spezifizierte Eigenschaft besitzen

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 16 EchoBinding: Beispiel OgnlPropertyAdapter Verwendet Object Graph Navigation Language (OGNL) zur Beschreibung der Bean-Eigenschaft PropertyAdapter street = new OgnlPropertyAdapter("address.street"); Customer customer =...; street.getValue( customer ); // := customer.getAddress().getStreet(); street.setValue( customer, "Oettingenstr." ); // := customer.getAddress().setStreet( "Oettingenstr." ); OGNL-Ausdruck

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 17 EchoBinding: BindingContext Daten-Kontext für View (mehrere Models möglich) View greift über BindingContext auf Model zu PropertyAdapter werden im BindingContext zusammen mit Alias in Adapter-Tabelle abgelegt default

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 18 EchoBinding: Beispiel OgnlBindingContext OgnlBindingContext ctx = new OgnlBindingContext(); ctx.setModel( customer ); // default model ctx.addModel( "album", album ); //additional model ctx.add( "customerName", new OgnlPropertyAdapter(„name") ); ctx.getValue( "customerName" ); // := ctx.getAdapter( "customerName" ).getValue( customer ); // := customer.getName(); ctx.getValue( "#album.artist" ); // Ad-Hoc-Binding // := album.getArtist();

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 19 EchoBinding: BoundControls BoundControls sind Subklassen von Echo- Komponenten Für jede Echo- Komponenten existiert entspr. BoundControl (TextField, Radio-Button,... ) Zugriff auf Model erfolgt über BindingContext Durch Adapter-Alias an ein bestimmten PropertyAdapter gebunden BindingContext kann BoundControls „steuern“: ctx.update(): lädt Daten aus Model in Controls ctx.synchronize(): überträgt Werte in das Model ctx.validate(): überprüft Gültigkeit der Eingaben

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 20 EchoBinding: BoundControls Schnittstellen

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 21 EchoBinding: Album Manager Konfiguration BindingContext OgnlBindingContext ctx = new OgnlBindingContext(); OgnlPropertyAdapter releaseDate = new OgnlPropertyAdapter("realeaseDate"); releaseDate. setFormat ( new DateFormat("MM/yyyy") ); releaseDate. addValidator ( new RegexValidator("[0-9]...") ); ctx.add( "releaseDate", releaseDate ); ctx. setModel( album ) ; Online Offline

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 22 EchoBinding: Album Manager View public class AlbumManagerView extends Column { public AlbumManagerView(BindingContext ctx) { add( new TextField("artist", ctx) );... add( new CheckBox("classical", ctx) ); add( new TextField("releaseDate", ctx) );... } ctx.update(); View Model ctx.synchronize(); BoundControls

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 23 EchoBinding Fragen?

LMU München, Institut für Informatik, LFE Programmierung und Softwaretechnik 24 EchoBinding Danke.