SlideShare a Scribd company logo
Luc Bors, june 2013, ODTUG KScope 2013 New Orleans
Tips and Tricks for UI Reuse in Oracle ADF
Don't Reinvent the Wheel
Who Am I
• Luc Bors
• Principal Consultant
• AMIS Nieuwegein Netherlands
• Friends of Oracle & Java
• 5 Oracle ACE(D)
• Oracle Partner
Topics
• Reuse – ADF Controller and Faces
– Page Templates
– Declarative Components
– Stylesheets
– Task Flows
The (somewhat ugly)
Sample Application
Page Templates
• Specify the layout structure (of groups) of pages
– For example: top bar, side bar, footer
– Predefine placeholders for pages to inject their contents
• Page can be based on template
– It will provide the content for the placeholders (seen as facets)
– It can pass parameters to the template – for example for the title of the page or the
page bread crumb trail
Page Templates
• Centrally specifying the overall structure and some of the look & feel for
all or specific types of pages
• Can also be applied dynamically, depending on some context settings
– This allows a single page to be presented in different ways to different users or under
different conditions
– Templates allow different structure and component ordering for the same page
• Page Templates make maintenance of the overall layout structure much
easier
Page Templates
• Create a Page Template
– Embed one or more facetRef elements for the holes to be filled by the pages
based on the template
– Publish the template “API” – the input parameters it supports
• Create pages based on the template
– In these pages, provide content for the facets exposed by the template
– Provide values for input parameters supported by template
• At any point in time:
– change the template (reusing same facetRefs and parameters)
– change the facet contents in any page
– change template ref in a page (to template with same facets)
• Can be done dynamically
Defining the template
Building the Layout
Using the Attributes
The Template Definition
The Template UI components
Demo
Custom Components
• Compose reusable ‘packages’ for frequently occurring combinations of
ADF Faces/JSF components
– Declarative reuse for consistency and productivity
– Better encapsulation than page fragments
– Internally a declarative component is built out of a combination of JSF components
• Declarative components can be used like normal JSF components
– They expose a number of attributes (that are wired to attributes of the internal JSF
components)
– They may have facets (to embed other JSF components)
• Examples: LOV/DropDown Switcher, InputTime, Selection components for
static domains, Button bars
Custom Components
• Choose JSF Declarative Component in the New Gallery
• Specify the properties for the component
– Name, Package, TaglibName
– The attributes exposed to consumers of the components
• And default values for the attributes
– Methods – name and signature – to use for method bindings
– Names of the facets that are published (and that will be used to embed JSF content
inside the declarative component)
• Create the content of the Component by assembling JSF components –
much like you do for a Page Template
– Using facetRef components, #{attrs.<attrName>} and #{component.<methodName>}
Create Custom Component
Defining the Component
Building the UI
Demo
Stylesheets
Demo
Overview
• Reusable components – Bounded Task Flows
– Multi page, isolated memory scope
– Controller and flow logic, executing business logic
– Interface with input parameters and output events
– Dynamically switching between regions
– Role based authorization
– Transaction management
– Savepoints and Rollback support
• Unbounded Task Flow
– Bookmarking, …
Examples
Create a Bounded Task Flow
Taskflows
Building a Reusable Task Flow
Catalog
• Organizations may create a catalog of task flows
• Reusable services, encapsulated with clear
interfaces
– Input parameters
– Result
– Events published
• Such task flows can also be published by
– Third parties
– ‘the community’
Demo
Reusing Reusables:
ADF Libraries
• Sharing reusable assets
– Task Flows, Stylsheets, PageTemplates and Custom Components
– can be deployed and distributed through ADF Libraries (JAR files, design time)
– ADF Libraries are added to consuming applications
– When added, components from library can be reused in consuming application
ADF Libraries
• ADF Library enables you to reuse components:
– Package them into ADF Library JAR files
– Add them to a reusable component repository
– Add the library to a project to use its components
How does it work
• Deploy the project that contains the component(s) to an ADF Library JAR
– JDeveloper automatically adds the required Tag library for the declarative
component(s)
• Add the Library in consuming projects
– Via the Resource Palette
• Declarative components will show up on the Component Palette
– They are used like normal components with attributes, method bindings and facets
Deployment Profile
Library Deployment
Using an ADF Library
Libraries are added
What do we have so far ?
• ADF Page Template
• ADF Custom Component
• ADF Style sheet
• ADF Taskflow
Using the Template
Setting attribute values
Using the Stylesheet
Using the Custom Component
Using the Taskflow
Setting up the region
Refreshing the region
Demo
Lets make some Changes
• All Reusable components can be changed
• Will have immediate effect in the application
– After redeployment of the library
Other Topic : Reuse in ADF BC
• Declarative Model Driven functionality
– Most Recently Used, UI Hints
– List of Values, Model Driven Query Form
• Entity Object Business Logic Group
• View Criteria
– Multiple faces on the same ViewObject
• Shared Application Module
– Reuse data across sessions
Summary
• ADF Provides mechanisms for reuse
• Initial investment
• Payback time is later
• Considerations:
– Is it reusable ?
– Will I reuse it ?
• But also
– Modularity
– Maintainability
– Increased Productivity
Luc Bors, AMIS, The Netherlands
Luc.Bors@amis.nl
LucBors@gmail.com
Follow me on : @lucb_

