SlideShare a Scribd company logo
1 of 23
www.effichange.com 
EffiChange 
The EffiChange XPager Suite: Understanding XPages Scaffolding 
Yuval Shimoni 
yuval@effichange.com
EffiChange 
www.effichange.com 
What we’ll cover… 
Why Scaffolding 
What is Scaffolding 
Examples of Scaffolding in XPages Controls 
The Future of Scaffolding 
Demo of Scaffolding in XPages Applications 
Q&A
EffiChange 
www.effichange.com 
Why Scaffolding 
User Interface (UI) and User Experience (UX) Design are constantly evolving. 
However, in the enterprise, modifications made to existing applications are mainly the result of business requirements and only provide minor UI tweaks. 
In IBM Domino XPages projects of dozens of applications, being able to create a consistent user interface can mean creating an application UI & UX Design that will be in-development for years. 
With XPages, there are things that can be done to keep applications evolving with tomorrow's trends. 
We call one of those methods "scaffolding“.
EffiChange 
www.effichange.com 
What is Scaffolding 
Most "layout"-style Custom Controls in XPages are written to either match a specific UI Framework (OneUI) or a specific layout need. Both of these approaches have their negatives. 
The Danger of Layout controls 
Perception is Reality, where XPages is confused with OneUI 
Potential negatives of OneUI Layouts 
 It’s too much and has issues with mobile devices 
