If you can't read please download the document
Upload
uergo-ringo
View
1.204
Download
0
Embed Size (px)
Citation preview
2. Complexity Classical web app client Rich client 3.
AMS2.0 Model for week view 4. GUI complexity boosters
5. Remote IO 6. Custom widgets 7. UI state synchronization 8. MVC(1)
9. contains all application state 10. may communicate with DB or server View 11. Controller
12. doesn't contain any business logic 13. MVC(2)
14. + Controller can be testable 15. - Controller and View are tightly coupled 16. - View update logic cannot be tested 17. Model-View-Presenter with Supervising Controller
18. - View and Controller even more coupled 19. MVP with Passive View
20. - Controller is even more coupled to View 21. Presentation Model
22. + Controller can be testable 23. - Model has more knowledge about UI 24. Distribution of complexity 25. Command
26. used in Swing and SWT
27. + support for undo/redo 28. - can result in many small classes Relationship to MVC? 29. Various if(RoleManager. getCurrentRole ().equals(Role. PROJECT_OWNER )) { button.setEnabled( true ); }else{ button.setEnabled( false ); } AuthorizationManager. prepare (button, Role. PROJECT_OWNER );
panel.add( newOkCancelPanel()); panel.add(Factory. createOkCancelPanel ()); panel.add(Builder. create ( "btn:ok, btn:cancel" ));
30. Swing
31. Look-and-feel handled by separateUI delegate 32. Types of Models
33. application state (e.g ListModel, TableModel) 34. mixed (e.g ButtonModel if used for JCheckBox) Uses Actions (commands) public interfaceActionListenerextendsEventListener { public voidactionPerformed(ActionEvent e); } 35. Eclipse RCP
JFace
SWT
36. Resources