SlideShare a Scribd company logo
1 of 25
Download to read offline
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

Local storage in Web apps
Local storage in Web appsLocal storage in Web apps
Local storage in Web appsIvano Malavolta
 
RESTful OSGi Web Applications Tutorial - Khawaja S Shams & Jeff Norris
RESTful OSGi Web Applications Tutorial - Khawaja S Shams & Jeff NorrisRESTful OSGi Web Applications Tutorial - Khawaja S Shams & Jeff Norris
RESTful OSGi Web Applications Tutorial - Khawaja S Shams & Jeff Norrismfrancis
 
D2W Stateful Controllers
D2W Stateful ControllersD2W Stateful Controllers
D2W Stateful ControllersWO Community
 
Apache Wicket Web Framework
Apache Wicket Web FrameworkApache Wicket Web Framework
Apache Wicket Web FrameworkLuther Baker
 
MVC 1.0 als alternative Webtechnologie
MVC 1.0 als alternative WebtechnologieMVC 1.0 als alternative Webtechnologie
MVC 1.0 als alternative WebtechnologieOPEN KNOWLEDGE GmbH
 
Go Fullstack: JSF for Public Sites (CONFESS 2013)
Go Fullstack: JSF for Public Sites (CONFESS 2013)Go Fullstack: JSF for Public Sites (CONFESS 2013)
Go Fullstack: JSF for Public Sites (CONFESS 2013)Michael Kurz
 
HTML5 and CSS3 refresher
HTML5 and CSS3 refresherHTML5 and CSS3 refresher
HTML5 and CSS3 refresherIvano Malavolta
 
Web Components v1
Web Components v1Web Components v1
Web Components v1Mike Wilcox
 
Building and Managing Projects with Maven
Building and Managing Projects with MavenBuilding and Managing Projects with Maven
Building and Managing Projects with MavenKhan625
 
Go Fullstack: JSF for Public Sites (CONFESS 2012)
Go Fullstack: JSF for Public Sites (CONFESS 2012)Go Fullstack: JSF for Public Sites (CONFESS 2012)
Go Fullstack: JSF for Public Sites (CONFESS 2012)Michael Kurz
 
Node.js Development with Apache NetBeans
Node.js Development with Apache NetBeansNode.js Development with Apache NetBeans
Node.js Development with Apache NetBeansRyan Cuprak
 
MWLUG 2015 - AD114 Take Your XPages Development to the Next Level
MWLUG 2015 - AD114 Take Your XPages Development to the Next LevelMWLUG 2015 - AD114 Take Your XPages Development to the Next Level
MWLUG 2015 - AD114 Take Your XPages Development to the Next Levelbalassaitis
 
Getting Started with jQuery
Getting Started with jQueryGetting Started with jQuery
Getting Started with jQueryAkshay Mathur
 
J query presentation
J query presentationJ query presentation
J query presentationakanksha17
 

What's hot (20)

Local storage in Web apps
Local storage in Web appsLocal storage in Web apps
Local storage in Web apps
 
Mule 2.2.1-users-guide
Mule 2.2.1-users-guideMule 2.2.1-users-guide
Mule 2.2.1-users-guide
 
React js
React jsReact js
React js
 
RESTful OSGi Web Applications Tutorial - Khawaja S Shams & Jeff Norris
RESTful OSGi Web Applications Tutorial - Khawaja S Shams & Jeff NorrisRESTful OSGi Web Applications Tutorial - Khawaja S Shams & Jeff Norris
RESTful OSGi Web Applications Tutorial - Khawaja S Shams & Jeff Norris
 
Handlebars & Require JS
Handlebars  & Require JSHandlebars  & Require JS
Handlebars & Require JS
 
D2W Stateful Controllers
D2W Stateful ControllersD2W Stateful Controllers
D2W Stateful Controllers
 
Apache Wicket Web Framework
Apache Wicket Web FrameworkApache Wicket Web Framework
Apache Wicket Web Framework
 
MVC 1.0 als alternative Webtechnologie
MVC 1.0 als alternative WebtechnologieMVC 1.0 als alternative Webtechnologie
MVC 1.0 als alternative Webtechnologie
 
Go Fullstack: JSF for Public Sites (CONFESS 2013)
Go Fullstack: JSF for Public Sites (CONFESS 2013)Go Fullstack: JSF for Public Sites (CONFESS 2013)
Go Fullstack: JSF for Public Sites (CONFESS 2013)
 
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter PilgrimJavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
 
Angular Data Binding
Angular Data BindingAngular Data Binding
Angular Data Binding
 