Potential negatives of Custom (specific need) Layouts 
Mainly the long term maintenance 
A better way? 
Let's examine a layout grid that could address the application layouts for 99% of our projects.
EffiChange 
www.effichange.com 
What is Scaffolding 
We have a "top", "leading", "center", "trailing", and "bottom" grid layout. 
These layout "sections" can house corporate branding information, navigation, content, links to other applications and required content, and even corporate legal disclaimers. 
This "headline" layout will address the needs for the majority of your applications...
EffiChange 
www.effichange.com 
What is Scaffolding 
but what if you wanted the "leading" and "trailing" sections to look more like this? 
This "sidebar" layout has the "top and "bottom" sections inline with the "center" section, while the "leading" and "trailing" sections align with the top of the "top" and bottom of the "bottom" sections.
EffiChange 
www.effichange.com 
What is Scaffolding 
What if we didn't want a "trailing" section?
EffiChange 
www.effichange.com 
What is Scaffolding 
What if we wanted all of the sections, but we're using a responsive layout version of the Twitter Bootstrap JS & CSS UI Framework, and we want to make sure that the sections do not "bleed" into each other?
EffiChange 
www.effichange.com 
What is Scaffolding 
All of these layout options can be done with a single XPages "layout"- style Custom Control, and that's where "scaffolding" comes in. 
The XPager Suite generates "scaffolding" controls that are used to create "layout"-style Custom Control, which is further modified via Themes to get the exact layout we need for a given application.
EffiChange 
www.effichange.com 
What is Scaffolding 
The resulting "scaffolding"-based "layout" Custom Control looks like this: 
That is not to say that the application will use this exact layout. In fact, it is absolutely expected that an application-specific Theme. In the app.theme, we'll control exactly what is sent to the browser by setting rendered logic on specific sections and using the disableOutputTag property on others.
EffiChange 
www.effichange.com 
Examples of Scaffolding in XPager XPages Controls 
The XPages XML for our generated "scaffolding"-based "layout"-style Custom Control:
EffiChange 
www.effichange.com 
Examples of Scaffolding in XPager XPages Controls 
Note that the controls use the following standards: 
.container > .content 
These xp:panel controls use a container > content pairing for their setup. This is critical to control the markup being sent to the browser while accounting for future UI Framework structural/layout markup requirements. 
layout.content.row > row content 
The "top" section, combination of "leading", "center", and "trailing" sections, and "bottom" section are contained within their own xp:panel using a layout.content.row Theme ID. This is required for those UI Frameworks (Twitter Bootstrap, Foundation, etc.) that use Responsive Web Design (RWD) techniques and require that like-content be set on the same line. For example, responsive bootstrap could potentially merge the "top" and "leading" sections onto the same line on page resize, which would more than likely break the user interface and confuse the user experience. 
borderContainer.theme 
The borderContainer.theme uses the above "layout" controls to create a Dojo dijit.layout.BorderContainer-based layout.
EffiChange 
www.effichange.com 
Examples of Scaffolding in XPages Controls 
Here is a table that shows which controls are rendered (disableOutputTag=true and/or rendered="false"), what HTML Element they generate, and which HTML Element Attributes they are given. 
themeId 
Rendered 
HTML Element 
HTML Attributes 
layout.container 
true 
DIV 
dojoType="dijit.layout.BorderContainer" 
dojoAttributes= 
design="headline" 
gutters="true" 
liveSplitters="true" 
layout.content 
false 
layout.content.row 
false 
layout.content.top.container 
true 
DIV 
dojoType="dijit.layout.ContentPane" 
dojoAttributes= 
region="top" 
layout.content.top.content 
false 
layout.content.leading.container 
true 
DIV 
dojoType="dijit.layout.ContentPane" 
dojoAttributes= 
region="leading" 
layout.content.leading.content 
false 
layout.content.center.container 
true 
DIV 
dojoType="dijit.layout.ContentPane" 
dojoAttributes= 
region="center" 
layout.content.center.content 
false 
layout.content.trailing.container 
true 
DIV 
dojoType="dijit.layout.ContentPane" 
dojoAttributes= 
region="trailing" 
layout.content.trailing.content 
false 
layout.content.bottom.container 
true 
DIV 
dojoType="dijit.layout.ContentPane" 
dojoAttributes= 
region="bottom" 
layout.content.bottom.content 
false
EffiChange 
www.effichange.com 
Examples of Scaffolding in XPager XPages Controls 
When you use the specific "app.theme“ to customize the layout further, you can get this XPager example using the generated Border Container Theme:
EffiChange 
www.effichange.com 
Examples of Scaffolding in XPages Controls - bootstrap.theme 
The bootstrap.theme uses the "layout" controls to create a simple HTML DIV and SPAN Element- based layout, that uses the Twitter Bootstrap UI Framework. Here is a table that shows which controls are rendered (disableOutputTag=true and/or rendered="false"), what HTML Element they generate, and which HTML Element Attributes they are given. 
themeId 
Rendered 
HTML Element 
HTML Attributes 
layout.container 
True 
DIV 
class="container-fluid" 
layout.content 
False 
layout.content.row 
True 
DIV 
class="row-fluid" 
layout.content.top.container 
False 
layout.content.top.content 
True 
DIV 
class="span12" 
layout.content.leading.container 
True 
DIV 
class="span3" 
layout.content.leading.content 
False 
layout.content.center.container 
True 
DIV 
class="span9" 
layout.content.center.content 
False 
layout.content.trailing.container 
False 
layout.content.trailing.content 
False 
layout.content.bottom.container 
True 
DIV 
class="span12" 
layout.content.bottom.content 
False
EffiChange 
www.effichange.com 
Examples of Scaffolding in XPages Controls 
When you use the specific "app.theme“ to customize the layout even further, you can get the following XPager example using the generated Bootstrap 3 Theme:
EffiChange 
www.effichange.com 
The Future of Scaffolding 
Use a Foundation Theme for XPages with the same exact "layout"-style Custom Control that will enable users to significantly change the user interface of an application without making a single change to the XPages markup . 
Populate the Dojo dijit.layout.BorderContainer ContentPane sections by setting the "href" property (i.e. populating those sections of the application via AJAX), over-writing the XPages markup to evolve the applications, and more. 
This enables users to install Themes on the Domino server and simply roll out updates to the frameworks that they are using or completely evolve the application without having to touch the XPages markup and rebuild the Notes database.
EffiChange 
www.effichange.com 
Understanding XPages Scaffolding 
Demo of XPager Generated Applications Using Scaffolding
EffiChange 
www.effichange.com 
IBM Document Library using the XPager Border Container Theme
EffiChange 
www.effichange.com 
IBM Document Library using the XPager Border Container Extended Theme
EffiChange 
www.effichange.com 
IBM Document Library using the XPager Bootstrap 3 Theme
EffiChange 
www.effichange.com 
IBM Document Library using the XPager Bootstrap 3 Theme on iPhone 6
EffiChange 
www.effichange.com 
Understanding XPages Scaffolding 
For more Information visit 
www.effichange.com 
Q&A

