SlideShare a Scribd company logo
MONTREAL JUNE 30, JULY 1ST AND 2ND 2012




         D2W Branding
                  Using jQuery ThemeRoller
                                developed by   Farrukh Ijaz
          Senior Software Engineer at Fuego Digital Media
jQuery ThemeRoller
•   D2W - DirectToWeb
•   D2W Rule Engine & D2W Templates and “Looks”
•   “Looks” available in WebObjects and Wonder
•   Why another “Look”?
•   jQuery ThemeRoller Component Model
•   jQuery ThemeRoller D2W Templates
•   Features inherited from jQuery UI
•   Create your own jQuery ThemeRoller component
•   Setting up the application to use themes
•   Showcase Live Sites
•   Q&A
D2W - DirectToWeb



• A Java based Web Application Development
  Framework

• Transforms Data Model into fully functional UI
  based rules

• Consists of Rules Engine, set of D2W
  Templates and D2W Components

• Requires minimum or no code
D2W Rule Engine


• One of the main components of Direct To Web
• Using Rules (*.d2wmodel) and the Rule
  Engine, the user interface is dynamically
  constructed

• The Rule consists a condition (LHS) and
  assignment (RHS)

• Rules that are prioritized by setting priority
  and qualification
D2W Templates

• Templates that are used to generate user
  interface

• Page level templates such as D2WListPage,
  D2WEditPage, D2WSelectPage, ...

• Property level templates such as
  D2WEditString, D2WEditDate,
  D2WEditToManyRelationship, ...

• Page level templates are usually assigned for
  specific task such as
  D2WEditPage for task = ‘edit’,
  D2WSelectPage for task = ‘select’
D2W Templates and “Looks”

•   Templates are assigned by setting specific properties in the Rules
    file

    •   templateNameForListPage, templateNameForEditPage,
        templateNameForSelectPage, ...

•   Usually they are packaged in a separate framework for reusability
    with rules with higher priority defined to assign these templates and
    optionally bound with a property called “look” e.g.

    •   100: *true* => look = ‘fuego’

    •   100 : look = 'fuego' => templateNameForListPage =
        "FDNEUListPage"

•   WO developers are already using ERModernLook, ERDivaLook,
    ERNeutralLook, AjaxLook, R2D2W

•   Among these looks, ERModernLook is the latest one and is
    becoming the standard WOLips project template
Why a different set of templates?

• Legacy apps developed over the period of 7
  years simply can’t be switched to modern
  look

• All the apps are based on custom templates
  that inherit specific interfaces to work with
  Fuego’s customized MVC

• Client complaints about the ugly design of the
  old look

• Client requests for branded look to fit well in
  their portal environment
Neutral Look
Fuego’s Modification to Neutral Look
jQuery ThemeRoller Templates
•   Complete renovation of all the templates using jQuery UI
    components and themes