HTML5 and CSS3 refresher
HTML5 and CSS3 refresherHTML5 and CSS3 refresher
HTML5 and CSS3 refresher
 
Web Components v1
Web Components v1Web Components v1
Web Components v1
 
Building and Managing Projects with Maven
Building and Managing Projects with MavenBuilding and Managing Projects with Maven
Building and Managing Projects with Maven
 
Go Fullstack: JSF for Public Sites (CONFESS 2012)
Go Fullstack: JSF for Public Sites (CONFESS 2012)Go Fullstack: JSF for Public Sites (CONFESS 2012)
Go Fullstack: JSF for Public Sites (CONFESS 2012)
 
Node.js Development with Apache NetBeans
Node.js Development with Apache NetBeansNode.js Development with Apache NetBeans
Node.js Development with Apache NetBeans
 
Angular beans
Angular beansAngular beans
Angular beans
 
MWLUG 2015 - AD114 Take Your XPages Development to the Next Level
MWLUG 2015 - AD114 Take Your XPages Development to the Next LevelMWLUG 2015 - AD114 Take Your XPages Development to the Next Level
MWLUG 2015 - AD114 Take Your XPages Development to the Next Level
 
Getting Started with jQuery
Getting Started with jQueryGetting Started with jQuery
Getting Started with jQuery
 
J query presentation
J query presentationJ query presentation
J query presentation
 

Similar to D2W Branding Using jQuery ThemeRoller

Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD CombinationLotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD CombinationSean Burgess
 
From Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) AgainFrom Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) Againjonknapp
 
Web components - An Introduction
Web components - An IntroductionWeb components - An Introduction
Web components - An Introductioncherukumilli2
 
Knockout implementing mvvm in java script with knockout
Knockout implementing mvvm in java script with knockoutKnockout implementing mvvm in java script with knockout
Knockout implementing mvvm in java script with knockoutAndoni Arroyo
 
JavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadJavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadRuss Fustino
 
ME vs WEB - AngularJS Fundamentals
ME vs WEB - AngularJS FundamentalsME vs WEB - AngularJS Fundamentals
ME vs WEB - AngularJS FundamentalsAviran Cohen
 
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012crokitta
 
jQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesjQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesMark Roden
 
J query presentation
J query presentationJ query presentation
J query presentationsawarkar17
 
MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!Roberto Messora
 
Rp 6 session 2 naresh bhatia
Rp 6  session 2 naresh bhatiaRp 6  session 2 naresh bhatia
Rp 6 session 2 naresh bhatiasapientindia
 
Jquery
Jquery Jquery
Jquery eginni
 
JQuery mobile
JQuery mobileJQuery mobile
JQuery mobileGary Yeh
 
Introduction to jquery mobile with Phonegap
Introduction to jquery mobile with PhonegapIntroduction to jquery mobile with Phonegap
Introduction to jquery mobile with PhonegapRakesh Jha
 

Similar to D2W Branding Using jQuery ThemeRoller (20)

Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD CombinationLotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
 
WOdka
WOdkaWOdka
WOdka
 
DirectToWeb 2.0
DirectToWeb 2.0DirectToWeb 2.0
DirectToWeb 2.0
 
From Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) AgainFrom Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) Again
 
Web components - An Introduction
Web components - An IntroductionWeb components - An Introduction
Web components - An Introduction
 
Knockout implementing mvvm in java script with knockout
Knockout implementing mvvm in java script with knockoutKnockout implementing mvvm in java script with knockout
Knockout implementing mvvm in java script with knockout
 
JavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadJavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) upload
 
ME vs WEB - AngularJS Fundamentals
ME vs WEB - AngularJS FundamentalsME vs WEB - AngularJS Fundamentals
ME vs WEB - AngularJS Fundamentals
 
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
 
Jquery Mobile
Jquery MobileJquery Mobile
Jquery Mobile
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
jQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesjQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPages
 
J query presentation
J query presentationJ query presentation
J query presentation
 
J query module1
J query module1J query module1
J query module1
 
MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!
 
Rp 6 session 2 naresh bhatia
Rp 6  session 2 naresh bhatiaRp 6  session 2 naresh bhatia
Rp 6 session 2 naresh bhatia
 
Jquery
Jquery Jquery
Jquery
 
JQuery mobile
JQuery mobileJQuery mobile
JQuery mobile
 
Introduction to jquery mobile with Phonegap
Introduction to jquery mobile with PhonegapIntroduction to jquery mobile with Phonegap
Introduction to jquery mobile with Phonegap
 
Wicket Intro
Wicket IntroWicket Intro
Wicket Intro
 

More from WO Community

In memory OLAP engine
In memory OLAP engineIn memory OLAP engine
In memory OLAP engineWO Community
 