More Related Content

What's hot

MVC Web Application
MVC Web ApplicationMVC Web Application
MVC Web Application
KLabCyscorpions-TechBlog
 
Oracle ADF Case Study
Oracle ADF Case StudyOracle ADF Case Study
Oracle ADF Case Study
Jean-Marc Desvaux
 
Oracle adf online training
Oracle adf online trainingOracle adf online training
Oracle adf online training
Glory IT Technologies Pvt. Ltd.
 
Coding the Salesforce1 Platform User Interface
Coding the Salesforce1 Platform User InterfaceCoding the Salesforce1 Platform User Interface
Coding the Salesforce1 Platform User Interface
Keir Bowden
 
SharePoint 2013 Client Side Rendering
SharePoint 2013 Client Side RenderingSharePoint 2013 Client Side Rendering
SharePoint 2013 Client Side Rendering
Bill Wolff
 
Dashbuilder community overview
Dashbuilder community overviewDashbuilder community overview
Dashbuilder community overview
dashbuilder
 
Oracle ADF Overview for Beginners
Oracle ADF Overview for BeginnersOracle ADF Overview for Beginners
Oracle ADF Overview for Beginners
Jithin Kuriakose
 
oracle oa framework training | oracle oa framework training courses | oa fram...
oracle oa framework training | oracle oa framework training courses | oa fram...oracle oa framework training | oracle oa framework training courses | oa fram...
oracle oa framework training | oracle oa framework training courses | oa fram...
Nancy Thomas
 
Using the Kentico CMS API
Using the Kentico CMS APIUsing the Kentico CMS API
Using the Kentico CMS API
Thomas Robbins
 
Oracle application framework (oaf) online training
Oracle application framework (oaf) online trainingOracle application framework (oaf) online training
Oracle application framework (oaf) online training
Glory IT Technologies Pvt. Ltd.
 
Introduction to JSLink in 2013
Introduction to JSLink in 2013Introduction to JSLink in 2013
Introduction to JSLink in 2013
Sparkhound Inc.
 
Best Oracle adf online training
Best Oracle adf online trainingBest Oracle adf online training
Best Oracle adf online training
Mindmajix Technologies
 
Using MVC with Kentico 8
Using MVC with Kentico 8Using MVC with Kentico 8
Using MVC with Kentico 8
Thomas Robbins
 
Uop bsa 411 week 3 individual design classes
Uop bsa 411 week 3 individual design classesUop bsa 411 week 3 individual design classes
Uop bsa 411 week 3 individual design classes
simonbaileyy
 
Kentico and MVC
Kentico and MVCKentico and MVC
Kentico and MVC
Cheryl MacDonald
 
4. Introduction to ASP.NET MVC - Part I
4. Introduction to ASP.NET MVC - Part I4. Introduction to ASP.NET MVC - Part I
4. Introduction to ASP.NET MVC - Part I
Rohit Rao
 
Uop bsa 411 week 3 individual design classes
Uop bsa 411 week 3 individual design classesUop bsa 411 week 3 individual design classes
Uop bsa 411 week 3 individual design classes
eyavagal
 
Project Management With SharePoint
Project Management With SharePointProject Management With SharePoint
Project Management With SharePoint
Steve Pucelik
 
Oracle fusion dba online training
Oracle fusion  dba online trainingOracle fusion  dba online training
Oracle fusion dba online training
Glory IT Technologies Pvt. Ltd.
 
