Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
Webpack
Webpack
Wird geladen in …3
×

Hier ansehen

1 von 52 Anzeige

Weitere Verwandte Inhalte

Andere mochten auch (20)

Anzeige

Ähnlich wie GWT (20)

Aktuellste (20)

Anzeige

GWT

  1. 1. Google Webtool Kit Übersicht
  2. 2. Was ist GWT? GWT ist ein Framework für AJAX-Anwendungen, welches den Entwickler in die Lage versetzt, Rich Internet Applications in  Java zu entwickeln. Der GWT-Compiler generiert aus dem Java Code den spezifischen HTML- und JavaScript Code für die jeweiligen Browser.
  3. 3. Warum AJAX?
  4. 4. Warum AJAX?
  5. 5. Finde den Fehler
  6. 6. Fehler gefunden
  7. 7. JavaScript = Schmerz ...cross-browser ...memory leak ...loading latency ...bugs (dynamic language) ...security
  8. 8. Von Java zu JavaScript
  9. 9. Von Java zu JavaScript Java Code: GWT compiler (-style PRETTY) GWT compiler (-style OBFUSCATED)
  10. 10. Features User Interfaces History Management Lokalisierung Client/Server-Kommunikation JavaScript Native Interface Unit Testing Optimization
  11. 11. User Interfaces GWT GWT Incubator _________________________________ SmartGWT GWT-Ext Ext-GWT und viele mehr...
  12. 12. Aufbau UI mit Code
  13. 13. Aufbau UI mit UIBinder
  14. 14. Styling mit CSS
  15. 15. Styling mit CSS
  16. 16. History Management AJAX-Anwendungen verwenden meistens keine Browser History (==> Frust). Demo
  17. 17. Lokalisierung Constants     helloWorld = Hallo, Welt Messages     goodBye = Adios, {0} Plural     @DefaultText(...)     @PluralText(...) UIBinder Support <ui:msg description="helloWorld">Hello, world.</ui:msg></div> Demo
  18. 18. Client/Server Kommunikation
  19. 19. HTTP-Requests z.B.: PHP als Backend und XML, JSON oder ein eigenes Format.
  20. 20. GWT-RPC Warum nicht eine Sprache sprechen?
  21. 21. JavaScript Native Interface Java Methode direkt in JavaScript implementieren. Auf Java Members/Methoden zugreifen. Parameter zwischen Java und JavaScript übergeben. --> Einbindung von (bestehenden) JavaScript Libs
  22. 22. Unit Testing GWTTestCase für die Views JUnit für Presenter und Model Selenium
  23. 23. Optimierung Delayed Logic Code Splitting ClientBundle
  24. 24. Tools Eclipse Plugin GWT Designer Speed Tracer
  25. 25. GWT Designer
  26. 26. Warum mit Java entwickeln?
  27. 27. Vorteile Client und Server können eine Sprache verwenden (GWTRPC). Java Entwickler Tools (Eclipse, PMD, JUnit etc). Debugging Umgebung Cross-Browser-Support
  28. 28. Nachteile Google behält sich vor die Lizenzbestimmungen des GWT- Compilers zu ändern. Widgets teilweise sehr groß (bis zu 55k pro Widget). Es wird nur ein Teil der Java API emuliert.
  29. 29. Größe der Komponenten
  30. 30. Fragen ?
  31. 31. Google App Engine Web Application Hosting Service
  32. 32. Google Infrastruktur automatische und beliebige Skalierung von WebApps
  33. 33. Development Tools • Java SDK o Servlet Container • Python SDK o CGI Runtime Environment • Google Eclipse Plugin o One-Click-Deployment o Simulation aller Services in lokaler Sandbox o Leistungsfähiger Debugger
  34. 34. Google Datastore • Bigtable (Object Database) • Google Earth, Google Finance, Google Search
  35. 35. Keine relationale Datenbank Umdenken notwendig
  36. 36. Queries • OOP / Sql-like Syntax • Schnelle Zugriffe bei Selects auf den KEY • Automatische Index-Erzeugung o XML basierte Konfiguration o Google weiß im Voraus welche Queries angefragt werden können o Beim Schreiben werden Indexe automatisch aktualisiert
  37. 37. Bulk-Loader • Python-Script • Upload / Downloading Data • Backups
  38. 38. Einschränkungen • Indexerzeugung beim deployen kostet Zeit • Kein bulk-delete oder Massen-lesen / -schreiben
  39. 39. Standards: JDO / JPA / Annotations
  40. 40. Standards: JDO / JPA / Annotations
  41. 41. Kosten
  42. 42. • automatische Skalierung • Konzentration auf Gamelogik • kürzere Entwicklungszeiten • kein administrativer Overhead • keine Betriebskosten solange App kein Erfolg • IDE (Build, Deploy, Sandbox integriert) • perfektes Zusammenspiel mit GWT
  43. 43. • Keine long running background processes • Kein Streaming • Kein FTP, Sockets ... • Datastore: Keine Volltext-Suche • max. 30 sec/req • max 10 MB/req • max. 3.000 Dateien (Workaroudns ZIP, JAR) • hohe Abhänigkeit von Google-Services
  44. 44. Fragen ?
  45. 45. Deferred Binding

