You are previewing Oracle JDeveloper 11g Handbook.
O'Reilly logo
Oracle JDeveloper 11g Handbook

Book Description

Written by the most knowledgeable Oracle JDeveloper author team in the world

This Oracle Press guide shows how to build Web applications using the Fusion Middleware development tool, Oracle JDeveloper. The book discusses the latest technologies and explains how to develop code using multiple techniques.

Oracle JDeveloper 11g Handbook: A Guide to Fusion Web Development covers the Oracle Application Development Framework and JavaServer Faces. Hands-on practice examples walk you through the creation of a complete sample application that employs highly-interactive user interface components and declarative development methods. You will learn the techniques required to implement Fusion-oriented software solutions in JDeveloper.

Table of Contents

  1. Cover Page
  2. Oracle JDeveloper 11g Handbook
  3. Copyright Page
  4. Contents
  5. Foreword
  6. Acknowledgments
  7. Introduction
  8. PART I Overviews
    1. 1 Overview of Fusion Development and ADF
      1. What Is Fusion?
        1. The Origins of Oracle Fusion Architecture
        2. The Fusion Architecture
      2. What Is a Framework?
        1. The Anatomy of a Framework
        2. What Characterizes a Good Framework?
      3. What Is Oracle ADF?
        1. How Do I Choose Technologies?
        2. User Interface Technology
        3. Database Integration
      4. Why Should I Use JDeveloper?
    2. 2 Introduction to the JDeveloper Integrated Development Environment
      1. What Are the Important Features of the JDeveloper IDE?
        1. JDeveloper Roles
        2. The Main IDE Window
        3. Main Toolbar
        4. Main Menu Bar
      2. How Can I Best Use the Help Center?
        1. Finding the Help Topic
      3. How Does Source Code Version Control Work in JDeveloper?
        1. Working with Subversion
        2. Committing Files
        3. Adding Files
        4. Refreshing a Working Copy
        5. Version History and Version Compare
        6. Version Navigator
        7. State Overlay Icons
        8. Team Productivity Center
    3. 3 JDeveloper Tools
      1. Application Navigator
        1. Projects Panel
        2. Application Resources Panel
        3. Data Controls Panel
        4. Recently Opened Files Panel
      2. Resource Palette
      3. New Gallery
        1. Wizards
        2. Creation Dialogs
      4. Application Overview Window
        1. Application Overview Panel Techniques
        2. How Can the Application Overview Window Help?
      5. Structure Window
        1. Structure Window Operations
        2. Structure Window Views
      6. Component Palette
        1. My Components
      7. Property Inspector
        1. Property Inspector Operations
      8. Log Window
      9. Code Editor
        1. End Tag Completion and Code Completion
        2. Code Templates
        3. Code Insight and Tag Insight
        4. Other Text Editing Features
      10. Debugger
        1. Debugger Windows
        2. Running the Debugger
        3. Debugging PL/SQL
        4. Other Tools for Improving Code
      11. JSP/HTML Visual Editor
      12. Modelers and Diagrammers
        1. Types of Diagrams
        2. Creating a UML Diagram
        3. Activity Diagram
        4. XML Schema Editor
        5. JSF Navigation Diagrammer
        6. ADF Task Flow Diagrammer
        7. Struts Page Flow Modeler
      13. Database Navigator
        1. SQL Worksheet
        2. Database Documentation
    4. 4 Technology Background
      1. What Is Java Platform, Enterprise Edition?
        1. Online References
        2. Java EE Architecture Model
        3. BluePrints and Design Patterns
      2. What Are the Main Styles of Java EE Code?
        1. Application Client
        2. Web Client
      3. How Do Web Communications Work?
        1. HTTP Overview
        2. HTTP Request
        3. HTTP Response
        4. Methods
        5. The Steps in a Web Application Round-Trip
        6. Asynchronous JavaScript and XML (AJAX)
      4. What Languages Do I Need to Know for Web Development?
        1. The Web Development Experience
        2. The Level of Knowledge Needed
        3. Java
        4. Hypertext Markup Language (HTML)
        5. JavaScript
        6. Cascading Style Sheets (CSS)
        7. Extensible Markup Language (XML)
        8. Expression Language
        9. Groovy
  9. PART II ADF Business Components
    1. 5 Introducing ADF Business Components
      1. Why Use ADF BC?
        1. Java Enterprise Design Patterns
        2. Business Logic Framework
        3. Deployment Flexibility
        4. Database Orientation
      2. How Do Business Components Use Java and XML?
      3. What Are the Major Business Components?
        1. Entity Object Definitions
        2. Associations
        3. View Object Definitions
        4. View Link Definitions
        5. Application Module Definitions
      4. Which Components Support the Major Business Components?
        1. Domains
        2. Validation Rules
        3. Business Logic Units
        4. Property Sets
      5. How Can I Visualize My Business Components?
    2. 6 Specifying a Business Domain
      1. What Are Entity Object Definitions and Entity Object Instances?
        1. Entity Object XML Metadata
        2. Entity Object Classes
        3. Entity Definition Classes
        4. Entity Collection Classes
        5. Custom Framework Classes
      2. What Is an Association?
        1. Cardinality
        2. Source and Destination Attributes
        3. Association Accessors
        4. Compositions
      3. How Do Entity Attributes Work?
        1. Persistent and Transient Attributes
        2. Attribute Types and Column Datatypes
        3. Working with Built-in Domains
        4. Object Type Domains
        5. Primary Key and Alternate Key Attributes
      4. How Do You Create and Edit Entity Object Definitions and Associations?
        1. Creating Entity Object Definitions and Associations
        2. Editing Entity Object Definitions and Associations
      5. How Do You Implement Attribute-Level Validation?
        1. Specifying Mandatory Attributes
        2. Specifying Scale and Precision
        3. Preventing Users from Changing Attribute Values
        4. Attribute-Level Validation Rules
        5. Adding Validation to Setter Methods
        6. Validation Domains
      6. How Do You Implement Entity-Level Validation?
        1. Entity-Level Validation Rules
        2. Validation in the Entity Object Class
      7. How Does the ADF BC Validation Cycle Work?
        1. The Attribute-Level Validation Process
        2. The Nondeferred Entity-Level Validation Process
        3. The Deferred Entity-Level Validation Process
        4. Validation Loops
      8. How Do You Implement Attribute Defaulting and Calculation?
        1. Attribute Defaulting
        2. Attribute Calculation
      9. How Do You Synchronize with Database Defaulting and Calculation?
        1. The DBSequence Domain
        2. Other Database Defaulting and Database Calculations
      10. How Do You Implement Polymorphic Business Rules?
        1. Business Logic Groups
        2. Polymorphic Entity Object Definitions
    3. 7 Assembling a Data Model
      1. What Are View Object Definitions, View Object Instances, and View Rows?
        1. View Object XML Metadata
        2. View Object Classes
        3. View Row Classes
        4. View Definition Classes
        5. Custom Framework Classes
      2. How Do View Attributes Work?
        1. Persistent, SQL-Only, Entity-Derived, and Transient View Attributes
        2. SQL-Only View Object Definitions
        3. View Attribute Updatability and Read-Only Entity Object Usages
        4. View Attribute Types
        5. Key and Alternate Key Attributes
      3. How Do You Create and Edit View Object Definitions?
        1. Creating View Object Definitions
        2. Editing View Object Definitions
      4. How Do You Specify View Object Queries?
        1. Normal SQL Mode
        2. Declarative SQL Mode
        3. Expert SQL Mode
        4. Dynamic Queries
      5. How Can View Object Instances Handle Row Creation, Row Deletion, and Association Changes?
        1. Reference Entity Usages
        2. Creating View Rows
        3. Deleting View Rows
      6. What Are View Link Definitions and View Link Instances?
        1. Source and Destination Attributes
        2. View Link SQL
        3. View Link Accessors
      7. How Do You Create and Edit View Link Definitions?
        1. Creating View Link Definitions
        2. Editing View Link Definitions
      8. What Are Application Module Definitions and Application Module Instances?
        1. Application Module XML Metadata
        2. Application Module Classes
        3. Application Module Definition Classes
        4. Custom Framework Classes
        5. How Application Module Instances Implement Their Data Model
      9. How Do You Create and Edit Application Module Definitions?
        1. Creating Application Module Definitions
        2. Editing Application Module Definitions
        3. Editing or Creating Configurations for Application Module Definitions
      10. How Do You Use View Object Instances as LOVs?
        1. View Accessors
        2. LOV View Attributes
        3. Static View Object Definitions
      11. How Do Application Module Instances Manage Transactional State?
        1. Locking
        2. Application Module Pooling
    4. 8 Providing Custom Data Services
      1. What Sort of Method Can Be a Service Method?
      2. How Do You Expose Methods as Service Methods?
        1. Client Interfaces
        2. Adding Methods to Client Interfaces
      3. How Do You Implement Single-Row Methods?
      4. How Do You Implement Query-Level Methods?
        1. Retrieving View Rows
        2. Navigating Through the Cache
        3. Creating and Deleting Rows
        4. Modifying Queries and Filtering Rows
      5. How Do You Implement Cross-Query or Transaction-Level Methods?
        1. Finding View Object and Nested Application Module Instances in the Data Model
        2. Creating and Removing View Object Instances Dynamically
        3. Creating and Removing Master-Detail Relationships Dynamically
        4. Manipulating Transactions
  10. PART III ADF View and Controller
    1. 9 JavaServer Faces Basics
      1. Why Was JSF Developed?
      2. What JSF Concepts Do I Really Need to Know Now?
        1. What Is JSF?
        2. Runtime Architecture
        3. JSF-Oriented Files
        4. Components
        5. Designing Cross-Platform Interfaces
      3. Where Can I Find Additional Information about JSF?
        1. Websites
        2. Printed Books
    2. 10 Your First JSF
      1. Hands-on Practice: Create a JSF Login and JSF Home Page
        1. I. Create the Application and a Project
        2. II. Diagram the Page Flow
        3. III. Create the Login and Home Pages
        4. IV. Add Components to the Login Page
        5. V. Add Components to the Home Page
        6. VI. Add Navigation and Validation Logic to the Application
      2. Centralize the Messages
      3. Hands-on Practice: Access a Message Bundle with EL
      4. Hands-on Practice: Access a Message Bundle with Java
    3. 11 The ADF Controller and Task Flows
      1. What Is the ADF Controller and Why Is It Needed?
        1. The Problem with JSF
        2. Creating a Task Flow Definition
        3. About Task Flows and Managed Beans
        4. Task Flow Components
      2. Types of Task Flows
        1. Unbounded Task Flows
        2. Bounded Task Flows
        3. Pages or Fragments?
        4. More Options on Task Flow Creation
      3. Advanced Task Flows
        1. Data Control Scope
        2. Transaction Management
        3. The Back Button
        4. Coding Around a Flow
        5. Debugging Task Flows
    4. 12 ADF Faces Rich Client
      1. What Is ADF Faces and Where Did It Come From?
        1. HTML Render Kit
        2. A Very Brief History
        3. ADF Faces Is Better
      2. How Does Partial Page Rendering Work?
        1. Hands-on Practice: Demonstrate Basic PPR
      3. How Can I Achieve the Perfect Layout?
        1. Facets
        2. Knowledge of Layout Containers
        3. Nesting Layout Containers
        4. Hands-on Practice: Implement an Across and Down Tab Order
        5. Quick Start Layouts
      4. What Types of Atomic Components Are Available?
        1. Other Atomic Components
        2. Data Visualization Tools (DVT)
      5. How Can I Change the Default ADF Faces Appearance?
        1. Working with Skins
        2. Working with Component-Level Styles
      6. How Will I Ever Learn about All These Components?
  11. PART IV ADF Model
    1. 13 ADF Model Basics
      1. What Is the ADF Model Layer?
        1. Data Controls
        2. Binding Containers
      2. How Do You Provide Default or Dynamic Visual Properties for UI Controls?
        1. Control Hints for Attributes
        2. Control Hints for Bind Variables
        3. Control Hints for Lists of Values
      3. How Do You Create Data-Bound Pages?
        1. Using the Data Controls Panel with Pages
        2. “Drop As” Options
      4. How Do You Create Data-Bound Activities?
      5. What Files Are Involved in Data Binding?
    2. 14 ADF Advanced Bindings
      1. How Can I Edit Data Bindings?
        1. Cleaning Up Bindings
        2. Exploring the Binding Categories
      2. What Binding Types Are Available?
        1. Attribute Bindings
        2. List Bindings
        3. List of Values Bindings
        4. Tree Bindings
        5. Table Bindings
        6. Action Bindings
        7. Method Bindings
        8. Boolean Bindings
    3. 15 ADF Bindings: Iterators, Executables, and Code
      1. What Is an Iterator?
        1. Editing the Iterator
        2. Controlling Iterator Execution
        3. Types of Iterators
      2. What Are Executables?
        1. invokeAction Executable
        2. taskFlow Executable
        3. page Executable
        4. searchRegion Executable
        5. shuttleRegion Executable
      3. How Can I Control Execution in the ADF Model?
        1. Another Look at Executables
      4. How Can I Override and Add to the ADF Model Life Cycle?
        1. The ADFm Life Cycle
        2. Customizing Error Handling
      5. What Are Parameters?
        1. Populating PageDef Parameters
        2. Advanced PageDef Parameter Properties
      6. What Are Contextual Events?
        1. A Worked Example of Contextual Events
      7. How Can I Write Code Using the ADF Model?
        1. Access to Data and Methods
        2. Executing Methods and Operations
  12. PART V Developing the Sample Application
    1. 16 Application Design Principles and Sample Application Overview
      1. What Is the Design Process for a Fusion Application?
        1. System Design Tools and the SDLC
        2. General Application Design Considerations
        3. Typical Fusion Page Design
        4. Approaching ADF Business Components Design
      2. What Best Practice Should Be Adopted?
        1. Use Framework Buffer Classes
        2. Use Java Packaging
        3. Stick to JSF and Only JSF
        4. Create a Custom Skin
      3. What Is the Design of the Sample Application?
        1. Database Design
        2. Application Design
      4. What Do I Have to Think about Before Starting?
        1. Application Templates
        2. Source Control?
        3. Unit Testing
        4. Auditing and Code Analysis
    2. 17 Sample Application: UI Patterns and Templates
      1. I. Prepare the Application Workspace
      2. II. Prepare the Database
        1. Create a Database Diagram
        2. Modify the Diagram
        3. Alter the Database
      3. III. Set Up Project Defaults
        1. Create Model Framework Superclasses
        2. Set Up ViewController Properties
        3. Declare the Application’s Skin
      4. IV. Define a JSF Page Template
        1. Create the File
        2. Add Boxes and Panels
        3. Define a Menu and Popup
        4. Define the Named Content Area of the Template
        5. Test the Template
        6. Fix the Copyright Text
    3. 18 Sample Application: Search Page
      1. I. Prepare Employee Search Business Components
        1. Set Up Entity Object Definitions
        2. Create the Employees View Object Definition
        3. Define Named View Criteria
      2. II. Create the Search Page
      3. III. Create the Employee Search Area
        1. Define the Search Task Flow and Page Fragment
        2. Refine the Layout
        3. Add an Export Capability to the Result Set
        4. Add an Employee Details Popup
        5. Add an In-Process Indicator
      4. IV. Create the Hierarchy Viewer Area
        1. Set Up Hierarchy Node View Object Definitions
        2. Create the Hierarchy Task Flow and Page Fragment
        3. Explore the Page
        4. Refine the Hierarchy Viewer
        5. Improve the Department Node Display
        6. Improve the Employee Node Display
        7. Plug the Hierarchy Viewer into the Page
        8. Write a UI Manager to Switch Page Fragments
    4. 19 Sample Application: Edit Page
      1. I. Set Up the Edit Page and Add LOVs
        1. Create the Edit Page Fragment
        2. Add the Department List of Values
        3. Add the Job List of Values
        4. Add the Manager List of Values
      2. II. Refine the Salary Field
        1. Add Validation to the Salary Field
        2. Fix the Salary Validation and Change the Salary Format
      3. III. Refine the Commission Field
        1. Add Validation to the Commission Field
        2. Change Commission to a Spin Box
        3. Change the Commission Updatable Property
        4. Clear the Commission Value for Non-Sales Employees
      4. IV. Refine the Image Field and the Layout
        1. Display the Employee Image
        2. Rearrange the Layout and Modify Some Labels
        3. Fix the Forms and the Field Widths
      5. V. Create a Popup for Job History
        1. Display the Job History in a Popup
        2. Update the Job History
      6. VI. Apply Final Refinements
        1. Define Cascade Delete Functionality
        2. Add the Biography
        3. Disable and Enable the Rich Text Editor
        4. Refactor the getBindings( ) Method
        5. Display the Manager Name
    5. 20 Sample Application: The Image LOV Dialog
      1. I. Change How the Business Components Handle Image Usages
        1. Create an Entity Hierarchy for Image Usages
        2. Use the Entity Hierarchy in a View Object Definition
      2. II. Create the Popup Dialog
        1. Create a Task Flow for the Dialog
        2. Create a Page Template for the Dialog
        3. Create Page Fragments for the Train Stops
        4. Wire the Dialog to the Edit Page
        5. Fix the Popup Behavior
      3. III. Implement the Add Image Page
        1. Lay Out the Form Components
        2. Create a Backing Bean for the Add Image Page
        3. Use the Image Component to Preview the Uploaded Image
        4. Create a Service Method to Add an Image
        5. Fix Association Posting Behavior
        6. Create an Upload Listener to Copy the File and Call the Service Method
      4. IV. Implement the Set Default Image Page
        1. Lay Out the Form Components
        2. Create a Backing Bean for the Set Default Image Page
        3. Add Drag-and-Drop Capabilities
        4. Create a Service Method to Set the Default Image
        5. Implement a Drop Listener to Call the Service Method
        6. Add Commit Functionality
      5. V. Integrate the Edit Page with the Rest of the Application
        1. Create a Link from the Search Page to the Edit Page
        2. Parameterize the Edit Employee Task Flow
        3. Restrict the EditEmployee View Object Instance’s Query Using the Parameters
        4. Pass Parameters to the Edit Employee Task Flow
    6. 21 Sample Application: Security
      1. I. Set Up Security for the Application
        1. Enable ADF Security
        2. Define Application Roles
        3. Define a Credential Store for Testing
        4. Map Application Roles to Credential Store Roles
      2. II. Implement Authorization
        1. Authorize Access to Pages
        2. Create Basic Management Functionality
        3. Authorize Access to Task Flows
        4. Authorize Access to UI Components
      3. III. Implement Custom Login Functionality
        1. Implement a Managed Bean to Handle Login
        2. Create the Login Popup
        3. Create Menu Options to Log In and Log Out
        4. Implement a Method to Handle Logout
      4. IV. Access Information about the Logged-In User
        1. Create a View Object Definition to Return User Information
        2. Display User Information
        3. Allow a User to Edit His/Her Own Records
    7. 22 Sample Application: Deployment
      1. Java Archive Files
      2. I. Set Up a Standalone WebLogic Server for Testing
        1. Create and Run a WebLogic Domain
        2. Run the Oracle WebLogic Server Administration Console
      3. II. Configure Application-Specific Settings
        1. Define Database Connection Information
        2. Set Up Users and Groups
      4. III. Deploy the Application
        1. Deploy the Application from JDeveloper
        2. Deploy and Install the Application from an EAR file
  13. Index