Presenty User Interface Framework MIT license - - PowerPoint PPT Presentation

presenty user interface framework
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Presenty User Interface Framework

http://www.squeaksource.com/Presenty MIT license

slide-2
SLIDE 2

Presenty

Platform-independent user interface application

slide-3
SLIDE 3

Desktop contact manager

slide-4
SLIDE 4

Filter contacts by typed name

slide-5
SLIDE 5

Select contact from groups

slide-6
SLIDE 6

Select contact from last calls

slide-7
SLIDE 7

Contact selection show details data

slide-8
SLIDE 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

slide-9
SLIDE 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
slide-10
SLIDE 10

SelectContactFromGroupsTask

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

slide-11
SLIDE 11

Select contact from groups

slide-12
SLIDE 12

SelectContactBySearchTask

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

slide-13
SLIDE 13

SelectContactFromLastCallsTask

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

slide-14
SLIDE 14

ShowContactsForDesktopTask

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

slide-15
SLIDE 15

Select contact from last calls

slide-16
SLIDE 16

Select contact from last calls

slide-17
SLIDE 17

Select contact from groups

slide-18
SLIDE 18

Select contact from groups

slide-19
SLIDE 19

Filter contacts by typed name

slide-20
SLIDE 20

guide translator

slide-21
SLIDE 21

Filter contacts by typed name

slide-22
SLIDE 22

Filter contacts by typed name

slide-23
SLIDE 23

ShowContactsForPhoneTask

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

slide-24
SLIDE 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
slide-25
SLIDE 25

Task Configuration

  • Guide can store default settings for tasks

– guide create: PtyShowListTask

  • Task settings can vary in different contexts
slide-26
SLIDE 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

slide-27
SLIDE 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
slide-28
SLIDE 28

Questions?

slide-29
SLIDE 29

The end

slide-30
SLIDE 30

Modal warning example

slide-31
SLIDE 31

Tasks from blocks

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

slide-32
SLIDE 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
slide-33
SLIDE 33

Modified Model-View-Presenter pattern