Hinweis der Redaktion

  • &lt;mockup version=&amp;quot;1.0&amp;quot; skin=&amp;quot;sketch&amp;quot; measuredW=&amp;quot;971&amp;quot; measuredH=&amp;quot;278&amp;quot; mockupW=&amp;quot;927&amp;quot; mockupH=&amp;quot;236&amp;quot;&gt;    &lt;controls&gt;      &lt;control controlID=&amp;quot;24&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::FieldSet&amp;quot; x=&amp;quot;34&amp;quot; y=&amp;quot;32&amp;quot; w=&amp;quot;927&amp;quot; h=&amp;quot;71&amp;quot; measuredW=&amp;quot;200&amp;quot; measuredH=&amp;quot;170&amp;quot; zOrder=&amp;quot;0&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Client&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;25&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::FieldSet&amp;quot; x=&amp;quot;34&amp;quot; y=&amp;quot;188&amp;quot; w=&amp;quot;927&amp;quot; h=&amp;quot;80&amp;quot; measuredW=&amp;quot;200&amp;quot; measuredH=&amp;quot;170&amp;quot; zOrder=&amp;quot;1&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Server&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;26&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;44&amp;quot; y=&amp;quot;137&amp;quot; w=&amp;quot;913&amp;quot; h=&amp;quot;11&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;2&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text&gt;Zeit&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;27&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;90&amp;quot; y=&amp;quot;55&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;92&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;3&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Interaktion&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;28&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;147&amp;quot; y=&amp;quot;93&amp;quot; w=&amp;quot;137&amp;quot; h=&amp;quot;110&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;4&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text&gt;Anfrage&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;29&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;326&amp;quot; y=&amp;quot;93&amp;quot; w=&amp;quot;139&amp;quot; h=&amp;quot;110&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;5&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;direction&gt;bottom&lt;/direction&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text&gt;%3Chtml%3E...%3C/html%3E&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;30&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;254&amp;quot; y=&amp;quot;219&amp;quot; w=&amp;quot;102&amp;quot; h=&amp;quot;28&amp;quot; measuredW=&amp;quot;102&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;6&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Verarbeitung&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;31&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;455&amp;quot; y=&amp;quot;55&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;92&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;7&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Interaktion&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;34&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;505&amp;quot; y=&amp;quot;93&amp;quot; w=&amp;quot;137&amp;quot; h=&amp;quot;110&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;8&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text&gt;Anfrage&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;35&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;684&amp;quot; y=&amp;quot;93&amp;quot; w=&amp;quot;139&amp;quot; h=&amp;quot;110&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;9&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;direction&gt;bottom&lt;/direction&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text&gt;%3Chtml%3E...%3C/html%3E&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;36&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;612&amp;quot; y=&amp;quot;219&amp;quot; w=&amp;quot;102&amp;quot; h=&amp;quot;28&amp;quot; measuredW=&amp;quot;102&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;10&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Verarbeitung&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;37&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;813&amp;quot; y=&amp;quot;55&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;92&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;11&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Interaktion&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;    &lt;/controls&gt; &lt;/mockup&gt;
  • &lt;mockup version=&amp;quot;1.0&amp;quot; skin=&amp;quot;sketch&amp;quot; measuredW=&amp;quot;1819&amp;quot; measuredH=&amp;quot;766&amp;quot; mockupW=&amp;quot;929&amp;quot; mockupH=&amp;quot;342&amp;quot;&gt;    &lt;controls&gt;      &lt;control controlID=&amp;quot;38&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::FieldSet&amp;quot; x=&amp;quot;880&amp;quot; y=&amp;quot;414&amp;quot; w=&amp;quot;929&amp;quot; h=&amp;quot;212&amp;quot; measuredW=&amp;quot;200&amp;quot; measuredH=&amp;quot;170&amp;quot; zOrder=&amp;quot;0&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Client&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;39&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::FieldSet&amp;quot; x=&amp;quot;880&amp;quot; y=&amp;quot;676&amp;quot; w=&amp;quot;929&amp;quot; h=&amp;quot;80&amp;quot; measuredW=&amp;quot;200&amp;quot; measuredH=&amp;quot;170&amp;quot; zOrder=&amp;quot;1&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Server&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;40&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;880&amp;quot; y=&amp;quot;647&amp;quot; w=&amp;quot;914&amp;quot; h=&amp;quot;10&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;2&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text&gt;Zeit&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;41&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::FieldSet&amp;quot; x=&amp;quot;898&amp;quot; y=&amp;quot;433&amp;quot; w=&amp;quot;896&amp;quot; h=&amp;quot;63&amp;quot; measuredW=&amp;quot;200&amp;quot; measuredH=&amp;quot;170&amp;quot; zOrder=&amp;quot;3&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;User%20Interface&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;42&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::FieldSet&amp;quot; x=&amp;quot;898&amp;quot; y=&amp;quot;542&amp;quot; w=&amp;quot;896&amp;quot; h=&amp;quot;71&amp;quot; measuredW=&amp;quot;200&amp;quot; measuredH=&amp;quot;170&amp;quot; zOrder=&amp;quot;4&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;AJAX%20Engine&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;43&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;913&amp;quot; y=&amp;quot;453&amp;quot; w=&amp;quot;866&amp;quot; h=&amp;quot;28&amp;quot; measuredW=&amp;quot;106&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;5&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Interaktionen&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;44&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;913&amp;quot; y=&amp;quot;569&amp;quot; w=&amp;quot;866&amp;quot; h=&amp;quot;28&amp;quot; measuredW=&amp;quot;116&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;6&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Verarbeitungen&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;47&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;1051&amp;quot; y=&amp;quot;710&amp;quot; w=&amp;quot;102&amp;quot; h=&amp;quot;28&amp;quot; measuredW=&amp;quot;102&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;7&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Verarbeitung&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;48&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;1001&amp;quot; y=&amp;quot;483&amp;quot; w=&amp;quot;37&amp;quot; h=&amp;quot;78&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;8&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;49&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;996&amp;quot; y=&amp;quot;601&amp;quot; w=&amp;quot;77&amp;quot; h=&amp;quot;95&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;9&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;50&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;1113&amp;quot; y=&amp;quot;607&amp;quot; w=&amp;quot;92&amp;quot; h=&amp;quot;94&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;10&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;direction&gt;bottom&lt;/direction&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text&gt;%7B%20data%3A%20%5B%201%2C%202%20%5D%20%7D&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;53&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;1059&amp;quot; y=&amp;quot;490&amp;quot; w=&amp;quot;72&amp;quot; h=&amp;quot;75&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;11&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;direction&gt;bottom&lt;/direction&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;56&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;1198&amp;quot; y=&amp;quot;486&amp;quot; w=&amp;quot;37&amp;quot; h=&amp;quot;78&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;12&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;57&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;1256&amp;quot; y=&amp;quot;493&amp;quot; w=&amp;quot;72&amp;quot; h=&amp;quot;75&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;13&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;direction&gt;bottom&lt;/direction&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;58&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;1395&amp;quot; y=&amp;quot;486&amp;quot; w=&amp;quot;37&amp;quot; h=&amp;quot;78&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;14&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;59&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;1453&amp;quot; y=&amp;quot;493&amp;quot; w=&amp;quot;72&amp;quot; h=&amp;quot;75&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;15&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;direction&gt;bottom&lt;/direction&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;60&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;1577&amp;quot; y=&amp;quot;486&amp;quot; w=&amp;quot;37&amp;quot; h=&amp;quot;78&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;16&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;61&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;1635&amp;quot; y=&amp;quot;493&amp;quot; w=&amp;quot;72&amp;quot; h=&amp;quot;75&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;17&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;direction&gt;bottom&lt;/direction&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;62&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;1311&amp;quot; y=&amp;quot;710&amp;quot; w=&amp;quot;102&amp;quot; h=&amp;quot;28&amp;quot; measuredW=&amp;quot;102&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;18&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Verarbeitung&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;63&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;1256&amp;quot; y=&amp;quot;601&amp;quot; w=&amp;quot;77&amp;quot; h=&amp;quot;95&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;19&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;64&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;1373&amp;quot; y=&amp;quot;607&amp;quot; w=&amp;quot;92&amp;quot; h=&amp;quot;94&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;20&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;direction&gt;bottom&lt;/direction&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text&gt;%7B%20data%3A%20%5B%201%2C%202%20%5D%20%7D&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;65&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;1571&amp;quot; y=&amp;quot;710&amp;quot; w=&amp;quot;102&amp;quot; h=&amp;quot;28&amp;quot; measuredW=&amp;quot;102&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;21&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Verarbeitung&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;66&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;1516&amp;quot; y=&amp;quot;601&amp;quot; w=&amp;quot;77&amp;quot; h=&amp;quot;95&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;22&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;67&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;1633&amp;quot; y=&amp;quot;607&amp;quot; w=&amp;quot;92&amp;quot; h=&amp;quot;94&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;23&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;direction&gt;bottom&lt;/direction&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text&gt;%7B%20data%3A%20%5B%201%2C%202%20%5D%20%7D&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;    &lt;/controls&gt; &lt;/mockup&gt;
  • Tipp: JavaScript ist eine dynamische Sprache
  • Java ist eine statische Sprache. Fehler werden zur compilezeit gefunden
  • GWT beherrscht nur eine Teilmenge der in Java 2 Standart + Enterprise Edition verfügbaren Klassen. JRE Emulated Classes &lt;mockup version=&amp;quot;1.0&amp;quot; skin=&amp;quot;sketch&amp;quot; measuredW=&amp;quot;953&amp;quot; measuredH=&amp;quot;390&amp;quot; mockupW=&amp;quot;911&amp;quot; mockupH=&amp;quot;345&amp;quot;&gt;    &lt;controls&gt;      &lt;control controlID=&amp;quot;13&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::FieldSet&amp;quot; x=&amp;quot;32&amp;quot; y=&amp;quot;35&amp;quot; w=&amp;quot;200&amp;quot; h=&amp;quot;129&amp;quot; measuredW=&amp;quot;200&amp;quot; measuredH=&amp;quot;170&amp;quot; zOrder=&amp;quot;0&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Java%20Runtime%20Library&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;14&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::FieldSet&amp;quot; x=&amp;quot;662&amp;quot; y=&amp;quot;35&amp;quot; w=&amp;quot;281&amp;quot; h=&amp;quot;154&amp;quot; measuredW=&amp;quot;200&amp;quot; measuredH=&amp;quot;170&amp;quot; zOrder=&amp;quot;1&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;GWT%20Library&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;17&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Canvas&amp;quot; x=&amp;quot;343&amp;quot; y=&amp;quot;39&amp;quot; w=&amp;quot;200&amp;quot; h=&amp;quot;135&amp;quot; measuredW=&amp;quot;100&amp;quot; measuredH=&amp;quot;70&amp;quot; zOrder=&amp;quot;2&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;/&gt;      &lt;control controlID=&amp;quot;18&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;246&amp;quot; y=&amp;quot;103&amp;quot; w=&amp;quot;82&amp;quot; h=&amp;quot;10&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;3&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;direction&gt;top&lt;/direction&gt;          &lt;leftArrow&gt;true&lt;/leftArrow&gt;          &lt;rightArrow&gt;false&lt;/rightArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;19&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;557&amp;quot; y=&amp;quot;107&amp;quot; w=&amp;quot;88&amp;quot; h=&amp;quot;10&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;4&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;20&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Canvas&amp;quot; x=&amp;quot;343&amp;quot; y=&amp;quot;307&amp;quot; w=&amp;quot;199&amp;quot; h=&amp;quot;73&amp;quot; measuredW=&amp;quot;100&amp;quot; measuredH=&amp;quot;70&amp;quot; zOrder=&amp;quot;5&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;/&gt;      &lt;control controlID=&amp;quot;21&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;425&amp;quot; y=&amp;quot;186&amp;quot; w=&amp;quot;35&amp;quot; h=&amp;quot;100&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;6&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;backgroundAlpha&gt;1&lt;/backgroundAlpha&gt;          &lt;direction&gt;top&lt;/direction&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;rightArrow&gt;true&lt;/rightArrow&gt;          &lt;text&gt;GWT%20Compiler&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;22&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;47&amp;quot; y=&amp;quot;53&amp;quot; w=&amp;quot;170&amp;quot; h=&amp;quot;28&amp;quot; measuredW=&amp;quot;78&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;7&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;java.lang&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;23&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;47&amp;quot; y=&amp;quot;87&amp;quot; w=&amp;quot;170&amp;quot; h=&amp;quot;28&amp;quot; measuredW=&amp;quot;73&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;8&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;java.util&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;24&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;47&amp;quot; y=&amp;quot;121&amp;quot; w=&amp;quot;170&amp;quot; h=&amp;quot;28&amp;quot; measuredW=&amp;quot;62&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;9&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;java.io&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;25&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Label&amp;quot; x=&amp;quot;343&amp;quot; y=&amp;quot;103&amp;quot; w=&amp;quot;200&amp;quot; h=&amp;quot;26&amp;quot; measuredW=&amp;quot;155&amp;quot; measuredH=&amp;quot;32&amp;quot; zOrder=&amp;quot;10&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;align&gt;center&lt;/align&gt;          &lt;size&gt;20&lt;/size&gt;          &lt;text&gt;Application%20code&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;26&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;676&amp;quot; y=&amp;quot;68&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;63&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;11&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Panels&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;27&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;677&amp;quot; y=&amp;quot;106&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;73&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;12&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Widgets&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;28&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;750&amp;quot; y=&amp;quot;68&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;83&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;13&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;GWT-RPC&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;29&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;754&amp;quot; y=&amp;quot;106&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;107&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;14&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;HTTP%20Request&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;30&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;799&amp;quot; y=&amp;quot;146&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;57&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;15&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;JSON&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;31&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;840&amp;quot; y=&amp;quot;68&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;51&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;16&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;XML&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;32&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;862&amp;quot; y=&amp;quot;146&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;66&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;17&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;History&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;33&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;868&amp;quot; y=&amp;quot;106&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;50&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;18&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;L18n&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;34&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;676&amp;quot; y=&amp;quot;146&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;117&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;19&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;RequestFactory&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;35&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Label&amp;quot; x=&amp;quot;343&amp;quot; y=&amp;quot;310&amp;quot; w=&amp;quot;200&amp;quot; h=&amp;quot;32&amp;quot; measuredW=&amp;quot;103&amp;quot; measuredH=&amp;quot;32&amp;quot; zOrder=&amp;quot;20&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;align&gt;center&lt;/align&gt;          &lt;size&gt;20&lt;/size&gt;          &lt;text&gt;JavaScript&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;36&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Label&amp;quot; x=&amp;quot;343&amp;quot; y=&amp;quot;77&amp;quot; w=&amp;quot;200&amp;quot; h=&amp;quot;26&amp;quot; measuredW=&amp;quot;47&amp;quot; measuredH=&amp;quot;32&amp;quot; zOrder=&amp;quot;21&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;align&gt;center&lt;/align&gt;          &lt;size&gt;20&lt;/size&gt;          &lt;text&gt;Java&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;37&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Label&amp;quot; x=&amp;quot;343&amp;quot; y=&amp;quot;342&amp;quot; w=&amp;quot;200&amp;quot; h=&amp;quot;31&amp;quot; measuredW=&amp;quot;106&amp;quot; measuredH=&amp;quot;32&amp;quot; zOrder=&amp;quot;22&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;align&gt;center&lt;/align&gt;          &lt;size&gt;20&lt;/size&gt;          &lt;text&gt;Application&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;    &lt;/controls&gt; &lt;/mockup&gt;
  • PRETTY zum debuggen OBFUSCATED Schutz/Performance
  • Interfaces Property Files
  • Client und Server implementieren Interface Serialisierung (Shared kram)
  • MVP ermöglicht Trennung von Code (siehe Google Tech Talk)
  • Warum GWT-Designer? Was ist GWT-Designer? Wie funktioniert GWT-Designer -&gt; Video Support für GWT, Smart-GWT, Ext-GWT, GWT-Ext
  • Warum GWT-Designer? Was ist GWT-Designer? Wie funktioniert GWT-Designer -&gt; Video Support für GWT, Smart-GWT, Ext-GWT, GWT-Ext
  • &lt;mockup version=&amp;quot;1.0&amp;quot; skin=&amp;quot;sketch&amp;quot; measuredW=&amp;quot;878&amp;quot; measuredH=&amp;quot;428&amp;quot; mockupW=&amp;quot;813&amp;quot; mockupH=&amp;quot;390&amp;quot;&gt;    &lt;controls&gt;      &lt;control controlID=&amp;quot;38&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;55&amp;quot; y=&amp;quot;28&amp;quot; w=&amp;quot;562&amp;quot; h=&amp;quot;53&amp;quot; measuredW=&amp;quot;216&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;0&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Java%20Language%2C%20Tools%20%26%20Runtime&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;39&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;67&amp;quot; y=&amp;quot;154&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;129&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;1&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Viele%20Tools%20%26%20Libs&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;40&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;277&amp;quot; y=&amp;quot;154&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;122&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;2&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Gro%DFartige%20IDEs&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;41&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;457&amp;quot; y=&amp;quot;154&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;164&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;3&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Statische%20Code%20Analyse&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;42&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;55&amp;quot; y=&amp;quot;258&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;162&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;4&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Leverage%20Existing%20work&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;43&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;63&amp;quot; y=&amp;quot;368&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;149&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;5&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Schnellere%20Lieferung&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;44&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;259&amp;quot; y=&amp;quot;258&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;169&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;6&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Entwickler%20Produktivit%E4t&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;45&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;267&amp;quot; y=&amp;quot;368&amp;quot; w=&amp;quot;154&amp;quot; h=&amp;quot;28&amp;quot; measuredW=&amp;quot;146&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;7&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Schnellere%20Iteration&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;46&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;453&amp;quot; y=&amp;quot;243&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;164&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;8&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Compile%20Time%20Validation&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;48&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;463&amp;quot; y=&amp;quot;278&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;147&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;9&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Bessere%20Optimierung&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;49&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;491&amp;quot; y=&amp;quot;353&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;106&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;10&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Weniger%20Bugs&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;50&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;483&amp;quot; y=&amp;quot;390&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;126&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;11&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Schnellerer%20Code&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;51&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;126&amp;quot; y=&amp;quot;188&amp;quot; w=&amp;quot;10&amp;quot; h=&amp;quot;61&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;12&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;52&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;333&amp;quot; y=&amp;quot;188&amp;quot; w=&amp;quot;10&amp;quot; h=&amp;quot;61&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;13&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;53&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;530&amp;quot; y=&amp;quot;188&amp;quot; w=&amp;quot;10&amp;quot; h=&amp;quot;46&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;14&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;54&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;333&amp;quot; y=&amp;quot;295&amp;quot; w=&amp;quot;10&amp;quot; h=&amp;quot;54&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;15&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;55&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;530&amp;quot; y=&amp;quot;311&amp;quot; w=&amp;quot;10&amp;quot; h=&amp;quot;34&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;16&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;56&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;126&amp;quot; y=&amp;quot;295&amp;quot; w=&amp;quot;10&amp;quot; h=&amp;quot;54&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;17&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;57&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Label&amp;quot; x=&amp;quot;228&amp;quot; y=&amp;quot;366&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;16&amp;quot; measuredH=&amp;quot;32&amp;quot; zOrder=&amp;quot;18&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;size&gt;20&lt;/size&gt;          &lt;text&gt;+&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;58&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Label&amp;quot; x=&amp;quot;437&amp;quot; y=&amp;quot;366&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;16&amp;quot; measuredH=&amp;quot;32&amp;quot; zOrder=&amp;quot;19&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;size&gt;20&lt;/size&gt;          &lt;text&gt;+&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;59&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Label&amp;quot; x=&amp;quot;632&amp;quot; y=&amp;quot;366&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;15&amp;quot; measuredH=&amp;quot;32&amp;quot; zOrder=&amp;quot;20&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;size&gt;20&lt;/size&gt;          &lt;text&gt;%3D&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;61&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;693&amp;quot; y=&amp;quot;353&amp;quot; w=&amp;quot;175&amp;quot; h=&amp;quot;65&amp;quot; measuredW=&amp;quot;176&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;21&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Benutzer.zufriedenheit++&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;62&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;126&amp;quot; y=&amp;quot;88&amp;quot; w=&amp;quot;10&amp;quot; h=&amp;quot;51&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;22&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;63&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;333&amp;quot; y=&amp;quot;88&amp;quot; w=&amp;quot;10&amp;quot; h=&amp;quot;51&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;23&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;64&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;530&amp;quot; y=&amp;quot;88&amp;quot; w=&amp;quot;10&amp;quot; h=&amp;quot;51&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;24&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;    &lt;/controls&gt; &lt;/mockup&gt;
  • Permutationen      Lokalisierung      Browserspezifischer Code &lt;mockup version=&amp;quot;1.0&amp;quot; skin=&amp;quot;sketch&amp;quot; measuredW=&amp;quot;890&amp;quot; measuredH=&amp;quot;652&amp;quot; mockupW=&amp;quot;763&amp;quot; mockupH=&amp;quot;555&amp;quot;&gt;    &lt;controls&gt;      &lt;control controlID=&amp;quot;13&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;413&amp;quot; y=&amp;quot;348&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;110&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;0&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;GWT-Compiler&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;18&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;483&amp;quot; y=&amp;quot;396&amp;quot; w=&amp;quot;98&amp;quot; h=&amp;quot;138&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;1&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;rightArrow&gt;true&lt;/rightArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;19&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;541&amp;quot; y=&amp;quot;371&amp;quot; w=&amp;quot;245&amp;quot; h=&amp;quot;163&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;2&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;rightArrow&gt;true&lt;/rightArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;20&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;390&amp;quot; y=&amp;quot;396&amp;quot; w=&amp;quot;60&amp;quot; h=&amp;quot;138&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;3&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;direction&gt;bottom&lt;/direction&gt;          &lt;leftArrow&gt;true&lt;/leftArrow&gt;          &lt;rightArrow&gt;false&lt;/rightArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;21&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;195&amp;quot; y=&amp;quot;371&amp;quot; w=&amp;quot;195&amp;quot; h=&amp;quot;163&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;4&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;direction&gt;bottom&lt;/direction&gt;          &lt;leftArrow&gt;true&lt;/leftArrow&gt;          &lt;rightArrow&gt;false&lt;/rightArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;22&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;342&amp;quot; y=&amp;quot;114&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;75&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;19&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Klasse%20A&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;23&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;342&amp;quot; y=&amp;quot;142&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;74&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;20&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Klasse%20B&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;24&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;342&amp;quot; y=&amp;quot;170&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;75&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;21&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Klasse%20C&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;25&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::FieldSet&amp;quot; x=&amp;quot;117&amp;quot; y=&amp;quot;548&amp;quot; w=&amp;quot;173&amp;quot; h=&amp;quot;94&amp;quot; measuredW=&amp;quot;200&amp;quot; measuredH=&amp;quot;170&amp;quot; zOrder=&amp;quot;5&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Internet%20Explorer&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;26&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;129&amp;quot; y=&amp;quot;571&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;146&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;6&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;16..1879B.cache.html&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;27&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;129&amp;quot; y=&amp;quot;599&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;146&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;7&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;08..6D53F.cache.png&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;28&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::FieldSet&amp;quot; x=&amp;quot;320&amp;quot; y=&amp;quot;548&amp;quot; w=&amp;quot;173&amp;quot; h=&amp;quot;94&amp;quot; measuredW=&amp;quot;200&amp;quot; measuredH=&amp;quot;170&amp;quot; zOrder=&amp;quot;8&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Mozilla%20Firefox&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;29&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;328&amp;quot; y=&amp;quot;571&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;157&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;9&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;E6..F144D3.cache.html&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;30&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;328&amp;quot; y=&amp;quot;599&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;155&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;10&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;56..4224D3.cache.png&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;31&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::FieldSet&amp;quot; x=&amp;quot;513&amp;quot; y=&amp;quot;548&amp;quot; w=&amp;quot;173&amp;quot; h=&amp;quot;94&amp;quot; measuredW=&amp;quot;200&amp;quot; measuredH=&amp;quot;170&amp;quot; zOrder=&amp;quot;11&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Safari%20/%20Chrome&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;32&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;523&amp;quot; y=&amp;quot;571&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;153&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;12&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;B1..B1E06B.cache.html&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;33&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;523&amp;quot; y=&amp;quot;599&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;156&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;13&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;0D..6DF3C0.cache.png&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;34&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::FieldSet&amp;quot; x=&amp;quot;707&amp;quot; y=&amp;quot;548&amp;quot; w=&amp;quot;173&amp;quot; h=&amp;quot;94&amp;quot; measuredW=&amp;quot;200&amp;quot; measuredH=&amp;quot;170&amp;quot; zOrder=&amp;quot;14&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Opera&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;35&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;715&amp;quot; y=&amp;quot;571&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;157&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;15&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;E3..A353B4.cache.html&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;36&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;715&amp;quot; y=&amp;quot;599&amp;quot; w=&amp;quot;-1&amp;quot; h=&amp;quot;-1&amp;quot; measuredW=&amp;quot;152&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;16&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;00..D7FB7F.cache.png&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;37&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;502&amp;quot; y=&amp;quot;108&amp;quot; w=&amp;quot;95&amp;quot; h=&amp;quot;28&amp;quot; measuredW=&amp;quot;95&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;22&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;image01.png&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;38&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;502&amp;quot; y=&amp;quot;136&amp;quot; w=&amp;quot;93&amp;quot; h=&amp;quot;28&amp;quot; measuredW=&amp;quot;93&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;23&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;image02.gif&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;39&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Button&amp;quot; x=&amp;quot;502&amp;quot; y=&amp;quot;164&amp;quot; w=&amp;quot;95&amp;quot; h=&amp;quot;28&amp;quot; measuredW=&amp;quot;95&amp;quot; measuredH=&amp;quot;28&amp;quot; zOrder=&amp;quot;24&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;image03.jpg&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;40&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::FieldSet&amp;quot; x=&amp;quot;328&amp;quot; y=&amp;quot;87&amp;quot; w=&amp;quot;107&amp;quot; h=&amp;quot;126&amp;quot; measuredW=&amp;quot;200&amp;quot; measuredH=&amp;quot;170&amp;quot; zOrder=&amp;quot;17&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Source%20Code&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;41&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::FieldSet&amp;quot; x=&amp;quot;481&amp;quot; y=&amp;quot;89&amp;quot; w=&amp;quot;131&amp;quot; h=&amp;quot;118&amp;quot; measuredW=&amp;quot;200&amp;quot; measuredH=&amp;quot;170&amp;quot; zOrder=&amp;quot;18&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;text&gt;Resources&lt;/text&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;42&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;383&amp;quot; y=&amp;quot;222&amp;quot; w=&amp;quot;61&amp;quot; h=&amp;quot;109&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;25&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;leftArrow&gt;false&lt;/leftArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;      &lt;control controlID=&amp;quot;44&amp;quot; controlTypeID=&amp;quot;com.balsamiq.mockups::Arrow&amp;quot; x=&amp;quot;493&amp;quot; y=&amp;quot;221&amp;quot; w=&amp;quot;35&amp;quot; h=&amp;quot;109&amp;quot; measuredW=&amp;quot;150&amp;quot; measuredH=&amp;quot;100&amp;quot; zOrder=&amp;quot;26&amp;quot; locked=&amp;quot;false&amp;quot; isInGroup=&amp;quot;-1&amp;quot;&gt;        &lt;controlProperties&gt;          &lt;direction&gt;bottom&lt;/direction&gt;          &lt;leftArrow&gt;true&lt;/leftArrow&gt;          &lt;rightArrow&gt;false&lt;/rightArrow&gt;          &lt;text/&gt;        &lt;/controlProperties&gt;      &lt;/control&gt;    &lt;/controls&gt; &lt;/mockup&gt;

×