SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
22.03.2011
ABOUT ME
• M.Sc. Martin Wittemann

• works   at

•               framework architect

• started   in 2007 with

• @wittemann    on

• won   $18 in Atlantic City!
pure JavaScript

no HTML or CSS know-how for RIAs

        no plugin needed

            LGPL / EPL
JAVASCRIPT, REALLY?
c=document.body.children[0];h=t=150;L=w=c.width=800;u=D=50;H=
[];R=Math.random;for($ in C=c.getContext('2d'))C[$[J=X=Y=0]+
($[6]||'')]=C[$];setInterval("if(D)for(x=405,i=y=I=0;i<1e4;)L=H[i+
+]=i<9|L<w&R()<.3?w:R()*u+80|0;$=++t%99-u;$=$*$/8+20;y+=Y;x+=y-H
[(x+X)/u|0]>9?0:X;j=H[o=x/u|0];Y=y<j|Y<0?Y+1:(y=j,J?-10:0);with(C)
{A=function(c,x,y,r){r&&a(x,y,r,0,7,0);fillStyle=c.P?
c:'#'+'ceff99ff78f86eeaaffffd45333'.substr(c*3,3);f();ba()};for
(D=Z=0;Z<21;Z++){Z<7&&A(Z%6,w/2,235,Z?250-15*Z:w);i=o-5+Z;S=x-
i*u;B=S>9&S<41;ta(u-S,0);G=cL(0,T=H[i],0,T+9);T%6||(A
(2,25,T-7,5),y^j||B&&(H[i]-=.1,I++));G.P=G.addColorStop;G.P(0,i
%7?'#7e3':(i^o||y^T||(y=H[i]+=$/99),'#c7a'));G.P(1,'#ca6');i%4&&A
(6,t/2%200,9,i%2?27:33);m(-6,h);qt(-6,T,3,T);l(47,T);qt(56,T,
56,h);A(G);i%3?0:T<w?(A(G,33,T-15,10),fc(31,T-7,4,9)):(A(7,25,$,
9),A(G,25,$,5),fc(24,$,2,h),D=B&y>$-9?1:D);ta(S-u,0)}A
(6,u,y-9,11);A(5,M=u+X*.7,Q=y-9+Y/5,8);A(8,M,Q,5);fx(I+'¢',5,15)}
D=y>h?1:D",u);onkeydown=onkeyup=function(e){E=e.type[5]?
4:0;e=e.keyCode;J=e^38?J:E;X=e^37?e^39?X:E:-E}

                                                      http://js1k.com/2010-first/demo/635
OBJECT ORIENTATION

   qx.Class.define("Bicycle", {
     extend : qx.core.Object,
     members : {
       __speed : 0,
       speedUp : function(increment) {
         this.__speed += increment;
       }
     }
   });
OBJECT ORIENTATION


qx.Class.define("Bicycle", {          class Bicycle {
  extend : qx.core.Object,              int speed = 0;
  members : {
    __speed : 0,                          void speedUp(int increment) {
    speedUp : function(increment) {         speed = speed + increment;
      this.__speed += increment;          }
    }                                 }
  }
});
OBJECT ORIENTATION
SPEED




   http://www.macstories.net/news/new-chrome-beta-is-faster-includes-revamped-settings-ui/
SPEED




http://blogs.msdn.com/b/ie/archive/2010/11/17/html5-and-real-world-site-performance-seventh-ie9-platform-preview-available-for-developers.aspx
ARCHITECTURE

                Widgets                Layouts          Theming
GUI
Toolkit
                                       UI Core




                                                                     Data Binding


                                                                                    I18n
                                 HTML         CSS
Low-Level       Parts                                    Animation
                               Rendering     Selector



Browser       Transport          BOM             DOM
                                                         Browser
Abstraction                                              Events



                                            Language
Core                      OO
                                            Extension
                                                             Custom Events