More Related Content

What's hot

How to Create Module to Track Affiliate Conversions?
How to Create Module to Track Affiliate Conversions?How to Create Module to Track Affiliate Conversions?
How to Create Module to Track Affiliate Conversions?damienwoods
 
Hands-On Workshop: Introduction to Coding for on Force.com for Admins and Non...
Hands-On Workshop: Introduction to Coding for on Force.com for Admins and Non...Hands-On Workshop: Introduction to Coding for on Force.com for Admins and Non...
Hands-On Workshop: Introduction to Coding for on Force.com for Admins and Non...Salesforce Developers
 
Ace shop quick_guide
Ace shop quick_guideAce shop quick_guide
Ace shop quick_guideAndy Burrows
 
Shop by Brand User Manual (Aitoc)
Shop by Brand User Manual (Aitoc)Shop by Brand User Manual (Aitoc)
Shop by Brand User Manual (Aitoc)Aitoc, Inc
 
O365 Saturday - Deepdive SharePoint Client Side Rendering
O365 Saturday - Deepdive SharePoint Client Side RenderingO365 Saturday - Deepdive SharePoint Client Side Rendering
O365 Saturday - Deepdive SharePoint Client Side RenderingRiwut Libinuko
 
Sales force certification-lab
Sales force certification-labSales force certification-lab
Sales force certification-labAmit Sharma
 
Rails MVC by Sergiy Koshovyi
Rails MVC by Sergiy KoshovyiRails MVC by Sergiy Koshovyi
Rails MVC by Sergiy KoshovyiPivorak MeetUp
 
Installing Oracle 11g and Oracle Apex 5.1 ( Easy Way To install)
Installing Oracle 11g and Oracle Apex 5.1 ( Easy Way To install)Installing Oracle 11g and Oracle Apex 5.1 ( Easy Way To install)
Installing Oracle 11g and Oracle Apex 5.1 ( Easy Way To install)Abdul Rafay
 
Lightning Experience with Visualforce Best Practices
Lightning Experience with Visualforce Best PracticesLightning Experience with Visualforce Best Practices
Lightning Experience with Visualforce Best PracticesSalesforce Developers
 
Tips for-coding-and-designing-usabl
Tips for-coding-and-designing-usablTips for-coding-and-designing-usabl
Tips for-coding-and-designing-usablDaniel Downs
 
Exponent CMS becomes more SEO friendly
Exponent CMS becomes more SEO friendlyExponent CMS becomes more SEO friendly
Exponent CMS becomes more SEO friendlyChris Everett
 
AtlasCamp 2010: Making Confluence Macros Easy (for the user) - Dave Taylor
AtlasCamp 2010: Making Confluence Macros Easy (for the user) - Dave TaylorAtlasCamp 2010: Making Confluence Macros Easy (for the user) - Dave Taylor
AtlasCamp 2010: Making Confluence Macros Easy (for the user) - Dave TaylorAtlassian
 
Transform SharePoint default list forms with HTML, CSS and JavaScript
Transform SharePoint default list forms with HTML, CSS and JavaScriptTransform SharePoint default list forms with HTML, CSS and JavaScript
Transform SharePoint default list forms with HTML, CSS and JavaScriptJohn Calvert
 
Rits Brown Bag - Salesforce Lightning
Rits Brown Bag - Salesforce LightningRits Brown Bag - Salesforce Lightning
Rits Brown Bag - Salesforce LightningRight IT Services
 
Getting Started with Iron Speed Designer
Getting Started with Iron Speed DesignerGetting Started with Iron Speed Designer
Getting Started with Iron Speed DesignerIron Speed
 
Power Automate Techniques that "Saved Our Bacon"
Power Automate Techniques that "Saved Our Bacon"Power Automate Techniques that "Saved Our Bacon"
Power Automate Techniques that "Saved Our Bacon"Thomas Duff
 