Nw2004s What Is New
Nw2004s What Is NewNw2004s What Is New
Nw2004s What Is New
Guang Ying Yuan
 

What's hot (20)

MVC Web Application
MVC Web ApplicationMVC Web Application
MVC Web Application
 
Oracle ADF Case Study
Oracle ADF Case StudyOracle ADF Case Study
Oracle ADF Case Study
 
Oracle adf online training
Oracle adf online trainingOracle adf online training
Oracle adf online training
 
Coding the Salesforce1 Platform User Interface
Coding the Salesforce1 Platform User InterfaceCoding the Salesforce1 Platform User Interface
Coding the Salesforce1 Platform User Interface
 
SharePoint 2013 Client Side Rendering
SharePoint 2013 Client Side RenderingSharePoint 2013 Client Side Rendering
SharePoint 2013 Client Side Rendering
 
Dashbuilder community overview
Dashbuilder community overviewDashbuilder community overview
Dashbuilder community overview
 
Oracle ADF Overview for Beginners
Oracle ADF Overview for BeginnersOracle ADF Overview for Beginners
Oracle ADF Overview for Beginners
 
oracle oa framework training | oracle oa framework training courses | oa fram...
oracle oa framework training | oracle oa framework training courses | oa fram...oracle oa framework training | oracle oa framework training courses | oa fram...
oracle oa framework training | oracle oa framework training courses | oa fram...
 
Using the Kentico CMS API
Using the Kentico CMS APIUsing the Kentico CMS API
Using the Kentico CMS API
 
Oracle application framework (oaf) online training
Oracle application framework (oaf) online trainingOracle application framework (oaf) online training
Oracle application framework (oaf) online training
 
Introduction to JSLink in 2013
Introduction to JSLink in 2013Introduction to JSLink in 2013
Introduction to JSLink in 2013
 
Best Oracle adf online training
Best Oracle adf online trainingBest Oracle adf online training
Best Oracle adf online training
 
Using MVC with Kentico 8
Using MVC with Kentico 8Using MVC with Kentico 8
Using MVC with Kentico 8
 
Uop bsa 411 week 3 individual design classes
Uop bsa 411 week 3 individual design classesUop bsa 411 week 3 individual design classes
Uop bsa 411 week 3 individual design classes
 
Kentico and MVC
Kentico and MVCKentico and MVC
Kentico and MVC
 
4. Introduction to ASP.NET MVC - Part I
4. Introduction to ASP.NET MVC - Part I4. Introduction to ASP.NET MVC - Part I
4. Introduction to ASP.NET MVC - Part I
 
Uop bsa 411 week 3 individual design classes
Uop bsa 411 week 3 individual design classesUop bsa 411 week 3 individual design classes
Uop bsa 411 week 3 individual design classes
 
Project Management With SharePoint
Project Management With SharePointProject Management With SharePoint
Project Management With SharePoint
 
Oracle fusion dba online training
Oracle fusion  dba online trainingOracle fusion  dba online training
Oracle fusion dba online training
 
Nw2004s What Is New
Nw2004s What Is NewNw2004s What Is New
Nw2004s What Is New
 

Similar to Dont Reinvent the Wheel: Tips and Tricks for reuse in ADF

Siebel Open UI Presentation
Siebel Open UI PresentationSiebel Open UI Presentation
Siebel Open UI Presentation
Ajeeth Pingle
 
Visualforce
VisualforceVisualforce
Visualforce
Milind Gokhale
 
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSCross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Thomas Daly
 
Oracle Forms to APEX conversion tool
Oracle Forms to APEX conversion toolOracle Forms to APEX conversion tool
Oracle Forms to APEX conversion tool
Scott Wesley
 
Automating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShellAutomating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShell
Geoff Varosky
 
Bootstrapify Universal Theme
Bootstrapify Universal ThemeBootstrapify Universal Theme
Bootstrapify Universal Theme
Christian Rokitta
 
24221030 Enhance Oracle Sshr With Advanced Personalizations And Oa Fwk Extens...
24221030 Enhance Oracle Sshr With Advanced Personalizations And Oa Fwk Extens...24221030 Enhance Oracle Sshr With Advanced Personalizations And Oa Fwk Extens...
24221030 Enhance Oracle Sshr With Advanced Personalizations And Oa Fwk Extens...
Hossam El-Faxe
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection Navigation
Thomas Daly
 
