presenty user interface framework
play

Presenty User Interface Framework MIT license - PowerPoint PPT Presentation

Presenty User Interface Framework MIT license http://www.squeaksource.com/Presenty Presenty Platform-independent user interface application Desktop contact manager Filter contacts by typed name Select contact from groups Select contact


  1. Presenty User Interface Framework MIT license http://www.squeaksource.com/Presenty

  2. Presenty Platform-independent user interface application

  3. Desktop contact manager

  4. Filter contacts by typed name

  5. Select contact from groups

  6. Select contact from last calls

  7. Contact selection show details data

  8. Presenty approach ● Multiple separated tasks a user can perform ● Each task is a sequence of user requests ● Contact groups selection task: 1) select group from groups list 2) select contact from selected group contents 3) look at selected contact details

  9. Implementation ● Continuation-based tasks as elements of user interaction at application level ● User requests as building blocks for tasks: ● Primitive user requests to invoke base interface components ● Compound requests for calling other tasks ● Extendable DSL (pure Smalltalk) facilitating task implementation ● Modified Model-View-Presenter pattern

  10. SelectContactFromGroupsTask body | selected group | group := user select: ContactsGroup from: ContactManager groups. selected := user select: Contact from: group contents. user goTo: (DetailedContactPresenter on: selected )

  11. Select contact from groups

  12. SelectContactBySearchTask body | selected | selected := user execute: ( PtySearchItemTask forItems: ContactManager contacts ofClass: Contact). guide restoreActiveArea. user goTo: (DetailedContactPresenter on: selected )

  13. SelectContactFromLastCallsTask body | selected | selected := user select: 'LastContact' from: ContactManager lastCalls. user goTo: (DetailedContactPresenter on: selected )

  14. ShowContactsForDesktopTask body guide viewport createNewViewArea. guide forkTask: SelectContactFromLastCallsTask new. guide forkTask: SelectContactFromGroupsTask new. guide forkTask: SelectContactBySearchTask new. user goTo: [guide showViewArea]

  15. Select contact from last calls

  16. Select contact from last calls

  17. Select contact from groups

  18. Select contact from groups

  19. Filter contacts by typed name

  20. guide translator

  21. Filter contacts by typed name

  22. Filter contacts by typed name

  23. ShowContactsForPhoneTask body | taskClass | guide viewport createNewViewArea. taskClass := user select: 'ContactManagerTask' from: {SelectContactFromLastCallsTask. SelectContactFromGroupsTask. SelectContactBySearchTask}. guide addBackButton. user execute: taskClass new

  24. Task Configuration ● Presenter can have different views in different contexts ● For different parent presenters ● For different tasks ● For different styles of presenter ● For different styles of parent presenter

  25. Task Configuration ● Guide can store default settings for tasks – guide create: PtyShowListTask ● Task settings can vary in different contexts

  26. How tasks configured ● PtyItemsListTask has itemPresenterFactory which can be saved in settings ● PtyExplicitPresenterFactory specifyed concrete presenter class to present list items ● PtyPresenterPreviewFactory use #preferredPreviewPresenter message for getting presenter from list item

  27. What should be done ● Configurable task activation ● Simple object editor task – user edit: object ● Better designer ● Serializing prototypes and settings to style classes ● Searching for prototypes and settings in multiple task contexts ● Documentation

  28. Questions?

  29. The end

  30. Modal warning example

  31. Tasks from blocks DetailedContactPresenter>>runCall guide executeTask: [ guide doInModal: [ guide user warn: 'You dial to ', model printString]. guide user stopCurrentTask. ] asTask

  32. Presenty UI framework ● Modified Model-View-Presenter pattern ● Continuation-based tasks as elements of user interaction at application level ● User requests as building blocks for tasks: ● Primitive user requests to invoke base interface components ● Compound requests for calling other tasks ● Extendable DSL (pure Smalltalk) facilitating task implementation ● Prototyping for visual components and tasks

  33. Modified Model-View-Presenter pattern

Recommend


More recommend