Applications: A Series of States
Applications: A Series of StatesApplications: A Series of States
Applications: A Series of StatesTrek Glowacki
 

What's hot (20)

Intro to Application Express
Intro to Application ExpressIntro to Application Express
Intro to Application Express
 
How to Create Module to Track Affiliate Conversions?
How to Create Module to Track Affiliate Conversions?How to Create Module to Track Affiliate Conversions?
How to Create Module to Track Affiliate Conversions?
 
Hands-On Workshop: Introduction to Coding for on Force.com for Admins and Non...
Hands-On Workshop: Introduction to Coding for on Force.com for Admins and Non...Hands-On Workshop: Introduction to Coding for on Force.com for Admins and Non...
Hands-On Workshop: Introduction to Coding for on Force.com for Admins and Non...
 
Ace shop quick_guide
Ace shop quick_guideAce shop quick_guide
Ace shop quick_guide
 
Shop by Brand User Manual (Aitoc)
Shop by Brand User Manual (Aitoc)Shop by Brand User Manual (Aitoc)
Shop by Brand User Manual (Aitoc)
 
O365 Saturday - Deepdive SharePoint Client Side Rendering
O365 Saturday - Deepdive SharePoint Client Side RenderingO365 Saturday - Deepdive SharePoint Client Side Rendering
O365 Saturday - Deepdive SharePoint Client Side Rendering
 
Sales force certification-lab
Sales force certification-labSales force certification-lab
Sales force certification-lab
 
Theme guide
Theme guideTheme guide
Theme guide
 
Rails MVC by Sergiy Koshovyi
Rails MVC by Sergiy KoshovyiRails MVC by Sergiy Koshovyi
Rails MVC by Sergiy Koshovyi
 
Installing Oracle 11g and Oracle Apex 5.1 ( Easy Way To install)
Installing Oracle 11g and Oracle Apex 5.1 ( Easy Way To install)Installing Oracle 11g and Oracle Apex 5.1 ( Easy Way To install)
Installing Oracle 11g and Oracle Apex 5.1 ( Easy Way To install)
 
Presenters in Rails
Presenters in RailsPresenters in Rails
Presenters in Rails
 
Lightning Experience with Visualforce Best Practices
Lightning Experience with Visualforce Best PracticesLightning Experience with Visualforce Best Practices
Lightning Experience with Visualforce Best Practices
 
Tips for-coding-and-designing-usabl
Tips for-coding-and-designing-usablTips for-coding-and-designing-usabl
Tips for-coding-and-designing-usabl
 
Exponent CMS becomes more SEO friendly
Exponent CMS becomes more SEO friendlyExponent CMS becomes more SEO friendly
Exponent CMS becomes more SEO friendly
 
AtlasCamp 2010: Making Confluence Macros Easy (for the user) - Dave Taylor
AtlasCamp 2010: Making Confluence Macros Easy (for the user) - Dave TaylorAtlasCamp 2010: Making Confluence Macros Easy (for the user) - Dave Taylor
AtlasCamp 2010: Making Confluence Macros Easy (for the user) - Dave Taylor
 
Transform SharePoint default list forms with HTML, CSS and JavaScript
Transform SharePoint default list forms with HTML, CSS and JavaScriptTransform SharePoint default list forms with HTML, CSS and JavaScript
Transform SharePoint default list forms with HTML, CSS and JavaScript
 
Rits Brown Bag - Salesforce Lightning
Rits Brown Bag - Salesforce LightningRits Brown Bag - Salesforce Lightning
Rits Brown Bag - Salesforce Lightning
 
Getting Started with Iron Speed Designer
Getting Started with Iron Speed DesignerGetting Started with Iron Speed Designer
Getting Started with Iron Speed Designer
 
Power Automate Techniques that "Saved Our Bacon"
Power Automate Techniques that "Saved Our Bacon"Power Automate Techniques that "Saved Our Bacon"
Power Automate Techniques that "Saved Our Bacon"
 
Applications: A Series of States
Applications: A Series of StatesApplications: A Series of States
Applications: A Series of States
 

Similar to XPages Scaffolding Controls Simplify Layouts