AngularJS
AngularJSAngularJS
AngularJS
Yogesh L
 
Client Side MVC with Backbone and Rails
Client Side MVC with Backbone and RailsClient Side MVC with Backbone and Rails
Client Side MVC with Backbone and Rails
Tom Z Zeng
 
Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012
Dimitri de Putte
 
Apex basics-for Beginners
Apex basics-for BeginnersApex basics-for Beginners
Apex basics-for Beginners
hrakhra
 
Using js link and display templates
Using js link and display templatesUsing js link and display templates
Using js link and display templates
Paul Hunt
 
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Asish Padhy
 
Maintainable Sitecore Solutions
Maintainable Sitecore SolutionsMaintainable Sitecore Solutions
Maintainable Sitecore Solutions
Thomas Eldblom
 
CUST-3 Document Management with Share
CUST-3 Document Management with ShareCUST-3 Document Management with Share
CUST-3 Document Management with Share
Alfresco Software
 
Creation&imitation
Creation&imitationCreation&imitation
Creation&imitation
Tae Young Lee
 
Essentials for the SharePoint Power User - SharePoint Engage Raleigh 2017
Essentials for the SharePoint Power User - SharePoint Engage Raleigh 2017Essentials for the SharePoint Power User - SharePoint Engage Raleigh 2017
Essentials for the SharePoint Power User - SharePoint Engage Raleigh 2017
Drew Madelung
 
SFDC UI - Introduction to Visualforce
SFDC UI -  Introduction to VisualforceSFDC UI -  Introduction to Visualforce
SFDC UI - Introduction to Visualforce
Sujit Kumar
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
Jussi Pohjolainen
 

Similar to Dont Reinvent the Wheel: Tips and Tricks for reuse in ADF (20)

Siebel Open UI Presentation
Siebel Open UI PresentationSiebel Open UI Presentation
Siebel Open UI Presentation
 
Visualforce
VisualforceVisualforce
Visualforce
 
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSCross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
 
Oracle Forms to APEX conversion tool
Oracle Forms to APEX conversion toolOracle Forms to APEX conversion tool
Oracle Forms to APEX conversion tool
 
Automating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShellAutomating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShell
 
Bootstrapify Universal Theme
Bootstrapify Universal ThemeBootstrapify Universal Theme
Bootstrapify Universal Theme
 
24221030 Enhance Oracle Sshr With Advanced Personalizations And Oa Fwk Extens...
24221030 Enhance Oracle Sshr With Advanced Personalizations And Oa Fwk Extens...24221030 Enhance Oracle Sshr With Advanced Personalizations And Oa Fwk Extens...
24221030 Enhance Oracle Sshr With Advanced Personalizations And Oa Fwk Extens...
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection Navigation
 
AngularJS
AngularJSAngularJS
AngularJS
 
Client Side MVC with Backbone and Rails
Client Side MVC with Backbone and RailsClient Side MVC with Backbone and Rails
Client Side MVC with Backbone and Rails
 
Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012
 
Apex basics-for Beginners
Apex basics-for BeginnersApex basics-for Beginners
Apex basics-for Beginners
 
Using js link and display templates
Using js link and display templatesUsing js link and display templates
Using js link and display templates
 
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
 
Maintainable Sitecore Solutions
Maintainable Sitecore SolutionsMaintainable Sitecore Solutions
Maintainable Sitecore Solutions
 
CUST-3 Document Management with Share
CUST-3 Document Management with ShareCUST-3 Document Management with Share
CUST-3 Document Management with Share
 
Creation&imitation
Creation&imitationCreation&imitation
Creation&imitation
 
Essentials for the SharePoint Power User - SharePoint Engage Raleigh 2017
Essentials for the SharePoint Power User - SharePoint Engage Raleigh 2017Essentials for the SharePoint Power User - SharePoint Engage Raleigh 2017
Essentials for the SharePoint Power User - SharePoint Engage Raleigh 2017
 
SFDC UI - Introduction to Visualforce
SFDC UI -  Introduction to VisualforceSFDC UI -  Introduction to Visualforce
SFDC UI - Introduction to Visualforce
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 

More from Luc Bors

Talk to me Goose: Going beyond your regular Chatbot
Talk to me Goose: Going beyond your regular ChatbotTalk to me Goose: Going beyond your regular Chatbot
Talk to me Goose: Going beyond your regular Chatbot
Luc Bors
 
