SlideShare una empresa de Scribd logo
1 de 48
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_

Más contenido relacionado

La actualidad más candente

Dashbuilder community overview
Dashbuilder community overviewDashbuilder community overview
Dashbuilder community overview
dashbuilder
 

La actualidad más candente (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 a Dont Reinvent the Wheel: Tips and Tricks for reuse in ADF

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
 
Apex basics-for Beginners
Apex basics-for BeginnersApex basics-for Beginners
Apex basics-for Beginners
hrakhra
 
Maintainable Sitecore Solutions
Maintainable Sitecore SolutionsMaintainable Sitecore Solutions
Maintainable Sitecore Solutions
Thomas Eldblom
 

Similar a 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
 

Más de Luc Bors

Más de 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
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

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_