Using Nagios to monitor your WO systems
Using Nagios to monitor your WO systemsUsing Nagios to monitor your WO systems
Using Nagios to monitor your WO systemsWO Community
 
Build and deployment
Build and deploymentBuild and deployment
Build and deploymentWO Community
 
Reenabling SOAP using ERJaxWS
Reenabling SOAP using ERJaxWSReenabling SOAP using ERJaxWS
Reenabling SOAP using ERJaxWSWO Community
 
Chaining the Beast - Testing Wonder Applications in the Real World
Chaining the Beast - Testing Wonder Applications in the Real WorldChaining the Beast - Testing Wonder Applications in the Real World
Chaining the Beast - Testing Wonder Applications in the Real WorldWO Community
 
Deploying WO on Windows
Deploying WO on WindowsDeploying WO on Windows
Deploying WO on WindowsWO Community
 
Unit Testing with WOUnit
Unit Testing with WOUnitUnit Testing with WOUnit
Unit Testing with WOUnitWO Community
 
Advanced Apache Cayenne
Advanced Apache CayenneAdvanced Apache Cayenne
Advanced Apache CayenneWO Community
 
Migrating existing Projects to Wonder
Migrating existing Projects to WonderMigrating existing Projects to Wonder
Migrating existing Projects to WonderWO Community
 
iOS for ERREST - alternative version
iOS for ERREST - alternative versioniOS for ERREST - alternative version
iOS for ERREST - alternative versionWO Community
 
"Framework Principal" pattern
"Framework Principal" pattern"Framework Principal" pattern
"Framework Principal" patternWO Community
 
Filtering data with D2W
Filtering data with D2W Filtering data with D2W
Filtering data with D2W WO Community
 
Localizing your apps for multibyte languages
Localizing your apps for multibyte languagesLocalizing your apps for multibyte languages
Localizing your apps for multibyte languagesWO Community
 
CMS / BLOG and SnoWOman
CMS / BLOG and SnoWOmanCMS / BLOG and SnoWOman
CMS / BLOG and SnoWOmanWO Community
 

More from WO Community (20)

KAAccessControl
KAAccessControlKAAccessControl
KAAccessControl
 
In memory OLAP engine
In memory OLAP engineIn memory OLAP engine
In memory OLAP engine
 
Using Nagios to monitor your WO systems
Using Nagios to monitor your WO systemsUsing Nagios to monitor your WO systems
Using Nagios to monitor your WO systems
 
Build and deployment
Build and deploymentBuild and deployment
Build and deployment
 
High availability
High availabilityHigh availability
High availability
 
Reenabling SOAP using ERJaxWS
Reenabling SOAP using ERJaxWSReenabling SOAP using ERJaxWS
Reenabling SOAP using ERJaxWS
 
Chaining the Beast - Testing Wonder Applications in the Real World
Chaining the Beast - Testing Wonder Applications in the Real WorldChaining the Beast - Testing Wonder Applications in the Real World
Chaining the Beast - Testing Wonder Applications in the Real World
 
Deploying WO on Windows
Deploying WO on WindowsDeploying WO on Windows
Deploying WO on Windows
 
Unit Testing with WOUnit
Unit Testing with WOUnitUnit Testing with WOUnit
Unit Testing with WOUnit
 
Life outside WO
Life outside WOLife outside WO
Life outside WO
 
Advanced Apache Cayenne
Advanced Apache CayenneAdvanced Apache Cayenne
Advanced Apache Cayenne
 
Migrating existing Projects to Wonder
Migrating existing Projects to WonderMigrating existing Projects to Wonder
Migrating existing Projects to Wonder
 
iOS for ERREST - alternative version
iOS for ERREST - alternative versioniOS for ERREST - alternative version
iOS for ERREST - alternative version
 
iOS for ERREST
iOS for ERRESTiOS for ERREST
iOS for ERREST
 
"Framework Principal" pattern
"Framework Principal" pattern"Framework Principal" pattern
"Framework Principal" pattern
 
Filtering data with D2W
Filtering data with D2W Filtering data with D2W
Filtering data with D2W
 
WOver
WOverWOver
WOver
 
Localizing your apps for multibyte languages
Localizing your apps for multibyte languagesLocalizing your apps for multibyte languages
Localizing your apps for multibyte languages
 
ERGroupware
ERGroupwareERGroupware
ERGroupware
 
CMS / BLOG and SnoWOman
CMS / BLOG and SnoWOmanCMS / BLOG and SnoWOman
CMS / BLOG and SnoWOman
 

Recently uploaded

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Recently uploaded (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

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