Table of Contents
- Title and Copyright Information
- Preface
- What's New in This Guide for Release 12c (12.2.1.4.0)
-
Part I Getting Started with ADF Faces
- 1 Introduction to ADF Faces
- 2 ADF Faces Components Demo Application
-
3
Getting Started with ADF Faces and JDeveloper
- About Developing Declaratively in JDeveloper
- Creating an Application Workspace
- Defining Page Flows
-
Creating a View Page
- How to Create JSF Pages
- What Happens When You Create a JSF Page
- What You May Need to Know About Updating Your Application to Use the Facelets Engine
- What You May Need to Know About Automatic Component Binding
- How to Add ADF Faces Components to JSF Pages
- What Happens When You Add Components to a Page
- How to Set Component Attributes
- What Happens When You Use the Properties window
- Creating EL Expressions
- Creating and Using Managed Beans
- Viewing ADF Faces Javadoc
-
Part II Understanding ADF Faces Architecture
-
4
Using ADF Faces Client-Side Architecture
- About Using ADF Faces Architecture
- Adding JavaScript to a Page
- Instantiating Client-Side Components
- Listening for Client Events
- Accessing Component Properties on the Client
- Using Bonus Attributes for Client-Side Components
- Understanding Rendering and Visibility
- Locating a Client Component on a Page
- JavaScript Library Partitioning
- 5 Using the JSF Lifecycle with ADF Faces
-
6
Handling Events
- About Events and Event Handling
- Using ADF Faces Server Events
-
Using JavaScript for ADF Faces Client Events
- ADF Faces Client-Side Events
- How to Use Client-Side Events
- How to Return the Original Source of the Event
- How to Use Client-Side Attributes for an Event
- How to Block UI Input During Event Execution
- How to Prevent Events from Propagating to the Server
- How to Indicate No Response is Expected
- What Happens at Runtime: How Client-Side Events Work
- What You May Need to Know About Using Naming Containers
- Sending Custom Events from the Client to the Server
- Executing a Script Within an Event Response
- Using ADF Faces Client Behavior Tags
- Using Polling Events to Update Pages
-
7
Validating and Converting Input
- About ADF Faces Converters and Validators
- Conversion, Validation, and the JSF Lifecycle
- Adding Conversion
- Creating Custom ADF Faces Converters
- Adding Validation
- Creating Custom JSF Validation
- 8 Rerendering Partial Page Content
-
4
Using ADF Faces Client-Side Architecture
-
Part III Creating Your Layout
-
9
Organizing Content on Web Pages
- About Organizing Content on Web Pages
- Starting to Lay Out a Page
-
Arranging Content in a Grid
- How to Use the panelGridLayout, gridRow, and gridCell Components to Create a Grid-Based Layout
- What You May Need to Know About Geometry Management and the panelGridLayout Component
- What You May Need to Know About Determining the Structure of Your Grid
- What You May Need to Know About Determining Which Layout Component to Use
- Displaying Contents in a Dynamic Grid Using a masonryLayout Component
- Achieving Responsive Behavior Using matchMediaBehavior Tag
- Arranging Contents to Stretch Across a Page
- Using Splitters to Create Resizable Panes
- Arranging Page Contents in Predefined Fixed Areas
- Arranging Content in Forms
- Arranging Contents in a Dashboard
-
Displaying and Hiding Contents Dynamically
- How to Use the showDetail Component
- How to Use the showDetailHeader Component
- How to Use the panelBox Component
- What You May Need to Know About Disclosure Events
- What You May Need to Know About Skinning and the showDetail Component
- What You May Need to Know About Skinning and the showDetailHeader Component
- What You May Need to Know About Skinning and the panelBox Component
-
Displaying or Hiding Contents in Panels
- How to Use the panelAccordion Component
- How to Use the panelTabbed Component
- How to Use the panelDrawer Component
- How to Use the panelSpringboard Component
- What You May Need to Know About Switching Between Grid and Strip Mode
- How to Use the showDetailItem Component to Display Content
- What You May Need to Know About Geometry Management and the showDetailItem Component
- What You May Need to Know About showDetailItem Disclosure Events
- What You May Need to Know About Skinning and the panelTabbed Component
- Adding a Transition Between Components
-
Displaying Items in a Static Box
- How to Use the panelHeader Component
- How to Use the decorativeBox Component
- What You May Need to Know About Geometry Management and the decorativeBox Component
- What You May Need to Know About Skinning and the panelHeader Component
- What You May Need to Know About Skinning and the decorativeBox Component
- Displaying a Bulleted List in One or More Columns
- Grouping Related Items
- Separating Content Using Blank Space or Lines
-
10
Creating and Reusing Fragments, Page Templates, and Components
- About Reusable Content
-
Using Page Templates
- How to Create a Page Template
- What Happens When You Create a Page Template
- How to Create JSF Pages Based on Page Templates
- What Happens When You Use a Template to Create a Page
- What Happens at Runtime: How Page Templates Are Resolved
- What You May Need to Know About Page Templates and Naming Containers
- Using Page Fragments
- Using Declarative Components
- Adding Resources to Pages
-
9
Organizing Content on Web Pages
-
Part IV Using Common ADF Faces Components
-
11
Using Input Components and Defining Forms
- About Input Components and Forms
- Defining Forms
- Using the inputText Component
- Using the Input Number Components
-
Using Color and Date Choosers
- How to Add an inputColor Component
- How to Add an InputDate Component
- What You May Need to Know About Including a Default Value for an InputDate Component
- What You May Need to Know About Setting the Time Value for an InputDate Component
- What You May Need to Know About Selecting Time Zones Without the inputDate Component
- What You May Need to Know About Multi-Selection Support in the chooseDate Component
- What You May Need to Know About Creating a Custom Time Zone List
- Using Selection Components
- Using Shuttle Components
- Using the richTextEditor Component
- Using File Upload
- Using Code Editor
-
12
Using Tables, Trees, and Other Collection-Based Components
- About Collection-Based Components
- Common Functionality in Collection-Based Components
-
Displaying Data in Tables
- Columns and Column Data
- Formatting Tables
- Formatting Columns
- How to Display a Table on a Page
- What Happens When You Add a Table to a Page
- What Happens at Runtime: Data Delivery
- What You May Need to Know About Programmatically Enabling Sorting for Table Columns
- What You May Need to Know About Performing an Action on Selected Rows in Tables
- What You May Need to Know About Dynamically Determining Values for Selection Components in Tables
- What You May Need to Know About Read Only Tables
- Adding Hidden Capabilities to a Table
- Enabling Filtering in Tables
- Displaying Data in Trees
- Displaying Data in Tree Tables
- Passing a Row as a Value
- Displaying Table Menus, Toolbars, and Status Bars
- Displaying a Collection in a List
- Displaying Images in a Carousel
- Exporting Data from Table, Tree, or Tree Tables
- Accessing Selected Values on the Client from Collection-Based Components
-
13
Using List-of-Values Components
- About List-of-Values Components
- Creating the ListOfValues Data Model
- Using the inputListOfValues Component
- Using the InputComboboxListOfValues Component
-
Using the InputSearch Component
- How to Use the InputSearch Component
- What You May Need to Know About InputSearch Component Tags and REST Data
- What You May Need to Know About InputSearch Attributes
- What You May Need to Know About SearchSection Attributes
- How to Customize InputSearch Component Display Modes
- How to Add Custom Buttons to Suggestions Popup
- What You May Need to Know About SuggestionSection Component
- How to Set Attributes of Suggestion Section
- What You May Need to Know About suggestionSection Attributes
- How to Specify Dependency-Based Filtering on InputSearch Components
- 14 Using Query Components
- 15 Using Menus, Toolbars, and Toolboxes
-
16
Using Popup Dialogs, Menus, and Windows
- About Popup Dialogs, Menus, and Windows
- Declaratively Creating Popups
- Controlling Display Behavior of Popups
- Declaratively Invoking a Popup
- Programmatically Invoking a Popup
- Displaying Contextual Information in Popups
- Controlling the Automatic Cancellation of Inline Popups
- Resetting Input Fields in a Popup
- 17 Using a Calendar Component
- 18 Using Output Components
-
19
Displaying Tips, Messages, and Help
- About Displaying Tips and Messages
- Displaying Tips for Components
- Displaying Hints and Error Messages for Validation and Conversion
- Grouping Components with a Single Label and Message
- Displaying Help for Components
- Combining Different Message Types
-
20
Working with Navigation Components
- About Navigation Components
- Common Functionality in Navigation Components
- Using Buttons and Links for Navigation
- Configuring a Browser's Context Menu for Links
- Using Buttons or Links to Invoke Functionality
- Using Navigation Items for a Page Hierarchy
-
Using a Menu Model to Create a Page Hierarchy
- How to Create the Menu Model Metadata
- What Happens When You Use the Create ADF Menu Model Wizard
- How to Bind the navigationPane Component to the Menu Model
- How to Use the breadCrumbs Component with a Menu Model
- How to Use the menuBar Component with a Menu Model
- What Happens at Runtime: How the Menu Model Creates a Page Hierarchy
- What You May Need to Know About Using Custom Attributes
- Creating a Simple Navigational Hierarchy
- Using Train Components to Create Navigation Items for a Multistep Process
- 21 Determining Components at Runtime
-
11
Using Input Components and Defining Forms
-
Part V Using ADF Data Visualization Components
-
22
Introduction to ADF Data Visualization Components
-
About ADF Data Visualization Components
- Chart Component Use Cases and Examples
- Picto Chart Use Cases and Examples
- Gauge Component Use Cases and Examples
- NBox Use Cases and Examples
- Pivot Table Component Use Cases and Examples
- Geographic Map Component Use Cases and Examples
- Thematic Map Component Use Cases and Examples
- Gantt Chart Component Use Cases and Examples
- Timeline Component Use Cases and Examples
- Hierarchy Viewer Component Use Cases and Examples
- Treemap and Sunburst Components Use Cases and Examples
- Diagram Use Cases and Examples
- Tag Cloud Component Use Cases and Examples
- Additional Functionality for Data Visualization Components
- Common Functionality in Data Visualization Components
- Providing Data for ADF Data Visualization Components
-
About ADF Data Visualization Components
-
23
Using Chart Components
-
About the Chart Component
- Chart Component Use Cases and Examples
-
End User and Presentation Features of Charts
- Chart Data Labels
- Chart Element Labels
- Chart Sizing
- Chart Legends
- Chart Styling
- Chart Series Hiding
- Chart Reference Objects
- Chart Series Effects
- Chart Series Customization
- Chart Data Cursor
- Chart Time Axis
- Chart Categorical Axis
- Chart Popups and Context Menus
- Chart Selection Support
- Chart Zoom and Scroll
- Legend and Marker Dimming
- Pie Chart Other Slice Support
- Exploding Slices in Pie Charts
- Active Data Support (ADS)
- Chart Animation
- Chart Image Formats
- Additional Functionality for Chart Components
- Using the Chart Component
- Adding Data to Charts
-
Customizing Chart Display Elements
- How to Configure Chart Labels
- How to Configure Chart Legends
- How to Format Chart Numerical Values
- Customizing a Chart Axis
- Adding Reference Objects to a Chart
- How to Configure a Stacked Chart
- Customizing Chart Series
- Customizing Chart Groups
- How to Configure the Pie Chart Other Slice
- How to Explode Pie Chart Slices
- How to Configure Animation
- What You May Need to Know About Skinning and Customizing Chart Display Elements
- Adding Interactive Features to Charts
-
About the Chart Component
- 24 Using Picto Chart Components
-
25
Using Gauge Components
- About the Gauge Component
- Using the Gauge Component
- Customizing Gauge Display Elements
- Adding Interactivity to Gauges
- 26 Using NBox Components
-
27
Using Pivot Table Components
- About the Pivot Table Component
-
Using the Pivot Table Component
- Pivot Table Data Requirements
- Configuring Pivot Tables
- How to Add a Pivot Table to a Page
- Configuring Pivot Table Display Size and Style
- What Happens When You Add a Pivot Table to a Page
- What You May Need to Know About Displaying Large Data Sets
- What You May Need to Know About Pivot Tables on Touch Devices
- What You May Need to Know About Skinning and Customizing the Appearance of Pivot Tables
- Configuring Header and Data Cell Stamps
- Using Pivot Filter Bars
- Adding Interactivity to Pivot Tables
- Formatting Pivot Table Cell Content With CellFormat
-
28
Using Gantt Chart Components
- About the Gantt Chart Components
- Using the Gantt Chart Components
- Customizing Gantt Chart Tasks and Resources
-
Customizing Gantt Chart Display Elements
- Customizing Gantt Chart Toolbars and Menus
- Creating Custom Toolbar and Menu Items
- Customizing Gantt Chart Context Menus
- How to Customize the Time Axis of a Gantt Chart
- Creating and Customizing a Gantt Chart Legend
- How to Specify Custom Data Filters
- Specifying Nonworking Days in a Gantt Chart
- How to Apply Read-Only Values to Gantt Chart Features
- What You May Need to Know About Skinning and Customizing the Appearance of Gantt Charts
- Adding Interactive Features to Gantt Charts
- 29 Using Timeline Components
-
30
Using Map Components
- About Map Components
- Using the Geographic Map Component
- Customizing Geographic Map Display Attributes
-
Customizing Geographic Map Themes
- How to Customize Zoom Levels for a Theme
- How to Customize the Labels of a Map Theme
- How to Customize Color Map Themes
- How to Customize Point Images in a Point Theme
- What Happens When You Customize the Point Images in a Map
- How to Customize the Bars in a Bar Graph Theme
- What Happens When You Customize the Bars in a Map Bar Graph Theme
- How to Customize the Slices in a Pie Graph Theme
- What Happens When You Customize the Slices in a Map Pie Graph Theme
- Adding a Toolbar to a Geographic Map
- Using Thematic Map Components
- Defining Thematic Map Base Maps
-
Customizing Thematic Map Display Attributes
- How to Customize Thematic Map Labels
- How to Configure Tooltips to Display Data
- How to Format Numeric Data Values in Area and Marker Labels
- How to Configure Thematic Map Data Zooming
- How to Configure Invisible Area Layers
- What You May Need to Know About Skinning and Customizing the Appearance of a Thematic Map
- Adding Interactive Features to Thematic Maps
-
31
Using Hierarchy Viewer Components
- About Hierarchy Viewer Components
- Using Hierarchy Viewer Components
- Managing Nodes in a Hierarchy Viewer
- Using Panel Cards
- Configuring Navigation in a Hierarchy Viewer
-
Customizing the Appearance of a Hierarchy Viewer
- How to Adjust the Display Size and Styles of a Hierarchy Viewer
- Including Images in a Hierarchy Viewer
- How to Configure the Display of the Control Panel
- How to Configure the Display of Links and Labels
- How to Disable the Hover Detail Window
- What You May Need to Know About Skinning and Customizing the Appearance of a Hierarchy Viewer
- Adding Interactivity to a Hierarchy Viewer Component
- Adding Search to a Hierarchy Viewer
-
32
Using Treemap and Sunburst Components
-
About the Treemap and Sunburst Components
- Treemap and Sunburst Use Cases and Examples
-
End User and Presentation Features of Treemaps and Sunbursts
- Treemap and Sunburst Layouts
- Attribute Groups
- Legend Support
- Pattern Support
- Node Selection Support
- Tooltip Support
- Popup Support
- Context Menus
- Drilling Support
- Other Node Support
- Drag and Drop Support
- Sorting Support
- Treemap and Sunburst Image Formats
- Advanced Node Content
- Printing and Email Support
- Active Data Support (ADS)
- Isolation Support (Treemap Only)
- Treemap Group Node Header Customization (Treemap Only)
- Additional Functionality for Treemap and Sunburst Components
- Using the Treemap and Sunburst Components
- Adding Data to Treemap and Sunburst Components
-
Customizing Treemap and Sunburst Display Elements
- Configuring Treemap and Sunburst Display Size and Style
- Configuring Pattern Display
- Configuring Treemap and Sunburst Attribute Groups
- How to Configure Treemap and Sunburst Legends
- Configuring the Treemap and Sunburst Other Node
- Configuring Treemap and Sunburst Sorting
- Configuring Treemap and Sunburst Advanced Node Content
- How to Configure Animation in Treemaps and Sunbursts
- Configuring Labels in Treemaps and Sunbursts
- Configuring Sunburst Node Radius
- Configuring Treemap Node Headers and Group Gap Display
-
Adding Interactive Features to Treemaps and Sunbursts
- Configuring Treemap and Sunburst Tooltips
- Configuring Treemap and Sunburst Popups
- Configuring Treemap and Sunburst Selection Support
- Configuring Treemap and Sunburst Context Menus
- Configuring Treemap and Sunburst Drilling Support
- How to Add Drag and Drop to Treemaps and Sunbursts
- Configuring Isolation Support (Treemap Only)
-
About the Treemap and Sunburst Components
- 33 Using Diagram Components
- 34 Using Tag Cloud Components
-
22
Introduction to ADF Data Visualization Components
-
Part VI Completing Your View
- 35 Customizing the Appearance Using Styles and Skins
-
36
Internationalizing and Localizing Pages
- About Internationalizing and Localizing ADF Faces Pages
- Using Automatic Resource Bundle Integration in JDeveloper
-
Manually Defining Resource Bundles and Locales
- How to Create a Resource Bundle as a Property File or an XLIFF File
- How to Create a Resource Bundle as a Java Class
- How to Edit a Resource Bundle File
- How to Register a Locale for Your Application
- How to Register a Resource Bundle in Your Application
- How to Use Resource Bundles in Your Application
- What You May Need to Know About ADF Skins and Control Hints
- What You May Need to Know About Overriding a Resource Bundle in a Customizable Application
- Configuring Pages for an End User to Specify Locale at Runtime
- Configuring Optional ADF Faces Localization Properties
- 37 Developing Accessible ADF Faces Pages
- 38 Allowing User Customization on JSF Pages
-
39
Adding Drag and Drop Functionality
- About Drag and Drop Functionality
- Adding Drag and Drop Functionality for Attributes
- Adding Drag and Drop Functionality for Objects
- Adding Drag and Drop Functionality for Collections
- Adding Drag and Drop Functionality for Components
- Adding Drag and Drop Functionality Into and Out of a panelDashboard Component
- Adding Drag and Drop Functionality to a Calendar
- Adding Drag and Drop Functionality for DVT Components
- 40 Using Different Output Modes
-
41
Using the Active Data Service with an Asynchronous Backend
- About the Active Data Service
- Process Overview for Using Active Data Service
- Implementing the ActiveModel Interface in a Managed Bean
- What You May Need to Know About Maintaining Read Consistency
- What You May Need to Know About Navigating Away From the ADS Enabled Page
- Passing the Event Into the Active Data Service
- Registering the Data Update Event Listener
- Configuring the ADF Component to Display Active Data
-
Appendices
-
A
ADF Faces Configuration
- About Configuring ADF Faces
-
Configuration in web.xml
- How to Configure for JSF and ADF Faces in web.xml
- What You May Need to Know About Required Elements in web.xml
-
What You May Need to Know About ADF Faces Context Parameters in web.xml
- State Saving
- Debugging
- File Uploading
- Save Query Mode
- Resource Debug Mode
- User Customization
- Enabling the Application for Real User Experience Insight
- Assertions
- Dialog Prefix
- Compression for CSS Class Names
- Control Caching When You Have Multiple ADF Skins in an Application
- Test Automation
- UIViewRoot Caching
- Themes and Tonal Styles
- Partial Page Rendering
- Partial Page Navigation
- Postback Payload Size Optimization
- JavaScript Partitioning
- Framebusting
- Version Number Information
- Suppressing Auto-Generated Component IDs
- ADF Faces Caching Filter
- Configuring Native Browser Context Menus for Command Links
- Internet Explorer Compatibility View Mode
- Session Timeout Warning
- JSP Tag Execution in HTTP Streaming
- Clean URLs
- Page Loading Splash Screen
- Graph and Gauge Image Format
- Geometry Management for Layout and Table Components
- Rendering Tables Initially as Read Only
- Scrollbar Behavior in Tables
- Production Project Stage
- Toggle Example Hints
- What You May Need to Know About Other Context Parameters in web.xml
- Configuration in faces-config.xml
- Configuration in adf-config.xml
- Configuration in adf-settings.xml
-
Configuration in trinidad-config.xml
- How to Configure ADF Faces Features in trinidad-config.xml
-
What You May Need to Know About Elements in trinidad-config.xml
- Animation Enabled
- Skin Family
- Time Zone and Year
- Enhanced Debugging Output
- Page Accessibility Level
- Language Reading Direction
- Currency Code and Separators for Number Groups and Decimal Points
- Formatting Dates and Numbers Locale
- Output Mode
- Number of Active PageFlowScope Instances
- File Uploading
- Custom File Uploaded Processor
- Client-Side Validation and Conversion
- What You May Need to Know About Configuring a System Property
- Configuration in trinidad-skins.xml
- Using the RequestContext EL Implicit Object
- Performance Tuning
- B Message Keys for Converter and Validator Messages
- C Keyboard Shortcuts
- D Creating Web Applications for Touch Devices Using ADF Faces
- E Quick Start Layout Themes
- F Code Samples
-
G
Troubleshooting ADF Faces
- About Troubleshooting ADF Faces
- Getting Started with Troubleshooting the View Layer of an ADF Application
- Using Test Automation for ADF Faces
-
Resolving Common Problems
- Application Displays an Unexpected White Background
- Application is Missing Expected Images
- ADF Skin Does Not Render Properly
- ADF Data Visualization Components Fail to Display as Expected
- High Availability Application Displays a NotSerializableException
- Unable to Reproduce Problem in All Web Browsers
- Application is Missing Content
- Browser Displays an ADF_Faces-60098 Error
- Browser Displays an HTTP 404 or 500 Error
- Browser Fails to Navigate Between Pages
- Using My Oracle Support for Additional Troubleshooting Information
-
A
ADF Faces Configuration