Intro
Overall Presentation Goal
Speaker's Qualifications
Agenda
Agenda - Introduction
Legend
Event Handling vs. Presentation Logic
Pattern: Separated Presentation
Decouple Domain from Presentation
Separated Presentation with Observer
Agenda - Autonomous View
Pattern: Autonomous View
Autonomous View
Example GUI
Autonomous View Sample (1/2)
Autonomous View Sample (2/2)
Autonomous View: Tips
Autonomous View
Presentation Logic Separated
Separated Logic: Advantages I
Separated Logic: Advantages II
Separated Logic: Disadvantages
Separating Logic from the View
Agenda - Model View Presenter
Pattern: Model View Presenter (MVP)
Model View Presenter
Album Example: Autonomous View
Album Example: Model View Presenter
From Autonomous View ...
... to Model View Presenter
... to Model View Presenter
Presenter: Example Logic
Agenda - Presentation Model
Pattern: Presentation Model
Presentation Model
Reminder: Swing Actions
From Autonomous View ...
... to Presentation Model
AlbumPresentationModel
AlbumPresentationModel: Logic - 1
AlbumPresentationModel: Logic - 2
AlbumPresentationModel: Logic - 3
AlbumPresentationModel: Logic - 4
AlbumPresentationModel: Logic - 5
No Worries: Actions Again
Action with Multiple Views
Presentation Model: Multiple Views I
Presentation Model: Multiple Views II
MVP vs. Presentation Model
MVP vs. Presentation Model
Agenda - Data Binding
Data Binding
Binding Examples - 1
Binding Examples - 2
Useful Swing Bindings
Swing Binding to Low-Level Models
Wanted: Higher-Level Binding
Wanted: Full Binding Path
JGoodies Binding
Wanted: Full Binding Path
JGoodies Binding - 1
JGoodies Binding - 2
AlbumView: Init & Bind Components
AlbumView: EnablementHandler
JSR 295: Beans Binding
Copying ...
... vs. Automatic Binding
Costs for Automatic Binding
Summary
Web Resources
More Information
JSR 296: Swing App Framework
This session motivates, explains and discusses important, popular and successful patterns for Java desktop applications. It describes and compares two approaches to organizing the presentation logic and separating this logic from the presentation. You learn about a 3-tier desktop architecture and get acquainted with basic data binding concepts that help you implement the techniques introduced.
As architect and designer of Java tools, demos and several professional Swing libraries, Karsten Lentzsch is considered a leading expert in Java user interface technology and pluggable look and feel. He brings a wealth of experience in designing usable and elegant Java application to JGoodies. For over 15 years Karsten has been involved in object technologies and user interface design as a consultant, trainer, architect and expert developer.
Since adopting Java programming early in 1997 he has designed and developed stand-alone applications, application frameworks, Java libraries and enhancements to the Java look. He publishes articles about Java UI topics and talks at major Java conferences.