You are previewing Oracle Fusion Developer Guide.
O'Reilly logo
Oracle Fusion Developer Guide

Book Description

Master Oracle Fusion Middleware

Successfully design rich enterprise web applications using the detailed information in this Oracle Press volume. Oracle Fusion Developer Guide goes beyond the predominant drag-and-drop methods in Oracle JDeveloper 11g and provides a wealth of examples that address common development scenarios when using Oracle Fusion Middleware. Work with Oracle JDeveloper 11g, define navigation rules, accept and validate user input, build page layouts and skins, and incorporate drag-and-drop functionality into web applications. This authoritative resource also explains how to secure and internationalize your applications.

Understand the Oracle Application Development Framework and Oracle ADF Faces Rich Client lifestyle

Construct Oracle ADF data controls, task flows, and dynamic regions

Graphically represent information with Oracle ADF Faces DVT components

Modularize applications using Oracle ADF libraries, Oracle ADF task flows, and other reusable components

Define dynamic navigation rules in Oracle Fusion Middleware web applications

Leverage Web 2.0 features using Oracle ADF Faces Rich Client components

Control user access with Oracle WebLogic Server and Oracle ADF security

For a complete list of Oracle Press titles, visit www.OraclePressBooks.com

Table of Contents

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