Presentation is loading. Please wait.

Presentation is loading. Please wait.

Migratable User Interfaces: Beyond Migratory Interfaces Donatien Grolaux Jean Vanderdonckt Peter Van Roy.

Similar presentations


Presentation on theme: "Migratable User Interfaces: Beyond Migratory Interfaces Donatien Grolaux Jean Vanderdonckt Peter Van Roy."— Presentation transcript:

1 Migratable User Interfaces: Beyond Migratory Interfaces Donatien Grolaux Jean Vanderdonckt Peter Van Roy

2 August 25, 2004Migratory User Interfaces The Painter’s Palette +=

3 August 25, 2004Migratory User Interfaces Digital Painter’s Palette

4 August 25, 2004Migratory User Interfaces Useful area is wasted !

5 August 25, 2004Migratory User Interfaces Idea: migrate (part of) the UI

6 August 25, 2004Migratory User Interfaces Other uses for migration Let the application follow the user while he moves from place to place

7 August 25, 2004Migratory User Interfaces Other uses for migration Customize complex applications with complex UI to fit in small devices according to the user’s current task

8 August 25, 2004Migratory User Interfaces Other uses for migration Centralize in a single place the UIs of remote devices

9 August 25, 2004Migratory User Interfaces Remote UIs are common place Examples X11 VNC Terminal Servers Not controlled by the application itself, external control Offer the capability and control of migration to the application is much more powerful

10 August 25, 2004Migratory User Interfaces Migration capability at the application level Designing and developing a good traditional (stationary) UI is not an easy task. Designing and developing a good migratory UI is even harder. we use a capability based approach

11 August 25, 2004Migratory User Interfaces Capability based approach for migratory UI To understand this approach, one should first understand the toolkit that uses it To understand the toolkit, one should first understand the programming language its working on !

12 August 25, 2004Migratory User Interfaces The Oz Programming Language The Oz programming language More than 10 years of research by partners in Sweden (SICS), Germany (DFKI) and Belgium (UCL) Multi-paradigm (imperative, logic & functional) Multi-threaded Constraint Programming High level data structures: atoms, lists, records, … Object-Orientation Delegation Mozart is the platform that implements this language Multi-platform (VM based) Support for Distributed Programming

13 August 25, 2004Migratory User Interfaces td(1:lr(1:label(text:”Type your name”) 2:entry(handle:E)) 2:lr(1:button(text:”Ok” action:Ok) 2:button(text:”Cancel” action:Cancel))) td( lr( label(text:”Type your name”) entry(handle:E)) lr( button(text:”Ok” action:Ok) button(text:”Cancel” action:Cancel))) High level data structures Atoms: hello world ‘hello world’ Variables: Hello World HelloWorld Records: label(feat1:Val1 … featX:ValX) Example : td(lr(label(text:”Type your name”) entry(handle:E)) lr(button(text:”Ok” action:Ok) button(text:”Cancel” action:Cancel)))

14 August 25, 2004Migratory User Interfaces Object-orientation Class MyButtonClass meth init skip end meth click(X Y) ………… end end MyButton={New MyButtonClass init} Delegation support click(10 20)

15 August 25, 2004Migratory User Interfaces High-level data structures+object orientation = QTk toolkit QTk.build takes a correctly formatted record Builds the UI corresponding to the record Links the handle features to objects controlling the widget Returns an object controlling the container window

16 August 25, 2004Migratory User Interfaces QTk example W={QTk.build td(lr(label(text:”Type your name”) entry(handle:E)) lr(button(text:”Ok” action:Ok) button(text:”Cancel” action:Cancel)))} {W show} {E set(“Please type here”)} proc{Ok} … end proc{Cancel} … end

17 August 25, 2004Migratory User Interfaces Back to Migration ! Migration capability: given to a whole window QTk.buildMigratable instead of QTk.build The container window object returned is different It can return a universal reference: a string that locates the migratable window from anywhere on the Internet The handles are bound to proxy objects impossible to differentiate from the real widget object From the application point of view, the interface of a migratable window is not different from the stationary case ! New widget: receiver Takes a universal migratable window reference as input Brings the user interface inside itself

18 August 25, 2004Migratory User Interfaces Capability at the whole window level ? Is this a limitation ? Not really: use composition Receiver Receiver

19 August 25, 2004Migratory User Interfaces Painter’s Palette Problem: QTkDraw QTkDraw: vector based drawing application written in Oz with QTk ~5000 lines of code Migratable version of QTkDraw ~100 lines of code diff with original version: Splitting left and right toolbars away from main window description and replacing them by receivers Adding a command ‘Bring toolbars here’ Creating the Palette application that migrates the toolbars

20 August 25, 2004Migratory User Interfaces Implementation of migration capability inside QTk First: stationary case

21 August 25, 2004Migratory User Interfaces Remote access case

22 August 25, 2004Migratory User Interfaces Migration Process First site

23 August 25, 2004Migratory User Interfaces Migration Process k+1 site

24 August 25, 2004Migratory User Interfaces References www.mozart-oz.org


Download ppt "Migratable User Interfaces: Beyond Migratory Interfaces Donatien Grolaux Jean Vanderdonckt Peter Van Roy."

Similar presentations


Ads by Google