Create an application with ember
Create an application with ember Create an application with ember
Create an application with ember Chandra Sekar
 
Metamorphosis from Forms to Java: A technical lead's perspective, part II
Metamorphosis from Forms to Java:  A technical lead's perspective, part IIMetamorphosis from Forms to Java:  A technical lead's perspective, part II
Metamorphosis from Forms to Java: A technical lead's perspective, part IIMichael Fons
 
Demystifying S-Controls and AJAX
Demystifying S-Controls and AJAXDemystifying S-Controls and AJAX
Demystifying S-Controls and AJAXdreamforce2006
 
Rp 6 session 2 naresh bhatia
Rp 6  session 2 naresh bhatiaRp 6  session 2 naresh bhatia
Rp 6 session 2 naresh bhatiasapientindia
 
Better User Experience with .NET
Better User Experience with .NETBetter User Experience with .NET
Better User Experience with .NETPeter Gfader
 
A Guide to Creating a Great Custom Tailwind Sidebar
A Guide to Creating a Great Custom Tailwind SidebarA Guide to Creating a Great Custom Tailwind Sidebar
A Guide to Creating a Great Custom Tailwind SidebarRonDosh
 
ASP .NET MVC
ASP .NET MVC ASP .NET MVC
ASP .NET MVC eldorina
 
Exploring Adobe Flex
Exploring Adobe Flex Exploring Adobe Flex
Exploring Adobe Flex senthil0809
 
Visualforce report
Visualforce reportVisualforce report
Visualforce reportRinku Saini
 
Sharepoint conference 3 - continental
Sharepoint conference 3 - continentalSharepoint conference 3 - continental
Sharepoint conference 3 - continentalMIchael Carey
 
Share point 2010-uiimprovements
Share point 2010-uiimprovementsShare point 2010-uiimprovements
Share point 2010-uiimprovementsLiquidHub
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAAiman Hud
 
Alt tab - better apex tabs
Alt tab - better apex tabsAlt tab - better apex tabs
Alt tab - better apex tabsEnkitec
 

Similar to XPages Scaffolding Controls Simplify Layouts (20)

Create an application with ember
Create an application with ember Create an application with ember
Create an application with ember
 
Metamorphosis from Forms to Java: A technical lead's perspective, part II
Metamorphosis from Forms to Java:  A technical lead's perspective, part IIMetamorphosis from Forms to Java:  A technical lead's perspective, part II
Metamorphosis from Forms to Java: A technical lead's perspective, part II
 
Demystifying S-Controls and AJAX
Demystifying S-Controls and AJAXDemystifying S-Controls and AJAX
Demystifying S-Controls and AJAX
 
Rp 6 session 2 naresh bhatia
Rp 6  session 2 naresh bhatiaRp 6  session 2 naresh bhatia
Rp 6 session 2 naresh bhatia
 
Better User Experience with .NET
Better User Experience with .NETBetter User Experience with .NET
Better User Experience with .NET
 
Yii php framework_honey
Yii php framework_honeyYii php framework_honey
Yii php framework_honey
 
A Guide to Creating a Great Custom Tailwind Sidebar
A Guide to Creating a Great Custom Tailwind SidebarA Guide to Creating a Great Custom Tailwind Sidebar
A Guide to Creating a Great Custom Tailwind Sidebar
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Knockout in action
Knockout in actionKnockout in action
Knockout in action
 
ASP .NET MVC
ASP .NET MVC ASP .NET MVC
ASP .NET MVC
 
react-en.pdf
react-en.pdfreact-en.pdf
react-en.pdf
 
Exploring Adobe Flex
Exploring Adobe Flex Exploring Adobe Flex
Exploring Adobe Flex
 
Visualforce report
Visualforce reportVisualforce report
Visualforce report
 
Sharepoint conference 3 - continental
Sharepoint conference 3 - continentalSharepoint conference 3 - continental
Sharepoint conference 3 - continental
 
Share point 2010-uiimprovements
Share point 2010-uiimprovementsShare point 2010-uiimprovements
Share point 2010-uiimprovements
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA
 
