Canon
1/11
New Directions for Web Applications
Dave Raggett, Canon, TV Raman, IBM Web Applications Workshop, San Jose, June 2004
New Directions for Web Applications Dave Raggett, Canon, TV Raman, - - PowerPoint PPT Presentation
Canon New Directions for Web Applications Dave Raggett, Canon, TV Raman, IBM 1/11 Web Applications Workshop, San Jose, June 2004 Canon Goals Break Web applications out of the browser! Freedom to build wider variety of applications
1/11
Dave Raggett, Canon, TV Raman, IBM Web Applications Workshop, San Jose, June 2004
2/11
3/11
Theses can also be applied across applications, vis Gnome desktop themes
4/11
– Launched from application menus or desktop icons – Can be bound to media types, e.g. audio/mpeg
5/11
– Properties
– Duration, current position, name, artist, ...
– Methods
– Events
6/11
– Abstract UI controls and layout intentions – Theme = presentation and behavior for controls
– Themed as rotary dial or thermometer – Role of SVG and XBL for defining such controls
– Vertical, horizontal, grid, ... – Delegate size/position decisions to layout manager – Detailed appearance determined by current theme
7/11
– dom:activate on button invokes application pause
– xf:xforms-value-changed on dial sets app volume
– Event driven transitions between named states – Represented in XML and XPath – Transitions invoke methods, update data, raise events – Nested states and concurrent execution – Run on device or server, or on both
8/11
– Audio, speech, keystrokes and stylus
– XML language for interpreted input
9/11
– Implicit binding for standards-based markup
– Binding mechanism, and object language
– Libraries and interfaces these objects depend on
10/11
– VB and MMI WGs
– DI WG
– SVG WG
– XForms WG
– XHTML WG
11/11
– Relation to XForms and XBL?
– Representation
– Interoperable means for dealing with UI resources
12/11
13/11
– Canvas, DockPanel, FlowPanel, GridPanel, Table,
– Button, CheckBox, RadioButton, TextBox, HyperLink,
– Embedded presentation
14/11
<xul> <vbox id="COUNTER"> <groupbox> <caption label="Counter"/> <textbox id="DISPLAY" style="align: center; color: yellow; background: black; font: 24 bold monospace;" /> </groupbox> <hbox> <button label="Dec (-)" command="dec" style="width: 90px" /> <button label="Clear" command="clear" style="width: 90px" /> <button label="Inc (+)" command="inc" style="width: 90px" /> </hbox> </vbox> </xul>
15/11
<webapp> <data> <counter>34</counte r> </data> <vbox> <groupbox caption="Counter"> <textbox ref="/counter"/> </groupbox> <hbox> <button command="dec(/counter)">Dec (-)</button> <button command="clear(/counter)">Clear</button> <button command="inc(/counter)">Inc (+)</button> </hbox> </vbox> </webapp>
16/11
– Bert Bos, Dave Raggett and Håkon Lie
<style type="text/css"> @page {layout: fixed; width: 500px; height: 500px} @frame header {left: 0px; top: 0px; width: 500px; height: 100px} @frame toc {left: 0px; top: 100px; width: 500px; height: 400px} h1 {flow: header} ul {flow: toc} </style> <h1>Welcome to my Home Page</h1> <ul> <li>Favorite Places <li>Picture of my family <li>My plans for this week </ul>
17/11
– Written in XML with embedded JavaScript – Developed by Mozilla team – Now being applied to SVG
– Adding behaviors to novel elements – Use for defining novel controls (SVG components)
18/11
<?xml version="1.0"?> <?xml-stylesheet href="notes.css"?> <bindings xmlns="http://www.mozilla.org/xbl" xmlns:html="http://www.w3.org/1999/xhtml"> <binding id="board" styleexplicitcontent="true"> <implementation> <property name="dragging"> null </property> <property name="currX"> 0 </property> <property name="currY"> 0 </property> </implementation> <handlers> <handler event="mousedown"> if (event.originalTarget.parentNode.className == 'caption') { this.dragging = event.originalTarget.parentNode.parentNode; this.currX = event.clientX; this.currY = event.clientY; } </handler> <handler event="mouseup"> this.dragging = null; </handler> <handler event="mousemove"> this.currY = event.clientY; ... </handler> </handlers> </binding>