Extending Oracle SaaS Using Oracle Cloud UX Rapid Development Kit
Extending Oracle SaaS Using Oracle Cloud UX Rapid Development KitExtending Oracle SaaS Using Oracle Cloud UX Rapid Development Kit
Extending Oracle SaaS Using Oracle Cloud UX Rapid Development Kit
Luc Bors
 
NO CODE : Or How to Extend Oracle SaaS with Oracle Visual Builder Cloud Service
NO CODE : Or How to Extend Oracle SaaS with Oracle Visual Builder Cloud ServiceNO CODE : Or How to Extend Oracle SaaS with Oracle Visual Builder Cloud Service
NO CODE : Or How to Extend Oracle SaaS with Oracle Visual Builder Cloud Service
Luc Bors
 
Real Life MAF (2.2) Oracle Open World 2015
Real Life MAF (2.2) Oracle Open World 2015Real Life MAF (2.2) Oracle Open World 2015
Real Life MAF (2.2) Oracle Open World 2015
Luc Bors
 
Real life-maf-2015-k scope-final
Real life-maf-2015-k scope-finalReal life-maf-2015-k scope-final
Real life-maf-2015-k scope-final
Luc Bors
 
Real life-maf-2015
Real life-maf-2015Real life-maf-2015
Real life-maf-2015
Luc Bors
 
ADF Essentials (KScope14)
ADF Essentials (KScope14)ADF Essentials (KScope14)
ADF Essentials (KScope14)
Luc Bors
 
Reaching out from ADF Mobile (ODTUG KScope 2014)
Reaching out from ADF Mobile (ODTUG KScope 2014)Reaching out from ADF Mobile (ODTUG KScope 2014)
Reaching out from ADF Mobile (ODTUG KScope 2014)
Luc Bors
 
OgH Data Visualization Special Part III
OgH Data Visualization Special Part IIIOgH Data Visualization Special Part III
OgH Data Visualization Special Part III
Luc Bors
 
OgH Data Visualization Special Part II
OgH Data Visualization Special Part IIOgH Data Visualization Special Part II
OgH Data Visualization Special Part II
Luc Bors
 
OgH Data Visualization Special Part I
OgH Data Visualization Special Part IOgH Data Visualization Special Part I
OgH Data Visualization Special Part I
Luc Bors
 
MAF push notifications
MAF push notificationsMAF push notifications
MAF push notifications
Luc Bors
 
Doag wysiwyg
Doag wysiwygDoag wysiwyg
Doag wysiwyg
Luc Bors
 
amis-adf-enterprise-mobility
amis-adf-enterprise-mobilityamis-adf-enterprise-mobility
amis-adf-enterprise-mobility
Luc Bors
 
Oracle day 2014-mobile-customer-case
Oracle day 2014-mobile-customer-caseOracle day 2014-mobile-customer-case
Oracle day 2014-mobile-customer-case
Luc Bors
 
Oracle MAF real life OOW.pptx
Oracle MAF real life OOW.pptxOracle MAF real life OOW.pptx
Oracle MAF real life OOW.pptx
Luc Bors
 
AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...
AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...
AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...
Luc Bors
 
ADF Mobile: 10 Things you don't get from the developers guide
ADF Mobile: 10 Things you don't get from the developers guideADF Mobile: 10 Things you don't get from the developers guide
ADF Mobile: 10 Things you don't get from the developers guide
Luc Bors
 
oow2013-adf-mo-bi-le
oow2013-adf-mo-bi-leoow2013-adf-mo-bi-le
oow2013-adf-mo-bi-le
Luc Bors
 
Goodbye Nightmare : Tops and Tricks for creating Layouts
Goodbye Nightmare : Tops and Tricks for creating LayoutsGoodbye Nightmare : Tops and Tricks for creating Layouts
Goodbye Nightmare : Tops and Tricks for creating Layouts
Luc Bors
 

More from Luc Bors (20)

Talk to me Goose: Going beyond your regular Chatbot
Talk to me Goose: Going beyond your regular ChatbotTalk to me Goose: Going beyond your regular Chatbot
Talk to me Goose: Going beyond your regular Chatbot
 