ARCHITECTURE

                Widgets                Layouts          Theming
GUI
Toolkit
                                       UI Core




                                                                     Data Binding


                                                                                    I18n
                                 HTML         CSS
Low-Level       Parts                                    Animation
                               Rendering     Selector



Browser       Transport          BOM             DOM
                                                         Browser
Abstraction                                              Events



                                            Language
Core                      OO
                                            Extension
                                                             Custom Events
ARCHITECTURE

                Widgets                Layouts          Theming
GUI
Toolkit
                                       UI Core




                                                                     Data Binding


                                                                                    I18n
                                 HTML         CSS
Low-Level       Parts                                    Animation
                               Rendering     Selector



Browser       Transport          BOM             DOM
                                                         Browser
Abstraction                                              Events



                                            Language
Core                      OO
                                            Extension
                                                             Custom Events
ARCHITECTURE

                Widgets                Layouts          Theming
GUI
Toolkit
                                       UI Core




                                                                     Data Binding


                                                                                    I18n
                                 HTML         CSS
Low-Level       Parts                                    Animation
                               Rendering     Selector



Browser       Transport          BOM             DOM
                                                         Browser
Abstraction                                              Events



                                            Language
Core                      OO
                                            Extension
                                                             Custom Events
ARCHITECTURE

                Widgets                Layouts          Theming
GUI
Toolkit
                                       UI Core




                                                                     Data Binding


                                                                                    I18n
                                 HTML         CSS
Low-Level       Parts                                    Animation
                               Rendering     Selector



Browser       Transport          BOM             DOM
                                                         Browser
Abstraction                                              Events



                                            Language
Core                      OO
                                            Extension
                                                             Custom Events
ARCHITECTURE

                Widgets                Layouts          Theming
GUI
Toolkit
                                       UI Core




                                                                     Data Binding


                                                                                    I18n
                                 HTML         CSS
Low-Level       Parts                                    Animation
                               Rendering     Selector



Browser       Transport          BOM             DOM
                                                         Browser
Abstraction                                              Events



                                            Language
Core                      OO
                                            Extension
                                                             Custom Events
LOW LEVEL FRAMEWORK

• Base   for the Widget Toolkit

• Cross   browser layer




• Works    standalone

• Feature   set like              and more
USED ON
ARCHITECTURE

                Widgets                Layouts          Theming
GUI
Toolkit
                                       UI Core




                                                                     Data Binding


                                                                                    I18n
                                 HTML         CSS
Low-Level       Parts                                    Animation
                               Rendering     Selector



Browser       Transport          BOM             DOM
                                                         Browser
Abstraction                                              Events



                                            Language
Core                      OO
                                            Extension
                                                             Custom Events
WIDGETS
WIDGETS   Toolbar
WIDGETS
Tree
WIDGETS



          Window
WIDGETS




          TextField
WIDGETS




          Button
VIRTUAL
• Suitable     for huge data sets

• Does       not render all data




 SelectBox     ComboBox     List    Tree   Table
INLINE APPLICATION
                 plain
                 HTML




                   qo o
                       xdo
                 app        o
                    lica
                        t io n
LAYOUTS

• Custom   layout managers built in JavaScript

• No   cross browser issues

• predefined   set of layouts
THEMING

• No   CSS knowledge needed

• No   cross browser code



Modern
  Classic
    Simple
DATA BINDING

            Formating


             Filtering
             Sorting
Model                    View

            Validation
            Converting
IDEA
    a :A                        b :A
              <<binding>>
+ prop : 12                 + prop :
IDEA
    a :A                        b :A
              <<binding>>
+ prop : 12                 + prop : 12
IDEA
    a :A                        b :A
              <<binding>>
+ prop : 23                 + prop : 23
IDEA
    a :A                        b :A
              <<binding>>
+ prop : 23                 + prop : 30




    a.bind("prop", b, "prop");
DATA BINDING