•   Branding UI is just a matter of generating a new theme using jQuery
    ThemeRoller app and drop it in the application’s web resources
    folder. (http://jqueryui.com/themeroller)

•   Graphics designers can easily generate them using client branding
    colours without any WO knowledge

•   Additional features such as:

    •   Additional branch buttons in the header of the component

    •   Collapsible components

    •   Draggable components (in progress)

•   It’s not just the HTML change, it’s a complete component
Select Page “Client-1 Theme”
Select Page “Client-2 Theme”
Edit Page “Client-1 Theme”
Edit Page “Client-2 Theme”
Grouping Edit Page “Client-1 Theme”
Grouping Edit Page “Client-2 Theme”
jQuery ThemeRoller Component Model

                                 Complete hierarchy of foundation components



                                       JQueryComponent




                      JQueryCustomComponent        JQueryStatelessComponent




                  JQueryCustomStatelessComponent         JQueryView                                       JQueryLayout




JQueryIcon    JQueryLinkButton     JQueryHeader       JQueryContainer     JQueryFooter   JQueryMessage   JQueryGridLayout   JQueryBorderLayout




             JQuerySubmitButton
jQuery ThemeRoller Component Model



• The jQuery ThemeRoller component model
  consists of reusable components
• They all can be used in composition to build
  other custom components
• All D2W templates reuse these components so
  change in the core components is reflected
  across all the templates
JQueryIcon, JQueryLinkButton / JQuerySubmitButton


 <wo:JQueryIcon icon="pencil" />




 <wo:JQueryLinkButton icon = "disk" text = "Save" />
 <wo:JQueryLinkButton icon = "cancel" text = "Cancel" />




 <span class = "jq-buttonset">
    <wo:JQuerySubmitButton icon = "disk" text = "Save" />
    <wo:JQueryLinkButton icon = "cancel" text = "Cancel" />
 </span>
JQueryMessage


<wo:JQueryMessage message = "Hello World!" />




<wo:JQueryMessage type="error" icon="alert" message =
"Houston! We've a problem." />




<wo:JQueryMessage type="highlight" icon="info" message =
"The file has been uploaded successfully!" />
JQueryView and JQueryGridLayout


<wo:JQueryView cssClass = "ui-state-default" padding = "5px" corner = "all"
maxWidth = "500px">
   <wo:JQueryGridLayout rows = "3" cols = "3" prefix = "grid" debug =
   "true" />
</wo:JQueryView>




<wo:JQueryView cssClass = "ui-state-default" padding = "5px" corner = "all"
maxWidth = "500px">
   <wo:JQueryGridLayout rows = "1" cols = "1,*,1" prefix = "grid">
       <wo:ERXWOTemplate templateName = "grid_1_1">
          <wo:JQueryLinkButton text = "Button 1" />
       </wo:ERXWOTemplate>
       <wo:ERXWOTemplate templateName = "grid_1_3">
          <wo:JQueryLinkButton icon = "close" />
       </wo:ERXWOTemplate>
   </wo:JQueryGridLayout>
</wo:JQueryView>
JQueryCustomComponent


<wo:JQueryCustomComponent debug = "$true" />




<wo:JQueryCustomComponent maxWidth = "500px" contentPadding = "10px"
      shouldShowTopBar = "$false" shouldShowFooter = "$false" heading = "My First Component"
      shouldShowMinMaxButton = "$true">
      <wo:ERXWOTemplate templateName = "rightHeaderButtons">
            <wo:JQueryLinkButton icon = "close" />
      </wo:ERXWOTemplate>
      <wo:ERXWOTemplate templateName = "content"> Test content </wo:ERXWOTemplate>
      <wo:ERXWOTemplate templateName = "bottomBar">
            <wo:JQuerySubmitButton text = "Save" />
            <wo:JQueryLinkButton text = "Cancel" />
      </wo:ERXWOTemplate>
</wo:JQueryCustomComponent>
Setting up the application to use themes




Include in <head> of PageWrapper:

<wo:JQueryResources themeroller = "$true" theme =
"themename" uniform = "$true" />


Assign class to <body> same as theme name:

<body class = "themename">
Live Application
         +
Klok+D2W Integration
Q&A
      MONTREAL JUNE 30, JULY 1ST AND 2ND 2012




Q&A

More Related Content

What's hot (20)

PDF
Local storage in Web apps
Ivano Malavolta
 
PPTX
React js
Oswald Campesato
 
PDF
RESTful OSGi Web Applications Tutorial - Khawaja S Shams & Jeff Norris
mfrancis
 
PDF
Handlebars & Require JS
Ivano Malavolta
 
PDF
D2W Stateful Controllers
WO Community
 
PDF
Apache Wicket Web Framework
Luther Baker
 
PDF
MVC 1.0 als alternative Webtechnologie
OPEN KNOWLEDGE GmbH
 
PPTX
Go Fullstack: JSF for Public Sites (CONFESS 2013)
Michael Kurz
 
PDF
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PPTX
Angular Data Binding
Jennifer Estrada
 
PDF
HTML5 and CSS3 refresher
Ivano Malavolta
 
PDF
Web Components v1
Mike Wilcox
 
PPTX
Building and Managing Projects with Maven
Khan625
 
PPTX
Go Fullstack: JSF for Public Sites (CONFESS 2012)
Michael Kurz
 
PPTX
Node.js Development with Apache NetBeans
Ryan Cuprak
 
PPTX
Angular beans
Bessem Hmidi
 
PPTX
MWLUG 2015 - AD114 Take Your XPages Development to the Next Level
balassaitis
 
PPTX
Getting Started with jQuery
Akshay Mathur
 
PPT
J query presentation
akanksha17
 
Local storage in Web apps
Ivano Malavolta
 
RESTful OSGi Web Applications Tutorial - Khawaja S Shams & Jeff Norris
mfrancis
 
Handlebars & Require JS
Ivano Malavolta
 
D2W Stateful Controllers
WO Community
 
Apache Wicket Web Framework
Luther Baker
 
MVC 1.0 als alternative Webtechnologie
OPEN KNOWLEDGE GmbH
 
Go Fullstack: JSF for Public Sites (CONFESS 2013)
Michael Kurz
 
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Angular Data Binding
Jennifer Estrada
 
HTML5 and CSS3 refresher
Ivano Malavolta
 
Web Components v1
Mike Wilcox
 
Building and Managing Projects with Maven
Khan625
 
Go Fullstack: JSF for Public Sites (CONFESS 2012)
Michael Kurz
 
Node.js Development with Apache NetBeans
Ryan Cuprak
 
Angular beans
Bessem Hmidi
 
MWLUG 2015 - AD114 Take Your XPages Development to the Next Level
balassaitis
 
Getting Started with jQuery
Akshay Mathur
 
J query presentation
akanksha17
 

Similar to D2W Branding Using jQuery ThemeRoller (20)

PDF
Introduction to jQuery Mobile - Web Deliver for All
Marc Grabanski
 
PDF
Customizing ERModernLook Applications
WO Community
 
PDF
jQuery State of the Union - Yehuda Katz
Marakana Inc.
 
PDF
jQuery Mobile Introduction
Joris Graaumans
 
PDF
JQuery Mobile
Matthew McCullough
 
PDF
jQuery UI and Plugins
Marc Grabanski
 
PDF
Introduction to jQuery Mobile
David Hudson
 
KEY
Better Front-end Development in Atlassian Plugins
Wojciech Seliga
 
PDF
Write Less Do More
Remy Sharp
 
PDF
04 jQuery Mobile
Ynon Perek
 
PPTX
jQuery Mobile
mowd8574
 
PPT
Jquery ui
adm_exoplatform
 
PDF
Overview on jQuery mobile
Md. Ziaul Haq
 
PDF
Wireless Wednesdays: Part 4
Teamstudio
 
PDF
Jquery Ui In Action 1st Edition Tj Vantoll
ringatsw
 
PDF
jQuery for beginners
Siva Arunachalam
 
PPTX
Jquery mobile book review
Islam AlZatary
 
PDF
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
Doris Chen
 
PDF
Learning from the Best jQuery Plugins
Marc Grabanski
 
PDF
HTML5 and the dawn of rich mobile web applications pt 2
James Pearce
 
Introduction to jQuery Mobile - Web Deliver for All
Marc Grabanski
 
Customizing ERModernLook Applications
WO Community
 
jQuery State of the Union - Yehuda Katz
Marakana Inc.
 
jQuery Mobile Introduction
Joris Graaumans
 
JQuery Mobile
Matthew McCullough
 
jQuery UI and Plugins
Marc Grabanski
 
Introduction to jQuery Mobile
David Hudson
 
Better Front-end Development in Atlassian Plugins
Wojciech Seliga
 
Write Less Do More
Remy Sharp
 
04 jQuery Mobile
Ynon Perek
 
jQuery Mobile
mowd8574
 
Jquery ui
adm_exoplatform
 
Overview on jQuery mobile
Md. Ziaul Haq
 
Wireless Wednesdays: Part 4
Teamstudio
 
Jquery Ui In Action 1st Edition Tj Vantoll
ringatsw
 
jQuery for beginners
Siva Arunachalam
 
Jquery mobile book review
Islam AlZatary
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
Doris Chen
 
Learning from the Best jQuery Plugins
Marc Grabanski
 
HTML5 and the dawn of rich mobile web applications pt 2
James Pearce
 
Ad

More from WO Community (20)

PDF
KAAccessControl
WO Community
 
PDF
In memory OLAP engine
WO Community
 
PDF
Using Nagios to monitor your WO systems
WO Community
 
PDF
Build and deployment
WO Community
 
PDF
High availability
WO Community
 
PDF
Reenabling SOAP using ERJaxWS
WO Community
 
PDF
Chaining the Beast - Testing Wonder Applications in the Real World
WO Community
 
PDF
Deploying WO on Windows
WO Community
 
PDF
Unit Testing with WOUnit
WO Community
 
PDF
Life outside WO
WO Community
 
PDF
Advanced Apache Cayenne
WO Community
 
PDF
Migrating existing Projects to Wonder
WO Community
 
PDF
iOS for ERREST - alternative version
WO Community
 
PDF
iOS for ERREST
WO Community
 
PDF
"Framework Principal" pattern
WO Community
 
PDF
Filtering data with D2W
WO Community
 
PDF
WOver
WO Community
 
PDF
Localizing your apps for multibyte languages
WO Community
 
PDF
WOdka
WO Community
 
PDF
ERGroupware
WO Community
 
KAAccessControl
WO Community
 
In memory OLAP engine
WO Community
 
Using Nagios to monitor your WO systems
WO Community
 
Build and deployment
WO Community
 
High availability
WO Community
 
Reenabling SOAP using ERJaxWS
WO Community
 
Chaining the Beast - Testing Wonder Applications in the Real World
WO Community
 
Deploying WO on Windows
WO Community
 
Unit Testing with WOUnit
WO Community
 
Life outside WO
WO Community
 
Advanced Apache Cayenne
WO Community
 
Migrating existing Projects to Wonder
WO Community
 
iOS for ERREST - alternative version
WO Community
 
iOS for ERREST
WO Community
 
"Framework Principal" pattern
WO Community
 
Filtering data with D2W
WO Community
 
Localizing your apps for multibyte languages
WO Community
 
ERGroupware
WO Community
 
Ad

Recently uploaded (20)

PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
July Patch Tuesday
Ivanti
 
Python basic programing language for automation
DanialHabibi2
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 

D2W Branding Using jQuery ThemeRoller

  • 1. MONTREAL JUNE 30, JULY 1ST AND 2ND 2012 D2W Branding Using jQuery ThemeRoller developed by Farrukh Ijaz Senior Software Engineer at Fuego Digital Media
  • 2. jQuery ThemeRoller • D2W - DirectToWeb • D2W Rule Engine & D2W Templates and “Looks” • “Looks” available in WebObjects and Wonder • Why another “Look”? • jQuery ThemeRoller Component Model • jQuery ThemeRoller D2W Templates • Features inherited from jQuery UI • Create your own jQuery ThemeRoller component • Setting up the application to use themes • Showcase Live Sites • Q&A
  • 3. D2W - DirectToWeb • A Java based Web Application Development Framework • Transforms Data Model into fully functional UI based rules • Consists of Rules Engine, set of D2W Templates and D2W Components • Requires minimum or no code
  • 4. D2W Rule Engine • One of the main components of Direct To Web • Using Rules (*.d2wmodel) and the Rule Engine, the user interface is dynamically constructed • The Rule consists a condition (LHS) and assignment (RHS) • Rules that are prioritized by setting priority and qualification
  • 5. D2W Templates • Templates that are used to generate user interface • Page level templates such as D2WListPage, D2WEditPage, D2WSelectPage, ... • Property level templates such as D2WEditString, D2WEditDate, D2WEditToManyRelationship, ... • Page level templates are usually assigned for specific task such as D2WEditPage for task = ‘edit’, D2WSelectPage for task = ‘select’
  • 6. D2W Templates and “Looks” • Templates are assigned by setting specific properties in the Rules file • templateNameForListPage, templateNameForEditPage, templateNameForSelectPage, ... • Usually they are packaged in a separate framework for reusability with rules with higher priority defined to assign these templates and optionally bound with a property called “look” e.g. • 100: *true* => look = ‘fuego’ • 100 : look = 'fuego' => templateNameForListPage = "FDNEUListPage" • WO developers are already using ERModernLook, ERDivaLook, ERNeutralLook, AjaxLook, R2D2W • Among these looks, ERModernLook is the latest one and is becoming the standard WOLips project template
  • 7. Why a different set of templates? • Legacy apps developed over the period of 7 years simply can’t be switched to modern look • All the apps are based on custom templates that inherit specific interfaces to work with Fuego’s customized MVC • Client complaints about the ugly design of the old look • Client requests for branded look to fit well in their portal environment
  • 10. jQuery ThemeRoller Templates • Complete renovation of all the templates using jQuery UI components and themes • Branding UI is just a matter of generating a new theme using jQuery ThemeRoller app and drop it in the application’s web resources folder. (http://jqueryui.com/themeroller) • Graphics designers can easily generate them using client branding colours without any WO knowledge • Additional features such as: • Additional branch buttons in the header of the component • Collapsible components • Draggable components (in progress) • It’s not just the HTML change, it’s a complete component
  • 15. Grouping Edit Page “Client-1 Theme”
  • 16. Grouping Edit Page “Client-2 Theme”
  • 17. jQuery ThemeRoller Component Model Complete hierarchy of foundation components JQueryComponent JQueryCustomComponent JQueryStatelessComponent JQueryCustomStatelessComponent JQueryView JQueryLayout JQueryIcon JQueryLinkButton JQueryHeader JQueryContainer JQueryFooter JQueryMessage JQueryGridLayout JQueryBorderLayout JQuerySubmitButton
  • 18. jQuery ThemeRoller Component Model • The jQuery ThemeRoller component model consists of reusable components • They all can be used in composition to build other custom components • All D2W templates reuse these components so change in the core components is reflected across all the templates
  • 19. JQueryIcon, JQueryLinkButton / JQuerySubmitButton <wo:JQueryIcon icon="pencil" /> <wo:JQueryLinkButton icon = "disk" text = "Save" /> <wo:JQueryLinkButton icon = "cancel" text = "Cancel" /> <span class = "jq-buttonset"> <wo:JQuerySubmitButton icon = "disk" text = "Save" /> <wo:JQueryLinkButton icon = "cancel" text = "Cancel" /> </span>
  • 20. JQueryMessage <wo:JQueryMessage message = "Hello World!" /> <wo:JQueryMessage type="error" icon="alert" message = "Houston! We've a problem." /> <wo:JQueryMessage type="highlight" icon="info" message = "The file has been uploaded successfully!" />
  • 21. JQueryView and JQueryGridLayout <wo:JQueryView cssClass = "ui-state-default" padding = "5px" corner = "all" maxWidth = "500px"> <wo:JQueryGridLayout rows = "3" cols = "3" prefix = "grid" debug = "true" /> </wo:JQueryView> <wo:JQueryView cssClass = "ui-state-default" padding = "5px" corner = "all" maxWidth = "500px"> <wo:JQueryGridLayout rows = "1" cols = "1,*,1" prefix = "grid"> <wo:ERXWOTemplate templateName = "grid_1_1"> <wo:JQueryLinkButton text = "Button 1" /> </wo:ERXWOTemplate> <wo:ERXWOTemplate templateName = "grid_1_3"> <wo:JQueryLinkButton icon = "close" /> </wo:ERXWOTemplate> </wo:JQueryGridLayout> </wo:JQueryView>
  • 22. JQueryCustomComponent <wo:JQueryCustomComponent debug = "$true" /> <wo:JQueryCustomComponent maxWidth = "500px" contentPadding = "10px" shouldShowTopBar = "$false" shouldShowFooter = "$false" heading = "My First Component" shouldShowMinMaxButton = "$true"> <wo:ERXWOTemplate templateName = "rightHeaderButtons"> <wo:JQueryLinkButton icon = "close" /> </wo:ERXWOTemplate> <wo:ERXWOTemplate templateName = "content"> Test content </wo:ERXWOTemplate> <wo:ERXWOTemplate templateName = "bottomBar"> <wo:JQuerySubmitButton text = "Save" /> <wo:JQueryLinkButton text = "Cancel" /> </wo:ERXWOTemplate> </wo:JQueryCustomComponent>
  • 23. Setting up the application to use themes Include in <head> of PageWrapper: <wo:JQueryResources themeroller = "$true" theme = "themename" uniform = "$true" /> Assign class to <body> same as theme name: <body class = "themename">
  • 24. Live Application + Klok+D2W Integration
  • 25. Q&A MONTREAL JUNE 30, JULY 1ST AND 2ND 2012 Q&A