You are previewing Practical RichFaces.
O'Reilly logo
Practical RichFaces

Book Description

JBoss RichFaces is a rich JSF component library that helps developers quickly develop next-generation web applications. Practical RichFaces describes how to best take advantage of RichFaces, the integration of the Ajax4jsf and RichFaces libraries, to create a flexible and powerful programs. Assuming some JSF background, it shows you how you can radically reduce programming time and effort to create rich AJAX based applications.

Table of Contents

  1. Copyright
  2. About the Author
  3. Acknowledgments
  4. Introduction
    1. Who Should Read This Book
  5. 1. Introduction
    1. 1.1. What Is JSF?
      1. 1.1.1. JSF Features
      2. 1.1.2. So, Why Use JSF?
      3. 1.1.3. The JSF Application Is Running on the Server
      4. 1.1.4. Keep an Open Mind
    2. 1.2. JSF, Ajax, and RichFaces
    3. 1.3. Ajax4jsf and RichFaces
    4. 1.4. RichFaces
      1. 1.4.1. Two Tag Libraries
      2. 1.4.2. Skinnability
      3. 1.4.3. Component Development Kit
    5. 1.5. JBoss Seam
    6. 1.6. JSF 2.0
    7. 1.7. Summary
  6. 2. Quick Start with JBoss RichFaces
    1. 2.1. Setting Up Your Development Environment
      1. 2.1.1. Download and Installing Everything You Need
      2. 2.1.2. Setting Up and Testing JBoss Tools
    2. 2.2. Configuring RichFaces
      1. 2.2.1. Downloading RichFaces
      2. 2.2.2. Installing RichFaces
      3. 2.2.3. Setting Up the Tag Libraries
    3. 2.3. Creating Your First RichFaces Application
      1. 2.3.1. Creating a New Project
      2. 2.3.2. Building the User Interface
      3. 2.3.3. Creating a Managed Bean
      4. 2.3.4. Adding a Button
      5. 2.3.5. Running the Application
      6. 2.3.6. Adding Ajax
      7. 2.3.7. Submitting via Ajax
      8. 2.3.8. Doing a Partial-Page Update
      9. 2.3.9. Using a4j:support
      10. 2.3.10. Creating a Phase Listener
      11. 2.3.11. Adding Validation
      12. 2.3.12. Displaying Content Not Rendered Before
      13. 2.3.13. Using <a4j:log>
      14. 2.3.14. Using Placeholders
      15. 2.3.15. Using <a4j:outputPanel>
    4. 2.4. Summary
  7. 3. RichFaces Basic Concepts
    1. 3.1. Sending an Ajax Request
      1. 3.1.1. <a4j:commandLink> and <a4j:commandButton>
      2. 3.1.2. <a4j:support>
      3. 3.1.3. <a4j:poll>
      4. 3.1.4. Using the limitToList Attribute
    2. 3.2. Performing a Partial-Page Update
      1. 3.2.1. Using the reRender Attribute
      2. 3.2.2. Using <a4j:outputPanel>
    3. 3.3. Knowing What Data to Process
      1. 3.3.1. Using <a4j:region>
      2. 3.3.2. Using the ajaxSingle Attribute
      3. 3.3.3. Using the process Attribute
    4. 3.4. Summary
  8. 4. More a4j: Tags, Concepts, and Features
    1. 4.1. Controlling Traffic with Queues
    2. 4.2. JavaScript Interactions
    3. 4.3. Performance Considerations
      1. 4.3.1. Using eventsQueue and requestDelay
      2. 4.3.2. Using bypassUpdates
      3. 4.3.3. Using <a4j:region>
    4. 4.4. Validating User Input
      1. 4.4.1. Skipping Model Update During Validation
    5. 4.5. Using <a4j:actionparam>
    6. 4.6. Using <a4j:repeat>
      1. 4.6.1. Using the ajaxKeys Attribute
    7. 4.7. Using <a4j:status>
      1. 4.7.1. Using with Action Controls
      2. 4.7.2. Associating Status with a Region
    8. 4.8. Using <a4j:include> and <a4j:keepAlive>
      1. 4.8.1. Using <a4j:keepAlive>
    9. 4.9. Using <a4j:jsFunction>
    10. 4.10. Using <a4j:ajaxListener>
    11. 4.11. Summary
  9. 5. Input Components
    1. 5.1. Using <rich:inplaceInput>
    2. 5.2. Using <rich:inplaceSelect>
    3. 5.3. Using <rich:suggestionbox>
      1. 5.3.1. Adding More Columns
      2. 5.3.2. Adding More Features
    4. 5.4. Using <rich:comboBox>
      1. 5.4.1. Adding More Input Components
    5. 5.5. Using <rich:inputNumberSlider>
    6. 5.6. Using <rich:inputNumberSpinner>
    7. 5.7. Using <rich:calendar>
    8. 5.8. Summary
  10. 6. Output Components
    1. 6.1. Using <rich:panel>
    2. 6.2. Using <rich:simpleTogglePanel>
    3. 6.3. Using <rich:tabPanel> and <rich:tab>
    4. 6.4. Using <rich:panelBar>
    5. 6.5. Using <rich:panelMenu>
    6. 6.6. Using <rich:togglePanel>
    7. 6.7. Using <rich:toolBar>
    8. 6.8. Using <rich:separator>
    9. 6.9. Using <rich:spacer>
    10. 6.10. Using <rich:modalPanel>
      1. 6.10.1. Opening and Closing the Modal Panel
      2. 6.10.2. More Examples
    11. 6.11. Using <rich:toolTip>
      1. 6.11.1. Using <rich:toolTip> with Data Iteration Components
    12. 6.12. Summary
  11. 7. Data Iteration Components
    1. 7.1. Using <rich:dataTable>
    2. 7.2. Using <rich:dataDefinitionList>
    3. 7.3. Using <rich:dataOrderedList>
    4. 7.4. Using <rich:dataList>
    5. 7.5. Using <rich:dataGrid>
    6. 7.6. Adding Pagination
      1. 7.6.1. Using <rich:datascroller>
      2. 7.6.2. Using Other Data Components with <rich:datascroller>
    7. 7.7. Using JavaScript Events
    8. 7.8. Performing Partial-Component Data Updates
    9. 7.9. Creating Column and Row Spans
      1. 7.9.1. Spanning Columns
      2. 7.9.2. Spanning Rows
    10. 7.10. Summary
  12. 8. Selection Components
    1. 8.1. Using <rich:pickList>
    2. 8.2. Using <rich:orderingList>
    3. 8.3. Using <rich:listShuttle>
    4. 8.4. Summary
  13. 9. Menu Components
    1. 9.1. Using <rich:dropDownMenu>
    2. 9.2. Using <rich:contextMenu>
      1. 9.2.1. Using <rich:contextMenu> with Tables
      2. 9.2.2. Using <rich:contextMenu> with <rich:componentControl>
      3. 9.2.3. More <rich:componentControl> Examples
    3. 9.3. Summary
  14. 10. Scrollable Data Table and Tree
    1. 10.1. Using <rich: scrollableDataTable>
      1. 10.1.1. Multiple Rows Selection
      2. 10.1.2. Resizing Columns
      3. 10.1.3. Fixed Columns
      4. 10.1.4. Sorting Columns
    2. 10.2. Using <rich: tree>
      1. 10.2.1. Selection Event Handling
      2. 10.2.2. Expansion Event Handling
      3. 10.2.3. Using <rich:treeNode>
      4. 10.2.4. Using <rich:treeNodeAdaptor> and <rich: recursiveTreeNodesAdaptor>
    3. 10.3. Summary
  15. 11. Skins
    1. 11.1. Using Built-in Skins
      1. 11.1.1. How It Works
    2. 11.2. Creating Your Own Skins
      1. 11.2.1. Which Skin Parameter to Change?
    3. 11.3. Using Skinnability and CSS
      1. 11.3.1. Skin-Generated CSS
      2. 11.3.2. Redefining Skin-Generated CSS Classes
      3. 11.3.3. User-Defined Style
      4. 11.3.4. Dynamically Changing Skins
      5. 11.3.5. Partial-Page Update and New Skins
    4. 11.4. Using Skins with Nonskinnable Sections of Components
      1. 11.4.1. More Standard Component Skinning
    5. 11.5. Summary