Data   Store   Model   Controller   View
DATA BINDING

Data             Store   Model   Controller   View




    JSON
 file / service
DATA BINDING

Data   Store          Model   Controller   View




          load JSON,
       convert to model
DATA BINDING

Data   Store   Model       Controller   View



               simple qooxdoo
                  object with
                  properties
DATA BINDING

Data   Store   Model      Controller     View




                       keeps model and
                         view in sync
DATA BINDING

Data   Store   Model   Controller              View




                                    simple widget like
                                     list, tree, form, ...
INTERNATIONALIZATION

• Built-in   internationalization support

• Based   on standardized files

• Easy   to switch during runtime
INTERNATIONALIZATION
 without translation

var button1 = new qx.ui.form.Button("First Button");
this.getRoot().add(button1);



 with translation

var button1 = new qx.ui.form.Button(this.tr("First Button"));
this.getRoot().add(button1);
USED ON
USED ON
DEMO
DEVELOPMENT
SUPPORT
TOOLING
• Automatic   dependency detection

• Packaging   for development and deployment

• Optimization   and minification
TESTING
• Integrated   unit test framework

• Integrated   support for Selenium tests

• Continuous    integration for the framework
INSPECTOR
• Special   qooxdoo debugging tool

• Handy     console for debugging

• Select   widget by mouse

• Selenium    integration
INSPECTOR
ARCHITECTURE

                Widgets                Layouts          Theming
GUI
Toolkit
                                       UI Core




                                                                     Data Binding


                                                                                    I18n
                                 HTML         CSS
Low-Level       Parts                                    Animation
                               Rendering     Selector



Browser       Transport          BOM             DOM
                                                         Browser
Abstraction                                              Events



                                            Language
Core                      OO
                                            Extension
                                                             Custom Events