Extending Oracle SaaS Using Oracle Cloud UX Rapid Development Kit
Extending Oracle SaaS Using Oracle Cloud UX Rapid Development KitExtending Oracle SaaS Using Oracle Cloud UX Rapid Development Kit
Extending Oracle SaaS Using Oracle Cloud UX Rapid Development Kit
 
NO CODE : Or How to Extend Oracle SaaS with Oracle Visual Builder Cloud Service
NO CODE : Or How to Extend Oracle SaaS with Oracle Visual Builder Cloud ServiceNO CODE : Or How to Extend Oracle SaaS with Oracle Visual Builder Cloud Service
NO CODE : Or How to Extend Oracle SaaS with Oracle Visual Builder Cloud Service
 
Real Life MAF (2.2) Oracle Open World 2015
Real Life MAF (2.2) Oracle Open World 2015Real Life MAF (2.2) Oracle Open World 2015
Real Life MAF (2.2) Oracle Open World 2015
 
Real life-maf-2015-k scope-final
Real life-maf-2015-k scope-finalReal life-maf-2015-k scope-final
Real life-maf-2015-k scope-final
 
Real life-maf-2015
Real life-maf-2015Real life-maf-2015
Real life-maf-2015
 
ADF Essentials (KScope14)
ADF Essentials (KScope14)ADF Essentials (KScope14)
ADF Essentials (KScope14)
 
Reaching out from ADF Mobile (ODTUG KScope 2014)
Reaching out from ADF Mobile (ODTUG KScope 2014)Reaching out from ADF Mobile (ODTUG KScope 2014)
Reaching out from ADF Mobile (ODTUG KScope 2014)
 
OgH Data Visualization Special Part III
OgH Data Visualization Special Part IIIOgH Data Visualization Special Part III
OgH Data Visualization Special Part III
 
OgH Data Visualization Special Part II
OgH Data Visualization Special Part IIOgH Data Visualization Special Part II
OgH Data Visualization Special Part II
 
OgH Data Visualization Special Part I
OgH Data Visualization Special Part IOgH Data Visualization Special Part I
OgH Data Visualization Special Part I
 
MAF push notifications
MAF push notificationsMAF push notifications
MAF push notifications
 
Doag wysiwyg
Doag wysiwygDoag wysiwyg
Doag wysiwyg
 
amis-adf-enterprise-mobility
amis-adf-enterprise-mobilityamis-adf-enterprise-mobility
amis-adf-enterprise-mobility
 
Oracle day 2014-mobile-customer-case
Oracle day 2014-mobile-customer-caseOracle day 2014-mobile-customer-case
Oracle day 2014-mobile-customer-case
 
Oracle MAF real life OOW.pptx
Oracle MAF real life OOW.pptxOracle MAF real life OOW.pptx
Oracle MAF real life OOW.pptx
 
AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...
AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...
AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...
 
ADF Mobile: 10 Things you don't get from the developers guide
ADF Mobile: 10 Things you don't get from the developers guideADF Mobile: 10 Things you don't get from the developers guide
ADF Mobile: 10 Things you don't get from the developers guide
 
oow2013-adf-mo-bi-le
oow2013-adf-mo-bi-leoow2013-adf-mo-bi-le
oow2013-adf-mo-bi-le
 
Goodbye Nightmare : Tops and Tricks for creating Layouts
Goodbye Nightmare : Tops and Tricks for creating LayoutsGoodbye Nightmare : Tops and Tricks for creating Layouts
Goodbye Nightmare : Tops and Tricks for creating Layouts
 

Recently uploaded

Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 

Recently uploaded (20)

Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Artificial Intelligence and Electronic Warfare
Artificial Intelligence and Electronic WarfareArtificial Intelligence and Electronic Warfare
Artificial Intelligence and Electronic Warfare
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 