SiteMesh
SiteMeshSiteMesh
SiteMesh
 
Jsf intro
Jsf introJsf intro
Jsf intro
 
Alt tab - better apex tabs
Alt tab - better apex tabsAlt tab - better apex tabs
Alt tab - better apex tabs
 
Asp.Net MVC Intro
Asp.Net MVC IntroAsp.Net MVC Intro
Asp.Net MVC Intro
 

Recently uploaded

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Recently uploaded (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

XPages Scaffolding Controls Simplify Layouts

  • 1. www.effichange.com EffiChange The EffiChange XPager Suite: Understanding XPages Scaffolding Yuval Shimoni yuval@effichange.com
  • 2. EffiChange www.effichange.com What we’ll cover… Why Scaffolding What is Scaffolding Examples of Scaffolding in XPages Controls The Future of Scaffolding Demo of Scaffolding in XPages Applications Q&A
  • 3. EffiChange www.effichange.com Why Scaffolding User Interface (UI) and User Experience (UX) Design are constantly evolving. However, in the enterprise, modifications made to existing applications are mainly the result of business requirements and only provide minor UI tweaks. In IBM Domino XPages projects of dozens of applications, being able to create a consistent user interface can mean creating an application UI & UX Design that will be in-development for years. With XPages, there are things that can be done to keep applications evolving with tomorrow's trends. We call one of those methods "scaffolding“.
  • 4. EffiChange www.effichange.com What is Scaffolding Most "layout"-style Custom Controls in XPages are written to either match a specific UI Framework (OneUI) or a specific layout need. Both of these approaches have their negatives. The Danger of Layout controls Perception is Reality, where XPages is confused with OneUI Potential negatives of OneUI Layouts  It’s too much and has issues with mobile devices Potential negatives of Custom (specific need) Layouts Mainly the long term maintenance A better way? Let's examine a layout grid that could address the application layouts for 99% of our projects.
  • 5. EffiChange www.effichange.com What is Scaffolding We have a "top", "leading", "center", "trailing", and "bottom" grid layout. These layout "sections" can house corporate branding information, navigation, content, links to other applications and required content, and even corporate legal disclaimers. This "headline" layout will address the needs for the majority of your applications...
  • 6. EffiChange www.effichange.com What is Scaffolding but what if you wanted the "leading" and "trailing" sections to look more like this? This "sidebar" layout has the "top and "bottom" sections inline with the "center" section, while the "leading" and "trailing" sections align with the top of the "top" and bottom of the "bottom" sections.
  • 7. EffiChange www.effichange.com What is Scaffolding What if we didn't want a "trailing" section?
  • 8. EffiChange www.effichange.com What is Scaffolding What if we wanted all of the sections, but we're using a responsive layout version of the Twitter Bootstrap JS & CSS UI Framework, and we want to make sure that the sections do not "bleed" into each other?
  • 9. EffiChange www.effichange.com What is Scaffolding All of these layout options can be done with a single XPages "layout"- style Custom Control, and that's where "scaffolding" comes in. The XPager Suite generates "scaffolding" controls that are used to create "layout"-style Custom Control, which is further modified via Themes to get the exact layout we need for a given application.
  • 10. EffiChange www.effichange.com What is Scaffolding The resulting "scaffolding"-based "layout" Custom Control looks like this: That is not to say that the application will use this exact layout. In fact, it is absolutely expected that an application-specific Theme. In the app.theme, we'll control exactly what is sent to the browser by setting rendered logic on specific sections and using the disableOutputTag property on others.
  • 11. EffiChange www.effichange.com Examples of Scaffolding in XPager XPages Controls The XPages XML for our generated "scaffolding"-based "layout"-style Custom Control:
  • 12. EffiChange www.effichange.com Examples of Scaffolding in XPager XPages Controls Note that the controls use the following standards: .container > .content These xp:panel controls use a container > content pairing for their setup. This is critical to control the markup being sent to the browser while accounting for future UI Framework structural/layout markup requirements. layout.content.row > row content The "top" section, combination of "leading", "center", and "trailing" sections, and "bottom" section are contained within their own xp:panel using a layout.content.row Theme ID. This is required for those UI Frameworks (Twitter Bootstrap, Foundation, etc.) that use Responsive Web Design (RWD) techniques and require that like-content be set on the same line. For example, responsive bootstrap could potentially merge the "top" and "leading" sections onto the same line on page resize, which would more than likely break the user interface and confuse the user experience. borderContainer.theme The borderContainer.theme uses the above "layout" controls to create a Dojo dijit.layout.BorderContainer-based layout.
  • 13. EffiChange www.effichange.com Examples of Scaffolding in XPages Controls Here is a table that shows which controls are rendered (disableOutputTag=true and/or rendered="false"), what HTML Element they generate, and which HTML Element Attributes they are given. themeId Rendered HTML Element HTML Attributes layout.container true DIV dojoType="dijit.layout.BorderContainer" dojoAttributes= design="headline" gutters="true" liveSplitters="true" layout.content false layout.content.row false layout.content.top.container true DIV dojoType="dijit.layout.ContentPane" dojoAttributes= region="top" layout.content.top.content false layout.content.leading.container true DIV dojoType="dijit.layout.ContentPane" dojoAttributes= region="leading" layout.content.leading.content false layout.content.center.container true DIV dojoType="dijit.layout.ContentPane" dojoAttributes= region="center" layout.content.center.content false layout.content.trailing.container true DIV dojoType="dijit.layout.ContentPane" dojoAttributes= region="trailing" layout.content.trailing.content false layout.content.bottom.container true DIV dojoType="dijit.layout.ContentPane" dojoAttributes= region="bottom" layout.content.bottom.content false
  • 14. EffiChange www.effichange.com Examples of Scaffolding in XPager XPages Controls When you use the specific "app.theme“ to customize the layout further, you can get this XPager example using the generated Border Container Theme:
  • 15. EffiChange www.effichange.com Examples of Scaffolding in XPages Controls - bootstrap.theme The bootstrap.theme uses the "layout" controls to create a simple HTML DIV and SPAN Element- based layout, that uses the Twitter Bootstrap UI Framework. Here is a table that shows which controls are rendered (disableOutputTag=true and/or rendered="false"), what HTML Element they generate, and which HTML Element Attributes they are given. themeId Rendered HTML Element HTML Attributes layout.container True DIV class="container-fluid" layout.content False layout.content.row True DIV class="row-fluid" layout.content.top.container False layout.content.top.content True DIV class="span12" layout.content.leading.container True DIV class="span3" layout.content.leading.content False layout.content.center.container True DIV class="span9" layout.content.center.content False layout.content.trailing.container False layout.content.trailing.content False layout.content.bottom.container True DIV class="span12" layout.content.bottom.content False
  • 16. EffiChange www.effichange.com Examples of Scaffolding in XPages Controls When you use the specific "app.theme“ to customize the layout even further, you can get the following XPager example using the generated Bootstrap 3 Theme:
  • 17. EffiChange www.effichange.com The Future of Scaffolding Use a Foundation Theme for XPages with the same exact "layout"-style Custom Control that will enable users to significantly change the user interface of an application without making a single change to the XPages markup . Populate the Dojo dijit.layout.BorderContainer ContentPane sections by setting the "href" property (i.e. populating those sections of the application via AJAX), over-writing the XPages markup to evolve the applications, and more. This enables users to install Themes on the Domino server and simply roll out updates to the frameworks that they are using or completely evolve the application without having to touch the XPages markup and rebuild the Notes database.
  • 18. EffiChange www.effichange.com Understanding XPages Scaffolding Demo of XPager Generated Applications Using Scaffolding
  • 19. EffiChange www.effichange.com IBM Document Library using the XPager Border Container Theme
  • 20. EffiChange www.effichange.com IBM Document Library using the XPager Border Container Extended Theme
  • 21. EffiChange www.effichange.com IBM Document Library using the XPager Bootstrap 3 Theme
  • 22. EffiChange www.effichange.com IBM Document Library using the XPager Bootstrap 3 Theme on iPhone 6
  • 23. EffiChange www.effichange.com Understanding XPages Scaffolding For more Information visit www.effichange.com Q&A