CITATION

Nimphius, Frank and Munsinger, Lynn. Oracle Fusion Developer Guide. US: McGraw-Hill Osborne Media, 2009.

Oracle Fusion Developer Guide

Published:  December 2009

eISBN: 9780071622554 0071622551 | ISBN: 9780071622547
  • Contents
  • Foreword
  • Acknowledgments
  • Introduction
  • 1 The Quick Learner's Guide to Oracle Fusion Web Application Development
  • Building Oracle Fusion Applications
  • Oracle ADF
  • Building a Fusion Application Workspace in Oracle JDeveloper
  • ADF Business Components for Quick Learners
  • Maturity Through History
  • Framework Classes
  • Creating a Business Components Model
  • Entity Objects
  • Associations
  • View Objects
  • View Links
  • Application Modules
  • Oracle ADF for Quick Learners
  • Maturity Through History
  • Introduction to Data Controls
  • The Oracle JDeveloper Data Control Palette
  • The Role of the ADF Binding Layer
  • ADF Binding Classes
  • JavaServer Faces for Quick Learners
  • Architecture Overview
  • Building Blocks
  • Expression Language
  • Context and Application Objects
  • Configuration Files
  • Managed Beans and Backing Beans
  • Events
  • Navigation
  • ADF Faces Rich Client for Quick Learners
  • Maturity Through History
  • Two More Context Classes
  • Configuration
  • Components
  • ADF Component Binding
  • Partial Page Rendering
  • Summary
  • 2 Oracle Application Development Framework (ADF)
  • The ADF Model Framework
  • ADF Data Controls
  • Creating ADF Bindings
  • Drag-and-Drop Data Bindings
  • The Page Definition File
  • Accessing the Binding Layer
  • Accessing the Binding Layer from Expression Language
  • Accessing the Binding Layer from Java
  • Summary
  • 3 The Oracle ADF and ADF Faces Rich Client Lifecycle
  • JavaServer Faces Lifecycle
  • Phase Listener
  • A Close Look at the immediate Attribute
  • Converter
  • ADF Faces Rich Client Lifecycle
  • Partial Page Rendering
  • Optimized Lifecycle
  • Client-side Value Lifecycle
  • Additional Memory Scopes
  • Subform Component
  • Oracle ADF Page Lifecycle
  • About Iterators and Their Refresh
  • Accessing Oracle ADF Business Components
  • Oracle Fusion Page Lifecycle
  • Monitoring the ADF Lifecycle
  • How to Create a Custom Page Phase Listener
  • How to Register Global Lifecycle Listeners
  • How to Register Listeners for a Single ADF Bounded Page
  • How to Register and Deregister Page Listeners Programmatically
  • Lifecycle Customization
  • Global Page Lifecycle Customization
  • Local Page Lifecycle Customization
  • Use Case: Form Entry Wizard
  • Use Case: Using af:subform in ADF Forms
  • Exception Handling and Error Reporting
  • Creating a Custom Error Handler Class
  • Registering a Custom Error Handler with ADF
  • Summary
  • 4 Introduction to Oracle ADF Task Flows
  • ADF Controller Overview
  • ADF Controller Architecture
  • Two Flavors of Task Flow: Unbounded and Bounded
  • ADF Controller Configuration Files
  • ADF Controller Activities and Control Flow Rules
  • View Activity
  • Method Call Activity
  • Router Activity
  • Task Flow Call Activity
  • Task Flow Return Activity
  • URL View Activity
  • Save Point Restore Activity
  • Control Flow Rules
  • Creating Managed Beans in ADF Controller
  • Memory Scopes
  • Standard JSF and Servlet Scopes
  • ADF-specific Scopes
  • Overview of Common Object Access
  • Scopes in Action
  • ADF Binding
  • Customizing the Lifecycle for Operation, Method, and Router Activities
  • Task Flow State Tracking
  • Exception and Error Handling
  • Save Points and "Save for Later"
  • Configuring Explicit and Implicit Save Points for Oracle Fusion Web Applications
  • Save Point Creation and Deletion
  • Creating and Registering a Custom Save Point Listener
  • Summary
  • 5 Working with Unbounded and Bounded Oracle ADF Task Flows
  • Working with Unbounded Task Flows
  • Creating and Defining an Unbounded Task Flow
  • Bookmarking
  • How to Pass Values Between Pages
  • How to Obtain the Request URL of a View Activity
  • Working with Multiple Copies of Unbounded Task Flow Definitions
  • Working with Bounded Task Flows
  • Creating Bounded Task Flows
  • Calling a Bounded Task Flow from a Parent Task Flow
  • Passing Values to and from Bounded Task Flows
  • Exception Handling
  • Declarative Transaction Handling
  • Browser Back Button Handling
  • Open a Bounded Task Flow in a Dialog
  • How to Build a Task Flow URL in Java
  • How to Navigate Programmatically Among View Activities
  • How to Navigate to a Specific View When Entering a Bounded Task Flow
  • How to Determine Whether a Task Flow Contains Uncommitted Data
  • Working with ADF Controller and Model Save Points
  • ADF Controller Save Points
  • ADF Model Save Points
  • Task Flow Templates
  • Refactoring Gotcha to Avoid
  • Summary
  • 6 Working with Bounded Task Flows in ADF Regions
  • Helper Methods Used in This Chapter
  • Page Fragments: .jsff
  • The ADF Faces Region Tag
  • ADF Regions
  • Adding ADF Regions to a View
  • Task Flow Binding
  • How to Declaratively Create a Dynamic Region That Switches Between Displayed Task Flows
  • RegionNavigationListener
  • Contextual Event Framework
  • How Contextual Events Work
  • How to Create and Publish Events Declaratively
  • How to Create and Publish Events Manually
  • How to Create an Event Map
  • How to Exclude Page Definition Files from Receiving Contextual Event Notifications
  • Contextual Event Use Cases
  • Producing Contextual Events from JavaScript
  • Consuming Contextual Events in Dynamic ADF Regions' Task Flows
  • ADF Region Interaction Use Cases
  • Parent View to ADF Region Interaction
  • ADF Region to Parent View Interaction
  • ADF Regions in Lightweight Dialogs
  • Creating the Task Flow and the ADF Region
  • Creating the Pop-up Launcher in the Table
  • Creating the Pop-up Dialog
  • Managed Beans
  • Use Case Summary
  • Summary
  • 7 Page Navigation in Oracle ADF
  • Navigation Components
  • Command Items
  • Performing Application Logic Prior to Navigation
  • Navigation in Fusion Web Applications
  • Creating Reusable Menus
  • Working with Train Components
  • Opening Views in a Browser Dialog
  • Navigating Programmatically
  • Partial Page Navigation
  • Enabling Partial Page Navigation
  • Summary
  • 8 Working with Input Components
  • Types of Input Components
  • Input Forms
  • The Input Text Component
  • Input Components for Numbers
  • The Input Date Component
  • Uploading Files
  • Restricting Input
  • Implementing Password Fields
  • Easing Navigation Within an Input Form
  • Converters and Validators
  • Validating User Input
  • Deciding Where to Include Validation
  • Requiring Values
  • Canceling Validation
  • Custom Validators
  • Providing Messages for Validation and Conversion
  • Converting Input
  • Creating Custom Converters
  • Summary
  • 9 Working with Table, Tree, and TreeTable Components
  • ADF Tree Binding
  • ADF Faces Table Component
  • How to Define the Maximum Number of Rows Displayed in a Table
  • How to Size the Table Height to Fit the Number of Rows
  • Creating ADF Bound ADF Faces Tables
  • How to Configure Table Row Selection
  • How to Create New Table Rows as Copies of an Existing Row
  • How to Create New Table Rows Using Deep Copy
  • How to Delete Table Rows
  • How to Display the Selected Row When the Table Renders
  • How to Display Row Numbers
  • How to Create and Customize Table Query Filters
  • How to Handle Table Events
  • How to Export Table Data to Excel
  • How to Exclude Table Columns from Horizontal Scrolling
  • How to Color Highlight Table Cells Conditionally
  • How to Implement List of Values
  • How to Implement a Dependent List of Values
  • ADF Faces Tree Component
  • What You Should Know About the ADF Tree Binding
  • Building ADF Bound Trees
  • Customizing the Tree Node Display
  • How to Mark a Node as Selected When Disclosing It
  • How to Disclose a Tree Node with a Mouse Click
  • How to Search in Trees
  • How to Use an Edit Form to Create, Edit, and Delete Tree Nodes
  • TreeTable Component
  • Beautifying the ADF TreeTable
  • How to Display Total and Subtotal Values
  • Summary
  • 10 Working with Menus, Dialogs, and Pop-ups
  • Creating Pop-ups
  • Launching Pop-ups
  • Controlling the Size and Position of Pop-ups
  • Including Content in an af:popup
  • The af:dialog Component
  • Dialog Buttons and Events
  • The Dialog Framework
  • Creating Context Menus
  • Defining Context Menus in Facets
  • Summary and Best Practices
  • 11 Looking Up Data
  • Creating List Objects via ADF Faces
  • Binding List Objects to ADF List Bindings
  • Model-driven List Bindings
  • ADF Faces LOV Components
  • Creating List of Values Components
  • Creating Cascading Lists
  • Multiple Select Components
  • f:selectItems versus af:selectItem
  • A Practical Use of the Select Many Components
  • Creating a Shuttle Component
  • Building Query Components
  • Modifying Query Components at Runtime
  • Summary
  • 12 Working with Images and Media
  • Including Images and Media
  • Uploading and Downloading Files
  • Downloading Files
  • Uploading Files
  • Working with Oracle Multimedia Types
  • Enabling a Project for Use with Oracle Multimedia Attributes
  • Uploading Image Files to OrdImageDomain Attributes
  • Reading Files from Oracle Multimedia Attributes
  • Working with Large Object Types
  • Reading Images from CLOB and BLOB Types
  • Summary
  • 13 Visualizing Data with DVT Components
  • Using DVT Components
  • Shaping Data for Use in DVT Components
  • Building Graph Components
  • Wiring Components to Selected Chart Values
  • Creating Components Within Tables
  • Building Pivot Tables
  • Changing Graphs at Runtime
  • Adding a Time Selector Component to a Chart
  • The dvt:graph component
  • Summary
  • 14 Implementing Drag-and-Drop Functionality
  • Introduction to Drag-and-Drop in ADF Faces Rich Client
  • af:attributeDragSource
  • af:attributeDropTarget
  • af:dragSource
  • af:dropTarget
  • af:collectionDragSource
  • af:collectionDropTarget
  • af:componentDragSource
  • Drag-and-Drop Use Cases
  • How to Create a Table Row as the Copy of an Existing Row Using Drag-and-Drop
  • How to Move Tree Nodes Under a New Parent
  • How to Move/Copy/Link the Dragged Content
  • Summary
  • 15 Working with Oracle ADF Reusable Components
  • ADF Library JAR
  • Creating ADF Libraries
  • Reusable Components Must Be Given Unique Names
  • Dependent Third-party Library Handling
  • How to Import and Use ADF Libraries in the Oracle JDeveloper Resource Palette
  • What Happens When an ADF Library JAR Is Added to a Project
  • Page Templates
  • Developing Page Templates
  • Using Page Templates in an ADF Faces UI
  • ADF Faces Declarative Components
  • Declarative Components
  • Dynamic Declarative Components
  • af:declarativeComponent Tag
  • Building DDCs
  • Summary
  • 16 Building Custom Look and Feel with Cascading Style Sheets and Skinning
  • Cascading Style Sheets
  • CSS Syntax
  • Applying Styles to HTML Markup Elements
  • Using CSS in ADF Faces RC
  • inlineStyle Attribute
  • styleClass Attribute
  • ContentStyle Attribute
  • Conditional Formatting Using Expression Language
  • Introduction to Skinning in ADF Faces RC
  • ADF Faces Skinning vs. inlineStyle, contentStyle, and styleClass CSS
  • Skin Selectors
  • Overview of Custom Skin Development
  • Advanced Topics
  • Working with Scopes
  • Using Skin Family Names in the Application Code
  • Handling Client Agents and Operation Systems
  • Controlling Skin Inheritance
  • Selecting Skins Dynamically
  • Deploying Skins in a Library
  • Skin Debugging
  • Summary
  • 17 Building Layouts in ADF Faces RC
  • Building Layouts
  • Building Stretchable Layouts
  • Building Flowing Layouts
  • Conditionally Displaying Content
  • Laying Out Forms
  • Layout Considerations for Printing
  • Adding Headers to a Layout
  • Organizing Items Within a Layout Container
  • Recommended Layout Techniques
  • Creating Bidirectional Components
  • Summary
  • 18 Internationalization
  • Creating Internationalizable JSF Applications
  • Defining Resource Bundles Globally
  • Using the ADF Bundle to Create Resource Strings
  • Defining Resource Strings
  • Internationalizing ADF Business Components
  • Localizing Applications
  • Localizing ADF Faces Applications
  • Localizing ADF BC Applications
  • Localizing Dates, Numbers, and Currencies
  • ADF Faces Components Translation
  • Changing Locales
  • Localizing an Application Using the Database as a Resource Store
  • Providing Help Topics
  • Specifying Help Text
  • Configuring Components for Use with Help Topics
  • Providing Help Using Web Documents
  • Using Oracle Help for the Web (OHW)
  • Summary
  • 19 Using JavaScript in ADF Faces RC
  • The ADF Faces RC Client Framework
  • ADF Faces RC Architecture
  • ADF Faces Client Component Events
  • ADF Faces JavaScript Partitioning
  • Working with JavaScript in ADF Faces Applications
  • How to Add JavaScript to a Page
  • The af:clientListener Tag
  • How to Find Components on a Page
  • Introduction to the af:serverListener Component
  • Calling a JavaScript Function from a Managed Bean
  • JavaScript Programming Use Cases
  • How to Specify a Form Tab Index
  • User Input Count
  • How to Invoke a Command Component Programmatically
  • How to Change the Disclose State of ADF Faces Components Programmatically
  • Debugging JavaScript
  • Summary
  • 20 Active Data Services
  • Overcoming the Disconnected Web
  • By Chance Approach
  • Polling
  • Long-polling
  • Push
  • The Need for Speed
  • Introduction to Active Data Services
  • ADS Architecture
  • Supported Communication Modes
  • Choosing a Communication Mechanism
  • Configuring ADS for an Application
  • Active UI Components
  • Active Data Services Proxy by Example
  • Use Case: Displaying Database Change Events in ADF Faces
  • ADS Proxy Implementation Details
  • Implementing ADS Using the ADF POJO Data Control
  • Implementing Database Update Notification Using ADF BC
  • Refreshing Read-Only Tables
  • Optimizing the Refresh
  • Summary
  • 21 Oracle Fusion Web Application Security
  • Application Security: A Part of the Whole
  • Guiding Principles for Building a Secure Application
  • The Java EE Security Platform
  • Container-Managed Security
  • Java Authentication and Authorization Service
  • OPSS: A Hybrid Approach to Web Application Security
  • ADF Security
  • ADF Security Architecture
  • Protection Scope of the ADF Security Runtime
  • The oracle.security.jps.ee.http.JpsFilter
  • The ADF Security Design Time
  • Enabling ADF Security for an Application
  • Creating Users, Groups, and Roles
  • Creating and Granting Page and Task Flow Permissions
  • Security Expression Language
  • ADF Security in ADF Business Components
  • Securing Entity Objects
  • Authorizing Entity Objects
  • Working with ADF Security in Java
  • Using Groovy Expressions to Implement Row-Level Security
  • Virtual Private Database
  • Testing Secured ADF BC Modules
  • ADF Security: Advanced Topics
  • How to Create Login and Logout Links
  • How to Create a Login Form in JSF
  • How to Use ADF Security on the Binding Layer
  • Deploying ADF Security–Protected Applications
  • Policy Migration
  • Creating ADF Application Deployment Profiles
  • Application Deployment with Oracle Enterprise Manager
  • Managing Application Roles
  • Password Indirection for Deployed Applications That Use JDBC Data Sources
  • Summary
  • Index