ARCHITECTURE

                                          Widgets                Layouts          Theming

  RIA Framework           GUI
                          Toolkit
                                                                 UI Core




                                                                                               Data Binding
                      {



                                                                                                              I18n
                                                           HTML         CSS
                          Low-Level       Parts                                    Animation
                                                         Rendering     Selector

Low Level Framework
                          Browser       Transport          BOM             DOM
                                                                                   Browser
                          Abstraction                                              Events




Universal Framework
                                                                      Language
                          Core                      OO
                                                                      Extension
                                                                                       Custom Events
ARCHITECTURE
                                                                                 Mobile
                                                                               Framework W!
                                                                                      NE
                                        Widgets
                                                                                   Mobile
                                                     Layouts         Theming

  RIA Framework           GUI
                          Toolkit
                                                     UI Core                        Widgets




                                                                                                 Data Binding
                      {



                                                                                                                I18n
                                                           HTML          CSS
                          Low-Level       Parts
                                                         Rendering      Selector
                                                                                   Animation

Low Level Framework
                          Browser       Transport
                                                                                    Browser
                                                           BOM           DOM
                          Abstraction                                               Events




Universal Framework       Core                      OO
                                                                       Language
                                                                       Extension
                                                                                       Custom Events
Try it yourself!
       http://qooxdoo.org/
http://playground.qooxdoo.org/

Weitere ähnliche Inhalte

Was ist angesagt?

Federal Cloud Computing Initiative
Federal Cloud Computing InitiativeFederal Cloud Computing Initiative
Federal Cloud Computing InitiativeGovCloud Network
 
Xencia Solution Showcase
Xencia Solution ShowcaseXencia Solution Showcase
Xencia Solution Showcaseullasl
 
Brokerage 2007 presentation hci
Brokerage 2007 presentation hciBrokerage 2007 presentation hci
Brokerage 2007 presentation hciimec.archive
 
Nyheterna i Portal och Web content management version 8
Nyheterna i Portal och Web content management version 8Nyheterna i Portal och Web content management version 8
Nyheterna i Portal och Web content management version 8IBM Sverige
 
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...Lucas Jellema
 
Gilbane SF - Content Convergence Strategies
Gilbane SF - Content Convergence StrategiesGilbane SF - Content Convergence Strategies
Gilbane SF - Content Convergence StrategiesEric Barroca
 
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...Lucas Jellema
 
Microsoft Lync: Communication Innovation
Microsoft Lync: Communication InnovationMicrosoft Lync: Communication Innovation
Microsoft Lync: Communication InnovationSentri
 

Was ist angesagt? (12)

Grottarossa:Why?
Grottarossa:Why?Grottarossa:Why?
Grottarossa:Why?
 
MeeGo and Community
MeeGo and CommunityMeeGo and Community
MeeGo and Community
 
Federal Cloud Computing Initiative
Federal Cloud Computing InitiativeFederal Cloud Computing Initiative
Federal Cloud Computing Initiative
 
Xencia Solution Showcase
Xencia Solution ShowcaseXencia Solution Showcase
Xencia Solution Showcase
 
Brokerage 2007 presentation hci
Brokerage 2007 presentation hciBrokerage 2007 presentation hci
Brokerage 2007 presentation hci
 
Nyheterna i Portal och Web content management version 8
Nyheterna i Portal och Web content management version 8Nyheterna i Portal och Web content management version 8
Nyheterna i Portal och Web content management version 8
 
Element S
Element SElement S
Element S
 
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
 
Kma 04 22-10 office sneak peek presentation
Kma 04 22-10 office sneak peek presentationKma 04 22-10 office sneak peek presentation
Kma 04 22-10 office sneak peek presentation
 
Gilbane SF - Content Convergence Strategies
Gilbane SF - Content Convergence StrategiesGilbane SF - Content Convergence Strategies
Gilbane SF - Content Convergence Strategies
 
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
 
Microsoft Lync: Communication Innovation
Microsoft Lync: Communication InnovationMicrosoft Lync: Communication Innovation
Microsoft Lync: Communication Innovation
 

Andere mochten auch

Three Palms Corporate Review 041509
Three Palms Corporate Review 041509Three Palms Corporate Review 041509
Three Palms Corporate Review 041509mckeagan
 
AlterAction - Behavior Change Myths and Reality
AlterAction - Behavior Change Myths and RealityAlterAction - Behavior Change Myths and Reality
AlterAction - Behavior Change Myths and RealityMike Walker
 
Three Palms Corporate Review 2010
Three Palms Corporate Review 2010Three Palms Corporate Review 2010
Three Palms Corporate Review 2010mckeagan
 

Andere mochten auch (7)

Zebulon Solutions
Zebulon SolutionsZebulon Solutions
Zebulon Solutions
 
Three Palms Corporate Review 041509
Three Palms Corporate Review 041509Three Palms Corporate Review 041509
Three Palms Corporate Review 041509
 
AlterAction - Behavior Change Myths and Reality
AlterAction - Behavior Change Myths and RealityAlterAction - Behavior Change Myths and Reality
AlterAction - Behavior Change Myths and Reality
 
Three Palms Corporate Review 2010
Three Palms Corporate Review 2010Three Palms Corporate Review 2010
Three Palms Corporate Review 2010
 
Zebulon Solutions
Zebulon SolutionsZebulon Solutions
Zebulon Solutions
 
qooxdoo Decorators
qooxdoo Decoratorsqooxdoo Decorators
qooxdoo Decorators
 
Pifagor1
Pifagor1Pifagor1
Pifagor1
 

Ähnlich wie Framework Architecture Overview

Mee go是您的新机遇
Mee go是您的新机遇Mee go是您的新机遇
Mee go是您的新机遇OpenSourceCamp
 
Windows Phone 7.5 와 Windows 8 메트로 스타일 앱 개발
Windows Phone 7.5  와 Windows 8 메트로 스타일 앱 개발Windows Phone 7.5  와 Windows 8 메트로 스타일 앱 개발
Windows Phone 7.5 와 Windows 8 메트로 스타일 앱 개발Seo Jinho
 
Tacademy techclinic-2012-07-11
Tacademy techclinic-2012-07-11Tacademy techclinic-2012-07-11
Tacademy techclinic-2012-07-11영호 라
 
MeeGo AppLab Desktop Summit 2011 - Submission and Validation
MeeGo AppLab Desktop Summit 2011 - Submission and ValidationMeeGo AppLab Desktop Summit 2011 - Submission and Validation
MeeGo AppLab Desktop Summit 2011 - Submission and ValidationIntel Developer Zone Community
 
HTML5, Silverlight & Kinect
HTML5, Silverlight & KinectHTML5, Silverlight & Kinect
HTML5, Silverlight & KinectFrank La Vigne
 
Flying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy ChoneFlying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy Chonerajivmordani
 
Developing the Next Generation Embedded HMIs
Developing the Next Generation Embedded HMIs Developing the Next Generation Embedded HMIs
Developing the Next Generation Embedded HMIs mentoresd
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To AndroidGoogleTecTalks
 
Windows 8 App Developer Day
Windows 8 App Developer DayWindows 8 App Developer Day
Windows 8 App Developer DayPatric Boscolo
 
Microsoft Silverlight 2
Microsoft Silverlight 2Microsoft Silverlight 2
Microsoft Silverlight 2David Chou
 
Integration SharePoint 2010 with CRM 2010 by Mai Omar Desouki
Integration SharePoint 2010 with CRM 2010 by Mai Omar DesoukiIntegration SharePoint 2010 with CRM 2010 by Mai Omar Desouki
Integration SharePoint 2010 with CRM 2010 by Mai Omar DesoukiMai Omar Desouki
 
Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5
Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5
Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5SoftEngine
 
A Lap Around Silverlight 5
A Lap Around Silverlight 5A Lap Around Silverlight 5
A Lap Around Silverlight 5Frank La Vigne
 
S60 3rd FP2 Widgets
S60 3rd FP2 WidgetsS60 3rd FP2 Widgets
S60 3rd FP2 Widgetsromek
 

Ähnlich wie Framework Architecture Overview (20)

Mee go是您的新机遇
Mee go是您的新机遇Mee go是您的新机遇
Mee go是您的新机遇
 
Windows Phone 7.5 와 Windows 8 메트로 스타일 앱 개발
Windows Phone 7.5  와 Windows 8 메트로 스타일 앱 개발Windows Phone 7.5  와 Windows 8 메트로 스타일 앱 개발
Windows Phone 7.5 와 Windows 8 메트로 스타일 앱 개발
 
Tacademy techclinic-2012-07-11
Tacademy techclinic-2012-07-11Tacademy techclinic-2012-07-11
Tacademy techclinic-2012-07-11
 
MeeGo AppLab Desktop Summit 2011 - Submission and Validation
MeeGo AppLab Desktop Summit 2011 - Submission and ValidationMeeGo AppLab Desktop Summit 2011 - Submission and Validation
MeeGo AppLab Desktop Summit 2011 - Submission and Validation
 
HTML5, Silverlight & Kinect
HTML5, Silverlight & KinectHTML5, Silverlight & Kinect
HTML5, Silverlight & Kinect
 
Introducing Windows Runtime in Windows 8
Introducing Windows Runtime in Windows 8Introducing Windows Runtime in Windows 8
Introducing Windows Runtime in Windows 8
 
Flying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy ChoneFlying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy Chone
 
Developing the Next Generation Embedded HMIs
Developing the Next Generation Embedded HMIs Developing the Next Generation Embedded HMIs
Developing the Next Generation Embedded HMIs
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Android
 
air
airair
air
 
Windows 8 App Developer Day
Windows 8 App Developer DayWindows 8 App Developer Day
Windows 8 App Developer Day
 
Microsoft Silverlight 2
Microsoft Silverlight 2Microsoft Silverlight 2
Microsoft Silverlight 2
 
Integration SharePoint 2010 with CRM 2010 by Mai Omar Desouki
Integration SharePoint 2010 with CRM 2010 by Mai Omar DesoukiIntegration SharePoint 2010 with CRM 2010 by Mai Omar Desouki
Integration SharePoint 2010 with CRM 2010 by Mai Omar Desouki
 
Cloud Review V2
Cloud Review V2Cloud Review V2
Cloud Review V2
 
Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5
Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5
Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5
 
Win8 ru
Win8 ruWin8 ru
Win8 ru
 
Wpf Tech Overview2009
Wpf Tech Overview2009Wpf Tech Overview2009
Wpf Tech Overview2009
 
A Lap Around Silverlight 5
A Lap Around Silverlight 5A Lap Around Silverlight 5
A Lap Around Silverlight 5
 
Silver Light1.0
Silver Light1.0Silver Light1.0
Silver Light1.0
 
S60 3rd FP2 Widgets
S60 3rd FP2 WidgetsS60 3rd FP2 Widgets
S60 3rd FP2 Widgets
 

Mehr von Martin Wittemann

10 Jahre Webentwicklung - am Beispiel des Frameworks qooxdoo
10 Jahre Webentwicklung - am Beispiel des Frameworks qooxdoo10 Jahre Webentwicklung - am Beispiel des Frameworks qooxdoo
10 Jahre Webentwicklung - am Beispiel des Frameworks qooxdooMartin Wittemann
 
Cross-Platform Mobile Apps
Cross-Platform Mobile AppsCross-Platform Mobile Apps
Cross-Platform Mobile AppsMartin Wittemann
 
qooxdoo at VKSI-RIA-Comparison
qooxdoo at VKSI-RIA-Comparisonqooxdoo at VKSI-RIA-Comparison
qooxdoo at VKSI-RIA-ComparisonMartin Wittemann
 

Mehr von Martin Wittemann (7)

10 Jahre Webentwicklung - am Beispiel des Frameworks qooxdoo
10 Jahre Webentwicklung - am Beispiel des Frameworks qooxdoo10 Jahre Webentwicklung - am Beispiel des Frameworks qooxdoo
10 Jahre Webentwicklung - am Beispiel des Frameworks qooxdoo
 
Pointer events
Pointer eventsPointer events
Pointer events
 
qooxdoo 3.5
qooxdoo 3.5qooxdoo 3.5
qooxdoo 3.5
 
Cross-Platform Mobile Apps
Cross-Platform Mobile AppsCross-Platform Mobile Apps
Cross-Platform Mobile Apps
 
qooxdoo at VKSI-RIA-Comparison
qooxdoo at VKSI-RIA-Comparisonqooxdoo at VKSI-RIA-Comparison
qooxdoo at VKSI-RIA-Comparison
 
qooxdoo Form Management
qooxdoo Form Managementqooxdoo Form Management
qooxdoo Form Management
 
Data Binding in qooxdoo
Data Binding in qooxdooData Binding in qooxdoo
Data Binding in qooxdoo
 

Framework Architecture Overview

  • 2. ABOUT ME • M.Sc. Martin Wittemann • works at • framework architect • started in 2007 with • @wittemann on • won $18 in Atlantic City!
  • 3. pure JavaScript no HTML or CSS know-how for RIAs no plugin needed LGPL / EPL
  • 4. JAVASCRIPT, REALLY? c=document.body.children[0];h=t=150;L=w=c.width=800;u=D=50;H= [];R=Math.random;for($ in C=c.getContext('2d'))C[$[J=X=Y=0]+ ($[6]||'')]=C[$];setInterval("if(D)for(x=405,i=y=I=0;i<1e4;)L=H[i+ +]=i<9|L<w&R()<.3?w:R()*u+80|0;$=++t%99-u;$=$*$/8+20;y+=Y;x+=y-H [(x+X)/u|0]>9?0:X;j=H[o=x/u|0];Y=y<j|Y<0?Y+1:(y=j,J?-10:0);with(C) {A=function(c,x,y,r){r&&a(x,y,r,0,7,0);fillStyle=c.P? c:'#'+'ceff99ff78f86eeaaffffd45333'.substr(c*3,3);f();ba()};for (D=Z=0;Z<21;Z++){Z<7&&A(Z%6,w/2,235,Z?250-15*Z:w);i=o-5+Z;S=x- i*u;B=S>9&S<41;ta(u-S,0);G=cL(0,T=H[i],0,T+9);T%6||(A (2,25,T-7,5),y^j||B&&(H[i]-=.1,I++));G.P=G.addColorStop;G.P(0,i %7?'#7e3':(i^o||y^T||(y=H[i]+=$/99),'#c7a'));G.P(1,'#ca6');i%4&&A (6,t/2%200,9,i%2?27:33);m(-6,h);qt(-6,T,3,T);l(47,T);qt(56,T, 56,h);A(G);i%3?0:T<w?(A(G,33,T-15,10),fc(31,T-7,4,9)):(A(7,25,$, 9),A(G,25,$,5),fc(24,$,2,h),D=B&y>$-9?1:D);ta(S-u,0)}A (6,u,y-9,11);A(5,M=u+X*.7,Q=y-9+Y/5,8);A(8,M,Q,5);fx(I+'¢',5,15)} D=y>h?1:D",u);onkeydown=onkeyup=function(e){E=e.type[5]? 4:0;e=e.keyCode;J=e^38?J:E;X=e^37?e^39?X:E:-E} http://js1k.com/2010-first/demo/635
  • 5. OBJECT ORIENTATION qx.Class.define("Bicycle", { extend : qx.core.Object, members : { __speed : 0, speedUp : function(increment) { this.__speed += increment; } } });
  • 6. OBJECT ORIENTATION qx.Class.define("Bicycle", { class Bicycle { extend : qx.core.Object, int speed = 0; members : { __speed : 0, void speedUp(int increment) { speedUp : function(increment) { speed = speed + increment; this.__speed += increment; } } } } });
  • 8. SPEED http://www.macstories.net/news/new-chrome-beta-is-faster-includes-revamped-settings-ui/
  • 10. ARCHITECTURE Widgets Layouts Theming GUI Toolkit UI Core Data Binding I18n HTML CSS Low-Level Parts Animation Rendering Selector Browser Transport BOM DOM Browser Abstraction Events Language Core OO Extension Custom Events
  • 11. ARCHITECTURE Widgets Layouts Theming GUI Toolkit UI Core Data Binding I18n HTML CSS Low-Level Parts Animation Rendering Selector Browser Transport BOM DOM Browser Abstraction Events Language Core OO Extension Custom Events
  • 12. ARCHITECTURE Widgets Layouts Theming GUI Toolkit UI Core Data Binding I18n HTML CSS Low-Level Parts Animation Rendering Selector Browser Transport BOM DOM Browser Abstraction Events Language Core OO Extension Custom Events
  • 13. ARCHITECTURE Widgets Layouts Theming GUI Toolkit UI Core Data Binding I18n HTML CSS Low-Level Parts Animation Rendering Selector Browser Transport BOM DOM Browser Abstraction Events Language Core OO Extension Custom Events
  • 14. ARCHITECTURE Widgets Layouts Theming GUI Toolkit UI Core Data Binding I18n HTML CSS Low-Level Parts Animation Rendering Selector Browser Transport BOM DOM Browser Abstraction Events Language Core OO Extension Custom Events
  • 15. ARCHITECTURE Widgets Layouts Theming GUI Toolkit UI Core Data Binding I18n HTML CSS Low-Level Parts Animation Rendering Selector Browser Transport BOM DOM Browser Abstraction Events Language Core OO Extension Custom Events
  • 16. LOW LEVEL FRAMEWORK • Base for the Widget Toolkit • Cross browser layer • Works standalone • Feature set like and more
  • 18.
  • 19. ARCHITECTURE Widgets Layouts Theming GUI Toolkit UI Core Data Binding I18n HTML CSS Low-Level Parts Animation Rendering Selector Browser Transport BOM DOM Browser Abstraction Events Language Core OO Extension Custom Events
  • 21. WIDGETS Toolbar
  • 23. WIDGETS Window
  • 24. WIDGETS TextField
  • 25. WIDGETS Button
  • 26.
  • 27. VIRTUAL • Suitable for huge data sets • Does not render all data SelectBox ComboBox List Tree Table
  • 28. INLINE APPLICATION plain HTML qo o xdo app o lica t io n
  • 29. LAYOUTS • Custom layout managers built in JavaScript • No cross browser issues • predefined set of layouts
  • 30. THEMING • No CSS knowledge needed • No cross browser code Modern Classic Simple
  • 31. DATA BINDING Formating Filtering Sorting Model View Validation Converting
  • 32. IDEA a :A b :A <<binding>> + prop : 12 + prop :
  • 33. IDEA a :A b :A <<binding>> + prop : 12 + prop : 12
  • 34. IDEA a :A b :A <<binding>> + prop : 23 + prop : 23
  • 35. IDEA a :A b :A <<binding>> + prop : 23 + prop : 30 a.bind("prop", b, "prop");
  • 36. DATA BINDING Data Store Model Controller View
  • 37. DATA BINDING Data Store Model Controller View JSON file / service
  • 38. DATA BINDING Data Store Model Controller View load JSON, convert to model
  • 39. DATA BINDING Data Store Model Controller View simple qooxdoo object with properties
  • 40. DATA BINDING Data Store Model Controller View keeps model and view in sync
  • 41. DATA BINDING Data Store Model Controller View simple widget like list, tree, form, ...
  • 42. INTERNATIONALIZATION • Built-in internationalization support • Based on standardized files • Easy to switch during runtime
  • 43. INTERNATIONALIZATION without translation var button1 = new qx.ui.form.Button("First Button"); this.getRoot().add(button1); with translation var button1 = new qx.ui.form.Button(this.tr("First Button")); this.getRoot().add(button1);
  • 46. DEMO
  • 48. TOOLING • Automatic dependency detection • Packaging for development and deployment • Optimization and minification
  • 49. TESTING • Integrated unit test framework • Integrated support for Selenium tests • Continuous integration for the framework
  • 50. INSPECTOR • Special qooxdoo debugging tool • Handy console for debugging • Select widget by mouse • Selenium integration
  • 52. ARCHITECTURE Widgets Layouts Theming GUI Toolkit UI Core Data Binding I18n HTML CSS Low-Level Parts Animation Rendering Selector Browser Transport BOM DOM Browser Abstraction Events Language Core OO Extension Custom Events
  • 53. ARCHITECTURE Widgets Layouts Theming RIA Framework GUI Toolkit UI Core Data Binding { I18n HTML CSS Low-Level Parts Animation Rendering Selector Low Level Framework Browser Transport BOM DOM Browser Abstraction Events Universal Framework Language Core OO Extension Custom Events
  • 54. ARCHITECTURE Mobile Framework W! NE Widgets Mobile Layouts Theming RIA Framework GUI Toolkit UI Core Widgets Data Binding { I18n HTML CSS Low-Level Parts Rendering Selector Animation Low Level Framework Browser Transport Browser BOM DOM Abstraction Events Universal Framework Core OO Language Extension Custom Events
  • 55. Try it yourself! http://qooxdoo.org/ http://playground.qooxdoo.org/