O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Vaadin

Book Description

Vaadin ist ein populäres und kostenloses Frontend-Framework für Java-Enterprise-Entwickler, die bisher mit der weit verbreiteten, aber veralteten Swing-Technologie gearbeitet haben.Dieses Buch vermittelt Ihnen das notwendige Grundlagenwissen sowie Best Practices, um Vaadin zu evaluieren und in ersten eigenen Projekten einzusetzen. Unter anderem werden folgende Themen behandelt: Layout und Styling, Anwendungsarchitektur, Einsatz von Eclipse, Add-ons, Maven-Builds sowie automatisiertes Testen.

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Geleitwort
  5. Vorwort
  6. 1 Einleitung
    1. 1.1 Was ist Vaadin?
    2. 1.2 Historie
    3. 1.3 Wofür ist Vaadin gut?
    4. 1.4 Unsere Erfahrungen mit Vaadin
    5. 1.5 Weitergehende Informationen
  7. 2 Erste Schritte mit Vaadin
    1. 2.1 Einrichten der Entwicklungsumgebung Eclipse
    2. 2.2 Erste Schritte
    3. 2.3 Verwendung von Maven für Vaadin-Projekte in Eclipse
    4. 2.4 Andere Entwicklungsumgebungen
  8. 3 Die Vaadin-Architektur
    1. 3.1 Einleitung
    2. 3.2 Überblick
      1. 3.2.1 Serverseitiges Programmiermodell
      2. 3.2.2 Clientseitiges Programmiermodell
      3. 3.2.3 Push
      4. 3.2.4 Themes
      5. 3.2.5 Add-ons
    3. 3.3 Vaadin unter der Haube
      1. 3.3.1 Der Einstiegspunkt
      2. 3.3.2 Die Benutzeroberfläche
      3. 3.3.3 Der erste Aufruf der UI
    4. 3.4 Konsequenzen der Vaadin-Architektur
      1. 3.4.1 Serverseitiger Speicherbedarf
      2. 3.4.2 Clientseitiger Speicherbedarf und Render-Performance
      3. 3.4.3 Netzwerkkommunikation
      4. 3.4.4 Latenz
  9. 4 UI-Komponenten
    1. 4.1 Grundlegende UI-Komponenten
      1. 4.1.1 UI als Rahmen für die Applikation
      2. 4.1.2 Textausgabe mit Label und Notification
      3. 4.1.3 Button
      4. 4.1.4 Texteingaben mit TextField, PasswordField und TextArea
      5. 4.1.5 Formatierte Texteingabe über RichTextArea
      6. 4.1.6 Datumseingabe mit InlineDateField und PopupDateField
      7. 4.1.7 Eingabe von Werten über Slider
      8. 4.1.8 Auswahlkästchen mit CheckBox
      9. 4.1.9 Auswahlboxen mit ListSelect, ComboBox, NativeSelect, OptionGroup und TwinColSel
      10. 4.1.10 Hochladen von Dateien mit Upload
      11. 4.1.11 Hierarchieanzeige mit der Tree-Komponente
      12. 4.1.12 Tabellen mit der Table-Komponente
      13. 4.1.13 Menüzeilen mit MenuBar
      14. 4.1.14 Fortschrittsanzeige mit der ProgressBar-Komponente
      15. 4.1.15 Videos und Animationen mit Link, AbstractMedia und AbstractEmbedded
    2. 4.2 Layout-Klassen
      1. 4.2.1 Elemente untereinander: VerticalLayout
      2. 4.2.2 Elemente nebeneinander: HorizontalLayout
      3. 4.2.3 Zwischenbetrachtung: Schachteln von Layouts
      4. 4.2.4 GridLayout – Elemente im Gitter
      5. 4.2.5 FormLayout
      6. 4.2.6 AbsoluteLayout
      7. 4.2.7 CssLayout
      8. 4.2.8 CustomLayout
    3. 4.3 Sonderlayouts
      1. 4.3.1 Scrolling mittels Panel
      2. 4.3.2 Splitter mit Horizontal- und VerticalSplitPanel
      3. 4.3.3 Karteireiter im TabSheet
      4. 4.3.4 Accordions
      5. 4.3.5 Popup-Fenster mit Window
    4. 4.4 Eigene Komponenten und Eingabefelder
      1. 4.4.1 CustomComponents mit dem visuellen Editor
  10. 5 Data Binding
    1. 5.1 Einführung
    2. 5.2 Details zum »Data Binding«-Prozess
    3. 5.3 Das Vaadin-Container-Datenmodell im Allgemeinen
    4. 5.4 Validierung in der GUI
      1. 5.4.1 Nutzung von JSR-303-Validatoren
      2. 5.4.2 Nutzung Vaadin-spezifischer Validatoren
    5. 5.5 Erkennen von Änderungen
  11. 6 Real-Time-Webapplikationen mit Vaadin Server Push
    1. 6.1 Ein kleines Beispiel
    2. 6.2 Ein Mini-Chat
  12. 7 Layout und Styling
    1. 7.1 Auswahl eines Theme
    2. 7.2 Erstellung eines eigenen Theme
      1. 7.2.1 Struktur eines Theme
      2. 7.2.2 Erstellung eines CSS-basierten Theme
      3. 7.2.3 Erstellung eines SCSS-basierten Theme
      4. 7.2.4 Theme-Vorlagen
      5. 7.2.5 CSS-Selektor-Strategien
      6. 7.2.6 SCSS-Sprachkonstrukte nutzen
      7. 7.2.7 CSS Injection
  13. 8 Navigation in Ajax-Anwendungen
    1. 8.1 Einleitung
    2. 8.2 URI-Fragmente
    3. 8.3 Format der URI-Fragmente
    4. 8.4 URI-Fragmente und Applikationszustand
    5. 8.5 Manipulation und Überwachung des URI-Fragments
    6. 8.6 Die Navigator-API
      1. 8.6.1 Der Navigator
      2. 8.6.2 Die ViewProvider
      3. 8.6.3 Der NavigationStateManager
      4. 8.6.4 Ablauf eines View-Wechsels
  14. 9 Anwendungsarchitektur mit Vaadin
    1. 9.1 Einleitung
    2. 9.2 Überblick
    3. 9.3 Was verstehen wir unter Architektur?
    4. 9.4 Architekturmuster
      1. 9.4.1 Ein kurzer Überblick
      2. 9.4.2 Die Schichtenarchitektur
      3. 9.4.3 Die MVx-Architekturmuster
    5. 9.5 Auf in die Praxis
      1. 9.5.1 Die Beispielanwendung
      2. 9.5.2 Das Beispielprojekt
      3. 9.5.3 Das Domänenmodell der Beispielanwendung
    6. 9.6 Der Login in der MVP-Passive-View-Variante
      1. 9.6.1 Schnittstellendefinition und Implementierung
    7. 9.7 Entkopplung mit einem Event-Bus
      1. 9.7.1 Der Event-Bus von Guava
      2. 9.7.2 Umstellung auf den Event-Bus
      3. 9.7.3 Vor- und Nachteile von Event Handling
    8. 9.8 Dependency Injection
      1. 9.8.1 Die Umstellung auf CDI
      2. 9.8.2 Umstellung der Anwendung
    9. 9.9 Der Profileditor in der MVP-Variante
      1. 9.9.1 Schnittstellendefinition und Implementierung
    10. 9.10 MVVM am Beispiel der Anmeldekomponente
      1. 9.10.1 Umbau des Presenter in ein Presentation Model
      2. 9.10.2 Die View und die Integration in der Anwendung
    11. 9.11 Zusammenfassung
  15. 10 Add-ons
    1. 10.1 Einleitung
    2. 10.2 Vaadin-Directory
    3. 10.3 Add-on verwenden
  16. 11 Vaadin und Maven
    1. 11.1 Einleitung
    2. 11.2 Überblick Archetypes
    3. 11.3 Maven-Projekt erstellen
      1. 11.3.1 Kommandozeile
      2. 11.3.2 Eclipse
    4. 11.4 Projektstruktur im Detail
    5. 11.5 Das Vaadin-Maven-Plugin
  17. 12 Automatisiertes Testen von Vaadin-Anwendungen
    1. 12.1 Einleitung
    2. 12.2 Unit-Tests
      1. 12.2.1 Interaktion mit Vaadin-Komponenten
      2. 12.2.2 Interaktion mit ThreadLocals
    3. 12.3 GUI-Tests mit Selenium
      1. 12.3.1 Ein erster Test
      2. 12.3.2 Locator
      3. 12.3.3 Warten will gelernt sein
      4. 12.3.4 Das Page-Object-Pattern
      5. 12.3.5 Unabhängigkeit von Einzeltests
  18. 13 Zusammenfassung
  19. 14 Literatur
  20. Index
  21. Fußnoten