Dont Reinvent the Wheel: Tips and Tricks for reuse in ADF

  • 1. Luc Bors, june 2013, ODTUG KScope 2013 New Orleans Tips and Tricks for UI Reuse in Oracle ADF Don't Reinvent the Wheel
  • 2. Who Am I • Luc Bors • Principal Consultant • AMIS Nieuwegein Netherlands • Friends of Oracle & Java • 5 Oracle ACE(D) • Oracle Partner
  • 3. Topics • Reuse – ADF Controller and Faces – Page Templates – Declarative Components – Stylesheets – Task Flows
  • 5. Page Templates • Specify the layout structure (of groups) of pages – For example: top bar, side bar, footer – Predefine placeholders for pages to inject their contents • Page can be based on template – It will provide the content for the placeholders (seen as facets) – It can pass parameters to the template – for example for the title of the page or the page bread crumb trail
  • 6. Page Templates • Centrally specifying the overall structure and some of the look & feel for all or specific types of pages • Can also be applied dynamically, depending on some context settings – This allows a single page to be presented in different ways to different users or under different conditions – Templates allow different structure and component ordering for the same page • Page Templates make maintenance of the overall layout structure much easier
  • 7. Page Templates • Create a Page Template – Embed one or more facetRef elements for the holes to be filled by the pages based on the template – Publish the template “API” – the input parameters it supports • Create pages based on the template – In these pages, provide content for the facets exposed by the template – Provide values for input parameters supported by template • At any point in time: – change the template (reusing same facetRefs and parameters) – change the facet contents in any page – change template ref in a page (to template with same facets) • Can be done dynamically
  • 12. The Template UI components
  • 13. Demo
  • 14. Custom Components • Compose reusable ‘packages’ for frequently occurring combinations of ADF Faces/JSF components – Declarative reuse for consistency and productivity – Better encapsulation than page fragments – Internally a declarative component is built out of a combination of JSF components • Declarative components can be used like normal JSF components – They expose a number of attributes (that are wired to attributes of the internal JSF components) – They may have facets (to embed other JSF components) • Examples: LOV/DropDown Switcher, InputTime, Selection components for static domains, Button bars
  • 15. Custom Components • Choose JSF Declarative Component in the New Gallery • Specify the properties for the component – Name, Package, TaglibName – The attributes exposed to consumers of the components • And default values for the attributes – Methods – name and signature – to use for method bindings – Names of the facets that are published (and that will be used to embed JSF content inside the declarative component) • Create the content of the Component by assembling JSF components – much like you do for a Page Template – Using facetRef components, #{attrs.<attrName>} and #{component.<methodName>}
  • 19. Demo
  • 21. Demo
  • 22. Overview • Reusable components – Bounded Task Flows – Multi page, isolated memory scope – Controller and flow logic, executing business logic – Interface with input parameters and output events – Dynamically switching between regions – Role based authorization – Transaction management – Savepoints and Rollback support • Unbounded Task Flow – Bookmarking, …
  • 24. Create a Bounded Task Flow
  • 26. Building a Reusable Task Flow Catalog • Organizations may create a catalog of task flows • Reusable services, encapsulated with clear interfaces – Input parameters – Result – Events published • Such task flows can also be published by – Third parties – ‘the community’
  • 27. Demo
  • 28. Reusing Reusables: ADF Libraries • Sharing reusable assets – Task Flows, Stylsheets, PageTemplates and Custom Components – can be deployed and distributed through ADF Libraries (JAR files, design time) – ADF Libraries are added to consuming applications – When added, components from library can be reused in consuming application
  • 29. ADF Libraries • ADF Library enables you to reuse components: – Package them into ADF Library JAR files – Add them to a reusable component repository – Add the library to a project to use its components
  • 30. How does it work • Deploy the project that contains the component(s) to an ADF Library JAR – JDeveloper automatically adds the required Tag library for the declarative component(s) • Add the Library in consuming projects – Via the Resource Palette • Declarative components will show up on the Component Palette – They are used like normal components with attributes, method bindings and facets
  • 33. Using an ADF Library
  • 35. What do we have so far ? • ADF Page Template • ADF Custom Component • ADF Style sheet • ADF Taskflow
  • 39. Using the Custom Component
  • 41. Setting up the region
  • 43. Demo
  • 44. Lets make some Changes • All Reusable components can be changed • Will have immediate effect in the application – After redeployment of the library
  • 45. Other Topic : Reuse in ADF BC • Declarative Model Driven functionality – Most Recently Used, UI Hints – List of Values, Model Driven Query Form • Entity Object Business Logic Group • View Criteria – Multiple faces on the same ViewObject • Shared Application Module – Reuse data across sessions
  • 46. Summary • ADF Provides mechanisms for reuse • Initial investment • Payback time is later • Considerations: – Is it reusable ? – Will I reuse it ? • But also – Modularity – Maintainability – Increased Productivity
  • 47.
  • 48. Luc Bors, AMIS, The Netherlands Luc.Bors@amis.nl LucBors@gmail.com Follow me on : @lucb_