Oracle® Fusion Middleware

Mobile Client Developer's Guide for Oracle Application Development Framework 11g Release 1 (11.1.1)
E14826-01

April 2010

Beta Draft

ORACLE CONFIDENTIAL. For authorized use only. Do not distribute to third parties.

Oracle Fusion Middleware Mobile Client Developer's Guide for Oracle Application Development Framework 11g Release 1 (11.1.1) E14826-01 Copyright © 2010, Oracle and/or its affiliates. All rights reserved. Primary Authors: John Bassett, Constance Moore, Liza Rekadze This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this software or related documentation is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065. This software is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications which may create a risk of personal injury. If you use this software in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use of this software. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software in dangerous applications. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. This software and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services. This documentation is in prerelease status and is intended for demonstration and preliminary use only. It may not be specific to the hardware on which you are using the software. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to this documentation and will not be responsible for any loss, costs, or damages incurred due to the use of this documentation. The information contained in this document is for informational sharing purposes only and should be considered in your capacity as a customer advisory board member or pursuant to your beta trial agreement only. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described in this document remains at the sole discretion of Oracle. This document in any form, software or printed matter, contains proprietary information that is the exclusive property of Oracle. Your access to and use of this confidential material is subject to the terms and conditions of your Oracle Software License and Service Agreement, which has been executed and with which you agree to comply. This document and information contained herein may not be disclosed, copied, reproduced, or distributed to anyone outside Oracle without prior written consent of Oracle. This document is not part of your license agreement nor can it be incorporated into any contractual agreement with Oracle or its subsidiaries or affiliates.

Contents
Preface ............................................................................................................................................................... xv
Documentation Accessibility ................................................................................................................... Audience..................................................................................................................................................... Related Documents ................................................................................................................................... Conventions ............................................................................................................................................... xv xv xvi xvi

1 Introduction to Oracle ADF Mobile Client
1.1 1.2 1.3 1.4 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.4.1 1.5.5 1.5.6 1.5.7 Introduction to ADF Mobile Client .......................................................................................... Infrastructure Requirements for Developing ADF Mobile Client Applications ............... Run-Time Architecture of ADF Mobile Client ....................................................................... Data Synchronization ................................................................................................................. Introduction to ADF Mobile Client Application Development ........................................... Application Architecture .................................................................................................... Typical Development Stages.............................................................................................. The Life Cycle of a View ..................................................................................................... Supported Devices and Databases .................................................................................... What You May Need to Know About SQLite .......................................................... Supported ADF Components and Attributes.................................................................. Support for ADF View Objects .......................................................................................... Support for Expression Language..................................................................................... 1-1 1-1 1-3 1-4 1-5 1-5 1-5 1-7 1-7 1-7 1-8 1-8 1-8

2 Setting Up the ADF Mobile Client Environment
2.1 About the ADF Mobile Client Environment........................................................................... 2-1 2.2 How to Set Up JDeveloper......................................................................................................... 2-4 2.3 How to Set Up Oracle Database Lite........................................................................................ 2-5 2.4 How to Set Up Oracle Database ............................................................................................... 2-6 2.5 How to Set up the Fusion Order Demo Mobile Client Application .................................... 2-6 2.6 How to Set Up the Device Simulator ...................................................................................... 2-6 2.6.1 Setting Up the Windows Mobile Device or Device Emulator....................................... 2-7 2.6.1.1 How to Set Up a Windows Mobile Emulator........................................................... 2-8 2.6.1.2 How to Set Up a Windows Mobile Device ............................................................... 2-8 2.6.1.3 How to Place Database-Installation CAB Files on the Device ............................... 2-9 2.6.1.4 How to Connect the Windows Mobile Simulator ................................................... 2-9 2.6.1.5 How to Set Up the Java Virtual Machine ............................................................... 2-11 2.6.1.5.1 How to Reduce the Size of the JVM................................................................. 2-12

Beta Draft

v

................................................. 3-10 3.2 2...... 3-4 3.............................3 2......5............. 2-17 How to Run the Demo Application ..... 2-22 3 Introduction to the ADF Mobile Client Sample Application 3....................................................6..................1................. 2-22 How to Configure Application Deployment Packages....... 3-1 3..............................................11....1 2.........1..3 Overview of the Fusion Order Demo Mobile Client Application Schema.........2.........1.2................6 2...................2 Runtime Components .............................12................. 3-5 3......................................... 2-17 How to Install SQLite Mobile Client on the Device.................. 3-3 3............. 3-14 3.........................................6........................ 3-5 3...... the Standalone Simulator...2........................5..........................................1 Mounting the Sample Client Database ....... 3-8 3..10...4 Viewing Order Details .5............4 Running the Fusion Order Demo Mobile Client Application ...........6.6... 3-8 3........................... 3-9 3.......................... 3-10 3........3 Browsing Orders .........1 About the Fusion Order Demo Mobile Client Application .12.............12............2 How to Mount the Sample Client Database on a BlackBerry Smartphone Simulator 3-3 3..................................................6..................2 2................................................ 2-17 How to Set Up Oracle Mobile Server ....1 How to Run the Demo Application on a Windows Mobile Simulator..... 2-19 About Synchronizing Data with Oracle Mobile Server ....................1 Design Time Components ...............................................12...............................................1 2.............. 2-18 How to Run the Demo Application on a BlackBerry Smartphone Simulator ........................7 2.................................................................1 MobileClient Project........10 2....3 2.................................................................................6........................10......11.............5......................2 Running the Sample Application on a BlackBerry Smartphone Simulator ..................5.......................................................... 2-22 How to Modify Synchronization Rules Using Oracle Database Lite Mobile Workbench 2-22 How to Work with Sequences...2 2........... 3-8 3............5...............5............................................... 2-20 About the Connection Between Client and Server ...................2...... 2-15 How to Set Up a BlackBerry Smartphone........................2.............. 2-14 About BlackBerry Mobile Data Service Simulator.................................4...9 2. 2-20 About Publishing Data................................................. 2-21 Configuring Oracle Mobile Server .................................................. 3-3 3......4 2.........4..1 2...................................2...............5 Editing or Adding an Order..................4 Setting Up the BlackBerry Smartphone or Smartphone Emulator..................................1 How to Mount the Sample Client Database on Windows Mobile Devices ....................................................................3 2......................................2.......2.........................................1.................12 2........................6..........1 How to Start the Demo Application on a BlackBerry Smartphone Simulator ..........2................................................2.. 2-15 How to Set the Locations for the BlackBerry JDE.........................................................5 Taking a Look at the Fusion Order Demo Mobile Client Application..................... 2-15 How to Set Up a BlackBerry Emulator ........5 2............... 3-7 3.........................................................................6 Viewing Ordered Items ...........8 2...2 Installing the Fusion Order Demo Schema .... 2-14 How to Install BlackBerry Desktop Software........2 2.... 3-1 3...............................................5......... 3-15 3............................11....... 2-21 How to Set Up Users and Subscriptions ...........................................................2 Model Project .........1 2................. and the MDK 2-15 How to Initiate Synchronization...........................................2....4............ 2-13 How to Install the BlackBerry JDE .... 3-17 vi Beta Draft ..2 2....11 2................ 2-21 What Happens When You Make Changes to the Mobile Database.. 2-17 How to Run the Demo Application on a Windows Mobile Simulator........... 3-7 3.......................................

....... 5-17 View Accessor Support for Entity Objects and View Objects ...................4....3......................... How to Create a Task Flow ....... 5-15 How to Show the Error Message as Output Text ...........1 5......2......6..............................2 5........................4...... 4-1 4-1 4-1 4-2 4-4 4-5 5 Developing ADF Mobile Client Applications 5......2............... 5-19 Using Display Hints for Entity Objects .................................. Creating an Application Workspace ..................................................................................................3.1 5...........4 5....................3 5.............7 5.. 5-8 How to Add Attributes .......8 5................ 5-25 Concurrency ....3..... Deploying the Model Project of the Server Application as an ADF Library...................... 5-18 Using List UI Hints for View Objects ............... 5-23 Unsupported Methods......................2 5.4.........................................4.................................2 4..........................4..............1 5.......................................................... 5-26 Foreign Keys.3 5................................................................2 5..2.........................................4 About Declarative Development with JDeveloper .....................................................3 5. 5-5 How to Create Subsets of Entity Objects and View Objects...................4 Getting Started with ADF Mobile Client 4..........................................2 6..................4........3 Introduction to Creating the ADF Mobile Client User Interface ................... 5-9 How to Add Transient Attributes ........................ How to Create an Application Workspace ... 5-24 Interacting Directly with SQLite.......... How to Use the Mobile Client Task Flow Creation Wizard..... What Happens When You Create a Mobile Client Application Workspace ............ 5-25 SQL Support .....................................1 4...4......................2 5................................ Creating Task Flows ..5 5....2...1 5............4......................................7 5.........................1 5..........................1.............1 6................................................ 5-26 6 Creating the ADF Mobile Client User Interface 6....................... Extending the Server Application for the Mobile Client Application................................................... 6-1 6-2 6-2 6-4 6-5 Beta Draft vii ..................................................... 5-10 Adding Validation Rules .........1 5.........6................................................................6 5........................ 5-24 Differences Between SQLite and Other Relational Databases ............4............................................................5.......................1 5................................. 5-22 Supported Constructs ......... 5-5 What Happens When You Create a Subset of Entity Objects and View Objects ...................3 4....3.........................................................................1.............7........ 5-1 Building Business Services for ADF Mobile Client Applications .............4..........................................................................1......................... 5-4 Extending an ADF Application to Mobile Client.......1 5........ 5-26 Configuring JDeveloper to Connect to and Test Against a SQLite Database ...........2 6.........................................6 5... 5-2 Support for the Core ADF Business Components .............. How to Create an Additional Task Flow .....4 5....................................................... 5-26 How to Test Against a SQLite Database .................4...............................................1... 5-3 What You May Need to Know About Binding Layer Components ................ 5-15 How to Show the Error Message as a Message Box .......1..............6....4.................2 4......................................3..................................6......................................................... 5-20 Adding Positional Binding Variables to View Objects ................................................1 5.....6........................................................2 5.................................................................1 5...............5 5............................................................. 5-11 How to Add a Validation Rule to an Entity or Attribute ...1 6............... 5-21 The Entity Object and View Object Extension .........................4 5............................................................... 5-14 Overriding Default Validation Error Handling .2...........4..........................1 4.............................................1 About Developing an ADF Mobile Client Application..5.....................................2 5........................................................... 5-8 Editing Mobile Entity Objects ..................... 5-25 Data Types .............

................ 6-22 6.................4 How to Create MCX Pages.....................4 Vertical Alignment in Horizontal Panels...........6 How to Use a panelLabelAndMessage Component. 6-25 6............................................................................. 6-21 6..............1 How to Add a form to a Page ......... 6-26 6........................3 What You May Need to Know About Geometry Management and the panelGroupLayout Component 6-23 6..................5.....................5 What You May Need to Know About Geometry Management and the panelFormLayout Component 6-28 6...................................4.....4......................1....3 How to Add Data Controls to an ADF Mobile Client View..............................................2.......................... 6-8 6.................. 6-15 6.... 6-10 6........... 6-25 6......4... 6-16 6.............5...................4.3................2 Vertical Scrolling in Vertical Panels................................ 6-24 6...................................4...............2............3..........................................3......................... 6-22 6........4 How to Use a panelFormLayout Component ........................................ 6-29 6.............................................3...1..........4...4.........................2.....4......3.............................5 Nesting Vertical Panels.......3................................................5 Nesting Horizontal Panels ........1 What You May Need to Know About the MCX Page Structure..........1 How to Add an inputText Component to a Page ........... 6-7 6.........................3 Horizontal Alignment in Horizontal Panels ...1........................................1................1................2....................4.........4.............1 Horizontal Scrolling in Horizontal Panels........3.. 6-26 6..... 6-6 6.........................3...............................................10 How to Add a Wildcard Control Flow Rule............................................................1.................................................................................3 Horizontal Alignment in Vertical Panels..........9 How to Add View Activities...... 6-18 6....... 6-9 6.........7 What You May Need to Know About the Mobile Client Task Flow Diagrammer...........4............7 How to Set Component Attributes.....4...........................3..4. 6-26 6....................2 How to Use a panelGroupLayout Component ..2......... 6-26 6.........3..............3.....4.......6 Overlapping Vertical Panels .......... 6-9 6.... 6-26 6.4 Designing the Layout of the Page..............................4..........................................................3.....4 Vertical Alignment in Vertical Panels ..........2...................3........................2...2.......... 6-24 6...............................4 What Happens When You Create a Mobile Client Task Flow....8 What Happens When You Use the Property Inspector .... 6-25 6....4........ 6-24 6......................4................ 6-25 6........3.............3.......3 Creating Mobile Views.....................................4. 6-21 6...1 Geometry Management and Vertical Panels ...2.......6 Overlapping Panels......................2. 6-10 6.................1.............................................................2 Geometry Management and Horizontal Panels ......................2. 6-30 6. 6-21 6...... 6-30 6..................6...................................................................... 6-9 6.2..........5 What You May Need to Know About Supported Activities and Control Flows................7 Margins and Padding Between Panels........................4..............................................................2....2 How to Use the Visual Editor ..3.. 6-29 6......... 6-25 6......................................1 Horizontal Scrolling in Vertical Panels .........5 Creating and Using Input Components .......xml File ...................3..........4................................................ 6-26 6...2......................................2.....6...................................4...............1 How to Use the inputText Component ........................... 6-20 6........1 What You May Need to Know About Arranging Labels ............3.........6 What You May Need to Know About the MobileClient-task-flow.................. 6-5 6.........................7 Margins and Padding Between Horizontal Panels ....3......4...............5 What Happens When You Create a MCX Page .6 How to Add Mobile Client Components to MCX Pages .......... 6-31 viii Beta Draft ............4.... 6-25 6..8 How to Add Mobile Client Activities ........3.....4......................................................1..1 How to Use a form Component.......3........... 6-27 6...............2 Vertical Scrolling in Horizontal Panels .................... 6-9 6.....3............................... 6-24 6...11 How to Enable Page Navigation Using Control Flow Case . 6-8 6.......................................3............................3...........1. 6-11 6..................

.................3 What You May Need to Know About Differences Between selectItems and selectItem Components 6-45 6.........1 Main.....5.........................6.... 6-34 6......................1 How to Use the outputText Component........ 6-52 6.....7 Displaying Images .........5.... 6-43 6.......................................................9 Using Buttons and Links for Navigation..1 Menu Types ........10..5.6 Creating and Using Output Components ........... 6-51 6..1....2 Supported Image File Formats...3...............5...... 6-39 6..2........1..3 What You May Need to Know About Geometry Management and the commandLink Component 6-61 6.....1.....................................2 How to Convert Numerical Values .................................................................. 6-33 6.......6............... 6-63 6............................ 6-59 6.....9........1 How to Add an selectOneChoice Component to a Page ...1.................. 6-62 6.................5 How to Use the selectOneChoice Component ..... 6-51 6.............................................................................1 How to Add an inputNumberSpinbox Component to a Page ...............................................1 How to Display an Image..................................................................... 6-42 6.................7......1..........................2 Adding Event Listeners to Output Components ............8............. 6-51 6...........................................................10...3 How to Convert Date and Time Values ........... 6-45 6........5.9..2 What You May Need to Know About Geometry Management and the selectOneChoice Component 6-45 6........... 6-37 6.......................5.............1 How to Use the commandButton Component.5..2........5.......................5...10 Creating and Using Menus......................................... 6-40 6....5........3 What You May Need to Know About Geometry Management and the image Component 6-52 6..8 Creating and Using Tables ...........4. 6-49 6...............................9..................1.......... 6-62 6............... 6-36 6..................1 How to Add an inputDate Component to a Page ..... 6-46 6.5.......1 What You May Need to Know About ADF Mobile Client Menus....1 What Happens When You Create a Table ..................2 What You May Need to Know About Geometry Management and the selectBooleanCheckbox Component 6-42 6.................... 6-50 6..10.. 6-62 6.................7...........1 How to Add a commandButton Component to a Page ..............5.....................7....... 6-56 6....What You May Need to Know About Geometry Management and the inputText Component 6-33 6..............5......3 How to Use the inputNumberSpinbox Component....................................................................... 6-52 6...........4...................................................................6...............................................................5......................3.........2....6.2 What You May Need to Know About Geometry Management and the inputNumberSpinbox Component 6-39 6.. 6-57 6....6 Adding Event Listeners to Input Components .5................................................................9... 6-56 6.............. 6-46 6.........1 How to Add a selectBooleanCheckbox Component to a Page .9.....5.....................5..................6...9.................................5.........................................................................1................................................................................2 How to Use the inputDate Component............... 6-56 6.2 Beta Draft ix ..............1 How to Add a commandLink Component to a Page............................2 What You May Need to Know About Geometry Management and the inputDate Component 6-36 6.................4 How to Use the selectBooleanCheckbox Component ...........4 What You May Need to Know About Geometry Management and the commandButton Component 6-61 6...................................................................1 What You May Need to Know About Geometry Management and the outputText Component 6-48 6.................................1...2 How to Use the commandLink Component............ 6-59 6.......

........ 7............................................................................................... 7...........................1.... 7.....................2............. 8-2 x Beta Draft ..2..... 6... 7...................3 Referencing Binding Containers........................................................1 Supported EL Nodes ...............5 Adding Event Listeners to Menus.... 6........10..............................................2 ADF Mobile Client EL Implementation Details ....................................2.....................................2 Method Expressions and Functions. 7........ 6................................. 7..... 6..............2 Introduction to Deploying ADF Mobile Client Applications...1 Extending the oracle.....3 About Managed Beans in ADF Mobile Client Applications .............2......1...1.... 6-64 6-64 6-64 6-65 6-67 6-68 6-69 6-71 6-72 6-73 6-74 6-76 6-76 6-77 6-77 6-77 6-78 6-78 6-78 6-79 6-79 7 Extending ADF Mobile Applications with Java About Invoking Custom Methods Through EL Expressions .........................1.................................1...........12...........................................................1.........................BeanResolver Framework Class ..3 Alternate Package Names.....1......................................1..2.................1.....................6....................10..................................... 6................2 Java Support for Business Components ....2...........1........................ 6.....12....1 Calling the execute Method Explicitly ............ 8-1 Creating Database Connections and Using Login Credentials... 6..... 6..................................................1..adfnmc...10.....................12......................................................1 7.3 menuGroup ........2............1 Support for Reflection ............10........10......................................... 7......2 Implementing the Method Invocation Code .....................2 Alt ..................4 Supported Java Extension Points for Business Components ..1...........................................................1...............................10...2 How to Create Menus for BlackBerry Smartphones ........1.. 6................................ 6............... 7.................................4 Support for ResourceBundle .................................................. 6.. 6........................el...................................................................5 Additional JavaSE Classes Provided by the ADF Mobile Client Framework ................10...............................2... 6..............1 Unsupported Methods.....................................................................10.......util.....................12.................................................. 6......................................................1 8..........................................................................................4 What You May Need to Know About Design-Time Menu Usage ......1...10..........4 menuControl .....................3...............................................10....... 6.......................................................................2 Associating the OperationDelegate execute Methods with Named Binding Objects 7-3 7............................ Adding Delegation Code for Custom Methods in Application Modules and View Objects 7-1 7.............................1 Calling Application-Specific Code Through the OperationDelegate execute Method 7-2 7........2 JDK 1.................. 7..1 Defining a BlackBerry Full Menu...........................2 Menu Components .......12................4.........................................................2........................................3 Compliance..................................................................1............... 7....3 Associating Menus with UI Components ..........2 Registering the OperationProvider Implementation ...........2......................1 Immediate and Deferred Evaluation ................................5 subMenu ....................................3 Enumerated Types ..........1 7-1 7-3 7-4 7-4 7-4 7-4 7-5 7-5 7-5 7-6 7-6 7-6 7-8 7-9 8 Deploying ADF Mobile Client Applications 8..................2 commandMenuItem............................................................ 7............1................ 6.................................. 7....... 6......12.1............. 6..................................2.................................................. 6...11 Using Event Listeners...1................2.......................... 6....2........1............................................................3 How to Create Menus for Windows Mobile Devices...............10..................... 7.....................3...............2................1 menu.........10..12 Understanding EL Support ............................................10.......

.........2.........1 8......................................4 8...10.....................2 8.....................................................2 8.......................................10.................3.8...............................2.............................6.............. 8-2 BlackBerry Platform Connections .......1 Introduction to Testing and Debugging an ADF Mobile Client Application ...1 8..3 8.................. 8-13 How to Use the Deployment Action: Deploy Application to Device... 8-7 How to Set Application Options for a Windows Mobile Deployment......4 8...... 8-2 Tasks Common to All Deployments ................................................................3 8.............10 8...7.8 8..........9.......................................... 8-4 Deploying to the Windows Mobile Platform............1 8. Setting Up the Debugger ... 8-4 CAB Packaging Format.........11..........................................3 8... 8-6 Preparing for Data and Application Deployment to a Windows Mobile Device ............ 8-9 Preparing for Data and Application Deployment to a BlackBerry Smartphone ...............1 8............................................................4 Windows Mobile Platform Connections ..4 8...11............ 8-16 How to Place the Application-Installation COD File on the Smartphone.. 8-12 How to Synchronize the Data Using Oracle mSync .8......................................7.....1 9................3 8.....8................................................................................2 8....................... 8-10 Deploying the Application Data...6..... 8-15 How to Set Project Properties (BlackBerry Options) ...........................................6...........11 8..........4 8....... 8-5 Deploying to the BlackBerry Platform.... Testing an ADF Mobile Client Application ................. 8-6 How to Set Up Application Data Publication for a Windows Mobile Deployment........................11.............................................. 8-10 How to Set Up Application Data Publication for a BlackBerry Deployment ... 8-10 How to Set Project Properties for a BlackBerry Deployment...............7 8..... 8-15 How to Use the Deployment Action: Deploy Application to Device. 8-6 COD Packaging Format ...7..........................1 8................................................................................... 8-13 How to Set Project Properties (Windows Mobile Options).............10............................3 8.........................................3 9.........6........................................... 8-13 Deploying the Application to a Windows Mobile Device .......5 8...............9...................................1 8. Debugging a Windows Mobile ADF Mobile Client Application...... 8-13 How to Place the Application-Installation CAB File on the Device................ 8-12 How to Register the Device with Mobile Server........2 8... 8-9 How to Create Deployment Profiles for a BlackBerry Deployment ..........4............3 8................................................ 8-16 9 Testing and Debugging ADF Mobile Client Applications 9..................9 8..................................................4............................................................................................ 8-3 Tasks for Windows Mobile Deployments..4 9...........................11...... 8-6 How to Create Deployment Profiles for a Windows Mobile Deployment ....... 8-10 How to Set Application Options for a BlackBerry Deployment.5............................... 8-15 Deploying the Client Runtime Application to a BlackBerry Smartphone........ 8-2 Summary of Deployment Tasks .............. 8-14 How to Install the ADF Mobile Client Application on the Device..............1 8...................... 8-9 How to Set Project Properties for a Windows Mobile Deployment............. How to Use the Debugging Shortcut within the Deployment File .....................................................2 8.................10....................2 8....... 8-4 Tasks for BlackBerry Deployments ...1 8......................2 9...............3.7......6 8..3..................2 8.............2 8.. 8-10 How to Publish Application Data to the Windows Mobile Device or BlackBerry Smartphone 8-10 How to Verify Your Publication and Publication Items Using Mobile Database Workbench 8-11 Synchronizing the Application Data............................................1 8........ 8-16 How to Install the ADF Mobile Client Application on the BlackBerry Smartphone...... 9-1 9-2 9-2 9-2 9-2 Beta Draft xi ..............1 8..................................

....................................................................................3 Monitoring Server Load ................4.2 How to Set ’RetrievedOnInsert’ on Sequence-driven Primary Key Fields ...............7.................................. 9-6 9.........................................................................8.......2 About Determining the Location of the Local Database ................2 A...........1... 9-5 9............ B...2 Updating adf-config.............................2 How to Add Application-specific Settings .......4 Enabling Logging of Errors on a Windows Mobile Emulator ......................................................1 How to Troubleshoot Synchronization of Publications .........2......................... 9-13 9..................1 A...........2 Getting the SQL Script to Work .............................................2 Literal Format for Date Types...................3 How to Debug a Windows Mobile ADF Mobile Client Application on a Mobile Device 9-3 9........................1 Supported Column Data Type Declarations ... B.......2 Monitoring RI Volume...util.............. 9-3 9..........................................................1.....................1............................................ B................................................................ A-3 What Happens When You Specify a Device Database Name...........3 Enabling Logging of Errors on a BlackBerry Smartphone Emulator....2 How to Debug a BlackBerry ADF Mobile Client Application on a BlackBerry Smartphone 9-5 9.................... 9-12 9.........How to Debug a Windows Mobile ADF Mobile Client Application on an Emulator ... 9-13 9..............................5..................................................2.2..4.1 Creating the SQL Script .............4 A. 9-9 9............... 9-13 9.4............. B...................1........2. B-1 B-1 B-1 B-2 B-2 B-3 B-3 B-4 xii Beta Draft .................................................. 9-13 9.............................. 9-6 9...................... A-2 Specifying that an Application Should Not Use Any Database........................................... 9-6 9. 9-7 9......... 9-13 9....................1 A...............................................3 A. A-1 Specifying that an Application Should Use a Custom Database ............................................2............ B......10.... B.....4 Inserting Multiple Rows into a Table ..1 How to Debug a BlackBerry ADF Mobile Client Application on an Emulator..............................1 How to Monitor System Performance ............................ 9-13 9......... 9-5 9...............10.................................................... 9-6 9..1............. A-3 What Happens When Oracle Database Lite Manages an Application's Database ...........................10....................5 Debugging a BlackBerry ADF Mobile Client Application....................... B...............xml .... A-2 Specifying that an Application Should Use a Database Managed by Oracle Database Lite .......................... 9-4 9..............................1.....................8 Logging Errors.............4....................................3 About the ADF Mobile Client Logging Facility .2.8.......4 Monitoring Conflicts .......................................................logging.........................................................4......1 About the ADF Mobile Client Settings Facility.....1 Reviewing Oracle Mobile Server to Monitor User Synchronization Histories 9-13 9...............................................................8............................................ 9-5 9.........1.. A-3 B Initializing a Database with a SQL Script B................................................................5....................................7 Testing Synchronization ........5 How to Log in Java Code...........1........1 About Using SQL Initialization Scripts ...4 How to Configure Logging Using the Settings Facility .........8..10.............................10........8......... 9-3 9...................... 9-12 9.... 9-13 9...3 SQL Syntax .....................................6 Modifying the Deployment and Run Configurations .9 Debugging the Mobile Application with java...........5.....................10 Optimizing Performance of a Mobile Client Application.2 A Determining the Client Database Location A..............................................................................................10....................

................1. F-1 Index Beta Draft xiii ..........................2 Updating the Application Task Flow .......1 E............................................................C ADF Mobile Client Libraries D Advanced Topics D..................................1 Adding Devices in the Page Designer .................................................. D........ D....1.......1 How to Create a Custom Sync page Page.....................2 Customizing the Synchronization Setup ............................ D.......................... D..................................................................................2................1 Using the OperationProvider and OperationDelegate Interfaces ............................................................. D-1 D-2 D-2 D-2 D-5 D-6 E Troubleshooting E.............. E-1 F Sample Code F..............2 Recovering from an mSync Failure ..................2 How to Control the Prompting of Synchronization Parameters ..................2.........1 Creating a Custom Page for Mobile Sync ......2...................2....................................................... E-1 Errors When Testing Value Binding Queries .. D................

xiv Beta Draft .

Accessibility of Links to External Web Sites in Documentation This documentation may contain links to Web sites of other companies or organizations that Oracle does not own or control.223. services. some screen readers may not always read a line of text that consists solely of a bracket or brace. For more information.com/accessibility/. This documentation is available in HTML format. and a list of phone numbers is available at http://www. and supporting documentation accessible to all users.html. Accessibility standards will continue to evolve over time. Deaf/Hard of Hearing Access to Oracle Support Services To reach Oracle Support Services. and Oracle is actively engaged with other market-leading technology vendors to address technical obstacles so that our documentation can be accessible to all of our customers.fcc.html. An Oracle Support Services engineer will handle technical issues and provide customer support according to the Oracle service request process. our documentation includes features that make information available to users of assistive technology. The conventions for writing code require that closing braces should appear on an otherwise empty line. Accessibility of Code Examples in Documentation Screen readers may not always correctly read the code examples in this document. To that end. however. use a telecommunications relay service (TRS) to call Oracle Support at 1. Documentation Accessibility Our goal is to make Oracle products. visit the Oracle Accessibility Program Web site at http://www.1711. Information about TRS is available at http://www.Preface Welcome to Mobile Client Developer's Guide for Oracle Application Development Framework. Beta Draft xv .gov/cgb/consumerfacts/trs.gov/cgb/dro/trsphonebk.oracle.800. Audience This document is intended for developers of browser applications. Oracle neither evaluates nor makes any representations regarding the accessibility of these Web sites. including users that are disabled.fcc. and contains markup to facilitate access by the disabled community.

Italic type indicates book titles. code in examples. URLs. or terms defined in text or the glossary. see the following: ■ Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework Oracle Database Lite Getting Started Guide Oracle Database Lite Developer's Guide Oracle Database Lite SQLite Mobile Client Guide ■ ■ ■ ■ Conventions The following text conventions are used in this document: Convention boldface italic monospace Meaning Boldface type indicates graphical user interface elements associated with an action.Related Documents For more information. text that appears on the screen. Monospace type indicates commands within a paragraph. or text that you enter. xvi Beta Draft . emphasis. or placeholder variables for which you supply particular values.

Uses APIs of a mobile device or smartphone for improved performance. ADF Mobile client applications use Oracle Database Lite Mobile Server to communicate between the application server and the mobile device or smartphone. The main functional components of ADF Mobile client are the mobile client itself and Oracle Database Lite Mobile Server.1 Introduction to ADF Mobile Client ADF Mobile client lets you develop high-performance mobile applications that do not require a browser and that provide full functionality even when disconnected from the server.2 Infrastructure Requirements for Developing ADF Mobile Client Applications A number of physical and logical components are required when developing mobile applications using ADF Mobile client. Uses the UI of a mobile device or smartphone for the native look-and-feel.1 1 Introduction to Oracle ADF Mobile Client This chapter introduces ADF Mobile Client–an Oracle JDeveloper extension for developing rich applications that run on the native interface of mobile devices and smartphones. ADF Mobile client is built upon the ADF Mobile platform and lets you extend an existing Oracle ADF application to create a new application that will run on any platform ADF Mobile client supports (see Section 1.4.5. On the server side. "Run-Time Architecture of ADF Mobile Client" Section 1.1. ADF Mobile client provides the following: ■ ■ ■ Enables access to features of a mobile device or smartphone. "Introduction to ADF Mobile Client" Section 1. ADF Mobile client application data is processed in the same way that data from regular ADF applications is processed. "Introduction to ADF Mobile Client Application Development" ■ ■ ■ 1.4. "Infrastructure Requirements for Developing ADF Mobile Client Applications" Section 1.2. Beta Draft Introduction to Oracle ADF Mobile Client 1-1 .3.5. This chapter includes the following sections: ■ ■ Section 1. 1. ensuring data integrity and similarity of business processes. "Data Synchronization" Section 1. "Supported Devices and Databases").

Infrastructure Requirements for Developing ADF Mobile Client Applications Very simplistically.5. "Support for Expression Language" Oracle Database Lite Mobile Server that ADF Mobile client employs for synchronization may be hosted on the same server as the base ADF application. see the following: ■ ■ ■ Section 1.7." Section 1. "Supported ADF Components and Attributes. When 1-2 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . such as view objects.5. and so on. "Support for ADF View Objects" Section 1. known as the base application.1.5. see the following: ■ ■ ■ Section 1. "Introduction to ADF Mobile Client Application Development" ADF Mobile client is compatible with Oracle ADF (see "Introduction to Oracle ADF" in Oracle Fusion Middleware Developer's Guide for Oracle Application Development Framework).3.6. Figure 1–1 ADF Mobile Client Infrastructure As the preceding illustration demonstrates.5. interactions between the base ADF application including its database and the extended ADF Mobile client application are enabled by synchronization. "Run-Time Architecture of ADF Mobile Client" Section 0. You apply your existing ADF development skills to develop mobile client applications. Expression Language (EL). the ADF Mobile client infrastructure can be expressed as Figure 1–1 shows. UI components.5. "Data and Transaction Synchronization" Section 1. For additional overview information on ADF Mobile client. An ADF Mobile client application is always an extension of an existing ADF application. The mobile client shares most of the features and functionality of Oracle ADF by supporting many ADF components. For more information on what Oracle ADF shares with Oracle ADF Mobile client.

even though requirements vary depending on the platform for which you are developing. "Data and Transaction Synchronization. see Table 2–1.3 Run-Time Architecture of ADF Mobile Client ADF Mobile client consists of the following parts: ■ ■ ■ View expressed as a mobile device UI Controller powered by the ADF Mobile framework Model that includes the following: – – local relational database. UI metadata is rendered to native components on-device and is bound to the model through JSR 227. mobile BC4J layer. Beta Draft Introduction to Oracle ADF Mobile Client 1-3 . the data from the mobile client application’s SQLite database is synchronized with the base application’s data. For more information on synchronization. see Section 0. " Prerequisites for Developing ADF Mobile Client Applications".1." When planning the development of a mobile client application.Run-Time Architecture of ADF Mobile Client connectivity is available. ■ Java runtime Note: ADF Mobile client’s model-view-controller stack resides on a mobile device or smartphone and represents reimplementation of ADF’s model-view-controller layers. Figure 1–2 shows the ADF Mobile client architecture (in red) and how it fits into the overall ADF architecture. 1. you generally need the following: ■ ■ ■ ■ ■ ■ Oracle JDeveloper Oracle Database An existing ADF application Oracle JDeveloper extension for ADF Mobile client A mobile device or device simulator Oracle Database Lite Mobile Server for data synchronization For more information on prerequisites.

"About Synchronizing Data with Oracle Mobile Server" Section 8. Figure 1–3 ADF Mobile Client Run-Time Synchronization ADF Mobile client provides local data storage on the mobile device or smartphone by synchronizing a subset of application data down to the device. see the following: ■ ■ ■ http://www.html Section 7. "Synchronizing the Application Data" 1-4 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . it relies on Oracle Database Lite Mobile Server to preserve integrity of the application data. Figure 1–3 shows how ADF Mobile client’s run-time synchronization mechanism functions.4 Data Synchronization Data integrity is the main goal of any data-processing application. For more information. The mobile client enables the table-level data synchronization from server to client through the use of Oracle Database Lite Mobile Server and Oracle Lite publication items.oracle. Because ADF Mobile client enables functionality when the client is disconnected from the server and the main data source.com/database/database-lite-mobile-server.9.Data Synchronization Figure 1–2 ADF Mobile Client Run-Time Architecture Within ADF Architecture 1. This frees you from the need to provide the data synchronization code for your application.1.

1. declarative page navigation." 1. "Developing ADF Mobile Client Applications. use of wizards to define business logic.3.1 Application Architecture Your ADF Mobile client application will always extend an existing (base) ADF application: ■ Your entity objects will be copies of a subset of the entity objects of the base application. The application functionality is largely supported without the use of network connectivity. ADF Mobile client lets you take a declarative approach (drag-and-drop of components. you cannot create view objects that are based on SQL statements. Note: ■ With ADF Mobile client. The following is a potential architecture for your ADF Mobile client application: ■ A database-bound." You use a wizard to generate your mobile client application’s logic components from the base ADF application’s business components. Your view objects will either be based on entity objects. Data is synchronized from a server database to the mobile device or smartphone. and so on) to your application development by enabling the following: ■ ■ ■ declarative UI design.Introduction to ADF Mobile Client Application Development 1. Oracle recommends that you follow an iterative step-by-step development process.2 Typical Development Stages As with most application development. you have an option to customize it using Java code.5 Introduction to ADF Mobile Client Application Development To ensure the best design for your ADF Mobile client application. or they will be represented by static view objects. see Section 5. For more information. "Extending an ADF Application to Mobile Client. mostly disconnected application that consists of several views bound to data in tables stored in a local database on the device. "About Developing an ADF Mobile Client Application.5. For more information. you perform the following activities when building your ADF Mobile client application: Beta Draft Introduction to Oracle ADF Mobile Client 1-5 .5." 1. For more information. see Chapter 5. Note: Even though ADF Mobile client application is defined as XML with components expressed as XML tags. declarative data binding. see Section 5. This data synchronization is the primary communication mechanism between the server application along with its data sources and the ADF Mobile client application.

Introduction to ADF Mobile Client Application Development ■ ■ ■ ■ ■ Gather requirements for your application. Consider the tasks a mobile user will be performing. or cameras) to simplify processing? Design your mobile application to be a genuine assistant to the mobile worker. 5. 4. keeping in mind that handheld usage is different from that of a laptop or desktop machine. Design and refine the user interface. The tasks you are bringing to the mobile application will have some server-side data representation. smartphone or simulator. "Setting Up the ADF Mobile Client Environment." Create your mobile client application using JDeveloper: ■ ■ ■ ■ ■ ■ 2. the more they'll use it. A disconnectable mobile application is generally created as an extension of a server application. Create mobile views. Set up the mobile device. Design your application. Create database connections. Extend your base ADF application to the mobile client application. see Chapter 2. For more information. Can peripheral input devices be used (barcode scanners. smartphone or device simulator: ■ ■ ■ ■ ■ ■ Set up data synchronization. Build your mobile client business services. Design mobile tasks. Although the mobile application should not mimic the server/desktop application in its presentation. and likely they will have some server validation code as well. Develop your application. Design a mobile data schema. Edit entity objects. Deploy your application. Test your application. The steps you take to build your ADF Mobile application will generally occur as follows: 1. Synchronize the data. its underlying data schema will mimic the server’s data schema because it is a subset of that server schema. Deploy the application to a mobile device. Deploy the client runtime application. Deploy the application data. Set up your work environment. Develop mobile client task flows. 1-6 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Use that information as a starting point for creation of your mobile application. 3. Install the necessary applications and complete the required setup for development and deployment. How will the mobile application help users get their jobs done? How will the users interact with the device? The more streamlined the application. not just a new data collection tool. It is assumed that you have a server-side database with an application schema already in place. Examine your server schema and identify the subset of tables and columns that will need to be available in the handheld application.

Deploy the application to users. 8. it does not officially support foreign key constraints. portable file that is binary-compatible across a diverse range of computer architectures and operating systems. 6. ■ Beta Draft Introduction to Oracle ADF Mobile Client 1-7 .5.4 Supported Devices and Databases ADF Mobile client supports BlackBerry smartphones and Windows Mobile devices. it is ACID-compliant (atomicity. The supported database for these devices is SQLite (see Section 1.4. "What You May Need to Know About SQLite"). a page is live as long as it is displayed.5. Test and debug the application: ■ ■ ■ ■ Test the application.Introduction to ADF Mobile Client Application Development Note: In the ADF Mobile development framework. 7.1.7. isolation. the mobile client does not represent a life cycle-driven system: once its view (page) is created. Enable logging of errors. For more information on the JSF extended life cycle. it is weakly-typed: any object can be stored in any column." For more information on ADF life cycle.5. In other words. Monitor system performance.4. it is contained in a small library. SQLite databases are entirely self-contained in a single. 1. the flow of data from the UI to the model and back is immediate and continuous. Debug the application and optimize performance.1 What You May Need to Know About SQLite SQLite is a relational database management system (RDBMS) specifically designed for embedded applications. see Section 1. 1. consistency. see chapter 21 "Understanding the Fusion Page Lifecycle" chapter of Oracle Fusion Middleware Developer's Guide for Oracle Application Development Framework. For more information on EL.5.3 The Life Cycle of a View Unlike ADF. A mobile client application cannot be run until you deploy it. although triggers can be used as a workaround. 1. Test synchronization. SQLite has the following characteristics: ■ ■ ■ ■ it is embedded. see chapter 4 "Understanding the JSF and ADF Faces Lifecycles" chapter of Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework. "Support for Expression Language. which makes Expression Language (EL) expressions live as well. durability).5. it is required that you deploy to the device or device emulator before doing any testing and debugging. regardless of how that column was declared.

"Support for the Core ADF Business Components.3.12.1.5 Supported ADF Components and Attributes ADF Mobile client supports many ADF components and attributes.7 Support for Expression Language You use the Expression Language (EL) to enable data binding. organized by layer: ■ ■ Model layer. ADF Mobile client provides support for ADF view object functionality. "Invoking Custom Method Bindings on View Objects and Application Modules" ■ ■ ■ ■ 1." UI layer.5. Your application can either call the SQLite library dynamically through function calls. ADF Mobile client supports the use of compound EL expressions.7.4." 1-8 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . see http://www." ■ Although ADF Mobile client is compatible with ADF. Note: With ADF Mobile client. "Understanding EL Support. For more information. "The Entity Object and View Object Extension" Appendix A. See Section 6.3. 1. "How to Add Data Controls to an ADF Mobile Client View" and Section 1.sqlite." Binding layer. see the following: ■ Section 5. See Chapter 6.5.5. For more information. For an overview of the use of EL with Oracle ADF.Introduction to ADF Mobile Client Application Development ■ It does not support RIGHT OUTER JOINs. you cannot create view objects that are based on SQL statements. see Section 6.2. see section 1. with limited support for database field types.3.org 1.8 "Data Binding with Oracle ADF Model Layer" in Oracle Fusion Middleware Developer's Guide for Oracle Application Development Framework. a view object is an Oracle ADF component that encapsulates a SQL query and simplifies working with its results. "Support for Expression Language.5.1 "Introduction to View Objects" chapter of Oracle Fusion Middleware Developer's Guide for Oracle Application Development Framework Section 5. For more information.1. "Creating the ADF Mobile Client User Interface. "View Accessor Support for Entity Objects and View Objects" Section 5. there are a number of differences in every layer that exist due to the inherent differences between a mobile application and a Web application. "How to Create Subsets of Entity Objects and View Objects" Section 5.5. View objects can access the database directly for read operations.3.6 Support for ADF View Objects As stated in Oracle Fusion Middleware Developer's Guide for Oracle Application Development Framework.5. or make it part of the application itself by creating a link to the library. See Section 5. Refer to the following information.

however. you can define an application scope on one view of an application." Beta Draft Introduction to Oracle ADF Mobile Client 1-9 . With the mobile client. only supports the application scope. "The Life Cycle of a View. EL expressions defined in the application scope namespace are available for the life of the application.3. For more information.Introduction to ADF Mobile Client Application Development ADF objects exist within different scopes. and then reference it on another. see Section 1. session scope.5. page flow scope. and so on (see section 21. ADF Mobile client.3 "Object Scope Lifecycles" in Oracle Fusion Middleware Developer's Guide for Oracle Application Development Framework). such as the application scope.

Introduction to ADF Mobile Client Application Development 1-10 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .

"How to Run the Demo Application" 2.10. if you are going to use the ADF Mobile client sample application.1 About the ADF Mobile Client Environment Depending on the work you are going to do. you must download a ZIP file from Oracle Technology Network (OTN). the prerequisites vary.9. "How to Set Up the Device Simulator" Section 2. For example.5.4. "How to Install SQLite Mobile Client on the Device" Section 2.6. "How to Set Up Oracle Database" Section 2.8. "How to Initiate Synchronization" Section 2. and which mobile platform you are going to develop an ADF Mobile client application for. your prerequisites will be slightly different from those needed for a BlackBerry platform. "About the ADF Mobile Client Environment" Section 2.2. "How to Set Up Oracle Database Lite" Section 2. If you are developing an application for the Windows Mobile platform. Table 2–1 summarizes the various requirements so that you can make sure you have the applications you need installed and running before you begin.7.2 2 Setting Up the ADF Mobile Client Environment This chapter includes the following sections: ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ Section 2.3. "How to Set Up Oracle Mobile Server" Section 2. Beta Draft Setting Up the ADF Mobile Client Environment 2-1 .1. "How to Set Up JDeveloper" Section 2. "How to Set up the Fusion Order Demo Mobile Client Application" Section 2.

"How to Set Up JDeveloper. "How to Initiate Synchronization." See Section 2. "How to Install SQLite Mobile Client on the Device.6. See Section 2. The sample application deployed to a simulator or device." See Section 2. "How to Set up the Fusion Order Demo Mobile Client Application.2." See Section 2. "How to Set Up Oracle Database.2." See Section 2. the required files are installed as part of the sync and runtime installation." See Section 2." 2-2 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .10." Work with the ADF Mobile client sample application Mobile device emulator or mobile device (BlackBerry deployments only) BlackBerry Mobile Data Service Simulator (MDS simulator) (Windows Mobile deployments only) mBS Mobile OSGi for Windows Mobile by Prosyst Software GmbH Synchronization initiated using mSync SQLite Mobile Client installed on your BlackBerry smartphone or Windows Mobile device.6." This component installs with the BlackBerry JDE and represents the BlackBerry network access server.3. For Windows Mobile.5.4.About the ADF Mobile Client Environment Table 2–1 Before you: Prerequisites for Developing ADF Mobile Client Applications You must have: Oracle JDeveloper Oracle JDeveloper extension for ADF Mobile client Oracle Database Lite Oracle Database (Standard or Enterprise Edition) Fusion Order Demo Mobile Client application A SQLite database Notes See Section 2. or your emulator. "How to Set Up JDeveloper." SQLite comes pre-installed on all BlackBerry smartphones. "How to Set Up the Device Simulator. See Section 2. See Section 2. "How to Set Up the Device Simulator.7. "How to Run the Demo Application." See Section 2. "How to Set Up Oracle Database Lite.8.

6. An ADF application must first exist and stand as the base (server) application for the mobile client.4." This component installs with the BlackBerry JDE and represents the BlackBerry network access server.3." See Section 2.7. or your emulator. you have successfully created a mobile client application. you cannot begin application development by creating a standalone mobile client application. "How to Set Up Oracle Database. "How to Set Up the Device Simulator.6. "How to Set Up the Device Simulator. "How to Install SQLite Mobile Client on the Device." A SQLite database Mobile device emulator or mobile device (BlackBerry deployments only) BlackBerry Mobile Data Service Simulator (MDS simulator) (Windows Mobile deployments only) mBS Mobile OSGi for Windows Mobile by Prosyst Software GmbH Synchronization initiated using mSync SQLite Mobile Client installed on your BlackBerry smartphone or Windows Mobile device. see Section 8.2. "How to Set Up Oracle Mobile Server.) Prerequisites for Developing ADF Mobile Client Applications Before you: Create an ADF Mobile client application You must have: Oracle JDeveloper Oracle JDeveloper extension for ADF Mobile client Oracle Database Lite Oracle Database (Standard or Enterprise Edition) An existing ADF application Notes See Section 2." See Section 2." See Section 2. "Deploying the Model Project of the Server Application as an ADF Library. see Section 4." At this stage. See Section 2.About the ADF Mobile Client Environment Table 2–1 (Cont." See Section 2. "How to Set Up Oracle Database Lite. "Creating Database Connections and Using Login Credentials.8. "How to Set Up JDeveloper. Various database connections and login credentials Oracle Mobile Server The server application’s model project deployed as an ADF library For a detailed list.2." See Section 2. See Section 2. For Windows Mobile. "How to Initiate Synchronization." Because you are extending an application to a mobile device.2. "How to Set Up JDeveloper." The ADF library contains ADF Business Components from the base ADF application that you are extending to the ADF Mobile client application." Beta Draft Setting Up the ADF Mobile Client Environment 2-3 . The view objects and entity objects used by the mobile client application are likewise based on the view objects and entity objects of the base application. so you have met all the prerequisites listed in "Create an ADF Mobile client application. Deploy an ADF Mobile client application to a development environment (general prerequisites) See Section 2. you must also meet the following prerequisites.9." Before deploying. For details. the required files are installed as part of the sync and runtime installation.2. SQLite comes pre-installed on all BlackBerry smartphones.

use this to deploy the packaged runtime application to the device. shown in Figure 2–1. 2. 2.How to Set Up JDeveloper Table 2–1 (Cont. see the Oracle Fusion Middleware Installation Guide for Oracle JDeveloper. BlackBerry Enterprise Server In your production environment. Choose Help and then Check for Extensions. Device Emulator Manager simulates an ActiveSync connection. Download the Fusion Order Demo Mobile client application ZIP file from the ADF Mobile page on OTN. use this to deploy the packaged runtime application to the device. Installed as part of the Windows Mobile emulator package. "How to Set Up the Device Simulator.oracle. located at: http://www. 2-4 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .oracle.6.6. you must have the general prerequisites listed previously." The v3 release of the Device Emulator. In the Source page. Click Next. Download and install Oracle JDeveloper from Oracle Technology Network (OTN). that released with Visual Studio 2008." In your development environment.com/technology/products/jdev/11/index.html Download the ADF Mobile client extension as follows: 1. Microsoft Device Emulator 3. as well as the following: Microsoft ActiveSync ActiveSync installation is only required for Windows XP. Before you develop an application or run the ADF Mobile client sample application. as well as the following: BlackBerry Java Development Environment (JDE 5. you must perform the following steps: 1. located at: http://www. V3 updates the V2 emulator that released with Windows Mobile 6.com/technology/tech/wireless/adf_ mobile.2 How to Set Up JDeveloper Setting up your ADF Mobile client development environment begins with Oracle JDeveloper and its ADF Mobile client extension. 3. select Install From Local File. you must have the general prerequisites listed previously. See Section 2.0) BlackBerry Desktop Manager See Section 2. It "cradles" (connects) the emulator for file synchronization using ActiveSync.) Prerequisites for Developing ADF Mobile Client Applications Before you: Deploy an ADF Mobile client application (Windows Mobile) You must have: Notes For deployment to Windows Mobile devices. "How to Set Up the Device Simulator.0 Device Emulator Manager Deploy an ADF Mobile client application (BlackBerry) For deployment to BlackBerry smartphones.html For more information about Oracle JDeveloper. 2.

Beta Draft Setting Up the ADF Mobile Client Environment 2-5 .3 How to Set Up Oracle Database Lite Your Oracle Database Lite installation provides the following tools necessary for developing ADF Mobile client applications: ■ Mobile Database Workbench (MDW). You can also use MDW to view and modify publications and publications items after application data has been published to the device. Mobile Sync (mSync). handheld devices. which is a small footprint application that resides on a mobile device and enables you to synchronize published application data between Oracle databases.zip that you downloaded in Step 2. You install these by dragging and dropping them from your development machine to a device emulator or to the mobile device For more information about the MDK. 2. see "Installing Oracle Database Lite" in Oracle Database Lite Getting Started Guide. Click Next and then click Finish. which is a development tool for creating publications and publication items. 4. Enter the location of the ADF Mobile client extension. adfmc_bundle. and desktop and laptop computers. For instructions on how to install the Mobile Development Kit. see "Mobile Development Kit (MDK)" in Oracle Database Lite Developer's Guide.How to Set Up Oracle Database Lite Figure 2–1 Selecting the ADF Mobile Client Extension 3. The MDK includes components that must be installed separately to a device or emulator. Oracle Mobile Server ■ ■ Install the Oracle Database Lite 10g (MDK on the computer on which you intend to develop your application.

then you need only download ActiveSync. For Windows Vista and Windows 7. use Windows Mobile Device Center (WMDC) instead of Windows ActiveSync.microsoft.blackberry. For the latest instructions on installing mobile simulators. available from http://www. Because Oracle Mobile Server uses the standard version of the database. 2.html Note: These emulators are included in SDKs. such as the Windows Mobile 6 SDK. see the ADF Mobile page on Oracle Technology Network (OTN). Table 2–2 Platform BlackBerry Required Software for BlackBerry Smartphones and Windows Mobile Devices Required Software ■ BlackBerry Java Development Environment (JDE 5. Always download the appropriate SDKs because they provide more than just emulators.5 How to Set up the Fusion Order Demo Mobile Client Application Open the demo application in JDeveloper.microsoft. you cannot synchronize data using XE (Express Edition) databases. located at: http://www.com ■ Windows Mobile ■ ■ Windows Mobile 6 emulators.4 How to Set Up Oracle Database While the ADF Mobile client application does not require a database.oracle.com/ You must install Windows ActiveSync if you use Windows XP.blackberry. the server-side application with which it synchronizes does. ActiveSync. 2-6 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .0. 2. For this reason.6 How to Set Up the Device Simulator Download and install emulators for supported mobile platforms (listed in Table 2–2).com/) which includes Smartphone emulators BlackBerry Desktop Manager. This database hosts the application data and the Oracle Mobile Server repository schema.com) is not required for Windows Vista or later.com/technology/tech/wireless/adf_mobile.com Download Windows Mobile emulators (if you use emulators).How to Set Up Oracle Database 2. available from BlackBerry (http://na. which is available from Microsoft (http://www. you must be able to access the same Oracle database that houses the data used by the server-side application you are extending. Because there is no local application database when you first create the mobile client application.0.microsoft. Note: Install either the Standard Edition or the Enterprise Edition. WMDC is available from http://www. you must install an Oracle database. available from http://na. If you work with physical devices and do not use emulators.0).

Windows Mobile 6.1.6." 2. you need to establish a connection with the development computer by cradling the device. Note: Windows Mobile Standard is not supported at this time because of control navigation issues. or deploying to a device emulator.aspx When you deploy and test your mobile client application. Beta Draft Setting Up the ADF Mobile Client Environment 2-7 .5 Professional.microsoft. see Section 2.0 Professional.1 Professional." For specific details on BlackBerry smartphone emulators. you can choose between deploying to an actual device.1 Setting Up the Windows Mobile Device or Device Emulator Supported Windows Mobile device emulators include the following: Windows Mobile 6.6.How to Set Up the Device Simulator For specific details on setting up Windows Mobile device emulators.2. "Setting Up the BlackBerry Smartphone or Smartphone Emulator. see Section 2. Download a supported Windows Mobile emulator from Microsoft: http://msdn.com/en-us/windowsmobile/bb264327. "Setting Up the Windows Mobile Device or Device Emulator. Windows Mobile 6. Figure 2–2 Deploying an ADF Mobile Client Application on a Windows Mobile Emulator Whether you are using a device emulator or an actual mobile device.6. Figure 2–2 shows a Windows Mobile device emulator.

choose Settings. You do. Microsoft ActiveSync establishes a connection from the device emulator to your development computer. from the Start menu.microsoft.6.6. you do not need to download the Windows Mobile SDK from Microsoft. you can deploy your mobile client application to a device emulator. then establishing a connection with your development computer. You begin by starting the Device Emulator Manager and choosing an emulator image. 1. however. ActiveSync installation is required.How to Set Up the Device Simulator 2.com For Windows Vista and Windows 7. You use ActiveSync when copying CAB files to the device or device emulator. To set up your device emulator: 1. This synchronization client connects your development computer to your device or device emulator. ActiveSync converts files to the mobile-device format when copying them. 2. choose DMA.2 How to Set Up a Windows Mobile Device If you are deploying and testing your mobile client application to a physical device rather than to a device emulator. Download ActiveSync from http://www. From the File menu. such as Professional VGA. On your development computer. For Windows XP. click OK. 2. and then choose your preferred emulator image. From the device emulator’s main menu. choose Connection Settings and then check the checkbox Allow connections to one of the following. From the dropdown list. choose All Programs > Windows Mobile 6 SDK > Standalone Emulator Images.1. WMDC is available from http://www. To set up your mobile device: 1.1. from the Actions menu. ensure that Direct Memory Access (DMA) is enabled as a connection option. choose Cradle. 4. In the Device Emulator Manager. use Windows Mobile Device Center (WMDC) instead of Windows ActiveSync. need Microsoft ActiveSync or Windows Mobile Device Center. 3.microsoft.com and contains all of the ActiveSync functionality. 3. The Windows Mobile emulator screen appears showing the image type you have chosen. 2-8 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . To save this setting and exit the Connection Settings dialog. From the Start menu. choose USB to PC and ensure that Enable advanced network functionality is selected. 2. choose All Programs > Windows Mobile 6 SDK > Tools > Device Emulator Manager. Note: Only a single Windows Mobile device or emulator can be cradled at any given time. Start Microsoft ActiveSync or WMDC. Then from the Connections tab. In Microsoft ActiveSync. check to make sure no other device or emulator is cradled. If ActiveSync does not automatically initiate a connection to the device.0. 5.1 How to Set Up a Windows Mobile Emulator During development.

3 How to Place Database-Installation CAB Files on the Device When your device or device emulator has been started and connected to your development computer. choose Program Files > Windows Mobile 6 SDK > Tools > Device Emulator Manager. c. you must then connect it to your computer. To connect the Windows Mobile Simulator: 1. b. as shown in Figure 2–3. On your development computer. In Microsoft ActiveSync.4 How to Connect the Windows Mobile Simulator After you install the Windows Mobile simulator. Connect the device to the USB port of the computer running JDeveloper. Note: Only a single Windows Mobile device or emulator can be cradled at any given time. To start a Windows Mobile emulator: a. If ActiveSync (or WMDC) does not automatically initiate a connection to the device.6. To place the database-installation CAB files on your device or device emulator: 1. Microsoft ActiveSync (or WMDC) establishes a connection from the device to your development computer. click the Explore button. 4. you take CAB files from the location of your SQLite installation on your development computer and put them on the device or device emulator. The files are moved and converted to a mobile-device format.1. 3.6. and in the Explorer window that pops up. From the Windows Start menu. This task readies you for installing the SQLite client database. check to make sure no other device or emulator is cradled. 2.1. Start the Windows Mobile device. 3. Click OK. navigate to the location of your SQLite installation and open the cabfiles folder. such as My Documents\Personal. 2. Move all three CAB files from the cabfiles folder to a folder on the device. 2. navigate to a conveniently accessible location on the device. choose Program Files > Windows Mobile 6 SDK > Standalone Emulator Images and then select an emulator. click Refresh and then select the preferred simulator. From the Windows Start menu. (For example: SQLite\Mobile\Sdk\wince\ppc60\cabfiles).How to Set Up the Device Simulator 2. Beta Draft Setting Up the ADF Mobile Client Environment 2-9 . From the Device Emulator Manager. A File Conversion popup appears with a message about Microsoft ActiveSync converting files when synchronizing between your mobile device and the development computer.

then use Windows Mobile Device Center (WMDC) to ensure that the simulator is connected to the computer as follows: Select Program Files > Windows Mobile Device Center. by selecting Program Files > Microsoft ActiveSync. Figure 2–4 Microsoft ActiveSync f. 1. Ensure that Allow connections to one of the following and DMA are both selected. open Microsoft ActiveSync. 3. Select Mobile Device Settings and then Connection Settings. illustrated in Figure 2–4. 2-10 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Click OK. 4. as shown in Figure 2–5. Click OK. Choose Actions and then select Cradle from the context menu.How to Set Up the Device Simulator Figure 2–3 The Device Emulator Manager d. Select Allow connections to one of the following and then select DMA. e. Note: If you use Windows Vista and Windows 7.0. To ensure that the simulator is connected to your computer. 2.

4.How to Set Up the Device Simulator Figure 2–5 Setting the Connection in Microsoft ActiveSync 2. see Section 2.1. 3. On the device or simulator. Unzip the downloaded file. To install the JVM: 1. For more information on these components.zip) from http://www. b.0. The JVM does not function properly if installed to the virtual storage card. In the Emulator Properties Window. On the Windows Mobile simulator. Click OK. 2. The J9 JVM is included in the mBS Mobile OSGi for Windows Mobile. a product of Prosyst Software GmbH. Beta Draft Setting Up the ADF Mobile Client Environment 2-11 . map the virtual storage card to the directory containing the CAB file as follows: a.2. and locate mBSMobile2. choose File > Configure. Note: You can only install this JVM to a Windows Mobile device.cab in the Shared Folder field. Using ActiveSync.0.6.com. or Storage Card. "How to Set Up JDeveloper. Note: When installing.0-Runtime. Click Install. click the CAB file. you can install the Oracle Lite Mobile Development Kit (MDK) and SQLite Mobile Client. 5.0.5 How to Set Up the Java Virtual Machine The J9 Java Virtual Machine (JVM) runs a Windows Mobile device.cab. enter the location of mBSMobile2." Before you begin: Purchase mBS Mobile OSGi for Windows Mobile (mBS-Mobile-WM_v2. as shown in Figure 2–6.0 -runtime. When prompted. make sure the location of the JVM is set to emulatorroot\mBSMobile\J9 After you install the JVM. If you use a Windows Mobile simulator. mBS-Mobile-WM_v2.0. copy the CAB file to the Windows Mobile device. select Device.zip.handango.

6. Before you begin: Purchase and install mBS Mobile OSGi for Windows Mobile by Prosyst Software GmbH as described in Section 2. After the message closes.How to Set Up the Device Simulator Figure 2–6 Installing Files 6. On Windows Mobile emulators.cfg 2.6. Reduce the size of the JVM as described in Section 2. 2-12 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .5. 2. The Closing mBS Mobile… message appears briefly. the ADF Mobile client framework. "How to Set Up the Java Virtual Machine.5. 4. The lnk extension does not appear. you can accomodate these software installations by reducing the size of the JVM. which is insufficient for the installation of the JVM.1. "How to Reduce the Size of the JVM" to create space for the ADF Mobile client Framework and the Oracle Database Lite Mobile Server client software. Note: After saving this file. perform a soft reset of the emulator. and the Oracle Database Lite Mobile Server client software.1. it will appear as StopProsyst. Copy this file to the Windows Mobile emulator and then click it once to run it.1.lnk.6.5.1. Paste the following string into Notepad: 247#"\mBSMobile\bin\config. Save the Notepad document as a file named StopProsyst.1 How to Reduce the Size of the JVM Windows Mobile emulators leave only 29MB of application space when empty. 3." To reduce the size of the JVM: 1.exe" \mBSMobile\bin\runtime_uninstall.

" As shown in Figure 2–7. After the emulator restarts.1. Beta Draft Setting Up the ADF Mobile Client Environment 2-13 .6.version Note: As with any restart. "How to Set Up a Windows Mobile Emulator. Removing these files should create about 12. including BlackBerry Desktop Software applications that connect physical BlackBerry smartphones to your development machine and that install BlackBerry applications to the smartphones. delete the following files and directories: ■ ■ ■ ■ \mBSMobile\bin \mBSMobile\bundles \mBSMobile\lib \mBSMobile\mBSMobile.1. even soft resets. you must re-cradle your simulator as described in Section 2.5MB of space on the emulator.2 Setting Up the BlackBerry Smartphone or Smartphone Emulator RIM provides several pieces of software that are required when developing for BlackBerry smartphones.How to Set Up the Device Simulator 5. You must have this RIM software installed on your development machine in addition to JDeveloper. enough to install the other software. The BlackBerry JDE provides all the tools required to build BlackBerry applications. only the J9 folder should remain in the /mBSMobile directory after you delete these files. Figure 2–7 The J9 Folder 2.6.

blackberry.com). To install BlackBerry Desktop Software: 1. Download the BlackBerry Desktop Software from the RIM developer site (http://na.1 How to Install the BlackBerry JDE You must download the BlackBerry JDE (JDE 5. If you only want to work with simulators.How to Set Up the Device Simulator 2. including emulators.0).2. Figure 2–8 shows a BlackBerry smartphone emulator. 2-14 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . You can download the BlackBerry JDE. 2.blackberry.0. This JDE includes all of the Java libraries needed for a BlackBerry smartphone. Figure 2–8 Deploying an ADF Mobile Client Application on a BlackBerry Emulator 2.com). and BlackBerry Desktop Manager from the RIM developer site (http://na. Run the installer and follow its on-screen instructions.6.2. this software is not required.2 How to Install BlackBerry Desktop Software The BlackBerry Desktop Software allows you to connect physical BlackBerry smartphones to your development machine and then install applications on the smartphones.6.

do not use the JavaLoader tool from the BlackBerry Java Development Environment (JDE) to load ADF Mobile client artifacts. which is generally located at C:\Program Files\Research In Motion\BlackBerry JDE 5. Beta Draft Setting Up the ADF Mobile Client Environment 2-15 . and that you do not have to sign the application first. JDeveloper packages the application as a COD file. MDS simulates a BlackBerry Enterprise Server for the simulator.2.2. For data security and network bandwidth efficiency. Start the BlackBerry smartphone emulator. 2.6.0). providing network access for the smartphone emulator. When you deploy an application to a BlackBerry smartphone simulator. By entering the location of the MDK directory. Using both mechanisms may result in unexpected errors.jar) that enables on-device synchronization to the MobileClient and Model project’s libraries and classpaths entries as shown in Figure 2–9. 2.3 About BlackBerry Mobile Data Service Simulator The BlackBerry Mobile Data Service (MDS) Simulator comes as part of the BlackBerry JDE. Caution: When using BlackBerry emulators. Connect the smartphone to the USB port of the computer running JDeveloper. This means that you do not have to stage it (that is. you still need to set up the smartphone and establish a connection with the development computer. create a COD file then stage it on an actual smartphone).2. you can deploy your mobile client application to a BlackBerry emulator. a BlackBerry simulator and the Oracle Database Lite 10g Mobile Development Kit (MDK). you enable JDeveloper to add a JAR file (osync_rim. which it places in the directory of the standalone simulator.6 How to Set the Locations for the BlackBerry JDE. 2. To set up your BlackBerry smartphone: 1.6. Start the BlackBerry Mobile Data Service simulator by launching run. To set up your BlackBerry emulator: 1.6.2.0. 2. BlackBerry MDS Simulator simulates these server components on a developer's desktop for testing purposes.6.0\MDS.How to Set Up the Device Simulator 2. the Standalone Simulator.5 How to Set Up a BlackBerry Smartphone If you are not using a smartphone emulator. The BlackBerry JDE is required for the development of ADF Mobile client applications and their deployment to BlackBerry smartphones. use JDeveloper deployment features exclusively. and the MDK After you download and install BlackBerry Java Development Environment (JDE 5. you must set their locations in JDeveloper. This restriction does not apply to physical BlackBerry devices. Instead. RIM provides server components (BES and BIS) that act as a gateway between a BlackBerry smartphone and corporate networks or the Internet. 2.4 How to Set Up a BlackBerry Emulator During development.bat.

0). 5.0 and the BlackBerry simulator: 1. Enter the directory of the BlackBerry JDE. 2. the standalone simulator and osync_rim. Click OK. then enter the directory location or use Browse to select the location of the simulator.How to Set Up the Device Simulator Figure 2–9 The Synchronization JAR Classpath Before you begin: Download BlackBerry Java Development Environment (JDE 5. 2-16 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . enter C:\Olite10g1 as shown in Figure 2–10. .0). Because the BlackBerry simulator installs with the JDE. the location of the BlackBerry simulator is populated automatically when you enter the directory location for the BlackBerry JDE. In JDeveloper. Enter the root location of the MDK installation that includes osync_rim. 3.jar. or use Browse to select the location of the directory.6.jar. "How to Set Up the Device Simulator. For example. If you use a simulator that is not part of the BlackBerry JDE." To set the location for JDE 5. Figure 2–10 shows the directory locations set for the BlackBerry Java Development Environment (JDE 5. 4. choose Tools > Preferences > Mobile Client. a BlackBerry simulator and the Oracle Database Lite 10g Mobile Development Kit (MDK) as described in Section 2.

For more details.10 How to Run the Demo Application Beta Draft Setting Up the ADF Mobile Client Environment 2-17 ." 2.6. For more information. "Setting Up the Windows Mobile Device or Device Emulator" and Section 2. see Section 2. "About Synchronizing Data with Oracle Mobile Server" and Section 2. For more information on device setup. WinCE.9 How to Set Up Oracle Mobile Server Synchronization between mobile devices and the server-side database is primarily performed by Oracle Mobile Server (Mobile Server). Windows Mobile or Linux" in Oracle Database Lite SQLite Mobile Client Guide. see "Synchronization" in Oracle Database Lite Developer's Guide.6.8 How to Install SQLite Mobile Client on the Device Install SQLite Mobile Client on BlackBerry smartphones and Windows Mobile devices. see "Installing the SQLite Mobile Client on Blackberry Devices" and "Installing the SQLite Mobile Client for Win32.2. You install a specific version of Oracle Database Lite in order to obtain Mobile Server.11.7 How to Initiate Synchronization Initiate synchronization using mSync. "Setting Up the BlackBerry Smartphone or Smartphone Emulator. see Section 2.12." 2. 2. For more information. "Configuring Oracle Mobile Server.1.How to Run the Demo Application Figure 2–10 Setting the Location of the JDE and the Standalone Simulator 2.

How to Run the Demo Application 2. For more information. Choose Deploy > ADFMCSampleApp_RC1 to Windows Mobile Device. In the Application Navigator. Select the MobileFOD executable file. right-click the Mobile Client project. On the Windows Mobile simulator. 4. 2. see Section 3.1 How to Run the Demo Application on a Windows Mobile Simulator You run the demo application after you have deployed it to a Windows Mobile simulator. To run the demo application: 1.4. 5. as shown in Figure 2–11.10. 3. "Running the Fusion Order Demo Mobile Client Application. use the File Explorer utility to navigate to My Device > Program Files > MobileFOD. choose Tools > Deploy ADF Mobile Client Runtime > to Windows Mobile." 2-18 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Figure 2–11 Starting the Fusion Order Demo Mobile Client Application Figure 2–12 shows the Fusion Order Demo Mobile Client application’s Browse page. which appears after you click the MOBILEFOD executable. In JDeveloper.

start the Blackberry smartphone simulator. 6. 2. 5. On the BlackBerry smartphone or simulator. as shown in Figure 2–13.2 How to Run the Demo Application on a BlackBerry Smartphone Simulator You run the demo application after you have deployed it to a BlackBerry smartphone or simulator. If needed. Before you begin: You must set the location of the JDE and the simulator directory in which JDeveloper places the COD file using the Mobile client Preference page. In JDeveloper. 4. Beta Draft Setting Up the ADF Mobile Client Environment 2-19 . In the Application Navigator.How to Run the Demo Application Figure 2–12 The Browse Order Page of the Demo Application 2. stop the BlackBerry smartphone simulator. After the deployment completes. choose Tools > Deploy ADF Mobile Client Runtime > to BlackBerry. right-click the mobile client project. To run the demo application: 1.10. navigate to the Downloads folder. Choose Deploy > ADFMCSampleApp_BlackBerry to BlackBerry Device. 3.

2. If you would like to deploy a COD file manually. "How to Set Up Application Data Publication for a Windows Mobile Deployment. put it in the simulator location specified in the Mobile Client Preferences page. Note: Do not deploy an application to BlackBerry smartphone simulator while it is running.1 About the Connection Between Client and Server Oracle Mobile Server receives requests and passes data between your ADF Mobile client application and the Windows Mobile device or BlackBerry smartphone. Click ADFMCSampleApp_BlackBerry.11. 2. you must first stop it.2." 2-20 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . shown in Figure 2–10. This process is outlined in Section 8.About Synchronizing Data with Oracle Mobile Server Figure 2–13 The BlackBerry Smartphone Downloads Folder 7. When synchronizing data downstream from server to device.6. To load the COD file to the simulator. You create a connection between the mobile client application and the Oracle Mobile Server Repository Schema so that you can publish your application data.11 About Synchronizing Data with Oracle Mobile Server Oracle Mobile Server serves as a bi-directional data conduit between your mobile device and the base ADF application server. then restart it. SQL statements are executed directly against the mobile database to bring its state in line with that of the enterprise database.

an event is fired. The user makes changes to the data and saves. At this point.Configuring Oracle Mobile Server You must specify login credentials for Oracle Mobile Server. You configure settings in JDeveloper in order to: ■ ■ create a database connection for Mobile Server specify database credentials for an administrative user to be able to create publications and publication items for synchronizing data. When you deploy and run the ADF Mobile client application for testing. If data satisfies all necessary criteria. another event is fired. 2. 2. At some later point. an error is recorded in Mobile Server and then delivered to the mobile client the next time synchronization occurs. which in turn generates an XML record—an entity replay item—which encapsulates the details of the INSERT. The login details that you use when establishing a connection with the Oracle Mobile Server repository schema are also used later in the deployment on the device or device emulator when you synchronize changes back to the server. either on-demand or in the background. As each statement is posted to the database. After the transaction is committed.11. These login credentials are separate from the login credentials used for establishing and using the database connection to the Oracle Mobile Server repository schema. ADF Mobile client automatically creates publications used by Oracle Mobile Server to determine the server-side and client-side data schemas. which causes the previously-generated XML records to be written to the database in a separate transaction. 6. 5. Then for the publication process.3 What Happens When You Make Changes to the Mobile Database When a user interacts with your mobile client application in the ADF Mobile client framework. this is what happens: 1. 3. UPDATE.11. or DELETE statement. 2.commit() is invoked.12 Configuring Oracle Mobile Server You must provide JDeveloper with some specific Mobile Server information in order to deploy and test your ADF Mobile client application. Otherwise. and Oracle Mobile Server transfers the replay item(s) up to the Mobile Server instance. DBTransaction. Beta Draft Setting Up the ADF Mobile Client Environment 2-21 . 4. which in turn generates appropriate DML statements for all changes to the data model. This is done in the Application Resources panel. 2.2 About Publishing Data Application data is published for deployment to the mobile device through Oracle Mobile Server. data synchronization is initiated. ADF Mobile client creates a mobile sync user as well as subscriptions to the publications. the mobile client application is deployed and started on the target device or emulator. you must specify where data will be stored. using publications and publication items that are based on mobile entity objects. then it is committed to the enterprise database.

seeOracle Database Lite Getting Started Guide. In Oracle Database Lite Mobile Server. In the Users list.12. and Privilege then click OK. 2.2. User Name.1 How to Set Up Users and Subscriptions Note: A sync user cannot have two schemas on the same device. This grants access for the user to the published application. in the Users section. Note: Oracle employees can obtain Oracle Mobile Server through the Oracle Systems Assurance Center at https://sac. click the Add User button and enter a Display Name.4 How to Work with Sequences 2-22 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . 2. 2. The mobile sync user credentials you specify subscribe the mobile sync user to the publications. Enable the user for the application: 1. to be used by the test application to synchronize with the server. 2.0. Password.com/ Download Oracle Database Lite. version 10.2 How to Configure Application Deployment Packages 2.0.3.12.12. filtering on a specific OrderDate). drill down to the user’s settings by clicking the User Name link for the user you just created. For details on how to install and configure Oracle Mobile Server. In the Access tab. If so. Using Mobile Workbench. To add a user 1. which publications. you use Oracle Lite Mobile Workbench to make any necessary changes.us. select the Select checkbox for your published application and then click Save. the user has access to). you can define data filters (for example. that is. and you can create subscription packages and assign users (the subscription defines which data.3 How to Modify Synchronization Rules Using Oracle Database Lite Mobile Workbench You may want to refine the synchronization rules for your ADF Mobile client application. you can configure database sequence ranges (to define the ranges of a unique DB Sequence number assigned to each client).12. 2.oracle.Configuring Oracle Mobile Server ■ set up a sync user and the sync user’s database credentials.

" Section 3. Before you examine the individual components of the sample application in depth.3. It demonstrates the extension of the Fusion application technology to mobile platforms. For more information. see Chapter 2.3 3 Introduction to the ADF Mobile Client Sample Application The ADF Mobile client sample application. "About the Fusion Order Demo Mobile Client Application" Section 3. "Taking a Look at the Fusion Order Demo Mobile Client Application" ■ ■ For information on the Oracle ADF Fusion Order Demo application.1. "Installing the Fusion Order Demo Schema" Section 3. "Setting Up the ADF Mobile Client Environment.1 About the Fusion Order Demo Mobile Client Application The sample application enables you to browse and edit orders for electronic devices. see "Introduction to the ADF Sample Application" in Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework. This application is a companion to this guide and is used as an example throughout to illustrate points and provide code examples.4. is a modified version of the Fusion Order Demo.2.2 Installing the Fusion Order Demo Schema You can download the Fusion Order Demo application from the Oracle Technology Network (OTN) web site.5. For a complete list of tasks for preparing your environment for the Fusion Order Demo Mobile Client application.5." The sample application requires an existing installation of Oracle JDeveloper 11g and an Oracle database. "Overview of the Fusion Order Demo Mobile Client Application Schema. This chapter includes the following sections: ■ ■ ■ Section 3. 3. "Running the Fusion Order Demo Mobile Client Application" Section 3. Beta Draft Introduction to the ADF Mobile Client Sample Application 3-1 . "Runtime Components." 3. you may find it helpful to install and become familiar with the functionality of the Fusion Order Demo Mobile Client application.2. see Section 3. also referred to as the Fusion Order Demo Mobile Client application.

3. For example: C:/JDeveloper/11/jdeveloper Table 3–1 Property jdeveloper. Start Oracle JDeveloper 11g and from the main menu choose File > Open. the Ant build script creates the FOD users and populates the tables in the FOD schema. and double-click build. see the README. expand MasterBuildScript and then Resources.urlBase The base JDBC URL for your database in the format jdbc:oracle:thin:@<yourhostname>. 8.xml and choose Run Ant Target > buildAll. under the Resources node. In the Enter Property dialog. right-click build. For example: 1521 jdbc. Click Open. Once you enter the password.properties. For example: system db.tablespace The table space name where FOD users will be installed. For example: jdbc:oracle:thin:@localhost jdbc. browse to the location where you extracted the ZIP file to in Step 1 and select Infrastructure.txt file in the MasterBuildScript project. In the Application Navigator.jws from the infrastructure directory.com/technology/products/jdev/samples/fod/in dex. In the Application Navigator. For example: USERS 6. In the Apache Ant . Navigate to http://www. 3-2 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .oracle.home jdbc.sid The SID of your database.demoUser. In the editor.Installing the Fusion Order Demo Schema To download the demo and install the FOD schema to your database: 1. 5. From the JDeveloper main menu. choose File > Save All.adminUser The administrative user for your database. Properties Required to Install the Fusion Order Demo Application Description The root directory where you have Oracle JDeveloper 11g installed.Log window. For example: ORCL or XE db. enter the password for the database system user and click Continue.port The port for your database. 7. 4.html and download the ZIP file to a local directory. 2. In the Open dialog. you will see a series of SQL scripts and finally: buildAll: BUILD SUCCESSFUL Total time: nn minutes nn seconds For more information on the demo schema and scripts. modify the properties shown in Table 3–1 for your environment.

Before you begin: Create the sample database that represents the database used by the server application as described in Section 3.2.Installing the Fusion Order Demo Schema 3.2. and install the Windows Mobile device simulator.zip. 2. You must start and connect the Windows Mobile simulator to the computer as described in Chapter 2. "Installing the Fusion Order Demo Schema. On the Windows Mobile simulator.1. WindowsMobileSDCard that contains the sample client database. you also need to install client databases for both Windows Mobile devices and BlackBerry smartphones.2." download and extract ADFMCSampleApp. Figure 3–1 Mounting the Simulated SD Card on a Windows Mobile Device Simulator 3.2 How to Mount the Sample Client Database on a BlackBerry Smartphone Simulator Use the BlackBerry smartphone simulator to mount the sample client database that is contained on the simulated SD card. 3.1 How to Mount the Sample Client Database on Windows Mobile Devices Use the Windows Mobile simulator to mount the simulated SD card.1. browse to WindowsMobileSDCard in ADFMCSampleApp.1 Mounting the Sample Client Database In addition to installing the FOD database. Click OK.2. "Setting Up the ADF Mobile Client Environment. The simulated cards are located within ADFMCSampleApp at WindowsMobileSDCard and BlackBerrySDCard. Beta Draft Introduction to the ADF Mobile Client Sample Application 3-3 ." To mount the client database on a Windows Mobile device simulator: 1.zip on your computer. BlackBerrySDCard. In the Shared Folder folder. ADFMCSampleApp. The sample client database is delivered on a simulated SD card that is included in the sample application ZIP file. as shown in Figure 3–1. choose File > Configure. 3.

e-mail address. On the BlackBerry smartphone simulator. Other IDs provide foreign keys to tables with address information and. ORDER_ITEMS: For each order. Click OK. the ID of the customer who created it. All products are uniquely identified by a sequence-assigned ID. the date of the order. The order line item and its order ID uniquely identify each order item.Overview of the Fusion Order Demo Mobile Client Application Schema Before you begin: Create the sample database that represents the database used by the server application as described in Section 3. A user is uniquely identified by an ID. ■ ■ ■ 3-4 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . 2. and install BlackBerry Java Development Environment (JDE 5. Select BlackBerrySDCard as the current SD card as shown in Figure 3–2.0). The image of the product and its description are stored in separate tables.2. and the status of the order are all recorded. 3. and suppliers. After the order is fulfilled. the total amount of the order. ORDERS: This table represents activity by specific customers. the name and cost are recorded. The unit price and quantity of each order item are recorded. Click Add Directory and then browse to. "Installing the Fusion Order Demo Schema. staff. select Simulate > Change SD Card. the BlackBerrySDCard folder. which each reference the product ID. PRODUCTS_BASE: This table stores all of the products available in the store. there may be many order items recorded. For each product. including customers. the order status and order shipped date are updated. All orders are uniquely identified by a sequence-assigned ID. and select. Click Close. and person type code of each user is stored. The first and last name. membership information (for customers). Start the BlackBerry smartphone simulator to the computer as described in Chapter 2.3 Overview of the Fusion Order Demo Mobile Client Application Schema The schema of the Fusion Order Demo Mobile Client application consists of the following core tables: ■ PERSONS: This table stores all the users who interact with the system.zip on your computer. When an order is created." To mount the client database on a BlackBerry Smartphone simulator: 1." download and extract ADFMCSampleApp. Figure 3–2 Mounting the Simulated SD Card to a BlackBerry Smartphone Simulator 3. "Setting Up the ADF Mobile Client Environment.

C$WSEQ_CLIENTS: Simulates sequences 3.4. Open the demo application in JDeveloper. Install the J9 JVM on the Windows Mobile device. 8. This JVM is included in the mBS Mobile OSGi for Windows Mobile product by Prosyst Software GmbH. 6. 4. choose Tools > Deploy ADF Mobile Client Runtime > to Windows Mobile. For more information. ■ ■ ■ ■ In addition to these tables." 3. new data from the client is uploaded from the OSE$DATAQ queue table and new data from the Oracle database is downloaded into this queue. This queue is used for all snapshots and contains both In and Out Queue records. To run the demo application: 1. Beta Draft Introduction to the ADF Mobile Client Sample Application 3-5 . OSE$BLOBQ: A BLOB queue OSE$TABLES: A snapshot registry OSE$TRANS: A transactions registry OSE$TRESQ: A table that contains transaction sequences per publication. Install SQLite Mobile Client on BlackBerry smartphones and Windows Mobile devices. C$SCRIPTS: A table containing SQL scripts published on the server. Run the demo application. "Setting Up the ADF Mobile Client Environment. When you synchronize with queue-based snapshots enabled. see "SQLITE QUEUES" in Oracle Database Lite SQLite Mobile Client Guide.1 How to Run the Demo Application on a Windows Mobile Simulator You run the demo application after you have deployed it to a Windows Mobile simulator. The TRID column is positive when the record is an Out Queue record. 3. Connect and start the simulators. SQLite replicates the following: ■ ■ ■ C$INDEXES: A table containing replicated index information.Running the Fusion Order Demo Mobile Client Application Queue-based snapshots (described in "Manage Snapshots on SQLite Mobile Client" in Oracle Database Lite SQLite Mobile Client Guide) create a database file called OSE_ <database name>. Install the Oracle Lite Mobile Development Kit (MDK) and then initiate synchronization using Mobile Sync (mSync). Install simulators and other required development tools for the target platforms. This database file contains the following tables: ■ OSE$DATAQ: The data queue for both In Queue and Out Queue records. see Chapter 2. 2.4 Running the Fusion Order Demo Mobile Client Application Before you run the demo application on a BlackBerry Smartphone or a Windows Mobile device. 7.db. and SQLite Mobile Client. Mobile Sync (mSync). Deploy the demo application to the simulators. In JDeveloper. you must first do the following: 1. For more information on Oracle Lite Mobile Development Kit (MDK). 5.

" 3-6 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . For more information. right-click the Mobile Client project. "Taking a Look at the Fusion Order Demo Mobile Client Application. 5. use the File Explorer utility to navigate to My Device > Program Files > MobileFOD.5. In the Application Navigator. which appears after you click the MOBILEFOD executable. On the Windows Mobile simulator.Running the Fusion Order Demo Mobile Client Application 2. Select the MobileFOD executable file. 3. see Section 3. 4. Figure 3–3 Selecting the MobileFOD Executable File Figure 3–4 shows the Fusion Order Demo Mobile Client application’s Browse page. as shown in Figure 3–3. Choose Deploy > ADFMCSampleApp_RC1 to Windows Mobile Device.

start the Blackberry smartphone simulator. 6.2 Running the Sample Application on a BlackBerry Smartphone Simulator Before you run the sample application on a BlackBerry Smartphone or simulator. To run the demo application: 1. choose Tools > Deploy ADF Mobile Client Runtime > to BlackBerry. 3.1 How to Start the Demo Application on a BlackBerry Smartphone Simulator You run the demo application after you have deployed it to a BlackBerry smartphone or simulator. 4. In the Application Navigator.4. If needed.4. right-click the mobile client project. Beta Draft Introduction to the ADF Mobile Client Sample Application 3-7 .com). Before you begin: You must set the location of the JDE and the simulator directory in which JDeveloper places the COD file.blackberry. On the BlackBerry smartphone or simulator.Running the Fusion Order Demo Mobile Client Application Figure 3–4 The Browse Order Page 3. In JDeveloper. After the deployment completes.2. 7. 2. the BlackBerry smartphone simulator.0). as shown in Figure 3–5. Choose Deploy > ADFMCSampleApp_BlackBerry to BlackBerry Device. stop the BlackBerry smartphone simulator. 3. Click ADFMCSampleApp_BlackBerry. and BlackBerry Desktop Manager from BlackBerry (http://na. you must download the BlackBerry Java Development Environment (JDE 5. 5. navigate to the Downloads folder.

1 MobileClient Project MobileClient project contains the files for the interface. Its runtime UI consists of screens that are displayed natively on the device outside of a mobile browser.1.Taking a Look at the Fusion Order Demo Mobile Client Application Note: Do not deploy an application to BlackBerry smartphone simulator while it is running. and MCX files (the ADF Mobile client equivalent of the JSPX file). you can then review the artifacts within each project. put it in the simulator location specified in the Mobile Client Preferences page described in Chapter 2. then restart it. The development environment for the Fusion Order Demo Mobile Client application contains a view-controller project named MobileClient and a model project named Model. 3-8 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .1 Design Time Components After you have opened the projects in Oracle JDeveloper.5.5. deployment files. 3." Figure 3–5 The BlackBerry Smartphone Downloads Folder 3. 3. If you would like to deploy a COD file manually. To load the COD file to the simulator. "Setting Up the ADF Mobile Client Environment. including the backing beans.5 Taking a Look at the Fusion Order Demo Mobile Client Application The design time artifacts of the ADF Mobile sample application are visible in Oracle JDeveloper. you must first stop it.

adf-config.Taking a Look at the Fusion Order Demo Mobile Client Application Figure 3–6 The MobileClient Project Figure 3–6 shows the MobileClient project and its associated directories. This project also includes MobileClient-task-flow. including the managed and backing beans.1. property files used for internationalization.xml—A standard configuration file that specifies application-level settings that are usually determined at deployment and are often changed at design time. META-INF (subdirectory of Application Sources): includes the following: – – UiApplication.5. The MobileClient project contains the following directories: ■ Application Sources: Contains the code used by the mobile client. the source file for the bounded task flow. Beta Draft Introduction to the ADF Mobile Client Sample Application 3-9 . the metadata used by ADF Mobile client to display bound data as well as the MCX files and images. ■ – 3.jad—the Java Application Descriptor file (JAD) that is required by BlackBerry to deploy applications over the air (OTA).xml. adfm.xml—Used at runtime in order to help resolve data bindings.2 Model Project The Model project (shown in Figure 3–7) is a data model project that contains the data definitions that allow the product data to be displayed in the sample application.

3 Browsing Orders You start the Fusion Order Demo Mobile Client application by running the home. Clicking Add Order displays the Add Order page. which is the entry point of the application. Included are the metadata files used by Oracle Application Development Framework (Oracle ADF) to bind the data to the view. which displays information about the customer. Clicking a customer name opens the Order Details page (shown in Figure 3–12).5.4.2 Runtime Components The Fusion Order Demo Mobile Client application displays the following pages at runtime: ■ ■ ■ ■ Browse Orders (home. this page contains a dropdown list of order status codes. see Section 3. You use this list in conjunction with the page’s Search button to retrieve a list of customers whose orders belong to the category that you selected.mcx) 3.5.mcx page. As shown in Figure 3–8. For more information about the Order Details page." 3-10 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .5. which contains the files used to access the product data. displays on a BlackBerry smartphone or Windows Mobile device as the Browse Orders page.mcx) Order Details (details. see Section 3.Taking a Look at the Fusion Order Demo Mobile Client Application Figure 3–7 The Model Project The Model project contains the Application Sources directory." For more information on the Add Order page. 3. "Viewing Order Details. which is comprised mainly of inputText components. This page.mcx) Edit Order (editorder. "Editing or Adding an Order.5.mcx) Order Items (orderitems.5.

As illustrated in Figure 3–9.Taking a Look at the Fusion Order Demo Mobile Client Application Figure 3–8 The Browse Order Page After you select an order status and click Search (a commandButton component). the customer name. and read-only information about the date of the order and its total cost. the table is populated with a status image. executes a query and populates the table. Figure 3–9 shows the results of selecting the Order being picked status. Beta Draft Introduction to the ADF Mobile Client Sample Application 3-11 . the application performs a search. The name is a commandLink component that enables you to navigate to the details screen.

for example. Figure 3–10 Dynamic Images 3-12 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . that the images reflect the Order being picked status in Figure 3–9 and the Order completed status in Figure 3–10. Note.Taking a Look at the Fusion Order Demo Mobile Client Application Figure 3–9 Records Retrieved by Order Status The images are dynamic. reflecting the status of the order.

the selectOneChoice component displayed in the Browse Orders page is bound to LOV-enabled attributes configured for the OrderStatus view object. status-related images through an EL expression and a string. The ALT menu is amalgamated into the Full menu for the form. For more information. in the Fusion Order Demo application. see "Creating and Using Tables". For more information. For example. ■ Creating menus for Windows Mobile devices and BlackBerry smartphones Windows Mobile applications have two types of menus: The Main menu and the ALT menu. For BlackBerry. For more information about configuring attributes for LOV usage. The Status and StatusDesc attributes of the OrderStatus view object.Taking a Look at the Fusion Order Demo Mobile Client Application Where to Find Implementation Details Following are the sections of Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework and Oracle Fusion Middleware Mobile Client Developer's Guide for Oracle Application Development Framework that describe how to define queries and create query search forms: ■ Laying out ADF Mobile Tables The Browse Orders page includes a single-column table which uses panelGroupLayout components for the status images and the output text. the MAIN menu describes the Full menu for the form. Nancy Greenberg) are commandLink components. see "Working with Lists of Values (LOV) in View Object Attribtutes" in Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework. ■ Creating a static view object In the Browse Orders page. <amc:image id="image1"source="/statusimages/#{row.10. For more information. In Figure 3–10. Oracle ADF Business Components provides declarative support to specify the LOV usage for attributes in the data model project.OrderStatusCode}. see "Populating View Object Rows with Static Data" in Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.gif"/> For more information see "Creating EL Expressions" in Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework and "Displaying Images". populate the values for the dropdown list. Add Order and the customer names (for example. a static view object. For example." Beta Draft Introduction to the ADF Mobile Client Sample Application 3-13 . The Main menu describes the right Standard menu button for the form (such as the Menu button in Figure 3–10) and the ALT menu is the left Standard menu button for the form. see "Using Buttons and Links for Navigation". ■ Enable navigation through the application The demo application provides navigation using commandLink components. ■ Creating dynamic images The page achieves the dynamic. see Section 6. "Creating and Using Menus. ■ Defining a list of values for selection lists Input forms displayed in the user interface can utilize databound ADF Faces selection components to display a list of values (LOV) for individual attributes of the data collection. To facilitate this common design task. For more information. the selectOneChoice component for the order status is backed by a list binding.

which you use to return to the result list shown in Figure 3–10 and Show Order Items.5.5.4 Viewing Order Details The Order Details page displays information about the customer who placed the order. see Section 3.Taking a Look at the Fusion Order Demo Mobile Client Application 3. Figure 3–11 The Order Details Page This page contains two navigational links: Back to Order List. For more information." 3-14 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .5. "Editing or Adding an Order. Clicking Edit enables you to edit the order details.

" 3.6. "Viewing Ordered Items.mcx) or the Order Details page (details. Beta Draft Introduction to the ADF Mobile Client Sample Application 3-15 . see Section 3.5 Editing or Adding an Order Clicking Edit opens a read-write form that enables you to modify order details.mcx) displays as either the Edit Order page or the Add Order page depending on if the user is at the Browse Page (home. For more information. This page (editorder.5.mcx). For example.Taking a Look at the Fusion Order Demo Mobile Client Application Figure 3–12 The Order Items Page Clicking Show Order Items enables you to drill down to a list of ordered items that match the status that you selected in the Browse Orders page. Figure 3–12 shows customer Nancy Greenberg’s items that have the status of Order completed (shown in Figure 3–10). This page also includes a form that enables you to filter order items.5.

a bounded task flow has one point of entry.2.Taking a Look at the Fusion Order Demo Mobile Client Application Figure 3–13 The Edit Order Page Where to Find Implementation Details Following are sections of the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework and Oracle Fusion Middleware Mobile Client Developer's Guide for Oracle Application Development Framework that describe how to create a task flow and how to create an input form with required values. called editorder. ■ Laying out the ADF Mobile page This page. when the user is at the Browse Order page). and a wildcard control rule. see Section 6. The task flow for the demo application (MobileClient-task-flow. For more information. For more information see Section 6." ■ Using a router activity The conditional routing that enables editorder. zero or more exits. consists primarily of inputText components within panelFormLayout and panelLabelAndMessage components.mcx page to display as either the Edit Order page or the Add Order page is achieved through a router in the application’s task flow that evaluates the applicationScope EL expression for the panelGroupLayout component. a router activity.xml) is comprised of view activities (home. "Creating Task Flows. details." ■ Grouping activities using a bounded task flow ADF Mobile client applications use bounded task flows. If the scope variable for addMode is true (that is. "Designing the Layout of the Page. see "Using Router Activities" in Oracle 3-16 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . For more information.mcx.4.mcx). and represents the reusable portion of an application. editorder.mcx. a task flow return. As described in "Task Flow Types" in Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.mcx. and orderitems.mcx. then the application opens the Add Order page.

"Creating and Using Input Components. For example. see "Creating an Input Form" in Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework and Section 6.5. JDeveloper allows you to drop all attributes for an object at once as an input form. and forms that collect values.Taking a Look at the Fusion Order Demo Mobile Client Application Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework. Beta Draft Introduction to the ADF Mobile Client Sample Application 3-17 . forms that allow users to edit values." ■ Creating databound UI controls The page’s selectOneChoice components are used to filter view accessors and lists of values for status codes and for customer ID.6 Viewing Ordered Items The Order Items page lists the items that the customer has ordered. Such selectOneChoice components are created by dragging and dropping the OrderStatus Code and CustomerID attributes of the OrderView data control into the Structure view and then by selecting Select One Choice from the context menu. in the Fusion Order Demo application. For more information. instead of having to drop individual attributes. You can filter the results using the search form. ■ Creating a databound edit form When you want to create a basic form that collects values from the user. providing information on the number of units and the price of each item. as shown in Figure 3–14.5. You can create forms that display values. see "Adding Data Controls to an ADF Mobile Client View" and "Creating and Using Menus". 3. For more information. the Order Details displays a form that displays user information and the Add Order and Edit Order forms used for collecting shipping information for the user’s order. ■ Using commit and rollback functions The page’s Save and Undo menu functions are standard ADF commit and rollback operations.

you drop a query search panel with the results table. one that JDeveloper creates automatically when you drag a view object in to the Structure view and then select Filtering as the Enable ADF Behavior option in the Edit Table Columns dialog. For more information. For more information. JDeveloper automatically wires the results table with the query panel. ■ Displaying the results of a query search Normally. see "Creating Query Search Forms" in Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework. see "How to Create a Query Search Form and Add a Results Component Later" in Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework. 3-18 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .Taking a Look at the Fusion Order Demo Mobile Client Application Figure 3–14 The Order Items Page Where to Find Implementation Details ■ Creating a search form You create a query search form by dropping a named view criteria item from the Data Controls panel onto a page. The Order Items page includes a search form.

and creating business objects. For more information. JDeveloper provides a series of wizards that step you through creating the mobile client application. "About Declarative Development with JDeveloper" Section 4.4 4 Getting Started with ADF Mobile Client This chapter describes how to use JDeveloper to declaratively create ADF Mobile client applications." 4. "Extending the Server Application for the Mobile Client Application" ■ ■ 4. you then deploy its model project as an ADF library. You draw from this library using the Business Components from ADF Library wizard to create the subsets of entity objects and view objects used by the ADF Mobile application.3 Creating an Application Workspace The first steps in building an ADF Mobile client application are to assign it a name and to specify a directory where its source files will be saved. By creating an application using the application templates provided by JDeveloper. along with many of the configuration files required by the type of application that you are creating.2. Beta Draft Getting Started with ADF Mobile Client 4-1 .3. In addition. This chapter includes the following sections: ■ ■ Section 4. "Creating an Application Workspace" Section 4. 4.2 Deploying the Model Project of the Server Application as an ADF Library Once you have created (or located) an ADF application on which to base the mobile client application. see Section 5. you automatically get the organization of your workspace into projects. and test an ADF Mobile client application without writing a line of code because the JDeveloper design experience is enhanced to include support of mobile client application development.1. it generates the required artifacts to define page flows. deploy. "Extending an ADF Application to Mobile Client.4.3.1 About Declarative Development with JDeveloper You can write. creating its model and view projects. "Deploying the Model Project of the Server Application as an ADF Library" Section 4. You can then define the views of the project using the drag and drop functionality of the Data Controls panel and the Component Palette.

In the Name your application page. change the directory name and application prefix and then click Next. In the Name your project page. 4-2 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . 4. expand General. which can subsequently be imported in an ADF Mobile client application. You must select these technologies if they do not appear in the Selected list. You must add the ADF Mobile Client Model technology to a model project if it is not already present.Creating an Application Workspace 4. Figure 4–2 shows the ADF Mobile Client Model and Java technologies.3. See Section 4. which are selected by default. In the main menu.1 How to Create an Application Workspace You create an application workspace using the Create Mobile Client Application (ADF) Wizard. select Applications and then Mobile Client Application (ADF) and then click OK. In the New Gallery.2. if needed. "Deploying the Model Project of the Server Application as an ADF Library. enter a name for the application and if needed. Click Next." To create a workspace: 1. Note: This step is optional. 2. choose File > New. Before you begin: The model project containing the entity objects and view objects on which you base the ADF Mobile client application must be deployed as a JAR file on the development computer. Figure 4–1 Selecting the Application Type 3. change the name and location of the project.

Click Next. which enables you to create task flows. if needed. Beta Draft Getting Started with ADF Mobile Client 4-3 . Note: This step is optional. Note: This step is optional. If needed. Click Next. 6. enter a name. Figure 4–3 shows the ADF Mobile Client UI technology selected by default.Creating an Application Workspace Figure 4–2 Selecting the Project Technologies 5. In the Name your project page. change the Java settings for the model project. JDeveloper selects the ADF Mobile Client UI technology by default. To create a task flow and define application pages. you must select this technology if it is not already selected. for the view controller project of the application.

Creating an Application Workspace Figure 4–3 Creating the Mobile Client View Project 7.0. If needed. MobileClient.xml Artifacts of Mobile Client View Projects Location Application Sources Description The source file for the mobile client task flow. change the Java settings for the view project. Model.2 What Happens When You Create a Mobile Client Application Workspace When you complete the entire Create Mobile Client Application wizard.xml or faces-config. Table 4–1 lists the JDeveloper-generated files that are contained in this project. Click Finish.xml in an ADF Faces application. This is the mobile client equivalent to the adfc-config. which has the default name. see Section 0. Table 4–1 Artifact MobileClient-task-fl ow. 4. "How to Add a Mobile Client View Controller Project. this is a bounded task flow.3. Note: This step is optional. as shown in Figure 4–4) and a view controller project." 4-4 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .2. 8. By default. JDeveloper creates two projects: a model project (which bears the default name. This file is created when you select the Mobile Client UI technology for the project. For information on creating task flows using this page.

Beta Draft Getting Started with ADF Mobile Client 4-5 . Entity objects define the data that is available to the mobile client application. containing the files described in Table 4–1. ADF Mobile client uses specific key values in this file. When you deploy a BlackBerry application.) Artifacts of Mobile Client View Projects Artifact UiApplication.xml.xml" in Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.4 Extending the Server Application for the Mobile Client Application Extending an ADF application that resides on a server for ADF Mobile client is usually the starting point in developing an application. Not only are the entity objects of a mobile client application copies. While a server application may have 20 entity objects. adf-config. note that the BlackBerry Options page of the BlackBerry Deployment Profile Properties dialog contains entries written to this file before it is used to compile the application. Because of this. see "adf-config.Extending the Server Application for the Mobile Client Application Table 4–1 (Cont. they are also a subset of the entity objects used by the server application. Conceptually. For information on adf-config. This file has the same format as that used by ADF Faces. View objects are based on the entity objects. a mobile application may require only five of them. Further. A standard configuration file that specifies application-level settings that are usually determined at deployment and are read-only at runtime. the entity objects of the mobile client application are always copies of the server application’s entity objects. the mobile client application is always an extension of an existing ADF application (referred to as a server application).xml META-INF Figure 4–4 shows the MobileClient project in the Application Navigator. the mobile client application may only require a subset of the attributes owned by the selected entity objects.jad Location META-INF Description This JAD (Java Application Descriptor) file is required by BlackBerry to deploy applications over the air (OTA). Figure 4–4 The MobileClient Project 4.

For information on the SQL query syntax. 4-6 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .sqlite. you must: 1." steps you through creating the entity objects and view objects. described in Section 5. read-only view object.3. As a result. "Extending an ADF Application to Mobile Client. read-only view object contains all of the columns of a table. This wizard. Note: Read-only view objects that are based on SQL queries have limitations in Oracle Fusion Middleware 11g release 1 of ADF Mobile client. JDeveloper adds all of the columns on the server database to the view object. 2. while a mobile client application typically synchronizes only a subset of these columns.org Manually change the view object’s attributes to match those of the database columns on the client database. For example: A SQL query-based. refer to http://www. regardless of whether they exist on the client database. JDeveloper points to the database on the server rather than to the client database when determining which attributes to create for a SQL query-based. ■ ■ If you create a read-only view object based on a SQL statement. Ensure that the SQL query used to create the view object can run on the device. Because you derive a mobile client application from a server ADF application. you should assess which entity objects and view objects in the server application should be used in its mobile counterpart before you develop the mobile client application.Extending the Server Application for the Mobile Client Application You create these data subsets using the ADF Mobile Client Business Components from Entity Objects wizard. Although the mobile client ADF business components represent the client database schema.

1. For example. would the user interact with the mobile application for minutes.2. Because the tasks enabled by a mobile client application have server-side data representation as well as server-side validation. cameras. For example. begin creating a subset of the data by examining the server data model and identify a subset of those entity objects that should be available to the mobile client application.4. As described in Section 4. users will not use the handheld version of this application in the same way as they would use it on a desktop. "Configuring JDeveloper to Connect to and Test Against a SQLite Database" 5.1 About Developing an ADF Mobile Client Application To develop an ADF Mobile client application: 1. streamline the application as much as possible. consider the tasks that users perform with the mobile application and the circumstances under which they use the mobile application. This chapter includes the following sections: ■ ■ ■ ■ ■ ■ ■ Section 5.4.6. "Extending the Server Application for the Mobile Client Beta Draft Developing ADF Mobile Client Applications 5-1 . "About Developing an ADF Mobile Client Application" Section 5.3. "Extending an ADF Application to Mobile Client" Section 5. "The Entity Object and View Object Extension" Section 5. Determine the mobile data requirements: While mobile client applications are extensions of ADF applications that run on a server. "Interacting Directly with SQLite" Section 5. or scanners.7. 2. Because mobile applications should not mimic their server-side counterparts in terms of presentation or user-interaction. "Editing Mobile Entity Objects" Section 5.5 5 Developing ADF Mobile Client Applications This chapter provides an overview of developing ADF Mobile client applications. Create a subset of the server data model for the ADF Mobile client application: Although the mobile applications themselves are not merely handheld copies of server-side applications. as they would on a desktop application? Tip: To encourage usage. "Building Business Services for ADF Mobile Client Applications" Section 5. the underlying data that they manipulate is a subset of server data. consider peripherals. as opposed to hours. such as barcode readers.5.

2 Building Business Services for ADF Mobile Client Applications Mobile client utilizes ADF Business Components. The benefits of ADF Business Components include: ■ ■ ■ ■ Simplified Data Access Enforcement of Business Domain Validation and Business Logic Support for Sophisticated User Interfaces with Multi-Page Units of Work Implementation of Best Practice. Define the mobile client task flow: You begin designing the UI of the mobile application by creating an overall page flow and then by populating the task flow with views (pages) and control rules. input and output mechanisms. Create the mobile client views: After you create the task flow. ADF Business Components provide a foundation of Java classes that business-tier application components extend to leverage a robust implementation of the numerous design patterns you need in many areas. 6. see Chapter 6." 3. This wizard also enables you to create view objects. "Creating the ADF Mobile Client User Interface. you can create the UI by populating the pages with ADF components and data controls. For more information. By eliminating the substantial coding and testing related to common "application plumbing" facilities." Test the mobile data model by running the mobile Application Module and using the Business Component Browser. Service Oriented Architecture Simplified Data Access ADF Business Components enable you to do the following: ■ ■ ■ ■ ■ Design a data model for client displays.3. see Section 5." Define menus: ADF Mobile client enables you to create platform-specific menus for both BlackBerry smartphones and Windows Mobile devices. including only necessary data Include master-detail hierarchies of any complexity as part of the data model Implement end-user Query-by-Example data filtering without code Automatically coordinate data model changes with business domain object layer Automatically validate and save any changes to the database Beta Draft 5-2 Mobile Client Developer's Guide for Oracle Application Development Framework . see Section 5. "How to Create Subsets of Entity Objects and View Objects.10. 5." you use the Create Business Components for ADF Mobile Client wizard to identify the tables from the server application from which you want to create entity objects and the columns that you want to expose. which simplify building business services. "Creating and Using Menus.2. you can expose additional attributes to the user interface or change certain properties of the attributes that already belong to entity objects. ADF Mobile client supports components for page layout. and page navigation. 7. "Editing Mobile Entity Objects." For more information on entity objects and view objects. image display. For more information. "Support for the Core ADF Business Components. ADF Business Components enable you to instead focus on implementing business solutions. see Section 6. 5. High-Performance.1. For more information. For more information. see "Using the Business Component Browser for Testing and Debugging" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. see Section 5.4.1. Edit the entity objects as needed: If needed." 4.Building Business Services for ADF Mobile Client Applications Application. For more information.

■ view object View objects provide the means to retrieve data from a data source. and automatically maintain the information when user changes foreign-key values Simplify multistep.Building Business Services for ADF Mobile Client Applications Enforcement of Business Domain Validation and Business Logic ■ Declaratively enforce required fields. the data source will be a database and the mechanism to retrieve data is the SQL query.2. and foreign key references ■ Easily capture and enforce both simple and complex business rules. The view object simplifies working with the results of the SQL query. You associate an entity object with others to reflect relationships in the underlying database schema to create a layer of business domain objects to reuse in multiple applications. interface-based programming style ■ Reduce network traffic for remote clients through efficient batch operations 5. In most cases. Service Oriented Architecture ■ Enforce best-practice. A data model project can include the following types of view objects: ■ Read-only view objects when updates to data are not necessary (may be entity-based) Beta Draft Developing ADF Mobile Client Applications 5-3 .1 Support for the Core ADF Business Components As the mobile implementation of the Oracle ADF architecture. format masks. and error messages in any application Define custom metadata for any business components to support metadata-driven user interface or application functionality Add dynamic attributes at runtime to simplify per-row state management ■ ■ ■ ■ ■ ■ ■ Implementation of Best Practice. ADF Mobile client utilizes the core ADF Business Components but with some modifications: ■ entity object An entity object represents a row in a database table. High-Performance. An entity object encapsulates business logic for the row to ensure your business rules are consistently enforced. data precision/scale. Association objects define relationships between entity objects. primary key uniqueness. with multilevel validation support Navigate relationships between business domain objects and enforce constraints related to compound components ■ ■ Support for Sophisticated User Interfaces with Multi-Page Units of Work Automatically reflect changes made by business service application logic in the user interface Retrieve reference information from related tables. It simplifies modifying the row’s data by handling all data manipulation language (DML) operations for you. web-based business transactions with automatic web-tier state management Handle images with no code Synchronize pending data changes across multiple views of data Consistently apply prompts. programmatically or declaratively.

1. For more information. Example 5–1 and Example 5–2 illustrate how the different interpretations of the ADF lifecycle phases by standard Oracle ADF and mobile client result in different methods of handling bindings. see "Getting Started with ADF Business Components" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. By declaratively binding such client UI components to active view object instances in the application module’s data model. the components in an MCX page automatically update to reflect changes in the rows of the view object row sets of the data model. It defines an updatable data model and top-level procedures and functions (called service methods) related to a logical unit of work related to an end-user task. Unlike ADF Faces applications. 5. prepareModel corresponds to the initial form load and refreshUI refers to a form when it becomes the active screen. These rows are not populated until run time.aware" data model of row sets. the mobile client runtime uses the refreshUI phase (illustrated in Example 5–2) instead of the prepareModelphase to invoke the action for this particular operation.partyId != ''}"/> ADF Mobile client interprets the ADF lifecycle in the context of a disconnected native application. Example 5–2 invokeAction in ADF Mobile Client <invokeAction id="callSetCurrentRowWithKeyValue" Binds="setCurrentRowWithKeyValue" Refresh="refreshUI" RefreshCondition="#{requestScope. Example 5–1 invokeAction in the Oracle ADF <invokeAction id="callSetCurrentRowWithKeyValue" Binds="setCurrentRowWithKeyValue" Refresh="prepareModel" RefreshCondition="#{requestScope. Update.1 What You May Need to Know About Binding Layer Components ADF Mobile client handles binding layer components differently from the standard Oracle ADF. 5-4 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . and Delete operations.2. There are two phases defined in the mobile client runtime: prepareModel and refreshUI. you do not need to write additional code for typical Create. globally accessible application module.partyId != null}"/> Note: You must manually edit the XML because refreshUI is not an enumeration value recognized by the standard ADF pagedef schemas. Because the application module component supports a "UI. because it must be called on repeat showings of the page after it has been loaded. As a consequence.Building Business Services for ADF Mobile Client Applications ■ Entity-based view objects when data updates will be performed ADF Mobile client applications generally use entity-based view objects. see "Overview of the UI-Aware Data Model" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. For more information. Example 5–1 illustrates how standard Oracle ADF uses prepareModel to invoke the action. not only for the initial load. ADF Mobile client supports only a single. ■ application module An application module is the transactional component that UI clients use to work with application data.

you point to the ADF library JAR file that was previously exported from the base ADF Faces application.Extending an ADF Application to Mobile Client In addition. using an invalid value for setting the current row.3. see Section 4. "Extending the Server Application for the Mobile Client Application. The ADF library JAR enables you to reuse the ADF Business Components defined in the web application.4.1. 5. In the Initialize Business Components Project dialog. expand Business Tier. "How to Create an Application Workspace. you select the view objects. 3. mobile client provides the Create Business Components for ADF Mobile Client wizard." the mobile client application is an extension of the server.".partyID against null rather than the empty string illustrated in Example 5–1. In the New Gallery. select the database connection or choose New to create a connection.partyID evaluates to null when it has not been set.2. Finally. Before you begin: Create the desired ADF library JAR from the server application as described in Section 4. Click OK. Click OK. are subsets of the objects owned by the server application. right-click the model project you created in Section 4. The entity and view objects. Finally. "Deploying the Model Project of the Server Application as an ADF Library. Beta Draft Developing ADF Mobile Client Applications 5-5 .1 How to Create Subsets of Entity Objects and View Objects The Create Business Components for ADF Mobile Client wizard provides a multi-step approach to adding business components to the ADF Mobile client application. "Extending the Server Application for the Mobile Client Application.4." To create subsets of entity objects: 1. First. Any manually added attributes on mobile client entity objects are considered transient attributes. or server application. you select the entity objects and entity attributes that are required for your mobile client application. 5. In the Application Navigator. Tip: You can add transient attributes to entity objects that do not persist to columns defined in the underlying table. 2. which derives objects from the ADF library JAR created from the server application. Next. select ADF Business Components and then ADF Mobile Client Business Component from Entity Objects.3 Extending an ADF Application to Mobile Client As described in Section 4. you create updatable view objects based on the previously selected entity objects and add them to a new application module. The mobile client runtime's EL parser implementation distinguishes between an empty string and null. To enable you to create a subset of entity objects (as well as the attributes of these entity objects) and view objects that are required by the mobile client projects." and choose New. testing against the empty string causes the action to run when it is not intended to run. as well as their attributes. If this is the first component that you are creating in the project. Example 5–2 illustrates how the RefreshCondition EL expression must test requestScope.3. the Initialize Business Components Project dialog appears to allow you to select a database connection. For more information about creating an ADF library JAR from the server application. Because the term requestScope.

Shuttle the entity objects that you want to base the mobile entity objects on to the Selected list. Figure 5–1 shows the result after shuttling the CountryCodeEO. enter the location (or browse for) the ADF library JAR created from the server application. Note: You cannot move any attribute that is a primary key from the Selected list. AddressEO. and click Import. In the Select Entity Attributes page.Extending an ADF Application to Mobile Client Note: You must use the same connection used by the server-side application. Figure 5–1 Selecting Entity Objects for the Mobile Client Application 5. Click Next. Click Next. In the Select Entities page. Create Business Components for ADF Mobile Client wizard appears. For example. The entity objects appear in the Available list. Figure 5–2 shows the attributes have been selected from the AddressEO. For example. 4. Shuttle the ones that you do not want to the Available list. and PersonEO entity objects into the Selected list. 5-6 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . select the attributes you want to include from each entity usage in the Selected list. After JDeveloper establishes the connection.

In the Updatable View Objects page. Click Next. Figure 5–3 shows that AddressEO and PersonEO have been selected to create the view objects AddressEOView and PersonEOView. In the Application Module page. select Application Module and then enter a name for the application module. see "Getting Started with ADF Business Components" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. For more information on application modules. Beta Draft Developing ADF Mobile Client Applications 5-7 .Extending an ADF Application to Mobile Client Figure 5–2 Selecting Attributes for the Entity Objects of the Mobile Client Application 6. For example. select the entity objects to create a default view object. Figure 5–3 Selecting View Objects 7. Click Next.

you must override the set method in the Java code for that attribute. To set a value for calculated fields in an entity object. Tip: You can update the entity objects using the overview editor for entity objects. You can create transient attributes using this editor.Editing Mobile Entity Objects 8. In the Summary page. because by definition. For example.4. It lists them in the Application Navigator. described in Section 5. which is exposed on an attribute-by-attribute basis. Note: ADF Mobile client does not support groovy expressions." 5. Figure 5–4 illustrates the model project and its contents in the Application Navigator. You cannot create persistent attributes because a mobile client application synchronizes data as exposed through its entity objects against server-side data. through server-side entity objects backed by a database table.4 Editing Mobile Entity Objects At any point during application development. "Editing Mobile Entity Objects. Figure 5–4 Model Project in the Application Navigator 5. shown in Figure 5–5. associations. this editor allows you to create transient attributes. If you create an entity object attribute that only exists in a mobile application. you can expose additional attributes or change certain properties of the attributes that already belong to mobile entity objects using the overview editor for entity objects. JDeveloper creates the new application module.3. a transient attribute does not persist and thus is not synchronized against server-side data. and view links. along with the entity objects.2 What Happens When You Create a Subset of Entity Objects and View Objects When you create a subset of the entity objects and view objects. then this attribute cannot be synchronized against a server-side counterpart because one does not exist. 5-8 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Because the mobile client application synchronizes with its server-side counterpart. view objects. click Finish.

3." To add attributes: 1. Because the mobile application must synchronize with the server application. shown in Figure 5–6. "How to Create Subsets of Entity Objects and View Objects.1. Beta Draft Developing ADF Mobile Client Applications 5-9 . In the Attributes page.1 How to Add Attributes You use the entity editor to modify the attributes belonging to a mobile entity object. Note: 2. or to add transient attributes to one. you cannot change certain properties for an attribute. synchronization fails. Before you begin: Create a subset of entity objects for the ADF Mobile client application as described in Section 5. click Add from Base Entity. Use the Attributes page of the overview editor to create an attribute. the attributes that you did not select for the entity object using the Model Wizard appear in the Available list. The Name and Extends properties are read-only values. Click the Attributes tab.3. Otherwise. In the Create New Entity Attributes for Columns dialog.Editing Mobile Entity Objects Figure 5–5 The Overview Editor for Entity Objects 5.4. Double-click an entity object in the Application Navigator.

define the properties for the transient attribute (listed in Table 5–1). Note: You cannot use this editor to correct or update persistent attributes.2 How to Add Transient Attributes Use the Attributes page of the overview editor to create a transient attribute." To Add transient attributes: 1.1. Click Add in the Attributes page.4. Note: ADF Mobile client supports only transient attributes based on literal values. you can only correct it in the server-side application. The selected attributes display in the table. You cannot edit the persistent attributes because they must match the attributes of the server object. In the New Entity Attribute dialog. 2. Select the attributes by moving them from the Available window to the Selected window.Editing Mobile Entity Objects Figure 5–6 Selecting Attributes 4. Before you begin: Create a subset of entity objects for the ADF Mobile client application as described in Section 5. 5. For example.3. changing an attribute type from a date to a number causes synchronization to fail. 5-10 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Click OK. If an attribute has been designed improperly. "How to Create Subsets of Entity Objects and View Objects. 5.

Editing Mobile Entity Objects

Table 5–1 Property Name Type Property Set Value Type Value

Attribute Properties Description The name of the attribute. This must be a valid Java identifier. Choose the Java type for the attribute Choose the type of element that this attribute represents. This field is not available for all attribute types. Select Literal to use a literal value for the default For discriminator columns in subtypes of polymorphic entity objects, enter the discriminator value for the subtype. ADF Mobile client does not support expressions.

Mandatory

Select if this attribute is mandatory. This option is selected by default if the corresponding database column has a NOT NULL constraint. ADF Mobile client does not support this option. Do not use it. ADF Mobile client does not support this option. Do not use it. The view attribute setting is based on the entity attribute setting and can made more restrictive.

Derived from SQL Expression Discriminator Updatable

Always Select to make an attribute updatable. While New Select to make an attribute updatable before an entity is first posted.

Never Select to make an attribute read-only.

3.

Click OK. The attribute appears in the table.

5.4.3 Adding Validation Rules
The Validators page of the overview editor enables you add the built-in Oracle ADF declarative validation rules described in "Defining Validation and Business Rules Declaratively" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. When you create a validation rule using the overview editor, they are stored in the entity object’s XML file. Figure 5–7 shows the Validators page for the entity object, OrderEO.

Beta Draft

Developing ADF Mobile Client Applications 5-11

Editing Mobile Entity Objects

Figure 5–7 The Validators Page

ADF Mobile client supports the following validators, which are available from the Rule Type list of the Add Validation Rule dialog, which you invoke by first selecting an entity or attribute and then by clicking Add. Figure 5–8 shows the Add Rule Validation dialog.
Figure 5–8 The Add Validation Rule Dialog

Table 5–2 lists the validators and the classes that they support.

5-12 Mobile Client Developer's Guide for Oracle Application Development Framework

Beta Draft

Editing Mobile Entity Objects

Table 5–2 Validator Compare Usage

Validators and Their Supported Classes Supported Classes

Performs a logical comparison oracle.jbo.rules.JboCompareValidator between an entity attribute and a value. When you add a Compare validator, you specify an operator and a comparison. Entity Operators include:
■ ■ ■ ■ ■ ■

Literal value Query result View object attribute View accessor attribute Expression Entity attribute

For more information, see "How to Validate Based on Comparison" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. Key Exists Determines whether a key value oracle.jbo.server.JboEOExistsValidator, oracle.jbo.server.JboVOExistsValidator, (primary, foreign, or alternate key) exists. For more infromation, oracle.jbo.server.JboVOUsageExistsValidator see "How to Determine Whether a Key Exists" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. Validates whether the string length (in characters or bytes) of an attribute's value is less than, equal to, or greater than a specified number, or whether it lies between a pair of numbers. For more information, see "How to Validate Against a Number of Bytes or Characters" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers Compares an attribute against a list of values (LOV). For more information, see "How to Validate Using a List of Values" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. oracle.jbo.rules.JboLengthValidator

Length

List

oracle.jbo.rules.JboListValidator

Beta Draft

Developing ADF Mobile Client Applications 5-13

Editing Mobile Entity Objects

Table 5–2 (Cont.) Validators and Their Supported Classes Validator Method Usage Supplements declarative validation rules and Groovy-scripted expressions using your own Java code. Method validators trigger Java code that you write in your own validation methods at the appropriate time during the entity object validation cycle. For more information, see "Using Method Validators" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. Performs a logical comparison between an entity attribute and a range of values. When you add a Range validator, you specify minimum and maximum literal values. The Range validator verifies that the value of the entity attribute falls within the range (or outside the range, if specified). For more information, see "How to Make Sure a Value Falls Within a Certain Range" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. Supported Classes oracle.jbo.rules.JboMethodValidator

Range

oracle.jbo.rules.JboRangeValidator

Regular Expression

oracle.jbo.rules.JboRegExpValidator Compares attribute values against a mask specified by a Java regular expression. For more information, see "How to Validate Using a Regular Expression" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers.

For more information, see "Using the Built-In Declarative Validation Rules" and "Implementing Validation and Business Rules Programmatically" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers.

5.4.3.1 How to Add a Validation Rule to an Entity or Attribute
To add a declarative validation rule to an entity object, use the Validators page of the overview editor. To add a validation rule: 1. In the Application Navigator, double-click the desired entity object.
2. 3.

Click the Validators navigation tab on the overview editor. Select the object for which you want to add a validation rule, and then click the Add icon.
■ ■

To add a validation rule at the entity object level, select Entity. To add a validation rule for an attribute, expand Attributes and select the desired attribute.
Beta Draft

5-14 Mobile Client Developer's Guide for Oracle Application Development Framework

Editing Mobile Entity Objects

When you add a new validation rule, the Add Validation Rule dialog appears.
4. 5.

Select from the validation rules in Rule Type dropdown list. Use the dialog settings to configure the new rule. The controls will change depending on the kind of validation rule you select. For more information about the different validation rules, see "Using the Built-in Declarative Validation Rules" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers.

6.

You can optionally click the Validation Execution tab and enter criteria for the execution of the rule, such as dependent attributes and a precondition expression. For more information, see "Triggering Validation Execution" Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers
Note:

For Key Exists and Method entity validators, you can also use the Validation Execution tab to specify the validation level.

7.

Click the Failure Handling tab and enter or select the error message that will be shown to the user if the validation rule fails. For more information, see "Creating Validation Error Messages" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers Click OK.

8.

5.4.4 Overriding Default Validation Error Handling
When a validation error occurs, a message box showing error messages appears by default. You can override the default behavior if you prefer the validation error message as an outputText component rather than as a message box. Example 5–3 and Example 5–4 are two versions of the same application, CustomErrorHandler.java. Example 5–3, describes how to use a message box for the validation error message (similar to the default behavior) and how the main error handling method, reportException, handles the error messages in this context. Example 5–4 describes how to put the validating error messages into an outputText component by overriding the reportException method.

5.4.4.1 How to Show the Error Message as a Message Box
Example 5–3 illustrates default behavior of the error handler. To show a message box with an error message: 1. Declare the error handler as an attribute of the form component. For example, in an MCX file, you would declare the error handler as an attribute of the form component as follows:
<amc:form errorHandler="view.backing.CustomErrorHandler" ... >

Declaring the error handler creates the class and casts it to an oracle.adfnmc.component.ErrorHandler interface.
2.

Create the error handler class and implement the methods of the oracle.adfnmc.component.ErrorHandler interface. The reportException method returns a boolean as to whether the error was handled. If this method returns false, the default error handling logic is invoked.

Beta Draft

Developing ADF Mobile Client Applications 5-15

oracle. } if ((errors != null) && (errors.util.adfnmc. messages[i] = this.Form. } else { return "".size()].java package view.adfnmc.List.size() > 0)) { String[] messages = new String[errors.adfnmc.getErrors().BindingContainer.adfnmc. oracle.adfnmc. oracle. import import import import import import oracle. ex). } } 5-16 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .ui.show(messages). oracle. } MessageBox. Exception ex) { // do error handling here List errors = null. ++i) { Exception exListElement = (Exception) errors.getDisplayMessage(BindingContext. public class CustomErrorHandler implements ErrorHandler { public CustomErrorHandler() { } public boolean reportException(Form form. oracle.bindings.size().java.adfnmc.component.get(i).ErrorHandler.Editing Mobile Entity Objects Example 5–3 view/backing/CustomErrorHandler.backing. } // return true so that the form knows the error has been handled return true.bindings.dbf.MessageBox. } public String getDisplayMessage(BindingContext ctx. for (int i = 0. } else { String message = this.getDisplayMessage(BindingContext.getInstance(). BindingContainer formBnd.getMessage(). i < errors.show(message).BindingContext. exListElement).getInstance(). MessageBox.component.component. if (formBnd != null) { errors = formBnd. Exception ex) { if (ex != null) { return ex.

oracle.SimpleContext.adfnmc. Example 5–4 view/backing/CustomErrorHandler.adfnmc. ++i) { Exception exListElement = (Exception) errors.bindings. i < errors. if (formBnd != null) { errors = formBnd. For example: <amc:outputText value="#{applicationScope.adfnmc. oracle.adfnmc. oracle.size() > 0)) { for (int i = 0.2 How to Show the Error Message as Output Text Example 5–3 is similar to Example 5–4.BindingContext. 2.ValueExpression.ErrorHandler.validationMessage}" foregroundColor="#FF0000" /> 3.getInstance().4.el.ui.adfnmc. but instead illustrates how to show an error message as an outputText component.Editing Mobile Entity Objects } 5. } String message = "".adfnmc.size().getDisplayMessage(BindingContext.Form.4.List. Declare the error handler as an attribute of the form component. public class CustomErrorHandler implements ErrorHandler { public CustomErrorHandler() { } public boolean reportException(Form form.dbf.bindings. if ((errors != null) && (errors.get(i). To show the error message as output text 1. message += this. oracle.java Showing Output Text Error Message package view. Declare an outputText component in the MCX file and set its value to an EL expression.backing. Beta Draft Developing ADF Mobile Client Applications 5-17 .adfnmc.getErrors().BindingContainer. oracle. oracle.component. Exception ex) { // do error handling here List errors = null.el. import import import import import import import oracle.impl.component.java.util. BindingContainer formBnd. Override reportException in the Java class and set the EL expression whenever there is an error.

} public String getDisplayMessage(BindingContext ctx.Editing Mobile Entity Objects exListElement) + "\n". } } } 5. The view accessor returns a list of all possible values to the attribute of the base object. // return true so that the form knows the error has been handled return true.getValueExpression("#{applicationScope. For more information. refer to "How to Create a View Accessor for an Entity Object or View Object" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. View Accessors are set in the View Accessors page of the Overview Editor for entity objects and view objects.getDisplayMessage(BindingContext.setValue(message). String.class).validationMessage}". valueExpression.getMessage(). } else { return "". ex). } } else { message = this. 5-18 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .4. You create a view accessor to point from a base entity object attribute or view object attribute to a source view row set. Exception ex) { if (ex != null) { return ex. } ValueExpression valueExpression = SimpleContext.5 View Accessor Support for Entity Objects and View Objects View accessors are value-accessor objects in ADF Business Components.getInstance(). shown in Figure 5–9.

Note: ■ ■ ■ ■ ■ ■ ■ ADF Mobile client does not support the following in the Control Hints dialog.6 Using List UI Hints for View Objects You can associate a control hint with the current entity attribute. see "Defining Attribute Control Hints for Entity Objects" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. AddressEO. Do not use them. invoked from the Address1 attribute in the Attribute page of the Overview Editor for the entity object.4. For more information.Editing Mobile Entity Objects Figure 5–9 The Overview Editor for View Accessor Page 5. Display Hint Tooltip Text Control Type Display Width Display Height Form Type Auto Submit Beta Draft Developing ADF Mobile Client Applications 5-19 . Figure 5–10 shows the Control Hints dialog. View objects will inherit the hint values at runtime. For example.

the UI will display the same LOV usage for these LOV-enabled attributes. 5-20 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .4. At design time. To define LOV-enabled attributes. For more information. see "Working with List of Values (LOV) in View Object Attributes" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers For example.7 Using Display Hints for Entity Objects You can specify default LOV (list of values) hints when you want the LOV-enabled attributes of other view objects to inherit the list UI hints from the current view object. Figure 5–11 shows the List UI Hints page of the Overview Editor for AddressEOView. At runtime.Editing Mobile Entity Objects Figure 5–10 Control Hints Dialog 5. a view object. you must create a view accessor that points to the view object that supplies the values. the LOV-enabled attributes whose view accessor points to this source view object will inherit any list UI hints you have defined.

You can only use the JDBC Positional binding style.8 Adding Positional Binding Variables to View Objects The Query page of the overview editor for a view object (illustrated in Figure 5–12 and described in "Working with Bind Variables" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers) enables you to add bind variables to a query. Beta Draft Developing ADF Mobile Client Applications 5-21 . such as customer_id=? in Figure 5–12.4. The JDBC Positional binding style substitutes question mark symbols (?) for the bind parameters names.Editing Mobile Entity Objects Figure 5–11 The Overview Editor for List UI Hints 5. Figure 5–12 The Query Page of the Overview Editor for View Objects Do not use the Oracle Named binding style or the Oracle Positional binding style to pass parameters to a view objects.

" 5-22 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . they instead link methods statically at compile time.The Entity Object and View Object Extension Note: JDeveloper will generate the following error message if you do not use the JDBC Positional binding style: SQL Query Error Message: Missing IN or OUT parameter at index:: 1 5. described in "Advanced Business Components Techniques" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. ADF Mobile client applications do not bind methods dynamically. you must add delgation code to invoke application modules or view object from the EL expressions and the entity object validation methods as described in Chapter 7. which are based on the J2ME platform. You extend mobile client applications using the Java page of the Overview Editor for the entity object or view object. Figure 5–13 shows the Select Java Options dialog where you can extend the entity object. "Extending ADF Mobile Applications with Java. differ from J2EE-based Oracle ADF applications. To simulate dynamic binding. see "How to Edit an Existing Application Module" and "Generating Custom Java Classes for a View Object" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers Note: ADF Mobile client applications.5 The Entity Object and View Object Extension You can extend the mobile application using the same techniques for extending an Oracle ADF application. For example. Because J2ME lacks the VM support to implement Java reflection. For more information on using the overview editor. AddressEO.

but can safely be generated and used at design time. the generated Java source must be compatible to Java 1.3. ■ ■ view row client Interface view row client The following are explicitly not supported: ■ ■ entity collection entity definition Beta Draft Developing ADF Mobile Client Applications 5-23 . The source uses integers for field indexes instead of enumerations. 5. Java Assist in JDeveloper filters out the methods that are not supported.5. Note: When you generate entity object and view object Java implementations for ADF Mobile client applications.1 Supported Constructs The following JDeveloper-generated Java classes are supported by the runtime: ■ ■ ■ ■ entity object view object view row application module The following are not used by the runtime.The Entity Object and View Object Extension Figure 5–13 Select Java Options Dialog The ADF Mobile client entity objects and view objects support only a subset of the functionality available to the server entity objects and view objects.

jbo.adfnmc. int rangeSize) activateState(ViewRowSetImpl vrs. delete (CRUD) operations.DataControl. Example 5–5 Obtaining a Database Connection import import import import oracle. which is designed to relieve developers from manually performing create.bindings.5. TransactionEvent e) handleEffectiveDateOperations() validateDateEffectivity() removeAndRetain() view object (oracle. int flags) passivateStateForUndo(String id.6 Interacting Directly with SQLite The ADF Mobile client framework provides a large degree of compatibility with BC4J. oracle.server. As illustrated in Example 5–5. there are use-cases that may require bypassing the framework and interacting directly with the underlying database.jbo.jbo. update.EntityImpl) ■ ■ ■ ■ doDMLWithLOBs(int operation. Nonetheless.dbf.BC4JDataControl.ViewObjectImpl) ■ ■ addEffectiveDateDstAttributes() buildEffectiveDateFromClauseFragment(StringBuffer fromClause.bindings.jbo. Do not override or otherwise call the following methods: entity object (oracle.server.2 Unsupported Methods Even though the classes listed in Section 5. oracle.jbo.ViewRowImpl) application module (oracle.ApplicationModuleImpl) ■ ■ activateState(int id.1. ADF Mobile client supports these use cases in a manner that is similar to BC4J's.bindings. int flags) getAMSerializer() ■ 5. ViewRowImpl currentRow. ADF Mobile client does not support every method in those classes. oracle.BindingContext.server.5.Interacting Directly with SQLite ■ ■ view object definition application module definition 5. SessionData info.ApplicationModule. byte[] clientData.bc4j.adfnmc. int noUserParams) sortRows(Row[] rows) activateNewRowTracker(ViewRowSetImpl vrs. KXmlParser parent) validateRangeSizeForRangePaging(ViewRowSetImpl vrs.adfnmc.server. KXmlParser parent) ■ ■ ■ ■ view row (oracle. "Supported Constructs" are supported by the runtime. DataControl dc = 5-24 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .

close().1. Beta Draft Developing ADF Mobile Client Applications 5-25 . one typically used by a single user and often linked directly into the application.html): ■ ■ File Locking And Concurrency In SQLite Version 3 BEGIN TRANSACTION 5.createPreparedStatement("arbitrary SQL query"). This limitation arises directly from SQLite's coarse-grained locking.1 Differences Between SQLite and Other Relational Databases SQLite is designed for use as an embedded database system.getInstance(). are designed for high concurrency in a distributed client-server environment. } } 5. 5.sqlite.1 Concurrency Do not open your own connection to the database at any time during application execution. on the other hand. Always reuse the framework's connection by following Example 5–5.org/docs. The most important differences are: ■ ■ ■ ■ Concurrency SQL Support Data Types Foreign Keys Note: Consult the Documentation section of the SQLite site (http://www.get("AppModuleDataControl"). available from the Documentation section at the SQLite site (http://www. see the following documents available from the Documentation section at the SQLite site (http://www. DBTransaction dbTrans = am. there are a number of limitations that may be foreign to developers accustomed to working with Oracle databases.html) for complete details.org/docs.6.2 SQL Support Although SQLite complies with the SQL92 standard. Because of these differences. there are a few unsupported constructs.html).Interacting Directly with SQLite (DataControl)BindingContext. For more information.sqlite. PreparedStatement prepStmt = null.sqlite.6.getDataProvider(). see SQL Features That SQLite Does Not Implement. if (dc instanceof BC4JDataControl) { ApplicationModule am = (ApplicationModule)dc.1. For more information.org/docs.getDBTransaction(). try { prepStmt = dbTrans. // work with PreparedStatement as usual } finally { if (prepStmt != null) prepStmt. Enterprise databases.6.

be sure to maintain data integrity.4 Foreign Keys Although SQLite parses foreign key constraints.org/docs.7. a string value is mistakenly stored in a numeric column. You can create this connection in the application or in the IDE shows how a finished connection may look.Configuring JDeveloper to Connect to and Test Against a SQLite Database 5. see Datatypes In SQLite Version 3. it does not enforce them.jar. The name and password fields are dummy values. Select Generic JDBC from the Connection drop-down menu. In the Database Navigator.sqlite. regardless of its declared type.sqlite. Doing this enables you to test against real data using direct SQL statements and verify if the SQL statement is valid against the SQLite database. you can test the generated SQL in question by copying and pasting the SQL statement into the view object editor. when a query returns unexpected results.6. To register the Zentus SQLite JDBC driver and test against the SQLite database: 1. select File > New > Connections and then Database Connections.html).1 How to Test Against a SQLite Database Use JDeveloper’s Database Navigator to create a database connection to the SQLite database.3 Data Types While most database systems are strongly-typed. create a new database connection.1. Because you must always test manually created SQL statements against SQLite databases. 4. SQLite will not return an error if.6. This driver is contained in a JAR file called sqlitejdbc-v0xx. see the SQLite FAQ available from the Documentation section at the SQLite site (http://www. available from the Documentation section at the SQLite site (http://www. In JDeveloper. you may need to test against the SQLite databases that are generated from OracleLite Mobile Server Sync (mSync). The ADF Mobile client framework takes care of converting values to and from the database in accordance with the relevant entity metadata. 2.7 Configuring JDeveloper to Connect to and Test Against a SQLite Database During the development cycle. For more information." Download the SQLiteJDBC driver from zentus. "How to Set Up JDeveloper. SQLite is dynamically typed and therefore any value can be stored in any column. for instance. but if you are working directly against the database.html).org/docs. Before you begin: Download Oracle JDeveloper and the ADF Mobile client extension as described in Section 2. 5. 5.2. For more information. 5-26 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Click New.1. Also. Save this file to an easily accessed location. 3.com. use the SQL Worksheet to test SQL statements and the update SQLite database schema. 5. this testing method is useful when you define view objects and create custom SQL statements in expert mode as described in"Working with View Objects in Expert Mode" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers.

Enter org. where MOBILEFOD. 11.Configuring JDeveloper to Connect to and Test Against a SQLite Database 5. Figure 5–14 Registering the Zentus SQLite JDBC Driver 6. Click OK. 8. 9. click New. Select the sqlitejdbc-v0xx. In the JDBC URL window. Enter dummy values in the name and password fields. Click Browse. 7.sqlite. as shown in Figure 5–14.jar on your file system. Click OK until you return to the Create Database Connection page. A Success! message appears if the connection is configured correctly. Figure 5–15 The Create Database Connection Dialog 10.db is the SQLite file containing the data.JDBC as the Driver Class in the Register JDBC Driver dialog. For example. enter jdbc:sqlite:C:\Documents and Settings\<your name>\Desktop\sqlite-3_6_22\MOBILEFOD. Click Test Connection. Beta Draft Developing ADF Mobile Client Applications 5-27 . and then click Add Entry.db. enter jdbc:sqlite:<Path to your SQLite data file> as shown in Figure 5–15.

In the Database Navigator. modify. right-click the connection and select SQL Worksheet.Configuring JDeveloper to Connect to and Test Against a SQLite Database 12. 5-28 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . from the context menu. The SQL Worksheet enables you to test SQL statements and also review. and export the SQLite database.

Note: When developing interfaces for mobile devices. "Understanding EL Support" 6. "Creating Mobile Views" Section 6.7. "Using Event Listeners" Section 6. This chapter includes the following sections: ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ Section 6. Beta Draft Creating the ADF Mobile Client User Interface 6-1 .9.12. "Creating and Using Input Components" Section 6.11. "Designing the Layout of the Page" Section 6. with their appearance and behavior being very similar to the ADF Faces components. "Introduction to Creating the ADF Mobile Client User Interface" Section 6.3.10. "Creating and Using Tables" Section 6.6 6 Creating the ADF Mobile Client User Interface This chapter describes how to build ADF Mobile client user interfaces for Windows Mobile devices and BlackBerry smartphones using ADF Mobile client components. In addition.4.8. "Creating Task Flows" Section 6. the mobile client components represent wrappers around native components in BlackBerry and Windows Mobile.5. always be aware of the fact that the screen space is very limited. "Using Buttons and Links for Navigation" Section 6.2. In essence.1 Introduction to Creating the ADF Mobile Client User Interface ADF Mobile client enables you to create applications that behave appropriately for both the BlackBerry and Windows Mobile user experience through its support of a set of layout and field components.6. "Displaying Images" Section 6. these components are not identical to their ADF Faces counterparts: the mobile client components do not support every property and behavior of ADF Faces components. "Creating and Using Output Components" Section 6.1. While the mobile client maintains the same development experience as ADF Faces by enabling you to drag these components into an editor from the Component Palette or from the Data Control Palette. the touchscreen support is not available on some mobile devices. "Creating and Using Menus" Section 6.

"Creating an Application Workspace"). As described in "Task Flow Types" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. Usage of the Expression Language For more information. You use the Mobile Client Task Flow Designer to create bounded task flows for mobile client applications (mobile client task flows). the ADF Mobile application must include a view controller project file (that is. a project that includes the ADF Mobile UI technology) that includes the MobileClient-task-flow. a bounded task flow is also known as a task flow definition and represents the reusable portion of an application. Bounded task flows have a single entry point and zero or more exit points. To use the task flow other than the default on the application startup. see the following: ■ ■ Chapter 4. JDeveloper creates the XML metadata needed for navigation to work in your application in the MobileClient-task-flow. You then define these activities and the transitions between them using the Property Inspector. you start creating the user interface for your application by designing task flows. Features of ADF Mobile client components that are unique to the mobile client.xml file (see Section 6.1 How to Create a Task Flow You use the navigation diagrammer to declaratively create a task flow. 6. you can create mobile applications that have only bounded task flows. JDeveloper maintains the same experience as designing an ADF task flow as described in "Creating a Task Flow" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. "Getting Started with ADF Mobile Client" Chapter 5. ADF Mobile client applications use navigation cases and rules to define the task flow.xml file: <amc:setting name="root-task-flow" value="MobileClient-task-flow. When designing a mobile client task flow.xml file (default). this tool includes a diagrammer (see Section 6. Creation of MCX pages. As with any standard JSF application.2. For Oracle Fusion Middleware 11g release 1 of ADF Mobile client. "Developing ADF Mobile Client Applications" 6. you need to modify the value of the following setting in the adf-config. Like the overview editor for task flows.Creating Task Flows This chapter describes the following: ■ ■ ■ ■ Design and development of the flow of the user interface.3. as well as their own memory scope and managed bean life span. If the project does not include this file.xml file.2. When you use the diagrammer. "What You May Need to Know About the Mobile Client Task Flow Diagrammer") in which you build the task flow by dragging and dropping activities and control flows from the Component Palette. you can create one using the Mobile Client Task 6-2 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . or if the project requires an additional flow. "What You May Need to Know About the MobileClient-task-flow.xml"/> Before you begin: To design a task flow. These definitions are stored in the MobileClient-task-flow. Other features of bounded task flows include accepting input parameters and generating return values.7.2 Creating Task Flows Using your application workspace (see Section 4.6. They have their own collections of activities and control flow rules.2.xml File").

click the Diagram tab to open the navigation diagrammer. 2. you can double-click a view file to access the MCX view.3. Press F1 for details on using the overview editor to create navigation. If the Component Palette is not displayed. Once the navigation for your application is defined. Figure 6–1 ADF Mobile Client Task Flow Palette in JDeveloper 5. Select the component you wish to use and drag it onto the diagram." After you define the task flow for the application. "How to Use the Mobile Client Task Flow Creation Wizard. Open the MobileClient-task-flow.2.3. you can create the pages and add the components that will execute the navigation.Creating Task Flows Flow Creation Wizard as described in Section 6. "How to Enable Page Navigation Using Control Flow Case.2.2." If you did not add a view controller project using the Create Mobile Application wizard as described in Section 4. JDeveloper redraws the diagram with the newly added component.xml file by directly editing the page in the source editor. For more information. "How to Add a Mobile Client View Controller Project"). Tip: You can also use the overview editor to create navigation rules and navigation cases by clicking the Overview tab. "How to Create an Application Workspace. the Component Palette is displayed in the upper right-hand corner of JDeveloper. 4. By default. this is in the Application Sources node.1. In the Component Palette.xml file for your application. Additionally. from the main menu choose View > Component Palette.11.0." you can quickly add one to the application using the Create ADF Mobile Client View Controller project dialog (see Section 0. To view the file in the source editor. "Creating Mobile Views.3. see Section 6. click the Source tab. To create a task flow: 1. 3. use the menu to choose ADF Mobile Client Task Flow. see Section 6. By default. For more information about using navigation components on a page. In the editor window." Beta Draft Creating the ADF Mobile Client User Interface 6-3 . you can manually add elements to the MobileClient-task-flow.

2 How to Create an Additional Task Flow While JDeveloper automatically creates a bounded mobile client task flow (named MobileClient-task-flow. To create a bounded task flow: 1. select ADF Mobile Client. For example. 2. In the main menu. 6-4 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Figure 6–2 Creating a Mobile Client Task Flow 4. In New Gallery.Creating Task Flows 6. JDeveloper increments the number of the task flow according to the number of task flows that already exist in the same pattern. Figure 6–3 shows a task flow named MobileClient-task-flow1. Enter the directory name.xml.xml by default) when you select the Mobile Client UI technology for the project. ■ 5. Click OK. In the items window.2. select ADF Mobile Client Task Flow as shown in Figure 6–2. you can create an additional bounded task flow using the task flow dialog. choose File and then New. By default. 3.xml. expand the Client Tier node. Click OK. Complete the Create ADF Mobile Client Task Flow dialog by adding the following: ■ Enter a name for the task flow. JDeveloper names this file MobileClient-task-flow. Figure 6–3 shows the Create ADF Mobile Client Task Flow dialog.

Beta Draft Creating the ADF Mobile Client User Interface 6-5 . 2.xml. the wizard will automatically give the task flow a unique name within the application. enter the directory for the task flow. revealing the diagrammer. You can populate this task flow by dragging ADF Mobile Client Task Flow components into the diagrammer. which by default is called MobileClient-task-flow. Before you begin: Because the task flow files are included in the view controller project. In the Application Navigator. ADF Mobile Client Task Flow is selected in the Component Palette. Enter the name of the task flow (the default value is MobileClient-task-flow. the task flow shown in Figure 6–5 is called MobileClient1-task-flow. "How to Create an Application Workspace. 5. Choose the Current Project Technologies tab and then expand the Client Tier node in the Categories window. you can also manually create a mobile client task flow using the Mobile Client Task Flow Creation Wizard.2.Creating Task Flows Figure 6–3 Create ADF Mobile Client Task Flow Dialog 6. the ADF Mobile client application must include the view controller project file that results from the selection of the ADF Mobile UI technology (see Section 4.xml. 3. Choose ADF Mobile Client and then select ADF Mobile Client Task Flow from the Items window.3. if needed. Click OK.xml) and.4 What Happens When You Create a Mobile Client Task Flow JDeveloper creates a bounded task flow. For example.1. 6. The New Gallery appears.") To create a Mobile client task flow: 1. select the project in which you want to create the mobile client task flow and then choose New.2. 4. If an application already includes a mobile client task flow. Figure 6–4 shows the Diagram tab selected.3 How to Use the Mobile Client Task Flow Creation Wizard Although JDeveloper creates the mobile client task flow automatically when you assign the Mobile Client technology to a project.

this activity is used as the exit Figure 6–5 shows a task flow return named Exit. Router View Task Flow Return Table 6–2 lists the control flows supported by mobile client task flows. See also "Using Method Call Activities" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. You can place a method call activity anywhere in the control flow of an application to invoke application logic based on control flow rules. 6-6 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Table 6–1 Activity Method Call Supported Activities Description Invokes a method (typically a method on a managed bean). These outcomes can then be used to route control to other activities in the task flow. See also "Using Router Activities" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. Table 6–1 lists the activities supported for mobile client task flows.2. You can create a MCX page by double-clicking the view activity.5 What You May Need to Know About Supported Activities and Control Flows The mobile client task flow designer supports a subset of ADF activities and control flows. Displays a MCX page. See also "Using View Activities" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers.Creating Task Flows Figure 6–4 The Bounded TaskFlow in the Diagrammer 6. Evaluates an EL expression and returns an outcome based on the value of the expression. In mobile client applications.

Control Flows Control Flow Case Wildcard Control Flow Rule Represents a control flow case that can originate from any activity with an ID matching a wildcard expression. is the source file for creating task flows for mobile applications. See also "How to Add a Wildcard Control Flow Rule" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers.xml File As described in Section 4. "What Happens When You Create a Mobile Client Application Workspace. See also "Control Flows" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers.xml. and enables you to design the interactions between views (MCX pages) by dragging and dropping the mobile client task flow components from the Component Palette into the diagrammer.xml file. Beta Draft Creating the ADF Mobile Client User Interface 6-7 .6 What You May Need to Know About the MobileClient-task-flow. Figure 6–5 The MobileClient-task-flow.3.2.xml file (shown in Figure 6–5). which JDeveloper generates as a result of selecting the ADF Mobile UI technology for the project.xml or faces-config. This file is the mobile client counterpart to task-flow-definition.Creating Task Flows Table 6–2 Supported Control Flows Description Identifies how control passes from one activity to the next in an application.xml. 6." adding the Mobile Client technology to the project results in the addition of the MobileClient-task-flow.xml File You use the Property Inspector to define the components in the mobile client task flow in the same manner as you would using task-flow-definition.2. The MobileClient-task-flow.

If you drag a view activity onto the diagram. double-click a task flow source file (MobileClient-task-flow. "How to Add View Activities" 6. the task flow diagram and Component Palette display automatically after you create a task flow using the Mobile Client Task Flow Creation Wizard.3. Before you begin: You must select ADF Mobile Client Task Flow from the Component Palette as Figure 6–6 shows. views. The diagrammer displays the task flow editor. 6-8 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . The task flow diagram is a visual editor into which you can drag and drop activities and task flows from the Component Palette or from the Application Navigator. you can invoke the Create MCX File wizard. To add an activity to a mobile client task flow: 1. as Figure 6–6 shows.8 How to Add Mobile Client Activities After you create a mobile client task flow. "How to Use the Mobile Client Task Flow Creation Wizard.7 What You May Need to Know About the Mobile Client Task Flow Diagrammer As illustrated in Figure 6–5.9.xml) to display the task flow diagram and the Component Palette. see the following: ■ ■ Section 6. Drag an activity from the Component Palette onto the diagram. As in ADF application development. The Component Palette automatically displays the components available for a mobile client task flow. Figure 6–6 The Diagrammer for the Task Flow Editor 2.Creating Task Flows 6.2.2. In the Application Navigator. this task flow diagrammer is the visual editor onto which you drag and drop activities. For more information.2." Section 6.2. and control flows. the task flow diagrammer and Component Palette automatically display.

6. In the Application Navigator. 3. You add a view activity by dragging and dropping a view activity from the Component Palette. Each line that JDeveloper adds between an activity represents a control flow case.2. which represents a control flow from-activity-id that contains a trailing wildcard (foo*) or a single wildcard character. Next. select the text next to the control flow in the diagram. 4.9 How to Add View Activities The view activity is associated in metadata with an actual MCX page.2. Select Control Flow Case from the Component Palette. connect the control flow case to the source activity and then to the destination activity. this is a wildcard character. 5. On the diagram. ■ To define a control flow case directly in the Mobile client task flow diagram 1. select Control Flow Case from the Component Palette. To change the from-activity-id (the identifier of the source activity). 2. control-flow-case: Identifies the destination activity using a to-activity-id. To create a control flow.2. drag either end of the arrow in the diagram to a new activity. You can also create a view activity by dragging and dropping a MCX file in the Application Navigator into the overview editor’s Diagram window. see "What Happens When You Create a Control Flow Rule" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. By default. click a source activity and then a destination activity. To change the from-outcome. For more information. double-click a task flow source file to display the task flow diagram. JDeveloper creates the following after you connect a source and target activity: ■ control-flow-rule: Identifies the source activity using a from-activity-id.10 How to Add a Wildcard Control Flow Rule Mobile client task flows support the wildcard control flow rule. 6. or the to-activity-id (the identifier for the destination activity).11 How to Enable Page Navigation Using Control Flow Case You can create navigation using the control flow case component. You can create an actual MCX page by double-clicking the view activity in the Diagram window. which identifies how control passes from one activity to the next.Creating Mobile Views 6. 6.3 Creating Mobile Views You start creating mobile views by doing the following: ■ ■ Getting familiar with the MCX page structure Using the visual editor Beta Draft Creating the ADF Mobile Client User Interface 6-9 . JDeveloper adds the control flow case to the diagram. A view activity displays a MCX page. The from-outcome contains a value that can be matched against values specified in the action attribute of the UI components.

The view layer of a mobile client application is persisted in this file. "What Happens When You Create a MCX Page.Creating Mobile Views ■ ■ ■ Dragging and dropping components into the MCX page Adding devices in the page designer Adding data controls to a view 6.1 What You May Need to Know About the MCX Page Structure The MCX file is a XML file similar to a JSPX file. you can modify the source view and get instant feedback in terms of the look and feel of that application on both the BlackBerry and Windows Mobile platforms." 6. splitting a view while adding the mobile client components to the MCX file enables you to see both the code view through the source editor and a mobile client UI view through the preview tab. The basic structure of the MCX file is as follows: <amc:view> <amc:form/> <amc:menu/> … <amc:menu/> </amc:view> See also Section 6. As a result.3. 6-10 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .2 How to Use the Visual Editor JDeveloper’s editor provides WYSIWYG support for both the Windows Mobile and BlackBerry platforms when you build views using MCX files. As illustrated in Figure 6–7.3.3.5.

JDeveloper invokes a context menu of the default UI component available for the item that you dropped.Creating Mobile Views Figure 6–7 Splitting Design and Source Views By opening a combination of source views for different devices. then JDeveloper creates one. If no such file exists. 6. you can develop applications simultaneously for different platforms and form factors. JDeveloper creates the binding information in the associated page definition file. you can insert different types of data controls into the Structure window of a MCX page.3 How to Add Data Controls to an ADF Mobile Client View You can create databound UI components in a MCX view by dragging data controls from the Data Controls panel and dropping them into either the Structure window or the code editor. Beta Draft Creating the ADF Mobile Client User Interface 6-11 . JDeveloper generates the mappings that determine which controls can be inserted into a MCX page. Depending on the approach you take. For example. In addition. When you drag an item from the Data Controls panel to either of these places. Figure 6–8 shows the context menu for creating forms or tables that appears when you drag a view object (such as OrderItemEOView3 in Figure 6–8) in to the structure window of a MCX page. dropping a collection such as a view object enables you to create a form or a table.3.

You can also create command buttons as a result of dropping the following operations: ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ Create Insert Delete Execute Find First Last Next Previous Set Current Row With Key Set Current Row With KeyValue Commit Rollback Note: For commit and rollback functions. which enable you to rollback to a certain point within a transaction rather than rolling back the entire transaction. 6-12 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . The EL expression in the actionListener is the same as the one created on the drop of an operation into an ADF application. ADF Mobile client does not support nested transactions nor does it support savepoints. The respective action listener is added in the mobile client commandButton for each of these operations.Creating Mobile Views Figure 6–8 Creating a Form or Table from a View Object Dropping an attribute of a collection enables you to create various input and output components.

Create a MCX page. Depending on the type of attribute that you select.items}" (nested selectItems) Select Checkbox Creates a mobile client check box with a label and a value properties. JDeveloper adds all of the controls to the MCX page and adds the required EL expressions.FieldName. you add only specific attributes of a view object by performing the following: 1.inputValue} a label and with value (selectOneChoice) properties value="#{bindings. From the Data Controls panel. a context menu appears that presents the appropriate components. which are available when you select Single Selections. and then drop it into the Structure view or the MCX source file.label}" Beta Draft Creating the ADF Mobile Client User Interface 6-13 . 2. 2. Click OK. Create a new MCX page. 3. The following scenarios describe the specific controls that result from dropping an entire collection or from dropping selected attributes into the Structure window or the MCX page’s source file. A wizard appears that describes all of the view object attributes that can be added to the MCX page as well as the type of mobile client components that can be created for each of the fields. Scenario 2 In this scenario. You can only drag and drop data controls into the Structure window or into the MCX page editor itself. 5. and then drop it into the Structure window. select a collection such as a view object. Table 6–3 Component Selection-Related Components Description EL Expressions Select One Choice Creates a mobile label=#{bindings. Table 6–3 lists the selection components. A context menu appears that presents options to create a form or a table.Creating Mobile Views Note: You cannot drag and drop data controls into the Design view in Oracle Fusion Middleware 11g release 1. 4.FieldName.FieldName. you populate a Panel Form Layout based on the view objects in the model layer by performing the following: 1. 3. From the Data Controls panel.FieldName. Drag a Panel Form Layout component from the Component Palette into the page’s Panel Group Layout.label} client combobox with value="#{bindings. Select either form or table. Scenario 1 In this scenario. Select an attribute.FieldName. Select the appropriate attributes and change the component as needed. expand a collection such as a view object. value="#{bindings.inputValue}" text="#{bindings.

then the context menu presents the components listed in Table 6–5 when you select Date.FieldNam e.Field Name. ”#{bindings.Field Name. and text controls that appears when you drag an attribute from the Data Controls panel into the Structure window of a MCX page. Table 6–5 Component Input Date with Label Date Attribute-Related Components Description Creates a mobile client input date with a label and value property.FieldNam e. Figure 6–9 shows the context menu for adding date.hints.mandatory}" (inputDate) pattern="#{bindings. Creates a mobile client input text with label and value properties.hints.Field Name.format}" (nested convertDateTime) Input Date Creates a mobile client input date with a value property.hints. As shown in Figure 6–9.format}" (nested convertDateTime) 4.hints.FieldName .inputValue}” (on outputText) Output Text Input Text with Label Creates a mobile client output text value property.FieldName.FieldNam e.i nputValue}” label=”#{bindings.inputValue}” value=”#{bindings. dragging a date-related attribute (CreationDate) results in a context menu that includes the 6-14 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .inputValue}" label="#{bindings.mandatory}" (inputDate) pattern="#{bindings.FieldN ame. Select the component. Table 6–4 Component Output Text with Label Text-Related Components Description Creates a mobile client panelLabelAndMessage control that contains an outputText control EL Expressions label=”#{bindings. EL Expression value="#{bindings.inputValue}" required="#{bindings. value="#{bindings.label}” (on panelLabelAndMessage) value=”#{bindings. single selection.FieldName .FieldN ame. JDeveloper adds the controls to the MCX page and adds the required EL expressions as well.Creating Mobile Views Selecting Texts in the context menu enables you to create text controls by populating the page with the components listed in Table 6–4.inputValue}” Input Text Creates a mobile client input text with value property.label}” value=”#{bindings.Field Name.hints.label}" required="#{bindings. If you select a date attribute.Field Name.

Creating Mobile Views Dates selection. a project that includes the ADF Mobile UI technology).2. "How to Create an Application Workspace". Figure 6–9 Adding Controls from Attributes 6. right-click the directory where you would like the page to be saved. "How to Add a Mobile Client View Controller Project." To create a MCX page: 1. select ADF Mobile Client and then ADF Mobile Client Page and click OK. Beta Draft Creating the ADF Mobile Client User Interface 6-15 . and choose New. expand the Client Tier node. you can quickly add one to the application using the Create ADF Mobile Client View Controller Project Wizard.3.1.4 How to Create MCX Pages MCX files are contained in the view controller project. In the New Gallery. one that enables you to create date input components that Table 6–5 describes. 2.0. In the Application Navigator. You create these files using the Create ADF Mobile Client page dialog. described in Section 0. Before you begin: The ADF Mobile client application must include a view controller project file (that is. If you did not add a view controller project using the Create Mobile Application wizard as described in Section 4.3.

Creating Mobile Views

Figure 6–10 Creating a Mobile Client Page

Tip: Alternatively, you can also create a MCX page by double-clicking a view icon in a navigation diagram for a page that has not yet been created.
3.

In the Create ADF Mobile Client Page dialog, enter a name and, if needed, a location. For help, click Help in the dialog. Click OK.

Figure 6–11 Create ADF Mobile Client Page Dialog

6.3.5 What Happens When You Create a MCX Page
When you use the Create ADF Mobile Client Page dialog to create a MCX page, JDeveloper creates the physical file and adds it to the META-INF folder of the view project. In the Application Navigator that Figure 6–12 shows, the META-INF folder (located in the Application Sources folder of the MobileClient project) contains a newly created MCX file called revieworder.mcx.

6-16 Mobile Client Developer's Guide for Oracle Application Development Framework

Beta Draft

Creating Mobile Views

Figure 6–12 The MCX File in the Application Navigator

JDeveloper also adds the code necessary to import the component libraries and display a page. This code is illustrated in the source editor shown in Figure 6–12.
Example 6–1 Declarative Page Source Created by JDeveloper <?xml version="1.0" encoding="UTF-8" ?> <amc:view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:amc="http://xmlns.oracle.com/jdev/amc"> <amc:form id="form0"> <amc:menuControl refId="menu0"/> <amc:panelGroupLayout id="panelGroupLayout1"/> </amc:form> <amc:menu type="main" id="menu0"> <amc:menuGroup id="group1"> <amc:commandMenuItem id="commandMenuItem1"/> </amc:menuGroup> </amc:menu> </amc:view>

When the page is first displayed in JDeveloper, it is displayed in the visual editor (accessed by clicking the Preview tab), which allows you to view the page in a WYSIWYG environment. Figure 6–13 shows the Preview tab selected for a newly created MCX page called browseOrder.mcx. This page is blank because it has not yet been populated with ADF Mobile client components or data controls.

Beta Draft

Creating the ADF Mobile Client User Interface

6-17

Creating Mobile Views

Figure 6–13 The Visual Editor for a Newly Created MCX Page

You can also view the source for the page in the source editor by clicking the Source tab, as shown in Figure 6–12. The Structure window located in the lower left-hand corner of JDeveloper (also shown in Figure 6–13), provides a hierarchical view of the page. For more information, see Section 6.3.2, "How to Use the Visual Editor."
Note:

You can only drag and drop components into the Structure window or the MCX page editor itself. When using the Structure window to build a page, you can only drop components into a panelGroupLayout (see Section 6.4.2, "How to Use a panelGroupLayout Component").

6.3.6 How to Add Mobile Client Components to MCX Pages
After you create a page, you can use the Component Palette to drag and drop components onto the page. JDeveloper then declaratively adds the necessary page code and sets certain values for component attributes. For information on adding and using specific mobile client components, see the following:
■ ■ ■ ■ ■

Section 6.5, "Creating and Using Input Components" Section 6.6, "Creating and Using Output Components" Section 6.7, "Displaying Images" Section 6.8, "Creating and Using Tables" Section 6.9, "Using Buttons and Links for Navigation"

Before you begin: The ADF Mobile application must include a view controller project file (that is, a project that includes the ADF Mobile UI technology). This project file must also contain a MCX page, or an ADF Mobile task flow from which to create an page.

6-18 Mobile Client Developer's Guide for Oracle Application Development Framework

Beta Draft

Creating Mobile Views

If you did not add a view controller project using the Create Mobile Application wizard as described in Section 4.3.1, "How to Create an Application Workspace", you can quickly add one to the application using the Create ADF Mobile Client View Controller project dialog, described in Section 0.0.2, "How to Add a Mobile Client View Controller Project." In addition, the view controller project must include a MCX page. As described in Section 6.3.4, "How to Create MCX Pages," you can invoke the Create ADF Mobile Client page dialog by double-clicking a view icon in a navigation diagram or by selecting the view controller project, then selecting ADF Mobile Client in the New Gallery and then selecting ADF Mobile Client Page. To add mobile client components to a page: 1. Open a MCX page in the visual editor.
2.

If the Component Palette is not displayed, from the menu choose View > Component Palette. By default, the Component Palette is displayed in the upper right-hand corner of JDeveloper. In the Component Palette, use the menu to choose ADF Mobile Client (Figure 6–14).

3.

Figure 6–14 ADF Mobile Client Component Palette

4.

Select the component you wish to use and drag it and then drop it onto source editor or into the Structure window.
Note:

When building a MCX page using the Structure window, you can only drop components into a panelGroupLayout component.

JDeveloper redraws the page in the visual editor with the newly added component. In the visual editor, you can directly select components on the page and use the resulting context menu to add more components.

Beta Draft

Creating the ADF Mobile Client User Interface

6-19

Creating Mobile Views

Tip: You can also drag and drop components from the palette into the Structure window or directly into the code in the source editor.

You can always add components by directly editing the page in the source editor. To view the page in the source editor, click the Source tab at the bottom of the page.

6.3.7 How to Set Component Attributes
Once you drop components onto a page you can use the Property Inspector (displayed by default at the bottom right of JDeveloper) to set attribute values for each component.
Tip: If the Property Inspector is not displayed, choose View > Property Inspector from the main menu.

Figure 6–15 shows the Property Inspector displaying the attributes for an inputText component.
Figure 6–15 The Property Inspector

The Property Inspector has sections that group similar properties together. For example, the Property Inspector groups commonly used attributes for the inputText component in the Common section, while properties that affect how the component behaves are grouped together in the Behavior section. Figure 6–15 shows the Behavior section of the Property Inspector for an inputText component. To set component attributes: 1. Select the component, for which you want to set attributes.
2.

In the Property Inspector, expand the section that contains the attribute you wish to set. You can select the component either in the visual editor or the Structure window, or you can select its tag directly in the source editor.
Tip: Some attributes are displayed in more than one section. Entering or changing the value in one section will also change it in any other sections. You can search for an attribute by entering the attribute name in the search field at the top of the inspector.

3.

Either enter values directly into the fields, or if the field contains a list, use that list to select a value. You can also use the list to the right of the field, which launches a popup containing tools you can use to set the value. These tools are either specific property editors (opened by choosing Edit) or the Expression Builder, which you can use to create EL expressions for the value (opened by choosing Expression

6-20 Mobile Client Developer's Guide for Oracle Application Development Framework

Beta Draft

4.Designing the Layout of the Page Builder). "How to Use a form Component.4. or as child components to the layout components. seeSection 6.4. "How to Create MCX Pages. see Section 6. For more information. you begin building pages with these components. 6.3. "How to Use a panelGroupLayout Component. 6.1 How to Use a form Component A form is a component that serves as a container for other components.4." Page Layout Containers panelFormLayout Positions input form controls. Tip: You can always change attribute values by directly editing the page in the source editor. For more information about using the Expression Builder. click the Source tab at the bottom of the page. and then add other components that provide other functionality either inside these facets. see "Creating EL Expressions" in Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework.6. For more information." panelGroupLayout Groups child components either vertically or horizontally.4." Spacing Components spacer Creates an area of blank space. "How to Use a panelLabelAndMessage Component.4 Designing the Layout of the Page ADF Mobile client provides layout components (listed in Table 6–6) that let you arrange components in a page." For more information about MCX files. Table 6–6 Component ADF Mobile Client Page Management.3.1. Beta Draft Creating the ADF Mobile Client User Interface 6-21 . For more information see ge Section 6.2. Usually.4. such as inputText components so that their labels and fields line up vertically. For more information. "How to Use a panelFormLayout Component.8 What Happens When You Use the Property Inspector When you use the Property Inspector to set or change attribute values.4. see Section 6. To view the page in the source editor. see "Separating Content Using Blank Space or Lines" in Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework. Some of these components provide geometry management functionality. see Section 6. JDeveloper automatically changes the page source for the attribute to match the entered value." panelLabelAndMessa Lays out a label and its children. 6. For more information. such as the capability to stretch when placed inside a component that stretches. Layout and Spacing Components Description Page Management Components form Creates a form element in a MCX file.

1 How to Add a form to a Page In most cases. The argument must be an EL expression to a method.2 How to Use a panelGroupLayout Component The panelGroupLayout component is a basic layout component that lays out its children horizontally or vertically. Each page must contain one form component. an underscore(-). Due to the specifics of the mobile client life cycle (see Section 1. Subsequent characters must be an ASCII letter or digit (A-Za-z0-9).5. To create the panelGroupLayout component. To add spacing between adjacent child components. To use the panelGroupLayout component: 1. insert the spacer component. "The Life Cycle of a View"). In the Component Palette. In the Component Palette. Use the Property Inspector to arrange the child components in the desired layout by setting layout property to one of the following values: 6-22 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . optionally set the following: ■ id: An identifier for the component that must follow a subset of the syntax allowed in HTML: the first letter must be an ASCII letter (A-Z. Insert the desired child components into the panelGroupLayout component. it automatically inserts a form component into the page. or configure the form with certain attribute values. Due to the specifics of the mobile client life cycle (see Section 1. or a dash(-). 6. The argument must be an EL expression to a method. onLoad: An event that is fired whenever a page is loaded. onUnload: An event that is fired whenever a page is unloaded. However. The form component must have one panelGroupLayout child component. The argument must be an EL expression to a method. they will be inserted inside the form component. 4. In the Property Inspector.Designing the Layout of the Page By default.5. When you add components to the page. drag and drop a form onto the page. Tip: If you do not already have an amc:form tag on the page. a-z) or an underscore(-).4. and you drag and drop a UI component onto the page. 2. use the Component Palette. this event is never fired. drag and drop a panelGroupLayout to the MCX page. "The Life Cycle of a View"). onShow: An event that is fired whenever a page is shown.4. onHide: An event that is fired whenever a page that is currently shown is replaced by another page. there may be cases where you must manually add a form. when you create a MCX page in JDeveloper. 3.3. The argument must be an EL expression to a method. JDeveloper will prompt you to enclose the component within a form component. ■ ■ ■ ■ 6. 2.1. JDeveloper will add the form component for you. this event is fired at most once per application run. To add a form to a page: 1.3.

rgb(255. a-z) or an underscore(-). #ff0000). where child components are stacked vertically. and aligned in the middle with reference to an imaginary vertical line. To change the vertical alignments of horizontal components.Designing the Layout of the Page ■ horizontal–Uses a horizontal layout. Beta Draft Creating the ADF Mobile Client User Interface 6-23 . or as percentage in int% format. By default. verticalAlign attribute is ignored when the layout is not set to vertical. id is an optional attribute. in pixels. or a dash(-). an underscore(-). In the Property Inspector. center. The default is center. setting verticalAlign to bottom would not yield good results as bottom vertical alignment causes the bottommost points of all the letters to be on the same imaginary line. set the following: – – align: Specify one of the following values: left (default)–aligns the text to the left.3 What You May Need to Know About Geometry Management and the panelGroupLayout Component The geometry behavior of ADF Mobile client user interface components depends on whether they are layered on a panelGroupLayout component with its layout attribute set to vertical (default) or horizontal. In output text components (such as outputText) that have varied font sizes in the text. Default is top. in pixels. Subsequent characters must be an ASCII letter or digit (A-Za-z0-9). No wrapping is provided when contents exceed the amount of space available. width: Specify the width of the component as an int value. bottom. height: Specify the height of the component as an int value.0)) or a hexadecimal number (for example. where child components are arranged in a horizontal line. backgroundColor: Specify the color of a background to an RGB value (for example. or as percentage in int% format. verticalAlign: Specify one of the following values: top (default). the child components can be aligned vertically. Note: The align attribute is ignored when the layout is set to horizontal. but it must be unique if provided in the form.4. center–centers the text. Other acceptable values are left and right. verticalAlign–Sets the vertical alignment. Other acceptable values are middle and bottom. id: Specify the identifier for the component. The identifier must follow a subset of the syntax allowed in HTML: the first letter must be an ASCII letter (A-Z. horizontal child components are aligned in the center with reference to an imaginary horizontal line. ■ vertical (default)–Uses a vertical layout. right–aligns the text to the right. In a horizontal layout. use the following attributes: – – align–Sets the horizontal alignment. ■ – – – – 6.0.

as well as that of all the ancestors of a vertical panel. it simply overshoots to the right and may become obscured and inaccessible.3 Horizontal Alignment in Vertical Panels A vertical panel can be aligned to left (default). vertical scrolling is automatically enabled on BlackBerry devices on a vertical panel when the bottom edge of the component at the bottom exceeds the maximum visible height of the panel.3. You can also completely disable vertical on a view by explicitly disabling vertical scrolling on all panels including the main view. no local scrolling is performed unless there is no containing panel enabled for vertical scrolling. the vertical panel scrolls to the horizontal direction when the focusable component that was initially obscured is activated. or right with respect to the current applicable width of the current column.1. then the panel is as wide as the lesser of the width of its widest component and the width made available by the parent container.2 Vertical Scrolling in Vertical Panels By default. When horizontal scrolling is disabled. the component will take on the lesser of the specified width and the width made available by its parent container. the vertical panel attempts to lay out all components within the visible width of the panel. the panel will take on the specified height.3. center. but you can enable it. The default width for such components as an inputDate and inputText is the width of the visible part of their parent container and not the maximum available width for the entire screen. the panel scrolls in vertical directions within the panel. However. Typically. The behavior of components on a vertical panel vary depending on the component type.Designing the Layout of the Page 6. When enabled. 6. If the width attribute is set. You can explicitly disable vertical scrolling of parts of the view while enabling localized vertical scrolling by setting appropriate attributes. Note: Both vertical and horizontal scrolling is not enabled by default on Windows Mobile devices.4.1. if the height attribute is set. 6.3.1.4. whereas the width of the panel is defined by the widest component in the panel. The panel contains two components: commandButton1 that is 100 pixels wide. 6. suppose there is a vertical panel whose width attribute is set to 200. Therefore. the height of the panel grows as components are added to the panel.1 Horizontal Scrolling in Vertical Panels By default. When vertical scrolling of the root panel. are disabled.1 Geometry Management and Vertical Panels A vertical panel places components in vertical direction in one column.4. If horizontal scrolling is enabled and the width attribute is not set. horizontal scrolling is disabled. vertical scrolling takes place on the panelGroupLayout on which the verticalScroll attribute is set to true. This behavior is consistent when scrolling is enabled. On BlackBerry smartphone. when horizontal scrolling is enabled in a vertical panel.4.3. When it is not possible to lay out a component within the visible width. and 6-24 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Note that the vertical scrolling takes place in the panel that is the panel closest to the root panel in the hierarchical order and enabled for vertical scrolling. For example.

6. A vertical panel can contain any panel. 6.1 Horizontal Scrolling in Horizontal Panels By default. The width of the panel when scrolling is enabled is the lesser of the total width occupied by its children or 1073741823 (0x3FFFFFFF) pixels. If a horizontal panel contains a component whose width is equal to the available width.2.3. the panel would be 150 pixels wide for it assumes the width of the widest contained component (commandButton2). horizontal scrolling is disabled. 6.Designing the Layout of the Page commandButton2 that is 150 pixels wide.3. Vertical panels behave in the same way with respect to height. whether it is vertical or horizontal. When the contained components are laid out on the panel. 6. Since the right horizontal alignment is specified on both contained components.4 Vertical Alignment in Vertical Panels Vertical alignment is ignored on vertical panels. 6. When the width attribute is set. you may have to implement them using a gadget. there would not be any empty space to the left of the commandButton2.2 Geometry Management and Horizontal Panels A horizontal panel places components in horizontal direction in one row.7 Margins and Padding Between Panels Even though margins (gap between adjacent panels) and padding (gap between components within a panel) are supported by BlackBerry smartphone layout manager.4. but no component is placed on top of another.1. The width of a vertical panel is equal to the widest component in the panel when the width attribute is not specified. such as an image or spacer component.1.4. then the panel takes on the smaller of the specified width or the available width provided by its parent container. Components contained in a horizontal panel may be multiline.3.5 Nesting Vertical Panels A vertical panel can be nested within any panel.4. The height of the panel is defined by the highest component in the panel.6 Overlapping Vertical Panels It is not possible for two panels or two components within a panel to overlap. both are right-aligned within the panel and there is an empty space to the left of both of them.4. 6. When horizontal scrolling is disabled.3.3.4.1. The available width is the lesser of the remaining (or provided) width of the parent container and the width specified on the panel. but you can enable it. a vertical panel lays out its contained panels indifferent from the way it would lay out other components. Note that the horizontal alignment of the panel does not affect the horizontal alignment of the contained UI components. If in the preceding example the panel's width is not set.3. the component does not occupy the entire available width of a horizontally scrollable container by default. Beta Draft Creating the ADF Mobile Client User Interface 6-25 . the horizontal panel attempts to lay out all components within the visible width of the panel.4.1. At the same time. This behavior is consistent regardless of the enablement of horizontal scrolling.

2. The geometry of a horizontal panel is calculated differently from other components by the containing panel. 6. a horizontal panel lays out its contained panels indifferent from the way it would lay out other components.4.3.4. then the panel takes on the lesser of the specified height and the available height provided by its parent container.3 Horizontal Alignment in Horizontal Panels A horizontal panel cannot be aligned horizontally. When horizontal scrolling is enabled. When it is not possible to lay out a component within the panel. bottom. the panel width is the lesser of specified width and sum of the widths of its children.3.2.2. This is because the very wide panel can be made visible through the scrolling on the underlying panel.5 Nesting Horizontal Panels A horizontal panel can be nested within any panel. The width is the sum of the widths of the panel's children when the width attribute is not set. 6. such as a commandButton or an outputText.7 Margins and Padding Between Horizontal Panels Even though margins (gap between adjacent panels) and padding (gap between components within a panel) are supported by the BlackBerry smartphone layout manager. such as an image or a spacer component.3.4. When the width attribute is set. At the same time. When the height attribute is set.4. The behaviors of components vary depending on the component type. However.6 Overlapping Panels It is not possible for two panels or two components within a panel to overlap.2.3.3.4. the embedded panel's available width is 1073741823 (0x3FFFFFFF) pixels.2. 6-26 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .3. if the component has a fixed width. 6. you may have to implement them using a gadget. or center with respect to the current applicable height of other component in the current row. 6.4. When horizontal scrolling is disabled. Some components display in different ways depending on the enablement of the horizontal scrolling in a horizontal panel. whether it is a vertical or a horizontal panel. 6. A vertical panel can contain any panel.2. the text in an input component wraps and all text is made visible in most cases. The height of a horizontal panel is equal to the highest component in the panel when the height attribute is not specified.4 Vertical Alignment in Horizontal Panels A horizontal panel can be vertically aligned at the top. 6. an input component can grow in width beyond the visible width. possibly through vertical scrolling. Some components are laid out differently when horizontal scrolling is enabled. it simply overshoots to the right and it may become obscured and inaccessible.Designing the Layout of the Page This means that when a nonscrollable panel is embedded in a horizontally scrollable panel.2 Vertical Scrolling in Horizontal Panels Vertical scrolling in horizontal panels is supported. the component is not stretched but maintains the same size regardless of the enablement of horizontal scrolling.

5.Designing the Layout of the Page 6. Use this attribute when the align attribute is set to start. In the Component Palette. In general.4. see Section 6. For more information." Note: The labelWidth and fieldWidth attributes only apply when you use the start attribute.5. For more information. "What You May Need to Know About Geometry Management and the panelFormLayout Component. such as the selectOneChoice. see Section 6. "What You May Need to Know About Geometry Management and the panelFormLayout Component. set the following: ■ labelAlignment: Specify either start or top alignment for the label. In the Property Inspector. the labelWidth attribute of the panelFormLayout component lets you set the width of a label as an int value. Setting the labelAlignment attribute to start enables the panelFormLayout component to position a component’s label to the left of its field. 2." To use the panelFormLayout component: 1.". Tip: Use the panelLabelAndMessage component to contain complex components. drag and drop a panelFormLayout to the MCX page.4. If you do not define its attribute. "How to Use a panelLabelAndMessage Component.5.5. A field without a label is positioned directly below the previous component’s field ■ labelWidth: As described in Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework. then its field is positioned in the fields column and there will be a gap in the labels column. see Section 6. ■ Beta Draft Creating the ADF Mobile Client User Interface 6-27 . while the fields are left-aligned. then a default value of 1 is used at run time." For more information.4. the main content of the panelFormLayout component are input components (such as the inputText and inputDate) and selection components. see Section 6. This then defines two columns. see Section 6. "What You May Need to Know About Geometry Management and the panelFormLayout Component. whose widths can be specified using the labelWidth and fieldWidth attributes. Use a panelLabelAndMessage component to prepend a label to a component that does not have a label natively.6. in pixels. Both fields and labels are left-aligned in this layout. ■ fieldWidth: Specify the width of a field as an int value.4. For more information. Tip: If a component does not have a label.4 How to Use a panelFormLayout Component The panelFormLayout component positions components so that their labels and fields align vertically. For more information. or percentage in int% format.4.4. "What You May Need to Know About Geometry Management and the panelFormLayout Component. The labels are right-aligned with each other." columnMargin: Specify the distance in absolute terms between the labels columns and fields columns. Setting the labelAlignment attribute to top enables the panelFormLayout component to position a label above its field.

the component is hidden in the client view. then these values are disregarded at run time. you cannot set one attribute as a percentage and the other in pixels. ■ ■ ■ ■ ■ ■ 6. Valid values are true and false. or percentage in int% format. a-z) or an underscore(-). labelFontColor: Specify the color of the label text to an RGB value (for example. rgb(255. Note: While you can specify the labelWidth and the fieldWidth attributes as either pixels or percentages. Subsequent characters must be an ASCII letter or digit (A-Za-z0-9). If set to false.0)) or a hexadecimal number (for example. To specify the width as a percentage. then ADF Mobile client calculates the width for the attribute that has not been set by subtracting the percentage set for the width attribute from 100%. #ff0000). If you specify the labelWidth and fieldWidth attributes in absolute terms and their length exceeds either the available width or the width of the panelFormLayout component itself. rgb(255. disabled: Indicate whether the component should be displayed as active (enabled) or inactive (disabled). The labelWidth and fieldWidth attributes are disregarded at run time if you mix attribute definitions. id: Specify the identifier for the component.0)) or a hexadecimal number (for example. then the value for fieldWidth will be calculated as 60% at run time.4. width: Specify the width of the component as an int value.0. The following geometry behavior of panelFormLayout is identical on BlackBerry and Windows Mobile platforms: 6-28 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . height: Specify the height of the component as an int value. If only one of these width attributes is set as a percent. set these labelWidth and fieldWidth attributes so that the sum of their combined percentages is 100%. visible: Specify the visibility of a component. or a dash(-). If the combined values set for both fieldWidth and labelWidth do not total 100%. an underscore(-).Designing the Layout of the Page ■ backgroundColor: Specify the color of a background to an RGB value (for example. or percentage in int% format. This does not affect the component life cycle on the server: the component may have its bindings executed. and the visibility of the component can be toggled on and off on the client. The display position of the panelFormLayout component depends on the parent panelGroupLayout on which it is layered.5 What You May Need to Know About Geometry Management and the panelFormLayout Component You can specify the labelWidth and the fieldWidth attributes as either pixels or percentages.0. For example. if you set labelWidth=40%. but it must be unique if provided in the form. then value set for the labelWidth attribute takes precedence and the length of the fieldWidth attribute is truncated to the available width. id is an optional attribute. in pixels. #ff0000). The identifier must follow a subset of the syntax allowed in HTML: the first letter must be an ASCII letter (A-Z. but do not specify a value for fieldWidth. in pixels.

Subsequent characters must be an ASCII letter or digit (A-Za-z0-9).1 What You May Need to Know About Arranging Labels You can use the panelFormLayout to lay out multiple panelLabelAndMessage components. On horizontal panels–panelFormLayout is always positioned to the right of the previous component and is vertically aligned according to the align attribute value of the panelGroupLayout component. disabled: Indicate whether the component is displayed as active (enabled) or inactive (disabled)..0.. or a dash(-). The identifier must follow a subset of the syntax allowed in HTML: the first letter must be an ASCII letter (A-Z.0)) or a hexadecimal number (for example. ■ 6. or percentage in int% format. 2. id: Specify the identifier for the component. for the value of 1234567890123456. To use the panelLabelAndMessage component: In the Component Palette. "Creating and Using Output Components").6. If set to false.6 How to Use a panelLabelAndMessage Component Use the panelLabelAndMessage component to lay out a label and its children.Designing the Layout of the Page ■ On vertical panels–panelFormLayout is always positioned below the previous component and horizontally aligned according to the align attribute value of the panelGroupLayout. id is an optional attribute.6. setting truncateAt to any value between 1 and 15 will truncate to 1234567890123456. ■ ■ ■ ■ ■ ■ 6. Although the only child of a panelLabelAndMessage component is usually an output component (see Section 6. This component does not affect the life cycle on the server: the component may have its bindings executed. but it must be unique if provided in the form. When you place panelLabelAndMessage components within a Beta Draft Creating the ADF Mobile Client User Interface 6-29 . Note that the outputText component will not truncate strings shorter than fifteen characters. For example.4. rgb(255. label: Specify the label text of the component as a String value. a-z) or an underscore(-). backgroundColor: Specify the color of a background to an RGB value (for example. setting truncateAt to 0 or 16 will not truncate. width: Specify the width of the component as an int value. #ff0000). you can arrange the panelLabelAndMessage component to have many child components. truncateAt: Specify an int value indicating the position of a character at which truncation should occur. in pixels. or percentage in int% format. in pixels. an underscore(-). In the Property Inspector. drag and drop a panelLabelAndMessage component into a panelGroupLayout component. Values from 1 to 15 will display the first twelve characters followed by an ellipsis (. height: Specify the height of the component as an int value.). the string will never truncate.4. visible: Specify the visibility of a component. When set to 0 (the default). and the visibility of the component can be toggled on and off on the client. the component is hidden in the client view. Valid values are true and false. set the following: ■ ■ 1.

oracle..1 How to Use the inputText Component The inputText component represents an editable field with an optional text label in front of it.2.5.5. "How to Use the selectBooleanCheckbox Component") selectOneChoice (see Section 6. "How to Use the inputDate Component") inputNumberSpinbox (see Section 6. <amc:panelGroupLayout id="panelGroupLayout3" layout="vertical" rendered="#{!applicationScope. 6-30 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . 6.5 Creating and Using Input Components You can use the following input components when developing your ADF Mobile client application: ■ ■ ■ inputText (see Section 6..5.2.1. Figure 6–16 shows the inputText component in design view. "How to Use the selectOneChoice Component") ■ ■ You can add an identical set of event listeners (see Section 6.5. always consider their geometry behavior (see Section 6. <amc:inputText label="Order Number" id="inputText2"/> . "What You May Need to Know About Geometry Management and the inputText Component").4..3. Example 6–2 Creating inputText <amc:view xmlns:amc="http://xmlns. Example 6–2 demonstrates how to declare the inputText element in a MCX file.com/jdev/amc"> <amc:form id="form0"> .. "How to Use the inputText Component") inputDate (see Section 6.. "How to Use the inputNumberSpinbox Component") selectBooleanCheckbox (see Section 6.6..5.addMode}" width="100%"> . When creating these components.1.5. If you place a component that already has a label within a panelLabelAndMessage component.5. the labels align.5.5. then the component’s label is ignored at run time and the panelFormLayout’s label is used in the panelFormLayout component’s labels column instead. 6.Creating and Using Input Components panelFormLayout component. "Adding Event Listeners to Input Components") to ADF Mobile client’s input components.

panelFormLayout. 6.3.6.0)) or a hexadecimal number (for example. ■ backgroundColor: Specify the color of a background to an RGB value (for example. To add an inputText component: 1.1. align: Specify one of the following values: – – – left (default)–Aligns the text to the left. "How to Convert Numerical Values") and convertDateTime (see Section 6. #ff0000). Valid values are true and false. When creating the inputText component for the use on BlackBerry smartphones. focusable: Indicate whether or not the component can acquire focus.2. If set to false. rgb(255. and panelLabelAndMessage components.5. whereas pressing ALT+trackwheel moves the focus caret in a less significant direction (usually horizontal).1.6.Creating and Using Input Components Figure 6–16 inputText in Design View To enable conversion of numbers as well as date and time values that are entered in the inputText component. set the following: ■ ■ label: Specify the text as a String value to be used as the component’s label. disabled: Indicate whether the component is to be displayed as active (enabled) or inactive (disabled).1 How to Add an inputText Component to a Page You can use an inputText component within panelGroupLayout. note that the track wheel moves the focus caret in the major direction (usually vertical). 2.0. Valid values are true and false. you use the converNumber (see Section 6. ■ ■ Beta Draft Creating the ADF Mobile Client User Interface 6-31 . center–Centers the text. right–Aligns the text to the right. drag and drop an inputText onto the page. "How to Convert Date and Time Values") components.1. then it is not possible to directly change the value of the inputText component. In the Property Inspector. In the Component Palette.

rgb(255. but it must be unique if provided in the form. required: Indicate whether or not a non-null. You may Beta Draft ■ ■ ■ ■ ■ 6-32 Mobile Client Developer's Guide for Oracle Application Development Framework . a-z) or an underscore(-). the maximumLength attribute is ignored. the secret attribute hides the actual value of the text from the end user. otherwise. If a required attribute is also present. At design time. Note: You have to separate each value with a comma. secret: Specify this boolean value that applies only to single-line text components. The following are valid values: – – – normal (default)–Defines normal characters. fontWeight: Set how thick or thin characters in text should be displayed. id is an optional attribute.Creating and Using Input Components ■ fontFamily: Specify a prioritized list of font family names and/or generic family names for a component.0)) or a hexadecimal number (for example. an underscore(-). fantasy. and so on. The following are two types of fontFamily values: – – family-name–The name of a font family. id: Specify the identifier for the component. or percentage in int% format. ■ foregroundColor: Specify the color of a text to an RGB value (for example. ■ ■ fontSize: Set the font size as an int value. #ff0000). non-empty value must be entered in the component. This includes the characters representing the new line. Note that setting the required attribute to true will also show the visual indication. monospace. onSelect: Information pending. arial. showRequired: Define whether or not the associated component should display a visual indication of required user input. Appearance indicates the read-only state of the component. both the required attribute and the showRequired attribute must be false for the visual indication not to be displayed. a visual indication is displayed to notify the end user know a value must be entered. The identifier must follow a subset of the syntax allowed in HTML: the first letter must be an ASCII letter (A-Z. or as an output-style component. and always offer a generic-family name as the last alternative. readOnly: Specify whether or not the component is displayed as field whose value can be edited. Valid values are true and false. generic-family–The name of a generic family. an exception will occur and the component will fail validation. such as times. bold–Defines thick characters. italic–Defines italic characters. in pixels. height: Specify the height of the component as an int value. If set to false. When set to true. The display will use the first value it recognizes. If set to true. If set to 0 or less. or a dash(-). such as serif. cursive.0. ■ ■ ■ maximumLength: Specify the maximum number of characters per line that can be entered into the text control. Subsequent characters must be an ASCII letter or digit (A-Za-z0-9). courier. validators will not be executed when the value is null or empty. you must ensure that value set for the id attribute is unique and that it is a legal character set.

6. If set to false. The display position of the inputText component depends on the panel on which it is layered. or percentage in int% format. value: Specify the value (as an Object) for the component. Example 6–3 demonstrates how to declare the inputDate element in a MCX file.com/jdev/amc"> <amc:form id="form0"> .3. For example. "How to Convert Date and Time Values"). ■ simple: Represents an EL-expressed boolean value (it is run-time evaluated) that controls whether or not the component provides label support: when set to true. ■ 6. On horizontal panels–inputText is positioned according to the settings of the width attribute. This component does not affect the life cycle on the server: the component may have its bindings executed. the default format in American English (ENU) is mm/dd/yy. in pixels. If the EL binding for a value points to a bean property with a get method but no set method. The default date format is the short date format appropriate for the current locale. Example 6–3 Creating inputDate <amc:view xmlns:amc="http://xmlns. showRequired) and may use simpler layout primitives.5. which implies that it attempts to occupy the visible width of the parent container. width: Set the width of the component as an int value. you can override the format using a date-time converter (for more information about using converters. Note that the visible width is not necessarily the same as available width.oracle. the component will not display the label (such as label. However..5..2 How to Use the inputDate Component The inputDate component presents an input field for entering dates. the component will be rendered in read-only mode. verticalAlign: Specify one of the following values: – – – top (default)–Aligns to the top.2 What You May Need to Know About Geometry Management and the inputText Component The default width of an inputText component is 100%.1. ■ ■ ■ visible: Set the visibility of a component.Creating and Using Input Components want to use the showRequired attribute when a field is required only if another field’s value is changed. see Section 6. and this is a component whose value can be edited. <amc:panelGroupLayout id="panelGroupLayout3" Beta Draft Creating the ADF Mobile Client User Interface 6-33 . ■ 6. the component is hidden in the client view. center–Centers.1. and the visibility of the component can be toggled on and off on the client. bottom–Aligns to the bottom. The following geometry behavior of the inputText is identical on BlackBerry and Windows Mobile platforms: ■ On vertical panels–inputText is positioned according to the settings of the width and align attribute.

rgb(255. right–Aligns the text to the right.2.. Figure 6–17 inputDate in Design View The text label part of the inputDate component is always aligned to the left.. you use the convertDateTime component (see Section 6.3..hints.0. drag and drop an inputDate onto the page. 2.mandatory}" id="inputDate2"/> .5.1 How to Add an inputDate Component to a Page The inputDate component enables the input of dates.Creating and Using Input Components layout="vertical" rendered="#{!applicationScope. while the edit field is aligned to right. #ff0000). <amc:inputDate value="1 Jan 2009" label="Date " required="#{bindings.0)) or a hexadecimal number (for example. To enable conversion of date and time values that are entered in the inputDate component. 6-34 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . center–Centers the text. Figure 6–17 shows the Date inputDate component in design view. ■ backgroundColor: Specify the color of a background to an RGB value (for example. "How to Convert Date and Time Values").addMode}" width="50%"> .1. align: Specify one of the following values: – – – left (default)–Aligns the text to the left. To add an inputDate component: 1. 6. In the Property Inspector. In the Component Palette.6..OrderDate. set the following: ■ ■ label: Specify the text as a String value to be used as the component’s label.

italic–Defines italic characters. otherwise. non-empty value must be entered in the component. If set to true. cursive. readOnly: Specify whether or not the component is displayed as field whose value can be edited. #ff0000). ■ ■ Note: You have to separate each value with a comma. rgb(255.0)) or a hexadecimal number (for example. fantasy. Valid values are true and false. or a dash(-). The following are valid values: – – – normal (default)–Defines normal characters. id: Specify the identifier for the component. and so on. If set to false. You may want to use the showRequired attribute when a field is required only if another field’s value is changed. The display will use the first value it recognizes. Note that setting the required attribute to true will also show the visual indication. justification: Set to one of the following values: center. an underscore(-). required: Indicate whether or not a non-null. courier. validators will not be executed when the value is null or empty. arial. Appearance indicates the read-only state of the component. ■ foregroundColor: Specify the color of a text to an RGB value (for example. left. bold–Defines thick characters.Creating and Using Input Components ■ disabled: Indicate whether the component is to be displayed as active (enabled) or inactive (disabled). The identifier must follow a subset of the syntax allowed in HTML: the first letter must be an ASCII letter (A-Z. Subsequent characters must be an ASCII letter or digit (A-Za-z0-9). ■ ■ fontSize: Set the font size as an int value. in pixels. then it is not possible to directly change the value of the component. height: Specify the height of the component as an int value. The following are two types of fontFamily values: – – family-name–The name of a font family. Valid values are true and false. a visual indication is displayed to notify the end user know a value must be entered. both the required attribute and the showRequired attribute must be false for the visual indication not to be displayed. an exception will occur and the component will fail validation. If set to false. showRequired: Define whether or not the associated component should display a visual indication of required user input. such as serif. or percentage in int% format. monospace. right. and always offer a generic-family name as the last alternative. generic-family–The name of a generic family. fontFamily: Specify a prioritized list of font family names and/or generic family names for a component. simple: Represents an EL-expressed boolean value (it is run-time evaluated) that controls whether or not the component provides label support: when set Beta Draft Creating the ADF Mobile Client User Interface 6-35 ■ ■ ■ ■ ■ ■ ■ . Valid values are true and false. If a required attribute is also present. fontWeight: Set how thick or thin characters in text should be displayed. a-z) or an underscore(-). such as times. focusable: Indicate whether or not the component can acquire focus. or as an output-style component.0.

and this is a component whose value can be edited. ■ ■ 6.4.. the component will not display the label (such as label. in pixels.5. you can set this attribute when the component is used in repeatable elements like in table.2. the component will be rendered in read-only mode. This component does not affect the life cycle on the server: the component may have its bindings executed. If set to false. the component is hidden in the client view. On horizontal panels–inputDate is positioned according to the width attribute.3.oracle. For example. Example 6–4 demonstrates how to declare the inputNumberSpinbox element in a MCX file. The following geometry behavior of the inputDate is identical on BlackBerry and Windows Mobile platforms: ■ On vertical panels–inputDate is positioned according to the width attribute with the default value of 100%.Creating and Using Input Components to true. verticalAlign: Specify one of the following values: – – – top (default)–Aligns to the top.5. "What You May Need to Know About Geometry Management and the panelGroupLayout Component. bottom. If the EL binding for a value points to a bean property with a get method but no set method. and the visibility of the component can be toggled on and off on the client. width: Set the width of the component as an int value.addMode}" width="100%"> 6-36 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . ■ ■ verticalJustification: Set to one of the following values to align the text vertically: top (default). The input number must be within the range defined by minimum and maximum attributes. bottom–Aligns to the bottom. Example 6–4 Creating inputNumberSpinbox <amc:view xmlns:amc="http://xmlns. ■ For more information. center–Centers. visible: Set the visibility of a component. ■ value: Specify the value (as an Object) for the component.3 How to Use the inputNumberSpinbox Component The inputNumberSpinbox is used for entering numbers and quickly step through the numbers.com/jdev/amc"> <amc:form id="form0"> . center. <amc:panelGroupLayout id="panelGroupLayout3" layout="vertical" rendered="#{!applicationScope. or percentage in int% format." 6. see Section 6.2 What You May Need to Know About Geometry Management and the inputDate Component The display position of the inputDate component depends on the panel on which it is layered. showRequired) and may use simpler layout primitives. where label is not required..

In the Component Palette.. In the Property Inspector. Figure 6–18 shows the Select order number inputNumberSpinbox component in design view. set the following: ■ ■ label: Specify the text as a String value to be used as the component’s label.1 How to Add an inputNumberSpinbox Component to a Page The inputNumberSpinbox component enables scrolling through a set of numbers to select a value.inputValue}" id="inputNumberSpinbox1" width="200"/> . Figure 6–18 inputNumberSpinbox in Design View 6. align: Specify one of the following values: – – – left (default)–Aligns the text to the left. right–Aligns the text to the right.5. <amc:inputNumberSpinbox label="Select order number" value="#{bindings. disabled: Indicate whether the component is to be displayed as active (enabled) or inactive (disabled).. ■ backgroundColor: Specify the color of a background to an RGB value (for example.0)) or a hexadecimal number (for example. If set to false. focusable: Indicate whether or not the component can acquire focus. center–Centers the text. then it is not possible to directly change the value of the component. To add a inputNumberSpinbox component: 1. drag and drop an inputNumberSpinbox onto the page. Valid values are true and false.Creating and Using Input Components . rgb(255. #ff0000). Valid values are true and false.OrderId. 2..3. ■ ■ Beta Draft Creating the ADF Mobile Client User Interface 6-37 .0..

#ff0000). an underscore(-). maximum: Specify the maximum int value allowed in this field. a visual indication is displayed to notify the end user know a value must be entered.0. ■ foregroundColor: Specify the color of a text to an RGB value (for example. cursive. readOnly: Specify whether or not the component is displayed as field whose value can be edited. in pixels. monospace. or as an output-style component. If set to true. This attribute supports EL expressions. This is the default value. fantasy. italic–Defines italic characters. The identifier must follow a subset of the syntax allowed in HTML: the first letter must be an ASCII letter (A-Z. height: Specify the height of the component as an int value. Note: You have to separate each value with a comma. Valid values are true and false. Appearance indicates the read-only state of the component.0)). bold–Defines thick characters. or percentage in int% format. and always offer a generic-family name as the last alternative. otherwise. If a required attribute is also present. If set to false. You may want to use the showRequired attribute when a field is required only if another field’s value is changed. stepSize: Specify an int value to set the numeric increment for the component. courier. and so on. or a hexadecimal number (for example. such as times. required: Indicate whether or not a non-null. arial. non-empty value must be entered in the component. or a dash(-). This attribute supports EL expressions. fontWeight: Set how thick or thin characters in text should be displayed. The following are valid values: – – – normal–Defines normal characters. generic-family–The name of a generic family.Creating and Using Input Components ■ fontFamily: Specify a prioritized list of font family names and/or generic family names for a component. showRequired: Define whether or not the associated component should display a visual indication of required user input. such as serif. ■ ■ fontSize: Set the font size as an int value. This attribute supports EL expressions. The following are two types of fontFamily values: – – family-name–The name of a font family. Subsequent characters must be an ASCII letter or digit (A-Za-z0-9). The display will use the first value it recognizes. id: Specify the identifier for the component. simple: Represents an EL-expressed boolean value (it is run-time evaluated) that controls whether or not the component provides label support: when set Beta Draft ■ ■ ■ ■ ■ ■ ■ ■ ■ 6-38 Mobile Client Developer's Guide for Oracle Application Development Framework . validators will not be executed when the value is null or empty. a-z) or an underscore(-). both the required attribute and the showRequired attribute must be false for the visual indication not to be displayed. Note that setting the required attribute to true will also show the visual indication. rgb(255. minimum: Specify the minimum int value allowed in this field. an exception will occur and the component will fail validation.

4 How to Use the selectBooleanCheckbox Component The selectBooleanCheckbox component represents a check box that you use to enable single selection of true or false values.Creating and Using Input Components to true. ■ value: Specify the value (as an Object) for the component. If the EL binding for a value points to a bean property with a get method but no set method. in pixels.5.2 What You May Need to Know About Geometry Management and the inputNumberSpinbox Component The display position of the inputNumberSpinbox component depends on the panel on which it is layered. ■ For more information.5. <amc:selectBooleanCheckbox label="New order" id="selectBooleanCheckbox1"/> Beta Draft Creating the ADF Mobile Client User Interface 6-39 .. center–Centers. For example. bottom–Aligns to the bottom..3. and this is a component whose value can be edited. width: Set the width of the component as an int value. verticalAlign: Specify one of the following values: – – – top (default)–Aligns to the top.addMode}" width="100%"> . you can set this attribute when the component is used in repeatable elements like in table. or percentage in int% format.4. the component will be rendered in read-only mode. and the visibility of the component can be toggled on and off on the client.com/jdev/amc"> <amc:form id="form0"> .oracle.3. ■ ■ visible: Set the visibility of a component... <amc:panelGroupLayout id="panelGroupLayout3" layout="vertical" rendered="#{!applicationScope. where label is not required." 6. "What You May Need to Know About Geometry Management and the panelGroupLayout Component. This component does not affect the life cycle on the server: the component may have its bindings executed. On horizontal panels–inputNumberSpinbox is positioned according to the width attribute. The following geometry behavior of the inputNumberSpinbox is identical on BlackBerry and Windows Mobile platforms: ■ On vertical panels–inputNumberSpinbox is positioned according to the width attribute. ■ 6. see Section 6. the component will not display the label (such as label. showRequired) and may use simpler layout primitives. the component is hidden in the client view. Example 6–5 Creating selectBooleanCheckbox <amc:view xmlns:amc="http://xmlns. Example 6–5 demonstrates how to declare the selectBooleanCheckbox element in a MCX file. If set to false.

disabled: Indicate whether the component is to be displayed as active (enabled) or inactive (disabled). 2. Valid values are true and false. right–Aligns the text to the right. 6.4. In the Component Palette. #ff0000). Valid values are true and false. If set to false. Figure 6–19 shows the New Order selectBooleanCheckbox component in design view. depending upon the state of the field. rgb(255. In the Property Inspector. Pressing the spacebar when the selectBooleanCheckbox component has the focus toggles its state.5.Creating and Using Input Components . center–Centers the text. Figure 6–19 selectBooleanCheckbox in Design View If you use the default font. set the following: ■ ■ label: Specify the text as a String value to be used as the component’s label. drag and drop an inputNumberSpinbox onto the page..1 How to Add a selectBooleanCheckbox Component to a Page The selectBooleanCheckbox component enables toggling between selected and deselected states. ■ backgroundColor: Specify the color of a background to an RGB value (for example.0.0)) or a hexadecimal number (for example. then it is not possible to directly change the value of the component. align: Specify one of the following values: – – – left (default)–Aligns the text to the left. ■ ■ 6-40 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . To add a selectBooleanCheckbox component: 1. this box will appear either empty or containing a check mark.. focusable: Indicate whether or not the component can acquire focus.

both the required attribute and the showRequired attribute must be false for the visual indication not to be displayed. an underscore(-). fontWeight: Set how thick or thin characters in text should be displayed. a-z) or an underscore(-). the component will not display the label (such as label. The following are two types of fontFamily values: – – family-name–The name of a font family. Appearance indicates the read-only state of the component. or a dash(-). otherwise. such as serif. left. monospace. #ff0000). height: Specify the height of the component as an int value. simple: Represents an EL-expressed boolean value (it is run-time evaluated) that controls whether or not the component provides label support: when set to true. readOnly: Specify whether or not the component is displayed as field whose value can be edited. an exception will occur and the component will fail validation. fantasy. generic-family–The name of a generic family. ■ ■ ■ ■ ■ ■ ■ Beta Draft Creating the ADF Mobile Client User Interface 6-41 . showRequired) and may use simpler layout primitives. in pixels. required: Indicate whether or not a non-null. a visual indication is displayed to notify the end user know a value must be entered. This is the default value.0. right. cursive. justification: Set to one of the following values: center. ■ ■ fontSize: Set the font size as an int value. ■ foregroundColor: Specify the color of a text to an RGB value (for example. italic–Defines italic characters. You may want to use the showRequired attribute when a field is required only if another field’s value is changed. courier. and always offer a generic-family name as the last alternative. showRequired: Define whether or not the associated component should display a visual indication of required user input. The following are valid values: – – – normal–Defines normal characters. validators will not be executed when the value is null or empty. Note that setting the required attribute to true will also show the visual indication.Creating and Using Input Components ■ fontFamily: Specify a prioritized list of font family names and/or generic family names for a component. id: Specify the identifier for the component. and so on. or percentage in int% format. If set to false. you can set this attribute when the component is used in repeatable elements such as in a table where label is not required. Valid values are true and false. arial. If a required attribute is also present. rgb(255. Note: You have to separate each value with a comma. If set to true. For example. or as an output-style component.0)) or a hexadecimal number (for example. such as times. Subsequent characters must be an ASCII letter or digit (A-Za-z0-9). bold–Defines thick characters. The display will use the first value it recognizes. non-empty value must be entered in the component. The identifier must follow a subset of the syntax allowed in HTML: the first letter must be an ASCII letter (A-Z.

4.3.5. and this is a component whose value can be edited. the component is hidden in the client view. <amc:panelGroupLayout id="panelGroupLayout3" layout="vertical" rendered="#{!applicationScope. width: Set the width of the component as an int value.Creating and Using Input Components ■ value: Specify the value (as an Object) for the component. "What You May Need to Know About Geometry Management and the panelGroupLayout Component. see Section 6.addMode}" width="100%"> .com/jdev/amc"> <amc:form id="form0"> . and the visibility of the component can be toggled on and off on the client. The following geometry behavior of selectBooleanCheckbox is identical on BlackBerry and Windows Mobile platforms: ■ On vertical panels–selectBooleanCheckbox is always positioned below the previous component and horizontally aligned according to the alignment attribute value.5 How to Use the selectOneChoice Component The selectOneChoice component represents a combo box that is used to enable selection of a single value from a list.5. 6. ■ ■ visible: Set the visibility of the component. center–Centers. This component does not affect the life cycle on the server: the component may have its bindings executed. "What You May Need to Know About Differences Between selectItems and selectItem Components") contained by the selectOneChoice component. Example 6–6 Creating selectOneChoice <amc:view xmlns:amc="http://xmlns...5.. verticalAlign: Specify one of the following values: – – – top (default)–Aligns to the top. bottom–Aligns to the bottom.4.oracle. <amc:selectOneChoice label="Select"> 6-42 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . On horizontal panels–selectBooleanCheckbox is always positioned to the right of the previous component and is vertically aligned according to the verticalAlignment attribute value. or percentage in int% format.3. the component will be rendered in read-only mode.2 What You May Need to Know About Geometry Management and the selectBooleanCheckbox Component The display position of the selectBooleanCheckbox component depends on the panel on which it is layered.5.". Example 6–6 demonstrates how to declare the selectOneChoice element with the selectItems subelement in a MCX file.. The selection mechanism is provided by the selectItems component (see Section 6. If the EL binding for a value points to a bean property with a get method but no set method. ■ For more information. ■ 6. If set to false. in pixels.

5. If set to false. In the Component Palette.1 How to Add an selectOneChoice Component to a Page The selectOneChoice component enables selection of a single value from a list.OptionBean. #ff0000). Figure 6–20 shows the Select selectOneChoice with the selectItems subcomponent in design view. center–Centers the text. ■ ■ Beta Draft Creating the ADF Mobile Client User Interface 6-43 . disabled: Indicate whether the component is to be displayed as active (enabled) or inactive (disabled). align: Specify one of the following values: – – – left (default)–Aligns the text to the left. drag and drop a selectOneChoice onto the page. To add a selectOneChoice component: 1. right–Aligns the text to the right. 2. rgb(255. Valid values are true and false.optionList}"/> </amc:selectOneChoice> .0. then it is not possible to directly change the value of the component. ■ backgroundColor: Specify the color of a background to an RGB value (for example. Valid values are true and false.5.Creating and Using Input Components <amc:selectItems value="#{bindings. In the Property Inspector. focusable: Indicate whether or not the component can acquire focus... set the following: ■ ■ label: Specify the text as a String value to be used as the component’s label. 6.0)) or a hexadecimal number (for example. Figure 6–20 selectOneChoice in Design View The combo box part of the selectOneChoice component is positioned after the text label part.

required: Indicate whether or not a non-null. an exception will occur and the component will fail validation. Valid values are true and false. arial. Appearance indicates the read-only state of the component. you can set this attribute when the component is used in repeatable elements like in table. If a required attribute is also present. If set to true. or a dash(-). #ff0000). or percentage in int% format. in pixels. id: Specify the identifier for the component. otherwise. simple: Represents an EL-expressed boolean value (it is run-time evaluated) that controls whether or not the component provides label support: when set to true. ■ ■ fontSize: Set the font size as an int value. bold–Defines thick characters. monospace. ■ foregroundColor: Specify the color of a text to an RGB value (for example. generic-family–The name of a generic family. The identifier must follow a subset of the syntax allowed in HTML: the first letter must be an ASCII letter (A-Z. fantasy.0)) or a hexadecimal number (for example. such as times. If set to false. readOnly: Specify whether or not the component is displayed as field whose value can be edited. Note that setting the required attribute to true will also show the visual indication. rgb(255. the component will not display the label (such as label. The following are valid values: – – – normal (default)–Defines normal characters. showRequired: Define whether or not the associated component should display a visual indication of required user input. The display will use the first value it recognizes. The following are two types of fontFamily values: – – family-name–The name of a font family. a visual indication is displayed to notify the end user know a value must be entered. or as an output-style component. courier. showRequired) and may use simpler layout primitives. For example. both the required attribute and the showRequired attribute must be false for the visual indication not to be displayed. You may want to use the showRequired attribute when a field is required only if another field’s value is changed. height: Specify the height of the component as an int value. a-z) or an underscore(-). and always offer a generic-family name as the last alternative.0. fontWeight: Set how thick or thin characters in text should be displayed. where label is not required. validators will not be executed when the value is null or empty. Note: You have to separate each value with a comma. italic–Defines italic characters. such as serif.Creating and Using Input Components ■ fontFamily: Specify a prioritized list of font family names and/or generic family names for a component. Subsequent characters must be an ASCII letter or digit (A-Za-z0-9). non-empty value must be entered in the component. and so on. an underscore(-). initialValue: Specify the value (as an Object) to be displayed when the component appears. ■ ■ ■ ■ ■ ■ ■ 6-44 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . cursive.

■ 6. The following geometry behavior of the selectOneChoice is identical on BlackBerry and Windows Mobile platforms: ■ On vertical panels–selectOneChoice is always positioned below the previous component and horizontally aligned according to the alignment attribute value. width: Set the width of the component as an int value.2 What You May Need to Know About Geometry Management and the selectOneChoice Component The display position of the selectOneChoice component depends on the panel on which it is layered. see Section 6. 6. For more information.3 What You May Need to Know About Differences Between selectItems and selectItem Components The selectItems component is patterned after the JSF selectItems tag and provides a list of objects that can be selected in multiple-selection components.5. but it does not have any effect at design time.5. bottom–Aligns to the bottom. and the visibility of the component can be toggled on and off on the client. ■ For more information. see http://www. verticalAlign: Specify one of the following values: – – – top (default)–Aligns to the top. ■ ■ visible: Set the visibility of the component.". "Using Event Listeners.4. On horizontal panels–selectOneChoice is positioned according to the setting of the width attribute. in pixels. see http://download.3. "What You May Need to Know About Geometry Management and the panelGroupLayout Component. and this is a component whose value can be edited. or percentage in int% format. For more information.com/documentation/help/12-TagReference/cor e/f_selectItems.html 6. If set to false.com/docs/cd/E12839_ 01/apirefs.5.5. center–Centers.5. the component is hidden in the client view.jsftoolbox.Creating and Using Input Components ■ value: Specify the value (as an Object) for the component.oracle.6 Adding Event Listeners to Input Components You can add the valueChangeListener to input components.11. see Section 6." Beta Draft Creating the ADF Mobile Client User Interface 6-45 . This event listener is applicable to input components for ADF Mobile client run-time description on both BlackBerry smartphones and Windows Mobile devices. This component does not affect the life cycle on the server: the component may have its bindings executed. the component will be rendered in read-only mode.1111/e12419/tagdoc/af_selectItem. If the EL binding for a value points to a bean property with a get method but no set method. For more information.html The selectItem component is patterned after ADF’s selectItems tag and represents a single selectable item of selection components.

6.Creating and Using Output Components 6.com/jdev/amc"> <amc:form id="form0"> . "How to Convert Date and Time Values") converters to facilitate the conversion of numerical and date-and-time-related data for the outputText components.1. Use the convertNumber (see Section 6.oracle..2.. always consider its geometry behavior (see Section 6. <amc:outputText value="Edit Order" id="outputText2" align="center" fontSize="14" fontWeight="bold" justification="center"/> .6. "Adding Event Listeners to Output Components"). 6-46 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .6. Example 6–7 Creating outputText <amc:view xmlns:amc="http://xmlns.6.6 Creating and Using Output Components ADF Mobile client provides the outputText component for you to use as a label to display text.3.2.addMode}" width="100%"> .1..1. "What You May Need to Know About Geometry Management and the outputText Component"). You can add a set of event listeners to the outputText component (see Section 6. 6.1 How to Use the outputText Component Example 6–7 demonstrates how to declare the outputText element in a MCX file. <amc:panelGroupLayout id="panelGroupLayout1" layout="vertical" rendered="#{!applicationScope.1. "How to Convert Numerical Values") and convertDateTime (see Section 6. When creating an outputText component... Figure 6–21 shows the Edit Order outputText component in design view..6.

courier. align: Specify one of the following values: – – – left (default)–Aligns the text to the left. and so on. arial. In the Property Inspector. ■ ■ fontSize: Set the font size as an int value. such as serif.0)) or a hexadecimal number (for example. From the Component Palette. fantasy.0. The display will use the first value it recognizes. right–Aligns the text to the right.Creating and Using Output Components Figure 6–21 outputText in Design View To display an output text: 1. focusable: Indicate whether or not the component can acquire focus. monospace. fontFamily: Specify a prioritized list of font family names and/or generic family names for a component. drag an outputText component on the page. If set to false. and always offer a generic-family name as the last alternative. fontWeight: Set how thick or thin characters in text should be displayed. set the following: ■ ■ value: Specify the value (as an Object) to be displayed. Valid values are true and false. The following are two types of fontFamily values: – – family-name–The name of a font family. Beta Draft Creating the ADF Mobile Client User Interface 6-47 . such as times. rgb(255. generic-family–The name of a generic family. Valid values are true and false. then it is not possible to directly change the value of the component. ■ backgroundColor: Specify the color of a background to an RGB value (for example. disabled: Indicate whether the component is to be displayed as active (enabled) or inactive (disabled). cursive. 2. ■ ■ ■ Note: You have to separate each value with a comma. center–Centers the text. #ff0000).

0. Subsequent characters must be an ASCII letter or digit (A-Za-z0-9).Creating and Using Output Components The following are valid values: – – – ■ normal–Defines normal characters. or a dash(-). For example. height: Specify the height of the component as an int value. id: Specify the identifier for the component. in pixels. set to one of the following values: center.1 What You May Need to Know About Geometry Management and the outputText Component The display position of the outputText component depends on the panel on which it is layered. truncateAt: Specify an int value indicating the position of a character at which truncation should occur. setting truncateAt to any value between 1 and 15 will truncate to 1234567890123456.). ■ ■ 6. 6-48 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .6. and the visibility of the component can be toggled on and off on the client width: Set the width of the component as an int value. rgb(255. The identifier must follow a subset of the syntax allowed in HTML: the first letter must be an ASCII letter (A-Z. bottom–Aligns to the bottom. center. italic–Defines italic characters. If set to false. Note that the outputText component will not truncate strings shorter than fifteen characters.0)) or a hexadecimal number (for example. verticalAlign: Specify one of the following values: – – – top (default)–Aligns to the top. left. or percentage in int% format. in pixels. This is the default value.1. center–Centers. setting truncateAt to 0 or 16 will not truncate. This component does not affect the life cycle on the server: the component may have its bindings executed. the string will never truncate. set to one of the following values: top (default). The following geometry behavior of the outputText is identical on BlackBerry and Windows Mobile platforms: ■ On vertical panels–outputText always positions itself below the previous component.. justification: To align text horizontally. bottom. label: Specify the text as a String value to be used as the component’s label. visible: Set the visibility of a component. foregroundColor: Specify the color of a text to an RGB value (for example.. right. a-z) or an underscore(-). or percentage in int% format. and is horizontally aligned according to the alignment attribute value. bold–Defines thick characters. an underscore(-). Values from 1 to 15 will display the first twelve characters followed by an ellipsis (. ■ ■ ■ ■ ■ ■ ■ verticalJustification: To align text vertically. When set to 0 (the default). #ff0000). for the value of 1234567890123456. the component is hidden in the client view.

From the Component Palette. groupingUsed with the following valid values: – – true (default) false ■ ■ ■ ■ integerOnly with the following valid values: – – true false (default) ■ maxFractionDigits: Maximum number of digits that will be formatted in the fractional portion of the output. Example 6–8 Using convertNumber <amc:panelLabelAndMessage label="ID:" truncateAt="7"> <amc:outputText value="#{bindings.OrderId. then the currencyCode is ignored. maxIntegerDigits: Maximum number of digits that will be formatted in the integer portion of the output.1.format}"/> </amc:outputText> </amc:panelLabelAndMessage> To convert numerical values: 1.6. pattern type with the following valid values: ■ ■ ■ ■ ■ Beta Draft Creating the ADF Mobile Client User Interface 6-49 . Example 6–8 demonstrates how to use the convertNumber component in the MCX file. minIntegerDigits: Minimum number of digits that will be formatted in the integer portion of the output. 2. 6.inputValue}"> <amc:convertNumber groupingUsed="false" pattern="#{bindings. If the currencyCode is set.2 How to Convert Numerical Values The convertNumber is not an independent UI component: it is a converter that you use in conjunction with an outputText or inputText component or to display converted number or currency figures in a variety of formats following the specified pattern. It applies only when formatting currencies. Open the Property Inspector for the convertNumber component and define the following properties: currencyCode: The ISO 4217 currency code. making it a child element of those components.OrderId. currencySymbol: Currency symbol. and is vertically aligned according to the verticalAlignment attribute value.Creating and Using Output Components ■ On horizontal panels–outputText always positions itself to the right of the previous component. minFractionDigits: Minimum number of digits that will be formatted in the fractional portion of the output. drag a convertNumber component and insert it within an outputText or inputText component. It applies only when formatting currencies.

Open the Property Inspector for the convertDateTime component and define the following properties: dateStyle with the following valid values: – – – – – full long medium short default (default) ■ ■ timeStyle with the following valid values: – – – – – full long medium short default (default) ■ type with the following valid values: – – – both date (default) time ■ pattern Beta Draft 6-50 Mobile Client Developer's Guide for Oracle Application Development Framework . Example 6–9 Using convertDateTime <amc:panelLabelAndMessage label="ID:" truncateAt="7"> <amc:outputText value="#{bindings. time. drag a convertDateTime component and insert it within an outputText or inputDate component. making it a child element of those component.inputValue}"> <amc:convertDateTime type="date" dateStyle="short" pattern="#{bindings.OrderId. Example 6–9 demonstrates how to use the convertDateTime component in the MCX file.Creating and Using Output Components – – – number (default) currency percent 6. 2.1.6.3 How to Convert Date and Time Values The convertDateTime is not an independent UI component: it is a converter that you use in conjunction with an outputText or inputDate component to display converted date.format}"/> </amc:outputText> </amc:panelLabelAndMessage> To convert date and time values: 1.OrderId. From the Component Palette. or a combination of date and time in a variety of formats following the specified pattern.

For more information. This attribute supports EL. In the Component Palette.2 Adding Event Listeners to Output Components You can add the following event listeners to output components: ■ ■ ■ ■ ■ attributeChangeListener valueChangeListener bindingChangeListener keyEventListener initializationListener These event listeners are applicable to output components for ADF Mobile client run-time description on both BlackBerry smartphones and Windows Mobile devices. "Using Event Listeners. The value should be the path to the image file within the application JAR file relative to the resources path. drag and drop an image onto your page.11. verticalAlign: Specify one of the following values: Beta Draft Creating the ADF Mobile Client User Interface 6-51 ■ ■ ■ ■ ■ . id: Specify the identifier for the component. but they do not have any effect at design time. To display an image 1. in pixels.1 How to Display an Image You specify the image source in the MCX file (either manually. Subsequent characters must be an ASCII letter or digit (A-Za-z0-9).0)) or a hexadecimal number (for example.7. disabled: Indicate whether the component is to be displayed as active (enabled) or inactive (disabled). or using the Property Inspector). a-z) or an underscore(-). right–Aligns the text to the right. an underscore(-).6. align: Specify one of the following values: – – – left (default)–Aligns the text to the left. rgb(255. center–Centers the text. In the Property Inspector. Valid values are true and false. Valid values are true and false. as well as other applicable attributes.7 Displaying Images ADF Mobile client enables the display of images on BlackBerry smartphones and Windows Mobile devices using the image component represented by a bitmap. #ff0000). see Section 6. focusable: Indicate whether or not the component should be able to acquire focus through the use of the Tab key. ■ ■ backgroundColor: Specify the color of a background to an RGB value (for example. height: Specify the height of the component as an int value. 6.Displaying Images 6. or a dash(-). 2. The identifier must follow a subset of the syntax allowed in HTML: the first letter must be an ASCII letter (A-Z. or percentage in int% format.0. set the following: ■ source: Enter the URI to the image file." 6.

Creating and Using Tables – – – ■ top (default)–Aligns to the top. visible: Set the visibility of a component.7.7. ■ 6. the image component uses only enough area to fit its contained bitmap.2 Supported Image File Formats The following are supported formats for BlackBerry smartphones: ■ ■ ■ ■ ■ ■ GIF JPEG PNG BMP TIFF WBMP The following are supported formats for Windows Mobile devices: ■ ■ ■ GIF JPG PNG 6. the component is hidden in the client view. the image component will take on the lesser of the specified width and available width. the image component will not necessarily use the full width of the parent container. ■ 6. If the height attribute is specified.8 Creating and Using Tables The table component displays data as rows and columns. This component does not affect the life cycle on the server: the component may have its bindings executed.3 What You May Need to Know About Geometry Management and the image Component By default. A table can include the following subcomponents: 6-52 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . center–Centers. If alignment attribute is specified. On horizontal panels–image is always positioned to the right of the previous component and is vertically aligned according to the verticalAlignment attribute value. width: Set the width of the component as an int value. The following geometry behavior of the image is identical on BlackBerry and Windows Mobile platforms: ■ On vertical panels–image is always positioned below the previous component and horizontally aligned according to the alignment attribute value. If the width attribute is specified. the image component will take on the lesser of the specified height and available height. The display position of the image component depends on the panel on which it is layered. and the visibility of the component can be toggled on and off on the client. If set to false. or percentage in int% format. in pixels. bottom–Aligns to the bottom.

ProductName. Example 6–10 Creating Noneditable table with Bindings .. "How to Use the selectBooleanCheckbox Component") selectOneChoice (see Section 6.5.hints.. "How to Use the selectOneChoice Component") outputText (see Section 6. and then add other components to every column component.5.Creating and Using Tables ■ ■ ■ inputText (see Section 6.inputValue}"> <amc:convertNumber groupingUsed="false" pattern="#{bindings.inputValue}"/> </amc:column> <amc:column sortProperty="UnitPrice" sortable="true" headerText="Price"> <amc:outputText value="#{row. Example 6–10 demonstrates the declaration of a table element with three column subelements.UnitPrice.collectionModel}" var="row"> <amc:column sortProperty="ProductName" sortable="true" headerText="Product Name"> <amc:outputText value="#{row.format}"/> </amc:outputText> </amc:column> </amc:table> .OrderItems1View2.4.2. "How to Use the inputNumberSpinbox Component") selectBooleanCheckbox (see Section 6."> <amc:outputText value="#{row.hints.1.6.format}"/> </amc:outputText> </amc:column> <amc:column sortProperty="Quantity" sortable="true" headerText="Quan. when creating a tables.7.5. "How to Use the inputText Component") inputDate (see Section 6.OrderItems1View2. "How to Use the outputText Component") image (see Section 6. you add column components to it using the structure or source view. "How to Use the inputDate Component") inputNumberSpinbox (see Section 6.5. "How to Display an Image") ■ ■ ■ ■ Generally.Quantity.1.bindings.5..bindings. each containing outputText and convertNumber subelements.UnitPrice.5.inputValue}"> <amc:convertNumber groupingUsed="false" pattern="#{bindings.OrderItems1View2. Beta Draft Creating the ADF Mobile Client User Interface 6-53 . Figure 6–22 shows the table component in design view.bindings.3..Quantity.1. <amc:table id="tblOrders" value="#{bindings.

Attributes that are dates use the inputDate component. ■ ■ 6-54 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . JDeveloper allows you to do this declaratively by dragging and dropping a view object from the Data Controls panel. and what UI components to use to display the data. 3. choose the appropriate table. From the context menu. thus enabling the table to be editable. select a view object. By default. you can choose from the following types of tables: ■ ADF Table: Allows you to select the specific attributes you wish your editable table columns to display. To create a databound table: 1. you bind the table component to a collection. Additionally. When you drag the collection. From the Data Controls panel. Drag the view object onto a MCX page or into the Structure window. Tip: You can also create a table by dragging a table component from the Component Palette and completing the Create ADF Faces Table wizard. ADF Read-Only Table: Same as the ADF Table. 2. ADF Read-Only Dynamic Table: Allows you to create a table when the attributes returned and displayed are determined dynamically at run time. This component is helpful when the attributes for the corresponding object are not known until run time. then the component set by the hint is used instead. if a control type control hint has been created for an attribute. or if the attribute has been configured to be a list. each attribute is displayed in an outputText component. or you do not wish to hardcode the column names in the JSF page. however.Creating and Using Tables Figure 6–22 The table component in Design View The table component is equipped with the following additional features: ■ ■ Context-sensitive menu commands Dynamic sorting and filtering To create a table using a data control. ADF inputText components are used for most attributes.

Note: If the collection contains a structured attribute (an attribute that is neither a Java primitive type nor a collection). you should use the order buttons. and clicking the Group button. and have the change appear the same on all pages that display the label. If you do change the attribute binding for a column. Beta Draft Creating the ADF Mobile Client User Interface 6-55 ■ . on the type of the corresponding attribute (for example. the label for the column also changes. Allow the ADF Model layer to handle column sorting by selecting the Sorting checkbox. for example. Selecting this option means that the iterator binding will access the iterator to determine the selected row. and then manually add the other tag to the page. This binding allows you to change the value of a label text once on the view object. the attributes of the structured attributes will also appear in the dialog. If you simply want to rearrange the columns. you can enter text or an EL expression to bind the label value to something else. Tip: If you want to use a component that is not listed in the context menu. you can do the following: ■ Allow the ADF Model layer to handle selection by selecting the Row Selection checkbox. a key in a resource file. That criteria is then used to build a Query-by-Example (QBE) search on the collection. the label is bound to the labels property for any control hint defined for the attribute on the table binding. Using this dialog. You can change the column to be bound to a different attribute. Instead of using this default. Select this option unless you do not want to allow column sorting. Selecting this option means that the iterator binding will access the iterator.Creating and Using Tables 4. and on whether or not default components were set as control hints on the corresponding view object. Selecting this option allows the user to enter criteria in text fields above each column. inputDate components are used for attributes that are dates). you may want to choose a UI component that will not allow a user to change the value. The ensuing Edit Table Columns dialog shows each attribute in the collection. use this dialog to select the outputText component. which will perform an order-by query to determine the order. By default. Tip: If one of the attributes for your table is also a primary key. Select this option unless you do not want the table to allow selection. Change the display label for a column. by selecting the desired attributes (shown as rows in the dialog). You can change to another component using the context menu. Group columns for selected attributes together under a parent column. ■ ■ ■ ■ ■ Change the value binding for a column. Allow the columns in the table to be filtered using entered criteria by selecting the Filtering checkbox. The UI components are set based on the table you selected when you dropped the collection onto the page. and allows you to determine how these attributes will behave and appear as columns in your table. Change the UI component used to display an attribute. so that the table will display only the results returned by the query.

For more information. "How to Use the commandLink Component") ■ You can add a number of event listeners to ADF Mobile client navigation components (see Section 6. Delete a column using the Delete icon. For more information about display properties. see Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework. the table will not include borders.1. select the Box tab. you need to provide a way to submit and persist those changes. 6.2. you can use the Property Inspector to set other display properties of the table.5. For example.6. To have the table set to 100% of the container width. 6. subsequent new columns are populated with values from the next attribute in the sequence. and set the borderWidth attribute to 0 pixels.1. When you first click the icon. and so on. 6-56 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Once the table is dropped on the page. you may want to set the width of the table to a certain percentage or size. When creating the components.9. Add a column using the Add icon.Using Buttons and Links for Navigation ■ ■ Change the order of the columns using the order buttons. Briefly. For procedures on creating tables that allow users to input data.9.9. If you want the end user to be able to edit information in the table and save any changes.8. There’s no limit to the number of columns you can add. "How to Use the commandButton Component") commandLink (see Section 6.6. Tip: When you set the table width to 100%.1 What Happens When You Create a Table Dropping a table from the Data Controls panel has the same effect as dropping a text field or form. ■ 5. 6. 6. JDeveloper adds a new column line at the bottom of the dialog and populates it with the values from the first attribute in the bound collection.1.9 Using Buttons and Links for Navigation You enable navigation through the mobile client views using the following components: ■ commandButton (see Section 6. JDeveloper does the following: ■ ■ Creates the bindings for the table and adds the bindings to the page definition file Adds the necessary code for the UI components to the MCX page.1 How to Use the commandButton Component You use the commandButton component to trigger actions and enable navigation through the view. "What You May Need to Know About Geometry Management and the outputText Component"). see the "Using Tables and Trees" chapter of the Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework. so the actual width of the table will be larger. "Adding Event Listeners to Input Components"). expand the Style section of the Property Inspector. always consider their geometry behavior (see Section 6. see Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework.

.. and table components.oracle. This attribute supports EL. or the static outcome of an action.SearchExecuted}"/> </amc:commandButton> . panelFormLayout. as well as inside any container component. Figure 6–23 shows the Search commandButton in design view.. see "Defining Page Flows" in Oracle Fusion ■ Beta Draft Creating the ADF Mobile Client User Interface 6-57 . drag and drop a commandButton onto the page.9. <amc:panelGroupLayout id="panelGroupLayout3" layout="horizontal"> . Example 6–11 Creating commandButton <amc:view xmlns:amc="http://xmlns.Using Buttons and Links for Navigation Example 6–11 demonstrates how to declare the commandButton element in a MCX file. <amc:commandButton text="Search" id="commandButton2 actionListener="#{bindings. In the Component Palette... panelLabelAndMessage. Figure 6–23 commandButton and commandLink in Design View 6.1.execute}"> <amc:setActionListener from="#{true}" to="#{applicationScope.ExecuteWithParams.com/jdev/amc"> <amc:form id="form0"> . In the Property Inspector. For more information about configuring the navigation between pages. action: A reference to an action method sent by the command component. 2. set the following: ■ text: Provide the text (as a String) for this component.1 How to Add a commandButton Component to a Page You can use the commandButton component within panelGroupLayout.. To add commandButton component: 1.

focusable: Indicate whether or not the component can acquire focus.0)) or a hexadecimal number (for example. right–Aligns the text to the right. it is not possible to directly interact with the component. For more information about using managed bean methods to open dialogs. bold–Defines thick characters. see "Using Popup Dialogs. Valid values are true and false. Tip: The actionListener attribute can also be used for navigation when bound to a handler that returns an outcome. Usually. rgb(255. such as times.0)) or a hexadecimal number (for example. Menus. Valid values are true and false. #ff0000). and tells the JSF NavigationHandler what page to use for the Render Response phase.0. ■ backgroundColor: Specify the color of a background to an RGB value (for example. ■ ■ actionListener: A method reference to an action listener. fontFamily: Specify a prioritized list of font family names and/or generic family names for a component. The following are valid values: – – – normal–Defines normal characters. ■ ■ fontSize: Set the font size as an int value. disabled: Indicate whether the component is to be displayed as active (enabled) or inactive (disabled). If set to false. The display will use the first value it recognizes. The following are two types of fontFamily values: – – family-name–The name of a font family.0. such as serif. and Windows in Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework For more information about outcome strings and navigation in JSF applications. cursive. monospace. generic-family–The name of a generic family. The default JSF ActionListener mechanism uses the outcome string to select the appropriate JSF navigation rule. courier. fontWeight: Set how thick or thin characters in text should be displayed. ■ foregroundColor: Specify the color of a text to an RGB value (for example. and always offer a generic-family name as the last alternative. see the Java EE 5 tutorial on Sun’s web site (http://java.sun. align: Specify one of the following values: – – – left (default)–Aligns the text to the left. rgb(255.com). center–Centers the text. #ff0000). Beta Draft 6-58 Mobile Client Developer's Guide for Oracle Application Development Framework .Using Buttons and Links for Navigation Middleware Web User Interface Developer's Guide for Oracle Application Development Framework. arial. and so on. you should use this attribute only to handle user interface logic and not navigation. italic–Defines italic characters. This is the default value. fantasy. ■ ■ ■ Note: You have to separate each value with a comma.

or percentage in int% format. If set to false.Using Buttons and Links for Navigation ■ height: Specify the height of the component as an int value.9. action: A reference to an action method sent by the command component. <amc:panelGroupLayout id="panelGroupLayout7"> <amc:commandLink id="commandButton1" text="Add Order" actionListener="#{bindings. The identifier must follow a subset of the syntax allowed in HTML: the first letter must be an ASCII letter (A-Z.. and table components. This component does not affect the life cycle on the server: the component may have its bindings executed. drag a commandLink component on the page. In the Property Inspector. justification: Set to one of the following values: center...1 How to Add a commandLink Component to a Page You can use the commandLink component within panelGroupLayout. Figure 6–23 shows the Add Order commandLink component in design view. center. left. set the following: ■ ■ text: Provide the text (as a String) for this component. center–Centers. in pixels. or percentage in int% format. ■ ■ 6. width: Set the width of the component as an int value. in pixels. and the visibility of the component can be toggled on and off on the client. ■ ■ ■ ■ verticalJustification: Set to one of the following values to align the text vertically: top (default).CreateInsert. panelLabelAndMessage.9. the component is hidden in the client view. id: Specify the identifier for the component. panelFormLayout.2. bottom. To add commandLink component: 1. a-z) or an underscore(-). From the Component Palette. 2.execute}" action="create"/> . 6. or the static outcome of an action.2 How to Use the commandLink Component You use the commandLink component to enable navigation. right. Example 6–12 Creating commandLink <amc:view xmlns:amc="http://xmlns. verticalAlign: Specify one of the following values: – – – top (default)–Aligns to the top. or a dash(-).. as well as inside any container component. Example 6–12 demonstrates how to declare the commandLink element in a MCX file.com/jdev/amc"> <amc:form id="form0"> . For more information about configuring the Beta Draft Creating the ADF Mobile Client User Interface 6-59 . Subsequent characters must be an ASCII letter or digit (A-Za-z0-9). an underscore(-).oracle. bottom–Aligns to the bottom. visible: Set the visibility of a component.

such as serif.0. monospace. courier. Tip: The actionListener attribute can also be used for navigation when bound to a handler that returns an outcome. ■ backgroundColor: Specify the color of a background to an RGB value (for example. The following are valid values: – – – normal–Defines normal characters. #ff0000). fantasy. disabled: Indicate whether the component is to be displayed as active (enabled) or inactive (disabled).sun. Menus. arial. The default JSF ActionListener mechanism uses the outcome string to select the appropriate JSF navigation rule. rgb(255. The display will use the first value it recognizes. generic-family–The name of a generic family. If set to false. center–Centers the text. bold–Defines thick characters. For more information about using managed bean methods to open dialogs. 6-60 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . ■ ■ ■ Note: You have to separate each value with a comma. align: Specify one of the following values: – – – left (default)–Aligns the text to the left. ■ ■ fontSize: Set the font size as an int value.Using Buttons and Links for Navigation navigation between pages.com). and always offer a generic-family name as the last alternative. fontFamily: Specify a prioritized list of font family names and/or generic family names for a component. Usually. The following are two types of fontFamily values: – – family-name–The name of a font family. right–Aligns the text to the right. focusable: Indicate whether or not the component can acquire focus. it is not possible to directly interact with the component. Valid values are true and false. cursive. such as times. fontWeight: Set how thick or thin characters in text should be displayed. and Windows in Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework For more information about outcome strings and navigation in JSF applications. italic–Defines italic characters. see "Using Popup Dialogs. you should use this attribute only to handle user interface logic and not navigation. see the Java EE 5 tutorial on Sun’s web site (http://java. and so on. This is the default value.0)) or a hexadecimal number (for example. and tells the JSF NavigationHandler what page to use for the Render Response phase. Valid values are true and false. ■ ■ actionListener: A method reference to an action listener. see "Defining Page Flows" in Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework.

4 What You May Need to Know About Geometry Management and the commandButton Component The display position of the commandButton component depends on the panel on which it is layered. in pixels. rgb(255.3 What You May Need to Know About Geometry Management and the commandLink Component The display position of the commandLink component depends on the panel on which it is layered.9. If set to false. bottom–Aligns to the bottom. an underscore(-). or a dash(-). id: Specify the identifier for the component. center–Centers. The identifier must follow a subset of the syntax allowed in HTML: the first letter must be an ASCII letter (A-Z. ■ Beta Draft Creating the ADF Mobile Client User Interface 6-61 . or percentage in int% format. or percentage in int% format. verticalAlign: Specify one of the following values: – – – top (default)–Aligns to the top. height: Specify the height of the component as an int value.0)) or a hexadecimal number (for example. it does not wrap to the next lines. If the contents of the component do not fit in a line. If the contents of the component do not fit in a line. ■ ■ ■ ■ visible: Set the visibility of a component. This component does not affect the life cycle on the server: the component may have its bindings executed. The following geometry behavior of the commandButton is identical on BlackBerry and Windows Mobile platforms: ■ On vertical panels–commandButton is always positioned below the previous component and horizontally aligned according to the alignment attribute value.9. ■ 6. #ff0000).0. the component is hidden in the client view. width: Set the width of the component as an int value. in pixels. it does not wrap to the next lines.Using Buttons and Links for Navigation ■ foregroundColor: Specify the color of a text to an RGB value (for example. and the visibility of the component can be toggled on and off on the client. a-z) or an underscore(-). The following geometry behavior of the commandLink is identical on BlackBerry and Windows Mobile platforms: ■ On vertical panels–commandLink is always positioned below the previous component and horizontally aligned according to the alignment attribute value. Subsequent characters must be an ASCII letter or digit (A-Za-z0-9). On horizontal panels–commandLink is always positioned to the right of the previous component and is vertically aligned according to the verticalAlign attribute value. ■ 6. On horizontal panels–commandButton is always positioned to the right of the previous component and is vertically aligned according to the verticalAlign attribute value.

If you open a new split screen. Corresponds to either Windows Mobile Standard menu. the menu type selector will switch to the default value of No Menu. 6. menus that you design for one platform cannot transform into menus for another platform. If a menu or any of its menu items is selected in the structure view or source editor.10. To create a menu.1. ■ ■ 6-62 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Main–only full menus are displayed when a UI component or panel is selected. menu item ordering and menu item presence based on the single selection of components or panels. if any of those are selected. Also note the following: ■ If you change the platform at design time. and Windows Mobile-style menus are only displayed on Windows Mobile devices.1 Menu Types The mobile client’s Menu Designer supports the following styles of menus: ■ ■ Standard menu for Windows Mobile devices Full menu for BlackBerry smartphones You choose whether of not to display a menu by making selections using a combo box located on the UI designer tool bar. this menu will be displayed in the design view regardless of the menu type selector’s value on an applicable platform. 6. or BlackBerry Full menu. the menu is not displayed. the menu type selector will retain the displayed value. Note: Even though Menu Designer represents the basic structure of menus. BlackBerry-style menus are shown only on BlackBerry smartphones.1 What You May Need to Know About ADF Mobile Client Menus ADF Mobile client’s Menu Designer lets you define different types of menus for your application. The visual editor displays a menu or its children. As menus are platform-specific. If multiple components are selected. This is the default option. you make a selection in the Structure Window or source editor for your MCX file.10 Creating and Using Menus The ADF Mobile client Menu Designer enables you to create platform-specific menus for both BlackBerry smartphones and Windows Mobile devices.Creating and Using Menus 6. then the menu associated with that component or panel is displayed. The following are valid values for the menu type selector: ■ No Menu–the menu is not displayed when a UI component or panel is selected.10. Note: ■ If the menu itself or any of its children is selected. such as cascading menus. If a component or a panel is selected. the menu would still be displayed on the appropriate platform regardless of the selection in the menu type selector.

For example. when specifying the Main menu type.1 Main Example 6–13 shows a Main menu defined in a MCX file. This menu definition describes the left Standard menu button for the form. you should limit it to only one menu definition per platform. The rest of the menu items in Example 6–13 are applied the default platform setting of all.1. the id attribute values are implicitly matching.1. As Main menus are static to a page. you cannot associate them individually with a UI component. Each type behaves differently depending on the platform on which your application is viewed. Note that the platform attribute is specified for one menu item only ("Exit"). 6. Behavior on Windows Mobile Devices This menu definition describes the right Standard menu button for the form.10. If individual menu items should change on the Main menu. This menu definition will be amalgamated into the Full menu for the form. Example 6–13 Defining Main Menu <amc:menu id="main" type="main"> <amc:menuGroup index="200"> <amc:commandMenuItem label="View Orders" index="10" weight="0"/> </amc:menuGroup> <amc:menuGroup index="250"> <amc:commandMenuItem label="Edit Order" index="20" weight="0"/> <amc:commandMenuItem label="Call Customer" index="30" weight="0"/> <amc:commandMenuItem label="Exit" index="70" weight="0" platform="wm" action="appExit"/> </amc:menuGroup> </amc:menu> As a general rule. but not on BlackBerry smartphones.Creating and Using Menus Table 6–7 lists types of menus that you can define. Table 6–7 Type Main Menu Types Behavior on BlackBerry Smartphones This menu definition describes the Full menu for the form. which will be displayed on Windows Mobile devices. consider Beta Draft Creating the ADF Mobile Client User Interface 6-63 . menus of like type and id values that meet the platform type criteria are combined together (amalgamated) and treated as a single menu. the contents of the following menu definitions in a MCX file would be combined on a Windows Mobile device: <menu type="main" platform="all"> and <menu type="main" platform="wm"> Note that for Main and Alt menus. Alt When displayed.

1. limit it to only one menu definition per platform type. as Example 6–15 shows. Example 6–15 Creating Menus Using Various Menu Components <amc:view xmlns:amc="http://xmlns.1 menu ADF Mobile client menu defines new menu construct. 6. you define the top-level menu (element in a MCX file) directly within the view. although you typically use it to define a group of menu items.com/jdev/amc"> <amc:form id="form0"> <amc:panelGroupLayout backgroundColor="red" width="100"/> </form> . 6-64 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Example 6–15 shows how to define menu components in a MCX file. which may be represented by a group of menus and menu items. Example 6–14 Defining Alt Menu <amc:menu id="altMain" type="alt"> <amc:menuGroup index="200"> <amc:commandMenuItem label="View Items" index="0" weight="0"/> </amc:menuGroup> </amc:menu> When specifying the Alt menu type.1. Table 6–8 lists and describes attributes of the menu.10. <amc:menu id="altMain" type="alt"> <amc:menuGroup index="200"> <amc:commandMenuItem label="View Items" index="0" weight="0"/> </amc:menuGroup> </amc:menu> </view> 6.2 Menu Components A menu component represents a virtual XSD group definition referring to either a menu element or a commandMenuItem element in a MCX file (see Example 6–14 and Example 6–15).1.10..1. The label attribute lets you assign a recognizable name for those platforms that support submenus.2.oracle.2 Alt Example 6–14 shows an Alt menu defined in a MCX file. Note: Main menus are always of fixed width. 6.Creating and Using Menus using the EL expression of the commandMenuItem’s visible attribute (see Table 6–9).10.. To create a menu. allowing you to create a menu that contains both menu items and submenus.

type Type of menu.2 commandMenuItem ADF Mobile client’s commandMenuItem is the base element of menus. Note. menuGroup and commandMenuItem components that reside inside this menu can have their platform attibutes selectively set to wm or bb to enable their display in either platform. the label might not be displayed. However.10. The following are valid values: ■ ■ main No main alt Yes rendered Defines whether or not the group should be rendered on display.2. Attribute Group core Default "Menu" Defined in EL Expression Yes Beta Draft Creating the ADF Mobile Client User Interface 6-65 . wm.Creating and Using Menus Table 6–8 Attribute label Attributes of the menu Description A text value that provides a name for this menu. The following are valid values: ■ ■ true false 6. a select group of attributes is platform-specific and requires XSD attribute groups definition. Most of its attributes are general-purpose. for example. with appropriate behavior occurring on all platforms.1. as these settings are mutually exclusive and the menu will not be displayed. The following are valid values: ■ ■ ■ No all Yes all wm bb If the platform is set to all. The client platform on which this menu will appear. that you cannot set the parent menu’s platform to. Note that for some menu types. however. It defines a single actionable item on a menu that the end user can execute. Default "Menu1" Defined in EL Expression Yes id platform Unique identifier. and the child menu’s platform to bb. Table 6–9 Attribute label Attributes of commandMenuItem Description The text to be displayed for this commandMenuItem.

core actionList ener Yes disabled Controls whether or not this Windows commandMenuItem appears Mobile enabled or disabled. This attribute lets you execute some method either in a managed bean or bound to the page in a pageDef by using an EL expression. core 1 core false Yes id index 2 No 0 Yes platform The client platform on which this commandMenuItem will appear. If you do not specify this attribute. The following are valid values: ■ ■ true false 6-66 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .) Attributes of commandMenuItem Attribute action Description Attribute Group Default Defined in EL Expression No core A task flow navigation action. Defines the task flow outcome that results after selecting this component at run time. The following are valid values: ■ ■ ■ core all Yes all wm bb core true Yes rendered Defines whether or not this commandMenuItem should be rendered on the display.Creating and Using Menus Table 6–9 (Cont. Unique identifier. An Expression Language expression referring to a custom method. Defines the order of items within a group if multiple subMenus and/or commandMenuItems appear. the subMenus and/or commandMenuItems will be displayed in the order they appear in the MCX file.

You define ADF Mobile client’s menuGroup (element in a MCX file) within the menu element.1. you use the index attribute to group and order menus on Windows Mobile platform as well. then a separator will be displayed. If you do not set this attribute.10.) Attributes of commandMenuItem Attribute selected Description Defines whether or not this commandMenuItem should appear selected when the menu is displayed. Although having originated with the BlackBerry platform. If you place multiple menuGroup elements under a menu. 0 Default Defined in EL Expression No Yes Beta Draft Creating the ADF Mobile Client User Interface 6-67 .3 menuGroup You use the menuGroup to group visual elements in a menu. the menuGroup elements will be displayed in the order in which they appear in the MCX file. Specifies the order if multiple menuGroup elements exist under a menu element. Table 6–10 Attribute id index Attributes of the menuGroup Description Unique identifier for this menuGroup. as Example 6–15 shows.Creating and Using Menus Table 6–9 (Cont. 6. The following are valid values: ■ ■ Attribute Group Windows Mobile Default false Defined in EL Expression Yes true false BlackBerry 1000 Yes weight Allows an integer value to be added to each commandMenuItem to define which commandMenuItem will be the default when a menu is displayed.2. Table 6–10 lists and describes the menuGroup attributes. 1 2 All attributes that belong to the core group are supported on each platform. Each menu must have at least one child menuGroup element.

3. Table 6–11 lists and describes the menuControl attributes. 6-68 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . You use it to create associations between a menu displayed on the menu bar and a UI component. Depending on the target platform.2. you could specify a telephone number input component with a menu item added to "Call". components that reside inside this menuGroup can have their platform attibutes selectively set to wm or bb to enable their display in either platform.1. WARNING: If you define a menu without specifying a menuControl element. "What You May Need to Know About Differences Between selectItems and selectItem Components"). wm. Each such menu must be attached to at least one component in order to be displayed.10. You can optionally define special menus that appear only for certain components by defining menuControl elements as children of those components.Creating and Using Menus Table 6–10 (Cont. for example. this menu will never be displayed. as these settings are mutually exclusive and the menu will not be displayed. a menu is attached by default to the top-level form element (see Example 6–16) so that the menu is always present. The menuControl can contain selectItems components (see Section 6. The following are valid values: ■ ■ ■ Default all Defined in EL Expression Yes all wm bb If the platform is set to all.5. rendered Defines whether or not this menuGroup should be rendered on the display. and all components are implicitly associated with them. For example. that you cannot set the parent menuGroup’s platform to. ADF Mobile client’s menuControl may only reference definitions of menus displayed on the menu bar when their associated UI component has focus.4 menuControl ADF Mobile client’s menuControl defines when menus are displayed. but this menu should only appear when the focus in on the telephone number field. however.) Attributes of the menuGroup Attribute platform Description The client platform on which this menuGroup will be shown.5. Note. The following are valid values: ■ ■ true Yes true false 6. Main and Alt type menus are statically defined for the form. and the child commandMenuItem’s platform to bb. In a MCX file. you define menuControl elements as children of UI components.

10. In a MCX file. Default Defined in EL Expression No Example 6–16 demonstrates how to define menuControl in a MCX file.5 subMenu You use ADF Mobile client’s subMenu to create cascading menus for Windows Mobile devices.oracle." 6. </amc:form> </amc:view> For more information. as Example 6–17 shows.3. see Section 6. you define subMenu elements as children of the menu. "Associating Menus with UI Components.com/jdev/amc"> .2.oracle.com/jdev/amc"> <amc:form id="form0"> <amc:menuControl refId="altMain"/> <amc:panelGroupLayout id="home" layout="vertical"> <amc:panelGroupLayout layout="vertical"> <amc:inputText id="txtUserName" label="User Name: " value="#{securityContext. Note: Submenus always expand to the left.1..10..userName}"/> <amc:inputText id="txtPassword" label="Password: " value="#{securityContext. Example 6–17 Defining the subMenu <amc:view xmlns:amc="http://xmlns.Creating and Using Menus Table 6–11 Attribute refId Attributes of menuControl Description The unique identifier of the menu that should appear when the parent component has focus..password}" secret="true"/> </amc:panelGroupLayout> .. <amc:menu id="main" type="main"> <amc:menuGroup index="200"> <amc:commandMenuItem label="View Orders" index="10" weight="0"/> </amc:menuGroup> <amc:menuGroup index="250"> <amc:subMenu label="View Customers" rendered="true"> <amc:menuGroup index="200"> <amc:commandMenuItem label="Ascending" index="15" weight="0"/> <amc:commandMenuItem label="Descending" index="16" Beta Draft Creating the ADF Mobile Client User Interface 6-69 .1. Example 6–16 Defining the menuControl <amc:view xmlns:amc="http://xmlns.

6-70 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .Creating and Using Menus weight="0"/> </amc:menuGroup> </amc:subMenu> <amc:commandMenuItem label="Edit Order" index="20" weight="0"/> <amc:commandMenuItem label="Call Customer" index="30" weight="0"/> <amc:commandMenuItem label="Call Customer Mobile" index="40" weight="0"/> <amc:commandMenuItem label="Email Customer" index="50" weight="0"/> <amc:commandMenuItem label="Call Shipment Phone" index="60" weight="0"/> <amc:commandMenuItem label="Exit" index="70" weight="0" platform="wm" action="appExit"/> </amc:menuGroup> </amc:menu> </amc:view> Figure 6–24 shows the subMenu in design view. Figure 6–24 Defining the subMenu Table 6–12 lists and describes the subMenu attributes.

the mobile client Menu Designer provides an association tool in the form of a popup dialog that you can Beta Draft Creating the ADF Mobile Client User Interface 6-71 . platform The platform on which this subMenu is available. The following are valid values: ■ ■ ■ all Yes all wm bb Note: because subMenu is not supported on BlackBerry smartphones. and then setting the refId attribute of the menuControl (see Table 6–11) to the id attribute of the subject menu item. The following are valid values: ■ ■ Yes true false No 0 Yes id index The unique identifier. The following are valid values: ■ ■ true Yes true false 6. <amc:outputText id="AccountName" …> <amc:menuControl refId="accountContextMenu"> </amc:outputText> . If you do not set this attribute.3 Associating Menus with UI Components You can create an association between a UI component and one or more Alt or Main menus by inserting a menuControl child element under the component element in your MCX file. You will see an arrow at both design time and run time indicating that this is a submenu. For menus that are ment to be displayed on the top-level menu bar..10. even if you specify bb this setting will be ignored. rendered Defines whether or not this subMenu is rendered on the display. the subMenus will be displayed in the order in which they appear in the MCX file...Creating and Using Menus Table 6–12 Attribute label Attributes of the subMenu Description A text that appears on the menu for this subMenu.. as the following example shows: .1. Specifies the order of items within a group if multiple subMenus exist under a menu element. Default "Menu" Defined in EL Expression Yes disabled Controls whether or not this subMenu false appears enabled or disabled.

. the menu will be displayed on the menu bar when its associated UI component has focus. This dialog displays a tree view of the available menus defined on the page and allows a multiple selection of them. That is..com/jdev/amc"> .Creating and Using Menus reach through a context menu selection on the UI component in the structure pane. and the menus readjust their position according to the selected form factor. The mobile client’s Menu Designer positions full menus in the center of the design view. Example 6–18 BlackBerry Menu in Source View <amc:view xmlns:amc="http://xmlns. 6.10. Upon completion of the dialog. Example 6–18 shows the source view of the menu defined in a MCX file.oracle.2 How to Create Menus for BlackBerry Smartphones You can create full menus for BlackBerry smartphones. as Figure 6–25 shows. The full menu pops up on the side of the screen upon the press of the BlackBerry Menu button. Figure 6–25 Full Menu Displayed on a BlackBerry Smartphone Note that BlackBerry smartphones do not natively support submenus. when an association is created between a menu and a UI component. <amc:menu id="altMain" type="alt"> <amc:menuGroup index="200"> <amc:commandMenuItem label="View Items" index="0" weight="0"/> </amc:menuGroup> </amc:menu> <amc:menu id="main" type="main"> <amc:menuGroup index="200"> <amc:commandMenuItem label="View Orders" index="10" weight="0"/> </amc:menuGroup> <amc:menuGroup index="250"> <amc:commandMenuItem label="Edit Order" index="20" weight="0"/> <amc:commandMenuItem label="Call Customer" index="30" weight="0"/> 6-72 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . you create a menuControl element under the original component element for each selected menu in the dialog.

Creating and Using Menus <amc:commandMenuItem label="Call Customer Mobile" index="40" weight="0"/> <amc:commandMenuItem label="Email Customer" index="50" weight="0"/> <amc:commandMenuItem label="Call Shipment Phone" index="60" weight="0"/> <amc:commandMenuItem label="Exit" index="70" weight="0" platform="wm" action="appExit"/> </amc:menuGroup> </amc:menu> </amc:view> Figure 6–26 shows the menu from Example 6–18 in structure and design view.2. ■ You can specify only one BlackBerry Main menu per MCX file. consider the following. ■ ■ Beta Draft Creating the ADF Mobile Client User Interface 6-73 . If you declare more than one. You cannot create submenus for BlackBerry Main menus. automatically add their own menu items to the BlackBerry Main menu. A number of UI components listed in the following table.1 Defining a BlackBerry Full Menu When creating full menus for BlackBerry smartphones. when selected. the Menu Designer will only use the first one while ignoring the rest. Figure 6–26 BlackBerry Menu in Structure and Design View 6.10.

The associated popup menu displayed directly above the menu bar. assuming that the menu type selector is set to Main. which would create the cascading effect. every menu item is shown. ■ If you select a BlackBerry Main menu in the structure pane or source editor. The appropriate half of the menu bar displayed right under the visual editor. The valid values for the index are between 0 and 65535. ■ ■ 6.Creating and Using Menus UI Component inputText Menu Item Clear Field Select Cancel Selection Copy Cut Paste index1 60 90 50 40 70 80 30270 64 64 40 30270 inputDate Change Option Copy outputText selectOneChoice selectBooleanCheckBox 1 Copy Change Option Change Option The index attribute of the commandMenuItem together with the group is used to determine how the menu items are grouped and where separators. instead of a menu. Note that. You can also create submenus for menu items on the popup menu. Example 0–1 shows the source view of the menu defined in a MCX file. Contents of the BlackBerry Alt menu is appended to the BlackBerry Main menu whenever displayed. The standard menu is the two-button style of menu. it is displayed for any selected component.. The default value is 0.. which refers to the right-side menu.3 How to Create Menus for Windows Mobile Devices You can create a standard menu for Windows Mobile devices. This is the only way to see the superset of all menu items. if any. The Main menu. Since the BlackBerry Main menu is applicable to any component in a MCX file.10. The Alt menu refers to the left-side menu and consists of the appropriate half of the menu bar displayed right under the visual editor. you can assign each button an action. 2. with menu items popping up from either of the two buttons on the bottom of the screen. <amc:menu type="main" id="mainMenu"> <amc:menuGroup id="menuGroup1" index="1"> <amc:commandMenuItem id="commandMenuItem1" label="Exit" action="exit"/> 6-74 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .com/jdev/amc"> . consists of the following two parts: 1. should be inserted.oracle. Example 6–19 Windows Mobile Menu in Source View <amc:view xmlns:amc="http://xmlns.

Rollback. Both Main and Alt menus are optional: you do not have to define them. Figure 6–27 Windows Mobile Menu in Structure and Design View When creating Main and Alt menus for Windows Mobile devices. consider the following: ■ The menu bar (without left or right menu buttons) is always visible by default on the Windows Mobile platform. You can specify only one Main type menu per MCX file. ■ ■ The Windows Mobile editor height is reduced by the menu bar height.Commit. even if there is no definition of the standard menu in the MCX file. An Alt menu for the Windows Mobile platform has a single menu item.Creating and Using Menus </amc:menuGroup> <amc:menuGroup id="menuGroup2"> <amc:commandMenuItem label="Undo" id="commandMenuItem2" action="goback" actionListener="#{bindings. ■ ■ ■ Beta Draft Creating the ADF Mobile Client User Interface 6-75 . although you may specify one Main type menu for each platform option.execute}"/> </amc:menuGroup> </amc:menu> </amc:view> Figure 6–27 shows the menu from Example 0–1 in structure and design view. The right menu button is labeled with the label attribute of the Main menu (see Table 6–8).execute}"/> </amc:menuGroup> </amc:menu> <amc:menu id="altMenu" type="alt"> <amc:menuGroup id="menuGroup3"> <amc:commandMenuItem label="Save" id="commandMenuItem3" action="goback" actionListener="#{bindings.

the menu will pop up and appear in the preview window displaying all of its submenus. this option is used only to verify menu associations and is usually turned off by default.10. 6-76 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .4 What You May Need to Know About Design-Time Menu Usage Figure 6–28 shows a menu combo box that appears at the top of the preview window at design time. including the form. using the group component and the index attribute. On Windows Mobile devices. if the menuControl is either associated with the currently focused component or associated with the form. Figure 6–28 Menu Selector at Design Time If the "No Menu" option is selected and the focus is placed on a menu control. On BlackBerry smartphones. This is an indication and visual cue that the menu has been correctly attached to another component via the menuControl. You create separator lines similarly to how you create them for BlackBerry menus. there is no visual cue for menus since they only appear when the menu key is pressed.10. the menu will disappear. If the focus is moved to another component. the right menu button popup will be displayed showing all submenus and menu items. the menu label will appear in the menu bar at the bottom. the left menu button label will be updated (if this component has a menu item associated with it) and the right menu button popup will be shown (with the system menu items and all menu items associated with the selected component). with the values "Main" and "No Menu" (default). ■ ■ 6. are always displayed. If the "Main" option is selected. 6. If you select a UI component in the structure pane while the menu type selector is set to Main. This allows to see which menus are associated with which components while scrolling through a page or clicking on a page. all menus associated with the current component or any parent components.5 Adding Event Listeners to Menus You can add the valueChangeListener to menus.Creating and Using Menus ■ If you select the Main menu or any of its children in the structure pane or source editor. Because these menus pop up over other components in the preview.

■ ■ valueChangeListener–this is a method reference to a value change listener. preValidationListener–this is a method reference to a pre-validation listener. keyEventListener–this is a method reference to a key event listener. They are only delivered when a renderer changes an attribute without a specific request from the application. To complete this operation. inputEventListener–this is a method reference to a value change listener. "Using Event Listeners. The value for your listener must match the pattern #\{.Understanding EL Support This event listener is applicable to menus for ADF Mobile client run-time description on both BlackBerry smartphones and Windows Mobile devices. An attribute change event might include.12. postValidationListener–this is a method reference to a post-validation listener. bindingChangeListener–this listener allows your application to hook only changes to values initiated by binding.11 Using Event Listeners You may use the following listeners to add awareness of the view-triggered events to your mobile application: ■ attributeChangeListener–this is a method reference to an attribute change listener. ■ ■ ■ ■ ■ ■ You define a listener in one of the following ways: ■ ■ manually in the source of a MCX file. see Section 6. Attribute change events are not delivered for any programmatic change to an attribute. by dragging and dropping the listener from the Component Palette to a MCX file (just like you would drag and drop a UI component). but it does not have any effect at design time.11.12 Understanding EL Support ADF Mobile client provides support for Expression Language. For more information. for example.*\} and conform to the following requirements: ■ ■ ■ Type name: EL Expression Base type: string Primitive type: string 6." 6. the width of a column that supported client-side resizing.1 Supported EL Nodes ADF Mobile client supports the following EL nodes: Beta Draft Creating the ADF Mobile Client User Interface 6-77 . you enter a value in the listener field of the Insert <listener> dialog. 6. initializationListener–this listener allows your application to hook binding initialization for a control. selectionChangeListener–this is a method reference to a selection change listener.

12.2.*}" 6.15: Resolution of Model Objects and their Properties" in the specification: ■ The underlying FunctionInvocation production (described in 1. expressions are parsed when the page metadata is loaded."#{syncContext.2: Eval expressions as method expressions" and functions described in "1.*}" Application Global Variable Scope . an expression using the immediate construction expression ("${}") will still parse. 6. based on the Java Unified Expression Language (JUEL) project. The expression is not actually evaluated until the component needs it for rendering a value.1 (available at JUEL project page.net/ and referred to hereinafter as "the specification"). At runtime.1: Eval-expression" in the specification: In ADF Mobile client. You can implement the general form of an EL function invocation described in the specification using a similar approach using a delegate object identifiable by name that references a compiled call to the desired method (basically using code to simulate dynamic method invocation).2. http://juel. resolving the "execute" property on the operation binding object will evaluate the parameter expressions and pass those when invoking the referenced method.12. the owning component holds on to a reference to the parsed object. ■ ■ 6-78 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Expressions representing DataControl operations are presently parsed as ValueExpressions.sourceforge.1 Immediate and Deferred Evaluation In reference to "1. but will behave the same as deferred expression ("#{}"). Any parameters to the method are represented as EL value expressions in child NamedData elements in the binding declaration. which is declared in pagedef metadata and encapsulates a call to a method that is known at application compile time.2.2 Method Expressions and Functions In reference to "1.*}" Device Context .*}" Security Context .2."#{device. where the resolved object points to an instance of an ADF Operation Binding.Understanding EL Support ■ ■ ■ ■ ■ Data bindings . but this is not implemented in ADF Mobile client.12.2 ADF Mobile Client EL Implementation Details The ADF Mobile client EL implementation. follows Expression Language Specification Version 2. at which point.19: "Collected Syntax" in the specification) does not work because of the lack of reflection on J2ME."#{applicationScope.1. with the following exceptions: ■ ■ ■ Immediate and Deferred Evaluation Method Expressions and Functions Enumerated Types Note: JUEL requires Java 5 or higher.*}" Sync Context . Because ADF Moble client supports only the deferred semantics. 6."#{securityContext."#{bindings.

Note: in Table 6–13. since required underlying Enum operations are not supported on J2ME.Understanding EL Support 6.3 Referencing Binding Containers The active screen's binding container can be referenced by the root EL expression "#{bindings}". Table 6–13 Runtime Property collectionModel Runtime Properties Iterator no Action n/a Attribute n/a Description Exposes a collection of data. EL expressions used within a component that is bound to a collectionModel can be referenced with a 'row' variable. Attribute and list bindings can be accessed through the row variable. Next. Previous. for example. which will resolve the expression for each element in the collection. For example.12.3 Enumerated Types As described "1. no error no yes execute Invokes the named action or n/a methodAction binding when resolved.2.PageDefName}". depending on the n/a state of the action binding. Returns any exception that was cached while updating the associated attribute value for a a value binding or when invoking an operation bound by an operation binding. with the 'row' variable prepended as the first term: #{row. Returns the iterator's associated data provider. Another screen's binding container can be referenced through the expression "#{data. ADF Mobile client binding objects are referenced by name from the binding container "#{bindings. 6.17: Enums" in the specification. yes no Beta Draft Creating the ADF Mobile Client User Interface 6-79 . dataControl dataProvider enabled yes yes no n/a yes no n/a n/a Returns true or false.bindings.property}. the action binding may be enabled (true) or disabled (false) based on the currency (as determined. when the user clicks the First.12. using a literal string to coerce to the value of an Enum type is not supported.Name}". 'row' simply acts as an iteration variable over each element in the collection whose attributes can be accessed by an ADF Mobile client binding object when the collection is rendered.Name. The syntax for such expressions will be the same as those used for accessing binding objects outside of a collection. the EL term 'row' is used within the context of a collection component. Table 6–13 lists the properties that you can use in EL expressions to access values of ADF Mobile client binding objects at runtime. Returns the iterator's associated data control. The table lists these properties appear in alphabetical order. Last navigation buttons).

Iterator yes Action n/a Attribute n/a hints Returns a list of name-value pairs for UI yes hints for all display attributes to which the binding is associated. Returns the list of values associated with n/a the current list enabled attribute. Returns the range size of the iterator binding's row set. Returns the total number of rows in the collection. Otherwise. mandatory: Returns true if a value is required for the current attribute. returns false. tooltip: The ToolTip text to display for the current attribute. displayHint: The display hint for the current attribute. Returns the label (if supplied by control hints) for the first attribute of the binding. updateable: Returns true if the current attribute can be written to. formatter: The formatter object to be used for the current attribute. label: The label to display for the current attribute. precision: The precision to be used for the current attribute. n/a n/a n/a yes no yes no yes yes ■ ■ ■ ■ ■ ■ ■ ■ ■ inputValue items iteratorBinding label Returns or sets the value of the current attribute.Understanding EL Support Table 6–13 (Cont. format: The format to be used for the current attribute. displayWidth: The width in characters for the current attribute.) Runtime Properties Runtime Property findMode Description Returns true if the iterator is currently operating in find mode. The following named values are supported: ■ n/a yes displayHeight: The height in lines for the current attribute. Returns true if the current attribute is updateable. n/a no labelSet no n/a n/a rangeSize rangeStart rowCount updateable yes yes yes n/a n/a n/a n/a n/a n/a n/a n/a yes 6-80 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Returns the iterator binding that provides access to the data collection. Returns an ordered set of labels for all the attributes to which the binding is associated. Returns the absolute index in a collection of the first row in range.

Example 7–1 Declaring a Method Using EL Expressions <amc:commandButton text="Foo" id="commandButton1" actionListener="#{bindings.execute}"/> This type of declarative invocation assumes that the platform on which the application executes binds dynamically and invokes methods by name rather than compiling the method invocation directly into the object code that executes at runtime. ADF Mobile client applications do not bind methods dynamically.lang.2. "Support for ResourceBundle" Section 7.execute}" in Example 7–1.or J2EE-based platforms. "About Managed Beans in ADF Mobile Client Applications" Section 7.reflect) classes which use underlying VM support to dynamically link to a method call by name. for the framework to call the method. Consequently. "About Invoking Custom Methods Through EL Expressions" Section 7. 7. "Java Support for Business Components" Section 7. "Additional JavaSE Classes Provided by the ADF Mobile Client Framework" 7.5. dynamic method invocation is enabled through Java reflection (java.1 About Invoking Custom Methods Through EL Expressions ADF applications typically invoke custom methods defined on an application module or a view object in response to some event or action that occurs on a page. These custom method invocations are often declared in pages as EL expressions assigned to various component attributes. it requires the application to provide information about the method to be called.1 Adding Delegation Code for Custom Methods in Application Modules and View Objects Because the ADF Mobile client framework cannot rely on Java reflection to bind to methods dynamically.7 7 Extending ADF Mobile Applications with Java This chapter includes the following sections: ■ ■ ■ ■ ■ Section 7. In addition.and J2EE-based platforms. unlike J2SE.Foo.3. they instead link methods statically at compile time.Foo. On J2SE.1.4. ADF Mobile client’s J2ME platform. as illustrated by the EL expression "#{bindings.1. does not have this VM support to implement Java reflection. it must call Beta Draft Extending ADF Mobile Applications with Java 7-1 .

1 Calling Application-Specific Code Through the OperationDelegate execute Method When using the OperationDelegate interface (illustrated in Example 7–2). 4. Add a new Java class that implements the OperationProvider interface. or by double-clicking the application module or view object. Add a method to the application module or view object." Update adf-config. When the framework encounters an EL expression (such as #{bindings.methodName. see Section 7. You access the overview editor by either choosing Open from the context menu in the Application Navigator. locate the proper class instance. and the arguments taken by the method.1. See Example F–1. you must provide the implementation of the execute method of the OperationDelegate interface that knows how to call the application-specific code for each custom method that you wish to invoke through the declarative binding. "Calling Application-Specific Code Through the OperationDelegate execute Method. The framework infrastructure accomplishes these through the bindings declaration in application metadata defined for the page and through the OperationDelegate interface. Add delegation code to the class by implementing the execute method of the OperationDelegation interface. Expose this method to the client interface. This object then uses the OperationProvider implementation registered with the application (described in "Registering the OperationProvider Implementation") to find the OperationDelegate implementation that links the application-specific method call. it uses the runtime binding object associated with methodName to evaluate any parameter expressions. see "How to Edit an Existing Application Module" and "Generating Custom Java Classes for a View Object" in Oracle Application Developer Framework Developer's Guide for Forms/4GL Developers. Each custom method binding declared in the application metadata is parsed at runtime to create a runtime binding object that knows the name. Note: 5.1. For more information.execute}) to call a custom method during application execution.1. Example 7–2 Using the OperationDelegate Interface public interface OperationDelegate 7-2 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .1. Only the custom methods invoked through EL expressions are statically linked at compile time in the ADF Mobile client framework.1. You can enable the ADF Mobile client framework to simulate binding to methods dynamically by adding the delegation code that associates a method name to its compiled call. 7. You can add the delegation code using the overview editors for application modules or view objects as follows: 1.xml so that it declares the class. 3. 2. existing view object and application modules operations are unaffected and are bound dynamically.About Invoking Custom Methods Through EL Expressions through a generic interface to code that is linked at compile time to the method call. For more information on using the overview editor. the implementing class. and call the execute method on the OperationDelegate implementation for that method binding. "The bindings Metadata" for more information.

List params).get(1).1. String methodName).1. write code that calls the method explicitly using the incoming instance value as the object from which to call the method. } If the method takes arguments (as in Example 7–4).. the incoming params values.myCustomStaticMethod().1. return ((MyVOJavaClass)instance). they are retrieved from the List params and passed to the method. List params) { return ((MyVOJavaClass)instance). you must return an instance of OperationDelegate. } 7. and the arguments to pass to the method. If it is a static method.get(0).myCustomInstanceMethod(arg0.List. Example 7–5 Using the OperationProvider Interface public interface OperationProvider { public OperationDelegate getCustomOperation(Object module. arg1). } public Object execute(Object instance. which should be from left to right in the method signature.adfnmc.1. This method will Beta Draft Extending ADF Mobile Applications with Java 7-3 . } To implement the getCustomOperation method.1. Example 7–3 Calling OperationDelegate execute Method Explicitly Using instance Values public Object execute(Object instance. given a method name and an instance name. Tip: If the method is an instance method.1.myCustomInstanceMethod(). Example 7–4 Retrieving Arguments public Object execute(Object instance.2 Associating the OperationDelegate execute Methods with Named Binding Objects The OperationProvider interface (shown in Example 7–5) and the getCustomOperation method enable each OperationDelegate execute implementation to be associated with a named method binding object at runtime so the framework can call the correct one using a string identifier. List params) { String arg0 = (String)params. The argument values are in the List are in the same order that they are declared in the application metadata. oracle. you can cast the instance parameter to the appropriate class and call the method from that. String instanceName. List params) { return MyCustomClass. } 7. Integer arg1 = (Integer)params.java.1 Calling the execute Method Explicitly To implement the execute method (illustrated in Example 7–3). you can ignore the instance parameter.About Invoking Custom Methods Through EL Expressions { public Object execute(Object instance.util.

or explicitly as its own class.2.mobile.Java Support for Business Components be called for each custom operation method binding declared in the application metadata. if the method is declared at the application module level (such as AppModuleDataControl. 7. Example 7–6 Registering an OperationProvider Class in adf-config.dataProvider in Example F–2).1 Support for Reflection Only the following APIs are available in this category: ■ ■ Class. The name of the DataControl with which the method is associated is a prefix to the instance name. The getCustomOperation method is called once per custom method to associate an instance name and method name with an OperationDelegate implementation. Whle you can employ many of the same techniques and high-level API calls that you use in standard ADF Faces applications.CustomOperationProvider"/> 7. Each OperationDelegate can be implemented in-line as an anonymous inner class.LeadVO1 in Example F–2) or dataProvider. as long as the correct instance for a given method name is returned.3 JVM.xml.forName(String) Class.1.1.2 Java Support for Business Components ADF Mobile client supports using Java to extend and customize the functionality delivered by the metadata of the standard business components.sales. As a consequence.2 JDK 1. you must register it in the application configuration file (adf-config. including: ■ Generics 7-4 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . The runtime binding object created from application metadata for each method keeps a reference to the returned OperationDelegate instance for the lifetime of the application.3 Compliance Alternate Package Names 7.apps. a fragment of which is illustrated in Example 7–6) so that the runtime can both locate it and use it. This prevents having to switch on instance and method names for every invocation of the method at runtime. add a <setting> element with the name bindings-custom-operation-provider and a value of the fully qualified name of the implementing class. the target mobile device platforms impose constraints in the following areas when you develop ADF Mobile client applications: ■ ■ ■ Support for Reflection JDK 1. To register the OperationProvider class.xml <setting name="bindings-custom-operation-provider" value="oracle. there is no support for Java 5 language features.2.newInstance() 7.2 Registering the OperationProvider Implementation Once you define an OperationProvider class.3 Compliance All source code is compiled for compatibility with a JDK 1. followed by either be the name of the view object (AppModuleDataControl.view.

2. instead of: import java.executeQuery().util. including entity objects. including JDBC for interfacing with relational databases and collections such as HashMap and ArrayList. which augment the target platforms' base class libraries.sql. To offset these gaps in functionality.java.adfnmc.adfnmc. 7. To determine which methods are supported: Beta Draft Extending ADF Mobile Applications with Java 7-5 .HashMap.put("Key".2. However.adfnmc. Then use the classes normally: HashMap map = new HashMap().util. "Value"). because some target devices do not permit modifying the JVM bootclasspath.4.java. import oracle. Use: import oracle.java. ResultSet rs = preparedStatement. For example. there is no provision for placing these implementations in the standard java. import java.HashMap. map. view objects.4 Supported Java Extension Points for Business Components Java source code can be used to extend the functionality of various business components.3 Alternate Package Names In addition to missing language features. You must instead import these classes from the alternate oracle.ResultSet. the supported target platforms also lack a number of classes used in developing JavaSE and JavaEE platforms.1 Unsupported Methods Not every method in BC4J is available in ADF Mobile client.sql.* package hierarchies. and application modules.Java Support for Business Components ■ ■ ■ Iterators Annotations Enumerations 7.adfnmc.* or oracle.* or javax.* package hierarchies.ResultSet. ADF Mobile client provides its own implementations of these constructs.2.javax.Table 7–1 lists both extension point that ADF Mobile client supports as well as those that it does not: Table 7–1 Supported Entity Object Class Supported and Unsupported Extension Points Not Supported Entity Collection Class Entity Definition Class View Object Class View Row Class Application Module Class Application Module Definition Class View Object Definition Class Service Data Object Class Application Module Client Interface Application Module Client Class 7.

3.adfnmc. ADF Mobile client uses a different EL syntax for accessing the methods or properties of an MBean.BeanResolver framework class. The only valid scopes that an MBean in which a bean can be declared are "application". BeanResolver provides such methods.BeanResolver.About Managed Beans in ADF Mobile Client Applications 1. it must cast it to the BeanResolver class.2 Implementing the Method Invocation Code As illustrated in Example 7–7. the BeanResolver class also declares an abstract method. invokeMethod.BeanResolver Framework Class In ADF Mobile client. "backingBean". and "none". To resolve EL expressions to properties and methods at runtime.3 About Managed Beans in ADF Mobile Client Applications You can create and use managed beans (Mbeans) in an ADF Mobile client application to store additional data or to execute custom code. The managed property default values are not supported. 7. The MBean class must implement method invocation code. ■ ■ 7.util. The BeanResolver class must declare this method because accessing properties and calling methods through EL assumes that the platform on which the application 7-6 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .el.3.util.el. For the framework to access the MBean through EL expressions. Consult Table 7–2 that lists the unsupported methods. managed beans must extend the oracle.1 Extending the oracle. Adding an MBean to an ADF Mobile client application is similar to adding a bean to a standard Fusion Web application. the framework assumes that the MBean class implements certain methods that are used in the resolution mechanics. Use JDeveloper code completion and syntax highlighting features to determine what is supported at compile-time instead of repeatedly consulting a lengthy list of supported methods. that must be implemented by the managed bean to resolve a name to an actual property accessor or method call.util.el.adfnmc. Table 7–2 Class ViewObjectImpl activateNewRowTracker activateState addEffectiveDateDstAttributes buildEffectiveDateFromClauseFragment dodMLWithLOBs handleEffectiveDateOperations validateDateEffectively removeAndRetain activateState passivateStateForUndo EntityImpl ■ ■ ■ ■ ApplicationModuleImpl ■ ■ 7.adfnmc. Unsupported Methods Supported Methods ■ ■ ■ ■ 2. except for the following differences: ■ ■ ■ The MBean class must extend oracle.

On J2SEand J2EE-based platforms.getFoo(). public MyBean() { } public String getFoo() { return foo. This is not the case for J2ME platforms. methods can only be linked statically at compile time.lang. } public void Baz() { // do stuff } public Object invokeMethod(String methodName.length == 0) { return this. The ADF Mobile client framework simulates binding to methods dynamically by calling abstractly through the generic oracle.BeanResolver { private String foo = null. dynamic method invocation is enabled through the use of the java.adfnmc. passing information about the method to be called and relying on the application to provide the concrete code that links the names to compile time method calls.adfnmc. } public void setBar(boolean bar) { this.util.MethodDispatch interface.bar = bar.el. On J2ME platforms.About Managed Beans in ADF Mobile Client Applications executes binds dynamically and invokes methods by name rather than by compiling the method invocation directly into the object code that executes at runtime. } public void setFoo(String foo) { this. } else { Beta Draft Extending ADF Mobile Applications with Java 7-7 . which lack the VM support required to implement the reflection classes.equals("Foo")) { if (params. } public boolean isBar() { return bar. Object[] params) { if (methodName.util. private boolean bar = false.reflect classes which use underlying virtual machine (VM) support to dynamically link to a method call by name.foo = foo. Example 7–7 Declaring invokeMethod public class MyBean extends oracle.

adfnmc.util. rather than using: import java. return null. You can then use thse constructs in ADF Mobile client as you would in Java SE or Java EE environments.properties errorMsg=Problem has occurred greeting=To Whom It May Concern Example 7–9 some/package/foo_en.Baz(). } } else if (methodName.java.ListResourceBundle.java.setBar((Boolean)value). Example 7–8 some/package/foo. } } 7. you can provide localization of selected String resources by creating appropriate properties files such as Example 7–8 and Example 7–9.properties greeting=Hey there You can then access these properties using Java code.util. import oracle.length == 0) { return this. this.equals("Bar")) { if (params. return null. } } else if (methodName.equals("Baz")) { return this.4 Support for ResourceBundle ADF Mobile client supports both ListResourceBundle and PropertyResourceBundle from JavaSE. Use this: import oracle.setFoo((String)value).util.booleanValue(). For example. import java. this.PropertyResourceBundle.Support for ResourceBundle Object value = params[0]. } return null. } else { Object value = params[0].ListResourceBundle.isBar(). As with many other constructs not natively supported by the mobile operating systems.PropertyResourceBundle.adfnmc. as illustrated in Example 7–10.util. 7-8 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .

io.getString("errorMsg").io.io.io.DriverPropertyInfo java.Serializable oracle.FileInputStream oracle.Time java.adfnmc.sql. java.util.adfnmc.Math. then at run time.adfnmc. 7.lang.adfnmc.adfnmc.sql.lang.FileOutputStream java.util.ClassUtils There are a few additional methods from Class that are available in ADF Mobile client.text.BitSet java.io.Time oracle.io.SimpleDateFormat oracle.lang.text. For example. // localized.5 Additional JavaSE Classes Provided by the ADF Mobile Client Framework Table 7–3 lists JavaSE classes provided by ADF Mobile client.util.adfnmc.Locale oracle.adfnmc.adfnmc.util.MathHelper oracle.Date java.sql.BufferedReader java.sql.adfnmc.LineNumberReader oracle.StreamCorruptedException java.io.io.adfnmc.io.out.LineNumberReader java.out.AssertionError oracle.Comparable java.StringReader java.io.File java.io.util.getString("greeting").adfnmc.io.adfnmc. Table 7–3 JavaSE Class java.File oracle.adfnmc.Math java.Comparable oracle.package.Additional JavaSE Classes Provided by the ADF Mobile Client Framework Example 7–10 Accessing Properties ResourceBundle resourceBundle = ResourceBundle. System.sql.adfnmc.Timestamp java.StringReader oracle.adfnmc.adfnmc. oracle.Comparator java.SimpleDateFormat java.println(resourceBundle.io.adfnmc. if there is an attribute in a ViewObject named PersonID and PersonID=Custom Label is defined in the Model project’s resource bundle.Locale java.lang.io. always returns "Problem has occurred" System.util.BufferedReader oracle.io. "To Whom It May Concern" on all other locales These resource bundles are also used implicitly at run time for attribute control hints.StreamCorruptedException oracle.BitSet oracle.Timestamp oracle.lang.FileOutputStream oracle. whenever this attribute is displayed.sql.Class Additional JavaSE Classes ADF Mobile Client Equivalent java.util.Comparator oracle.sql.adfnmc.Comparator oracle.adfnmc.println(resourceBundle.DriverPropertyInfo oracle.Serializable java.AssertionError java.lang.Comparator java.adfnmc. returns "Hey there" on English platforms.foo").adfnmc.Date oracle.adfnmc.io.lang.EventListener Beta Draft Extending ADF Mobile Applications with Java 7-9 . // non-localized.EventListener oracle.lang.sql.util.lang.util.util.FileInputStream java. it will use the Custom Label for the label property rather than defaulting to the name of the attribute.getBundle("some.

lang.adfnmc.adfnmc.BufferedOutputStream java.lang.lang.sql.math.lang.Properties oracle.adfnmc.adfnmc.io.Iterable java.adfnmc.io.adfnmc.adfnmc.BatchUpdateException java.io.adfnmc.lang.adfnmc.io.FileNotFoundException oracle.BitLevel oracle.math.sql.sql.FileNotFoundException java.util.lang.BaseTime oracle.lang.lang.lang. oracle.adfnmc.Array oracle.UnsupportedOperationException oracle.Properties java.sql.adfnmc. oracle.EventObject oracle.Connection oracle.io.CharSequence java.sql.lang.adfnmc.sql.lang.sql.BigInteger java. oracle.DatabaseMetaData 7-10 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .adfnmc.Clob oracle.FilterOutputStream java.DoubleHelper java. oracle.BigDecimal java.BatchUpdateException oracle.Iterable java.sql.Connection java.io.Flushable java.BitLevel java.lang.adfnmc.Byte java.lang.FilterInputStream oracle.io.StringBuilder java.Character.adfnmc.io.BaseTime java.io.Double.Long.io.CallableStatement oracle.adfnmc.lang.Char.adfnmc. oracle.Flushable oracle.Locale oracle.lang.lang.io.math.sql.Closeable oracle.BufferedInputStream oracle.adfnmc.adfnmc.adfnmc.adfnmc.io.lang.adfnmc.sql.lang.Locale java.BufferedOutputStream oracle.Appendable java.PrintWriter java.CharSequence java.FilterInputStream java.lang.util.util.FilterOutputStream oracle.sql.adfnmc.IntegerHelper oracle.sql.DatabaseMetaData oracle.BaseDate java.Writer java.LongHelper oracle.Boolean java.lang.lang.Boolean.util.sql.StringHelper java.lang.util.adfnmc.math.sql.BooleanHelper java.io.sql.lang.sql.adfnmc.Closeable java.String. oracle.io.Writer oracle.adfnmc.String ADF Mobile Client Equivalent oracle.sql.adfnmc.CharacterHelper java.math.BigInteger oracle.adfnmc.io.adfnmc.io.BaseDate oracle.adfnmc.Long java.StringBuilder java.adfnmc.util.StringWriter java.lang.io.adfnmc.CallableStatement java. oracle.lang.Character java.Additional JavaSE Classes Provided by the ADF Mobile Client Framework Table 7–3 (Cont.Integer java.lang.UnsupportedOperationException java.adfnmc.BufferedInputStream java.Blob oracle.ByteHelper java.adfnmc.adfnmc.lang.io.lang.sql.EventObject java.StringWriter oracle.lang.PrintWriter oracle.BigDecimal oracle.adfnmc.Byte.lang.io.lang.lang.io.math.Appendable java.Array java.) Additional JavaSE Classes JavaSE Class java.adfnmc.Double java. oracle.Blob java.Clob java.Integer.

sql.PreparedStatement oracle.util.ParameterMetaData oracle.adfnmc.sql.text.adfnmc.util.adfnmc.AbstractCollection java.Iterator Beta Draft Extending ADF Mobile Applications with Java 7-11 .adfnmc.AbstractSet oracle.adfnmc.adfnmc.Arrays java.HashSet oracle.MessageFormat java.adfnmc.text.AttributedCharacterIterator oracle.util.util.Dictionary oracle.PreparedStatement java.Format oracle.ArrayList java.ResultSetMetaData oracle.sql.ParameterMetaData java.sql.util.text.Struct oracle.Calendar.ResultSet java.adfnmc.util.ParseException oracle.sql.text.adfnmc.adfnmc.util.ConcurrentModificationException java.adfnmc.util.util.sql.util.DriverManager java.util. oracle.sql.adfnmc.adfnmc.HashMap java.adfnmc.AttributedCharacterIterator java.util.util.util.adfnmc.sql.util.ResultSet oracle.util.util.text.util.sql.sql.sql.util.AbstractSequentialList java.AbstractList oracle.adfnmc.AbstractMap java.sql.util.Statement java.Hashtable java.CharacterIterator oracle.FieldPosition java.Struct java.HashSet java.Savepoint java.AbstractSequentialList oracle.adfnmc.ParsePosition java.Collection ADF Mobile Client Equivalent oracle.Arrays java.util.text.util.Hashtable oracle.Dictionary java.Format java.adfnmc.Driver oracle.sql.Types java.text.sql.util.CalendarHelper oracle.adfnmc.text.ParseException java.adfnmc.ResultSetMetaData java.FieldPosition oracle.AbstractList java.EmptyStackException oracle.AbstractCollection oracle.adfnmc.util.Ref oracle.) Additional JavaSE Classes JavaSE Class java.sql.CharacterIterator java.util.adfnmc.adfnmc.util.adfnmc.util.Date.util.util.sql.ConcurrentModificationException oracle.adfnmc.DriverManager oracle.ArrayList oracle.util.adfnmc.adfnmc.Savepoint oracle.text.adfnmc.DateHelper oracle.Additional JavaSE Classes Provided by the ADF Mobile Client Framework Table 7–3 (Cont.SQLException java.util.util.SQLWarning java.adfnmc.text.Calendar java.Statement oracle.adfnmc.sql.text.sql.sql.Collection java.EmptyStackException java.adfnmc.MessageFormat oracle.Date java.HashMap oracle.text.Types oracle.AbstractMap oracle.util.sql.adfnmc.util.adfnmc.adfnmc.util.util.Driver java.adfnmc.text.ParsePosition oracle.sql.adfnmc.adfnmc.SQLException oracle.sql.AbstractSet java.sql.SQLWarning oracle.sql.Iterator java.sql.sql. oracle.Ref java.text.

util.util.Set oracle.adfnmc.LogRecord oracle.adfnmc.Level java.adfnmc.Level oracle. java.util.util.util.StringTokenizer oracle.logging.SimpleFormatter java.util.util.PatternFormatter oracle.util.util.Vector java.adfnmc.util.util.Handler oracle.util.adfnmc.logging.Logger oracle.adfnmc.util.FileHandler java.) Additional JavaSE Classes JavaSE Class java.util.List java.Map java.adfnmc.adfnmc.util.Random oracle.adfnmc.util.util.util.MissingResourceException oracle.adfnmc.FileHandler oracle.adfnmc.util.logging.adfnmc.logging.util.logging.logging.util.ConsoleHandler oracle.util.Messages java.RandomAccess oracle.StringTokenizer java.TreeSet oracle.Random java.util.Stack oracle.adfnmc.util.util.logging.logging.util.adfnmc.SortedSet java.ListIterator java.SimpleFormatter oracle.MapEntry java.util.DevNullOutputStream oracle.util.logging.util.Set java.util.util.TreeMap java.logging.logging.Vector oracle.Map oracle.adfnmc.adfnmc.logging.util.util.logging.Queue java.util.util.SortedMap java.util.SortedSet oracle.adfnmc.Additional JavaSE Classes Provided by the ADF Mobile Client Framework Table 7–3 (Cont.Queue oracle.util.util.LogRecord java.adfnmc.util.util.logging.adfnmc.util.adfnmc.adfnmc.util.adfnmc.util.DevNullOutputStream java.adfnmc.logging.util.util.util.logging.Messages oracle.util.ErrorManager java.NmcPatternFormatter java.logging.util.TreeMap oracle.util.util.logging.List oracle.logging.logging.logging.util.LinkedHashMap oracle.RandomAccess java.Logger java.adfnmc.DevNullHandler java.adfnmc.adfnmc.Stack java.TreeSet java. but it does not maintain weak reference semantics.util.adfnmc.adfnmc.WeakHashMap ADF Mobile Client Equivalent oracle.util.util.logging.util.util.util.StreamHandler oracle.util.logging.util.DevNullHandler oracle.Handler java.util.logging.LogManager oracle.logging.util.logging.MapEntry oracle.logging.logging.util.SortedMap oracle.Filter oracle.WeakHashMap This API is compatible.util.adfnmc.adfnmc.logging.Formatter oracle.Formatter java.LogManager java.StreamHandler 7-12 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .adfnmc.logging.adfnmc.util.adfnmc.PatternFormatter java.adfnmc.adfnmc.MissingResourceException java.util.util.logging.adfnmc.LinkedList java.ErrorManager oracle.ConsoleHandler java.util.util.util.logging.util.logging.Filter java.LinkedHashMap java.logging.ListIterator oracle.util.NmcPatternFormatter oracle.LinkedList oracle.util.

EmptySet java.FSet oracle.adfnmc.regex.adfnmc.DotAllSet oracle.CompositeRangeSet oracle.CISequenceSet java.AbstractSet oracle.CharClass oracle.regex.AltQuantifierSet java.regex.I18n Beta Draft Extending ADF Mobile Applications with Java 7-13 .Additional JavaSE Classes Provided by the ADF Mobile Client Framework Table 7–3 (Cont.util.util.regex.CISequenceSet oracle.HighSurrogateCharSet oracle.regex.util.adfnmc.CanClasses oracle.regex.regex.DotAllQuantifierSet oracle.AbstractSet java.adfnmc.regex.GroupQuantifierSet java.util.adfnmc.util.regex.DecomposedCharSet oracle.util.util.regex.regex.regex.CharClass java.util.HashDecompositions java.util.regex.adfnmc.regex.CIDecomposedCharSet java.adfnmc.regex.util.regex.regex.util.CompositeGroupQuantifierSet oracle.util.regex.util.regex.AtomicFSet java.adfnmc.util.regex.regex.util.regex.regex.util.adfnmc.DecomposedCharSet java.regex.util.adfnmc.util.AltGroupQuantifierSet oracle.regex.regex.EOLSet oracle.CICharSet java.util.regex.util.CharSet oracle.util.adfnmc.AtomicJointSet java.AbstractCharClass java.adfnmc.regex.adfnmc.util.util.adfnmc.regex.regex.FinalSet java.util.util.util.AbstractLineTerminator java.util.util.util.util.regex.CICharSet oracle.util.regex.regex.util.util.AheadFSet oracle.util.regex.AltGroupQuantifierSet java.util.regex.util.adfnmc.adfnmc.DotQuantifierSet java.regex.util.util.HashDecompositions oracle.) Additional JavaSE Classes JavaSE Class java.adfnmc.regex.DotAllQuantifierSet java.regex.regex.I18n oracle.DotSet java.util.util.regex.adfnmc.regex.adfnmc.util.util.AheadFSet java.adfnmc.util.util.regex.util.util.regex.regex.CompositeGroupQuantifier Set java.regex.regex.adfnmc.AtomicFSet oracle.HighSurrogateCharSet java.regex.util.regex.FinalSet oracle.util.BackReferenceSet oracle.util.HangulDecomposedCharSet oracle.AbstractCharClass oracle.adfnmc.adfnmc.adfnmc.adfnmc.EOISet oracle.regex.util.DotSet oracle.regex.util.CIDecomposedCharSet oracle.HangulDecomposedCharSet java.adfnmc.util.regex.regex.util.AtomicJointSet oracle.regex.adfnmc.regex.regex.DotQuantifierSet oracle.regex.util.regex.AltQuantifierSet oracle.CharSet java.adfnmc.EmptySet oracle.util.CompositeRangeSet java.util.regex.regex.util.util.adfnmc.util.CompositeQuantifierSet java.CIBackReferenceSet java.AbstractLineTerminator oracle.util.regex.BackReferencedSingleSet java.BehindFSet oracle.GroupQuantifierSet ADF Mobile Client Equivalent oracle.regex.BackReferencedSingleSet oracle.adfnmc.regex.adfnmc.adfnmc.regex.DotAllSet java.regex.util.CanClasses java.adfnmc.util.regex.regex.regex.util.BackReferenceSet java.FSet java.CIBackReferenceSet oracle.adfnmc.regex.regex.BehindFSet java.util.util.CompositeQuantifierSet oracle.adfnmc.EOLSet java.util.EOISet java.regex.util.util.util.util.adfnmc.regex.util.regex.util.

util.regex.util.QuantifierSet oracle.regex.util.util.util.adfnmc.util.regex.util.util.adfnmc.IntHash oracle.regex.LowHighSurrogateRangeSet java.util.util.regex.util.regex.NonCapJointSet java.MultiLineEOLSet oracle.regex.adfnmc.adfnmc.adfnmc.regex.PossessiveQuantifierSet oracle.RelCompositeGroupQuantifierSet ierSet java.Lexer java.PositiveLookAhead oracle.LeafSet oracle.regex.adfnmc.adfnmc.ReluctantAltQuantifierSet oracle.RangeSet java.regex.PositiveLookBehind java.MatchResultImpl oracle.regex.util.regex.regex.regex.util.regex.util.regex.regex.adfnmc.PreviousMatch java.util.regex.IntArrHash oracle.MultiLineEOLSet java.adfnmc.util.regex.regex.Quantifier oracle.util.util.util.util.adfnmc.util.adfnmc.MultiLineSOLSet java.util.PosAltGroupQuantifierSet java.Pattern java.regex.regex.util.util.util.util.regex.RelCompositeGroupQuantif oracle.util.adfnmc.adfnmc.RangeSet oracle.regex.PositiveLookAhead java.Additional JavaSE Classes Provided by the ADF Mobile Client Framework Table 7–3 (Cont.adfnmc.regex.Pattern oracle.regex.ReluctantAltQuantifierSet 7-14 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .util.regex.adfnmc.NonCapFSet java.NonCapFSet oracle.adfnmc.adfnmc.NonCapJointSet oracle.LeafQuantifierSet java.regex.Lexer ADF Mobile Client Equivalent oracle.PosPlusGroupQuantifierSet oracle.util.util.PossessiveCompositeQuanti oracle.util.util.adfnmc.regex.PossessiveQuantifierSet java.regex.regex.regex.regex.regex.regex.PossessiveAltQuantifierSet java.Quantifier java.util.util.regex.PossessiveGroupQuantifierSet et java.PatternSyntaxException java.util.regex.adfnmc.LowSurrogateCharSet oracle.util.adfnmc.regex.util.regex.regex.util.util.util.util.regex.adfnmc.regex.adfnmc.regex.RelAltGroupQuantifierSet oracle.NegativeLookAhead java.RelAltGroupQuantifierSet java.regex.util.util.util.PreviousMatch oracle.regex.util.util.adfnmc.util.PosPlusGroupQuantifierSet java.adfnmc.JointSet oracle.adfnmc.adfnmc.NegativeLookBehind java.util.regex.regex.regex.util.util.regex.util.adfnmc.PosAltGroupQuantifierSet oracle.util.regex.PosCompositeGroupQuantifierSet ierSet java.adfnmc.util.util.regex.IntArrHash java.util.regex.MatchResultImpl java.util.Matcher oracle.util.LeafQuantifierSet oracle.adfnmc.util.PossessiveAltQuantifierSet oracle.adfnmc.IntHash java.regex.regex.PosCompositeGroupQuantif oracle.NegativeLookAhead oracle.regex.util.NegativeLookBehind oracle.regex.PatternSyntaxException oracle.PossessiveGroupQuantifierS oracle.adfnmc.LowSurrogateCharSet java.adfnmc.MultiLineSOLSet oracle.adfnmc.regex.util.regex.util.Matcher java.util.regex.regex.adfnmc.QuantifierSet java.regex.LeafSet java.util.regex.util.MatchResult oracle.regex.regex.util.util.regex.adfnmc.regex.MatchResult java.PositiveLookBehind oracle.util.) Additional JavaSE Classes JavaSE Class java.util.regex.regex.util.JointSet java.util.regex.regex.PossessiveCompositeQuantifierSet fierSet java.LowHighSurrogateRangeSet oracle.

UCIDecomposedCharSet java.util.adfnmc.ReluctantCompositeQuantifierSet erSet java.regex.util.UnifiedQuantifierSet java.SOLSet java.util.regex.util.adfnmc.util.DataSource Beta Draft Extending ADF Mobile Applications with Java 7-15 .util.regex.adfnmc.UCISequenceSet java.ReluctantCompositeQuantifi oracle.util.adfnmc.util.SpecialToken java.regex.UCISequenceSet oracle.util.regex.UCIBackReferenceSet java.SingleSet oracle.UCICharSet java.adfnmc.regex.util.util.UCIRangeSet java.util.util.util.UMultiLineEOLSet oracle.regex.util.adfnmc.util.SequenceSet java.sql.SupplRangeSet oracle.adfnmc.regex.Additional JavaSE Classes Provided by the ADF Mobile Client Framework Table 7–3 (Cont.util.util.util.regex.regex.UMultiLineEOLSet java.adfnmc.adfnmc.regex.ReluctantGroupQuantifierSet t java.SupplCharSet java.UnicodeCategory java.adfnmc.regex.UCISupplCharSet java.regex.util.util.UnicodeCategoryScope oracle.util.regex.adfnmc.sql.regex.adfnmc.regex.regex.WordBoundary oracle.UCIRangeSet oracle.util.DataSource oracle.adfnmc.util.regex.regex.UnifiedQuantifierSet oracle.SequenceSet oracle.regex.adfnmc.regex.util.SupplCharSet oracle.regex.adfnmc.UCISupplRangeSet java.UCIBackReferenceSet oracle.SpecialToken oracle.adfnmc.regex.UEOLSet java.util.util.regex.util.adfnmc.SingleDecompositions oracle.regex.regex.UCISupplRangeSet oracle.util.SupplRangeSet java.) Additional JavaSE Classes JavaSE Class ADF Mobile Client Equivalent java.regex.SOLSet oracle.ReluctantGroupQuantifierSe oracle.regex.regex.regex.SingleSet java.adfnmc.regex.util.util.ReluctantQuantifierSet java.UnicodeCategoryScope java.util.util.javax.regex.SingleDecompositions java.regex.ReluctantQuantifierSet oracle.util.regex.WordBoundary javax.util.adfnmc.util.regex.regex.regex.UCIDecomposedCharSet oracle.regex.regex.regex.UEOLSet oracle.regex.util.UnicodeCategory oracle.util.util.util.adfnmc.util.regex.adfnmc.adfnmc.regex.UCISupplCharSet oracle.util.util.util.regex.regex.util.adfnmc.adfnmc.regex.UCICharSet oracle.util.

Additional JavaSE Classes Provided by the ADF Mobile Client Framework 7-16 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .

" 8.3. Beta Draft Deploying ADF Mobile Client Applications 8-1 .1. "Synchronizing the Application Data" Section 8.8 8 Deploying ADF Mobile Client Applications This chapter explains how to deploy your ADF Mobile client application. "Creating Database Connections and Using Login Credentials" Section 8.8.4. Note: In the ADF Mobile client development framework. Prerequisites vary depending on whether you are deploying to a Windows Mobile device or a BlackBerry smartphone. "Deploying to the BlackBerry Platform" Section 8. you must have the deployment prerequisites listed in . synchronization. see Chapter 9. "Testing and Debugging ADF Mobile Client Applications.9. and testing. see Chapter 7. "Setting Up Oracle Mobile Server for Synchronizing Data. it is required that you deploy to the device or device emulator before doing any testing and debugging.1 Introduction to Deploying ADF Mobile Client Applications For basic application deployment. A mobile client application cannot be run until you deploy it. "Introduction to Deploying ADF Mobile Client Applications" Section 8." For overview information related to testing ADF Mobile client application data. "Deploying the Client Runtime Application to a BlackBerry Smartphone" ■ ■ ■ ■ ■ For overview information related to synchronizing ADF Mobile client application data.10.5. "Preparing for Data and Application Deployment to a BlackBerry Smartphone" Section 8. "Deploying the Application to a Windows Mobile Device" Section 8.7. This chapter includes the following sections: ■ ■ ■ ■ ■ ■ Section 8. "Deploying the Application Data" Section 8.6. "Deploying to the Windows Mobile Platform" Section 8.2. "Summary of Deployment Tasks" Section 8. "Preparing for Data and Application Deployment to a Windows Mobile Device" Section 8. so separates requirements by activity and platform.11.

The Mobile Server login is for use by the test application to sync with the server. ensure that its enterprise is activated to your BES. your deployment tasks take place in the following order: 1. you need to have done the following: ■ When deploying to a BlackBerry smartphone emulator.2. The connections vary according to whether you are deploying to Windows Mobile devices or BlackBerry smartphones.2 Creating Database Connections and Using Login Credentials In deploying your ADF Mobile client application. No login credentials are requested during deployment. This is the connection to the server application schema (that of the server application).2 BlackBerry Platform Connections In deploying your mobile client application to BlackBerry smartphone emulators and smartphones. These login credentials are specified when using Mobile Database Workbench to verify your publications and publications items after publishing application data. This connection is set up in JDeveloper after you have begun the creation of your mobile client application. Example credentials: Username: MOBILEADMIN / Password: ********. You also need a separate Application Schema login. Example credentials: Username: MOBILEADMIN / Password: ********. ensure that your MDS Simulator is running. You specify the database connection that lets you create business components from existing database objects.2. Authenticate Mobile Project. When deploying to a BlackBerry smartphone. Example name: AppDBConn.3 Summary of Deployment Tasks As a high-level summary. ■ ■ ■ ■ 8. Connection used by mSync when synchronizing the published application data to the device or device emulator. Example credentials: Username: SKING / Password: **************** . Example credentials: Username: fod / Password: ******. Open the msync client and enter your login credentials to confirm it is working. Set up the mobile device or device emulator. The connection occurs through Microsoft ActiveSync when starting the device or device emulator.Creating Database Connections and Using Login Credentials 8. Connection from device or device emulator. Open the msync client and enter your login credentials to confirm it is working. This connection is used for setting up application data publication in the Deployment Profile wizard. along with specific login credentials for each. Example: FOD / ******. you need the following database connections and login credentials: ■ Initialize Business Component Project page of the wizard. Database Connection for Oracle Mobile Server Repository Schema. 8. you need several database connections. Example: SKING / ********. 8-2 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . You also need a separate Mobile Server login. An example of the connection name would be MobileServerDBConn. ■ 8.1 Windows Mobile Platform Connections In deploying your mobile client application to Windows Mobile devices.

3. Deploy the client runtime application to the device or device emulator Deployment tasks are organized in this guide into the following categories: ■ ■ ■ Tasks Common to All Deployments Tasks for Windows Mobile Deployments Tasks for BlackBerry Deployments Part of your deployment work is facilitated through the use of the Deployment Profile wizard.1 Tasks Common to All Deployments Section 8. "Deploying the Application Data" Beta Draft Deploying ADF Mobile Client Applications 8-3 .Summary of Deployment Tasks 2. Deploy the application data. As shown in Figure 8–1. Synchronize the application data. 3. This creates data synchronization artifacts and deploys them to Mobile Server. 5.8. Prepare for deployment of the application data and the mobile client application. Figure 8–1 Deployment Actions (for BlackBerry) 8. 4. the Deployment Profile wizard allows you to take the following Deployment Actions: ■ ■ ■ ■ Deploy application to device Deploy application to package Deploy to JAR file Publish application data. There are two deployment profiles in ADF Mobile client: Deployment Profile for Windows Mobile and Deployment Profile for BlackBerry.

7.\Program Files\ADFmc\CDC_ADFNMC_Bindings.class.\Program Files\ADFmc\CDC_ ADFNMC_Util.3. This shortcut (.Main This shortcut file references another text file known as an options file (Elements.jar.\Program Files\ADFmc\jce-jdk13-143.\Program 8-4 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Example 8–2 Elements. Example 8–1 illustrates a shortcut file called Elements.options" oracle.4 Deploying to the Windows Mobile Platform Deploying an ADF Mobile client application to a Windows Mobile device requires a deployment file with the following items: ■ ■ ■ A JAR file Options (which contain start-up information.jar.jar.3.\Orace\olite40.lnk 255#"\Program Files\J9\PPRO11\ARM\bin\j9. Shortcuts are contained in both cabinet files (CAB files) and Windows Mobile installer files.options -Xbootclasspath:\Program Files\J9\PPRO11\ARM\lib\jclFoundation11\classes.lnk) file is a text file that references the command line of the application that is executed when users double-click the shortcut. Example 8–1 Elements.\Program Files\J9\PPRO11\ARM\lib\jclFoundation11\ppro11\ppro-extras.\Program Files\ADFmc\CDC_JavaSE.lnk for an application called Elements.options. "Preparing for Data and Application Deployment to a Windows Mobile Device" 8.path=\Program Files\ADFmc\eSWT\eswt-converged.jar.2 Tasks for Windows Mobile Deployments Section 8.6. such as class files) Shortcut files Clicking a shortcut on a device launches an application.Deploying to the Windows Mobile Platform 8.jar -Djava. For example. illustrated in Example 8–2) which contains command-line options for the Elements application.3 Tasks for BlackBerry Deployments Section 8. "Preparing for Data and Application Deployment to a BlackBerry Smartphone" 8.jar. you can edit the shortcut file in the Windows Mobile Installer file.zip.jar.adfnmc.exe" -jcl:foun11 "-Xoptionsfile=\Program Files\Elements. While you cannot edit the shortcut file that is included in the CAB file.

\Program Files\ADFmc\CDC_ADFNMC_SQLite. This option.\Windows There is also a debugging shortcut in the deployment file. You install the database and application by single-clicking the appropriate CAB files once you have moved them to the device from the development computer.\Program Files\ADFmc\CDC_ksoap.\Program Files\ADFmc\CDC_ADFNMC_ JavaSE.1.4. The application installation process is detailed in Section 8.jar.jar.library.\Program Files\\Elements. ADF Mobile client creates deployment packages that get pushed to the device management server (Oracle Mobile Server).jar.10. "How to Use the Debugging Shortcut within the Deployment File.jar. Using the Deployment Profile wizard.4.lnk) option as shown in Figure 8–2. For more information.\Program Files\ADFmc\CDC_JavaSE. To install the client database and client application on the device.\Program Files\ADFmc. Its filename is the name of the Windows Mobile application preceded by d_.4.\Program Files\ADFmc\CDC_SQLiteJDBC.jar.\Program Files\ADFmc\bcprov-jdk13-143.\Program Files\ADFmc\CDC_ADFNMC_UI. This shortcut is optional in Windows Mobile deployments. is not selected by default. which is located in the Windows Mobile Options tab of the Windows Mobile Deployment Profile Properties dialog.path=\Program Files\J9\PPRO11\ARM\lib.jar.\Program Files\ADFmc\CDC_ADFNMC_OLite.\Program Files\ADFmc\CDC_JUEL." Beta Draft Deploying ADF Mobile Client Applications 8-5 .jar.\Program Files\ADFmc\eSWT. You generate this shortcut file by selecting the Create additional debug application launch file (d_<appname>.\Program Files\ADFmc\CDC_kxml.1 CAB Packaging Format In preparing for deployment.jar.jar -Djava.jar. except for the flags needed to enable debugging. This shortcut is identical to the non-debugging shortcut.jar. you first place CAB files on the device. see Section 9. you deploy your Windows Mobile client application to the device in the CAB packaging format." Figure 8–2 Creating a Debugging Shortcut 8. "How to Install the ADF Mobile Client Application on the Device.Deploying to the Windows Mobile Platform Files\ADFmc\CDC_ADFNMC_Model.jar.

set installation options.2. [TestApp1]. and set library and profile dependencies. For the first part of deploying the mobile client application—deploying the application data—there are a few things you must do to prepare. you tell Oracle Lite which data should be synchronized to the mobile device.6 Preparing for Data and Application Deployment to a Windows Mobile Device Before you can begin deploying the ADF Mobile application data and the ADF Mobile client application itself. such as that used for the mobile client application. 8. "How to Install the ADF Mobile Client Application on the BlackBerry Smartphone. In the Items pane. The COD files are implicitly installed on the BlackBerry smartphone. To create a deployment profile: 1. 5.1 COD Packaging Format In preparing for deployment.Deploying to the BlackBerry Platform Note: Additional user configuration and setup can be done using the administration interface in Oracle Mobile Server. Click OK.5 Deploying to the BlackBerry Platform 8.4. MobileClient) and choose New. right-click the project (for example. 4. you must create deployment profiles. enter a name for the deployment profile.6. prepare for data publication by creating a database connection.1 How to Create Deployment Profiles for a Windows Mobile Deployment After you have created your ADF Mobile client application. "Configuring Oracle Mobile Server. Using the Deployment Profile wizard. see Section 7. In the Application Navigator. 2." 8. navigate to General > Deployment Profiles. 8-6 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Using deployment profiles. ADF Mobile client creates deployment packages that get pushed to the smartphone management server. you deploy your BlackBerry application to the smartphone in the COD (compiled source code) packaging format. BlackBerry Enterprise Server (BES).ADF Mobile Client for Windows Mobile. then you deploy the application itself.5. The application installation process is detailed in Section 8. and set project properties. For more information. In the Current Project Technologies tab of the New Gallery dialog.11." 8. you are ready to deploy the mobile client application in two parts: first you deploy the application data. 3. select ADF Mobile Client for Windows Mobile and click OK. In the Deployment Profile Name field. You create a profile for deploying the mobile client application to the Windows Mobile platform. A dialog pops up: Create Deployment Profile .

Enter the following settings: ■ Connection Name: [MobileServerDBConn] This is the name of the database connection for the Oracle Mobile Server Repository Schema.) – SID radio button selected: orcl Beta Draft Deploying ADF Mobile Client Applications 8-7 . 8. 4. ■ Password: [_________] This is the password for this connection. choose the mobile client application [TestApp1] from the Create Connection In list. 7. but you can return at any time to the Deployment Profile Properties dialog to make changes to your deployment profile by right-clicking on your mobile client project and choosing Project Properties. 2.6. Select the Library Dependencies node and verify the list of libraries selected for deployment is complete. The Create Database Connection dialog appears. ■ ■ Connection Type: Oracle (JDBC) Username: [MOBILEADMIN] This is the user name for this connection. select Application Data Publication. 6. Note: The steps in this series of tasks follow one another in sequence. in the Deployment Profile Properties dialog. click the Edit icon to access the dropdown list. 3. Then choose your deployment profile and click the Edit button.2 How to Set Up Application Data Publication for a Windows Mobile Deployment You must create a database connection with the Oracle Mobile Server Repository Schema in order to prepare for publishing your application data. From the Database Connection for Oracle Mobile Server Repository Schema list. Select the Profile Dependencies node and verify the list of profile dependencies on other JAR deployment profiles. From the Create Database Connection dialog.Preparing for Data and Application Deployment to a Windows Mobile Device The Deployment Profile Properties dialog appears. In JDeveloper. which enables you to set the connection information to the Oracle Mobile Server repository. ■ ■ Role: [leave blank] Oracle JDBC Settings: – – Driver: thin Host Name: [url of host] (Enter your Mobile Server repository database Host Name. To create the database connection for publishing application data: 1. The ADF Mobile Client for Windows Mobile Deployment Profiles dialog appears.

66.OracleDriver Connect String: jdbc:oracle:thin:@130. 7.35. Application Data Publication. Application Data Publication. 6.jdbc.1521:orcl Oracle Mobile Server Login Credential: – – Synchronization Username: SKING Synchronization Password: ******** ■ Device Database: – Device Database Name: [TestApp1] ■ ■ Package or Deploy: Checkbox: Publish application data when packaging or deploying to device - Figure 8–3 Windows Mobile Deployment Profile Properties 8-8 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .103. Verify the following settings: ■ ■ ■ ■ Username: [MOBILEADMIN] Driver: oracle. Click the Edit icon by the Database Connection for Oracle Mobile Server Repository Schema dropdown and select the database connection for your Oracle Mobile Server Repository Schema [TestApp1 Connections > AppDBConn MobileServerDBConn]. Click Test Connection. click OK to return to the ADF Mobile Client for Windows Mobile Deployment Profile Properties window. The selected connection now shows in ADF Mobile Client for Windows Mobile Deployment Profile Properties. When you receive the Success! message.Preparing for Data and Application Deployment to a Windows Mobile Device 5. 8.

select Deployment node. If deployed from the Tools menu. In the Deployment Profiles list. Windows Mobile classpaths dictate where you want the application to sit on the mobile device.6. To set Windows Mobile options: 1. ■ ■ ■ ■ ■ ■ ■ JVM directory (<jvmdir>): \mBSMobile\J9 Runtime Framework Directory (<mcdir>): [\Program Files\ADFmc] Application directory (<appdir>):[ \Program Files\TestApp1 Application name (<appname>): [TestApp1] Boot Classpath: Java Library Path: \Windows. To set properties for your client project: 1.3 How to Set Application Options for a Windows Mobile Deployment The Windows Mobile options you set specify how the mobile client runtime will be installed. in the Application Navigator.Preparing for Data and Application Deployment to a BlackBerry Smartphone 8. in the Deployment Profile Properties dialog. In the Deployment section to the right.jpr].<jvmdir>\PPR011\ARM\lib Command line parameters: [blank] 2.6. Save your project. Then choose your deployment profile and click the Edit button.7 Preparing for Data and Application Deployment to a BlackBerry Smartphone Beta Draft Deploying ADF Mobile Client Applications 8-9 . Use the project properties from your model project. Click OK. select the Use Project Settings radio button. but you can return at any time to the Deployment Profile Properties dialog to make changes to your deployment profile by right-clicking on your mobile client project and choosing Project Properties. the client runtime framework is installed in \Program Files\ADFmc. 4. 5. Note: The steps in this series of tasks follow one another in sequence. 6. make sure that your mobile client application is selected (TestApp1). In the Project Properties dialog for your client project [MobileClient. In JDeveloper. select Windows Mobile Options and verify the settings that follow. 8. In JDeveloper. 8. 3. Click OK. right-click your mobile client project and choose Project Properties. 2.4 How to Set Project Properties for a Windows Mobile Deployment The project properties you set specify ____.

1 How to Publish Application Data to the Windows Mobile Device or BlackBerry Smartphone Publication items define what gets synchronized between the client and the server.8.7. but you still need to specify which data from the server gets synchronized with the client database on the mobile device. This is an Oracle Lite project file with an . 8. For more details. Once all of your publication items have been defined. You can use this file along with Mobile Database Workbench after application data publication has taken place to view and modify publications and publication items. The publication defines the schema for your mobile application." 8-10 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .2. The Deploy wizard walks you through creation of the publication items and allows you to choose the corresponding table and columns from the server schema. they are grouped together in a publication.3 How to Set Application Options for a BlackBerry Deployment 8. Each publication item defines one table on the mobile device and is mapped to a table in the server schema.4 How to Set Project Properties for a BlackBerry Deployment 8. see Section 8.MPJ extension. To do this. "How to Verify Your Publication and Publication Items Using Mobile Database Workbench.8 Deploying the Application Data Your ADF Mobile client project has been defined.7.7.2 How to Set Up Application Data Publication for a BlackBerry Deployment 8.Deploying the Application Data 8.8. you create publication items.7.1 How to Create Deployment Profiles for a BlackBerry Deployment 8. Note: The publication process generates an artifact: an Oracle Lite definition file.

3. from the Deployment Actions list. [Include manifest: Yes.JAR files were written to the development computer. This action creates data synchronization artifacts and deploys them to the Mobile Server. 2. 4.2 How to Verify Your Publication and Publication Items Using Mobile Database Workbench You can check that your application data publication ran according to plan by using Mobile Database Workbench.Log. start Mobile Database Workbench. its publication items. and then that the publication finished. right-click on your mobile client project and select Deploy > [TestApp1].35.mpj). 8. The messages detail that the deployment started. use the following settings: ■ ■ ■ ■ ■ Database JDBC URL: jdbc:oracle:thin:@130. In the Mobile Database Workbench application window. on the General tab. sequences. On the development computer. View deployment messages in the Deployment . browse to find and open your mobile project (for example.1521:orcl Repository Schema User: [MOBILEADMIN] Repository Schema Password: ******** Application Schema User: [FOD] Application Schema Password: ****** 5. that . Beta Draft Deploying ADF Mobile Client Applications 8-11 . 6. 2.103. select Publish Application Data. In JDeveloper. see the publication. and so on listed under your mobile project. In the Open dialog. 4.66. In the Summary.Deploying the Application Data To publish application data to the device or device emulator: 1. view the archive details for your deployment. that the mobile data publication was started and the publication was created along with publication items and a sequence. that a dependency analysis was run. Click Next. In the Mobile Database Workbench application window. 6. that the profile was deployed.JAD and . Click OK. click the Open Project button. In the Deploy [TestApp1] wizard. TestApp1.8. Compressed: Yes] Click Finish. 5. To verify your publication and publication items: 1. 3. In the Authenticate Mobile Project dialog.

Provide your Oracle Mobile Server login credentials and the following information to register the device with Mobile Server: ■ ■ ■ ■ User Name: SKING Password: ******** Server URL: 130. 8. 8.Synchronizing the Application Data Figure 8–4 Viewing Publications and Publication Items in Mobile Database Workbench 7.9 Synchronizing the Application Data Oracle Mobile Server performs the synchronization between the server-side database and the mobile device. Click OK. click Start > Programs > Oracle DM To register the device with Mobile Server: 1. if you switch to another database.66 Device Name: Test 2. 8-12 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .ORDER_ITEMS 8. see this important Query Text: ■ select … from FOD. Note: Once synchronization is finished and working with one database.103.9.To prepare for synchronizing your application data. you must first register the device or device emulator with Mobile Server. In the Query tab.35.1 How to Register the Device with Mobile Server On the device or device emulator. you will have to reinstall Mobile Server and set up your device again. Then switch to Oracle mSync for the synchronization work. Close the Mobile Database Workbench application.

and your device or emulator to begin deployment of your mobile client application.9.66 3. 8. 3. Right-click and select Deploy > [TestApp1]. The Device Emulator Manager window pops up. On the device or emulator. start Oracle mSync. 7. On the device or device emulator. double-click My Device Emulators. in the Application Navigator. and so on. Processing. In JDeveloper. in the Deployment Action page.10. 6. in the list [of ___]. then click Finish.10 Deploying the Application to a Windows Mobile Device You return to JDeveloper’s Deploy wizard to deploy the mobile client application. shortcut and shortcut options files were written to the development computer. To deploy the application to the mobile device: 1. Receiving. select your client project [MobileClient].35. See status bars in mSync: Composing. the Windows Mobile package was written to the development computer.Log. Device Emulator Manager. 4.10.2 How to Synchronize the Data Using Oracle mSync To synchronize the data: 1. view the Deployment . 8. 2. a dependency analysis was run. select a deployment action: Deploy Application to Device. view your archive details. JAD and JAR files were written to the development computer.Deploying the Application to a Windows Mobile Device 8. Click Sync. In Device Emulator Manager. use File Explorer to show your device. See messages that the deployment started. 4. enter the following details: ■ ■ ■ User: SKING Password: **************** Server: 130.2 How to Set Project Properties (Windows Mobile Options) Use JDeveloper to set Windows Mobile options for your client project. 8. the profile was deployed. Sending.1 How to Use the Deployment Action: Deploy Application to Device Use JDeveloper. 2. 5. When you see a success message. and then click Next. In the Deploy [TestApp1] wizard. 8. Beta Draft Deploying ADF Mobile Client Applications 8-13 . In the Summary page of the wizard.103. click OK and then exit Oracle mSync. In the source editor. In the ___.

Library Dependencies.) select Windows Mobile Option and enter the following details: ■ ■ ■ ■ ■ 4.3 How to Place the Application-Installation CAB File on the Device To install the CAB file: 1.selected 3. Note: The J9 folder is where the Java virtual machine is kept. When you have obtained this JVM. From the Deployment Profiles list. See activity in JDeveloper's Deployment .cab. click OK. 6. the JVM folder is listed correctly. Profile Dependencies. in the Application Navigator. Program Files and open TestApp1. with My Device showing: ■ Choose Program Files and then double-click your application [TestApp1] to start installing the TestApp1. etc.unselected Use Project Settings radio button . Select Technology Scope (in the tree to the left that has Project Source Paths. select the Mobile Client project and double-click to get to the Project Properties dialog for [C:\JDeveloper\mywork\TestApp1\MobileClient\MobileClient. by ProSyst Software GmbH. Compiler.com. ADF Model. Ant. Make sure that in JDeveloper. click OK. When the CAB file is successfully installed on your device. for example: ■ JVM directory (<jvmdir>): \mBSMobile\J9 3.handango. ADF View. can be purchased from www. J9 is a JVM that runs on a Windows Mobile device. ADF Mobile Client for Windows Mobile Deployment Profile Properties. Mobile Client Packaging. Business Components. place it in the mBSMobile\J9 folder on the device or simulator and also in the Windows Mobile 6 SDK\PocketPC\Deviceemulation folder on your development machine.) and enter the following details for Technology Scope: ■ ■ Use Custom Settings radio button . In JDeveloper. 4. JVM directory (<jvmdir>): \mBSMobile\J9 ADFmc directory (<mcdir>): \Program Files\ADFmc Application directory (<appdir>):[ \Program Files\TestApp1] Application name (<appname>): TestApp1 Boot Classpath: 8.jpr] 2.Log. Back to device emulator screen.Deploying the Application to a Windows Mobile Device To set Windows Mobile options for your client project: 1. On the device emulator. 5.10. Double-click TestApp1 to install TestApp1. mBS Mobile OSGi for Windows Mobile. ■ 2.cab file. etc. When successfully installed on your device. From the tree (to the left that contains JAR Options. double-click your deployment profile [TestApp1 (ADF Mobile Client for Windows Mobile)] to get to the ADF Mobile Client for Windows Mobile Deployment Profile Properties dialog. File Groups. 8-14 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .

Last. 3. select your client project [MobileClient]. Business. 8. and so on. 8.11 Deploying the Client Runtime Application to a BlackBerry Smartphone You return to JDeveloper’s Deploy wizard to deploy the client runtime application. see messages such as initializing default resource loader. 8. double-click My Device Emulators. In the Deploy [TestApp1] wizard. OrderDate etc. 2. double-click the purple icon. core\WindowsMobile\deploy\Windows See . 7. Device Emulator Manager. 5. view the Deployment .dll files (3 of them). then click Finish. To deploy the application to the mobile device: 1. with OrderId. and so on. On the device emulator screen. 8.11. My Ringtones. shortcut and shortcut options files were written to the development computer. Right-click and select Deploy > [TestApp1]. process. request. In JDeveloper. My Music.) 2. 6. in [TestApp1]. where you can see all the order info and below that are the buttons First. the Windows Mobile package was written to the development computer. The screen on device emulator changes to: outputText1 Browse Order. in the Deployment Action page. In Device Emulator Manager. Beta Draft Deploying ADF Mobile Client Applications 8-15 . select a deployment action: Deploy Application to Device. JAD and JAR files were written to the development computer. Previous. and then click Next. In the Summary page of the wizard.Deploying the Client Runtime Application to a BlackBerry Smartphone 7. In the source editor. and your device or emulator to begin deployment of your mobile client application. backing bean. in the Application Navigator. Next. adding jar rep. click Explore to get to Mobile Device explorer window (which contains folders such as My Windows Mobile-Based Device. view your archive details.adfnmc. 8.4 How to Install the ADF Mobile Client Application on the Device To install the mobile client application on the device: 1. initializing database utils. a dependency analysis was run. the profile was deployed. See messages that the deployment started. and so on as SQL scripts and connection data are loaded.1 How to Use the Deployment Action: Deploy Application to Device Use JDeveloper. in the list [of ___]. and session scopes are created. Bring up Microsoft ActiveSync. use File Explorer to show your device.Log.10. On the J9 Console (on the device emulator screen). 4. The Device Emulator Manager window pops up. C:\Documents and Settings\jhhuang\Desktop\SimulatorStore C:\Oracle\PS1-072909\jdeveloper\jdev\extensions\oracle. On the device or emulator. 9. 3.

11.2 How to Set Project Properties (BlackBerry Options) 8. 8.Deploying the Client Runtime Application to a BlackBerry Smartphone 8.4 How to Install the ADF Mobile Client Application on the BlackBerry Smartphone To install the mobile client application on the smartphone: 1. 2. 4. 3. 5.11.3 How to Place the Application-Installation COD File on the Smartphone To install the COD file: 1.11. 3. 8-16 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . 4. 2.

This chapter includes the following sections: ■ Section 9.logging" Section 9. see Chapter 8.1 Introduction to Testing and Debugging an ADF Mobile Client Application You can test an ADF Mobile client application on a mobile device or a device emulator. "Testing Synchronization" Section 9. it is required that you deploy to the device or device emulator before doing any testing and debugging. A mobile client application cannot be run until you deploy it. "Setting Up the Debugger" Section 9.4. "Debugging the Mobile Application with java. "Introduction to Testing and Debugging an ADF Mobile Client Application" Section 9.8. see Section 2." 9. "Optimizing Performance of a Mobile Client Application" ■ ■ ■ ■ ■ ■ ■ ■ ■ For detailed instructions on deploying an ADF Mobile client application.1. "Deploying ADF Mobile Client Applications. "Setting Up the Windows Mobile Device or Device Emulator" and Section 2.util. "Debugging a Windows Mobile ADF Mobile Client Application" Section 9.6.7. Note: In the ADF Mobile client development framework.6. "Debugging a BlackBerry ADF Mobile Client Application" Section 9.6.3. "Logging Errors" Section 9.2.5. "Setting Up the BlackBerry Smartphone or Smartphone Emulator.1. "Modifying the Deployment and Run Configurations" Section 9.2. For details on the Windows Mobile device emulators and the BlackBerry smartphone emulators including how to download them." Beta Draft Testing and Debugging ADF Mobile Client Applications 9-1 .9.10.9 9 Testing and Debugging ADF Mobile Client Applications This chapter provides an overview of the process you will take to finalize the development of your ADF Mobile client application. "Testing an ADF Mobile Client Application" Section 9.

then deploy and run the application for further testing.4.4. This shortcut is identical to the non-debugging shortcut in the deployment file. 2. Test the application’s logic and page flows. Make changes to the application as necessary. you can set breakpoints. To test and debug an ADF Mobile client application: 1." 9. However. view the contents of variables. the test application starts the initial synchronization to populate the local SQLite database. Note: At this time. except for the flags needed to enable debugging.3 Setting Up the Debugger 9. "Debugging a BlackBerry ADF Mobile Client Application.Testing an ADF Mobile Client Application Testing an application on a device emulator provides the advantage of faster deployment and test execution.5. For example. Therefore.4 Debugging a Windows Mobile ADF Mobile Client Application You can debug your mobile client application on a Windows Mobile device or on an emulator. "Debugging a Windows Mobile ADF Mobile Client Application" and Section 9. The debugging shortcut’s filename is the name of the Windows Mobile application preceded by d_. while emulators very closely approximate actual devices. 9. there can be differences in behavior. see Section 9. there is a debugging shortcut. Once you configure the device or emulator. In such cases. using an actual device may reveal behavior that cannot be observed on an emulator.8. 9-2 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Reconnect the simulator or device. 3. and inspect the method call stack just as you would when debugging a Web-based ADF Faces application.1 How to Use the Debugging Shortcut within the Deployment File In the deployment file for the Windows Mobile platform. mobile device emulators provide an alternative testing method. using TCP sockets as the transport mechanism. For platform-specific guidance about debugging your mobile client application. Testing ADF Mobile client applications directly on mobile devices has a limitation in that you may not have access to all of the devices that you want to test. both your device (or emulator) and the development machine must have network access and they must be visible to one another on the network.2 Testing an ADF Mobile Client Application When you deploy your test application (see Section 8. you can only debug your Java code. 9. Debugging occurs over the standard Java Debug Wire Protocol (JDWP). you cannot debug EL expressions or other declarative elements. However. Testing an application on an actual device can be slower than testing on an emulator. "Deploying the Application Data").

lnk) option controls whether or not the debugging shortcut file is included in the deployment file. 4.4.lnk and d_myapp. 9. 3. 2.4. you must first provision the emulator for network access and increased memory capacity. (By default.lnk if the extension is not hidden in the display). 9. the regular shortcut’s filename would be myapp and the debugging shortcut filename would be d_myapp (or myapp. This means that the application will not start up and the loading screen will not be displayed until the virtual machine detects a JDWP connection. 3.4. 2. To enable logging of errors on a Windows Mobile emulator: 1. create a folder called store in a location such as C:\JDeveloper\mywork\<application_name>.) When the application is launched using the debugging shortcut. Once the connection is established. To debug a Mobile client application on a Windows Mobile emulator: 1. 4. create another folder called logs. this option is located in the Windows Mobile Deployment Profile Properties dialog. in your application project. The Create additional debug application launch file (d_<appname>. this option is not selected.3 How to Debug a Windows Mobile ADF Mobile Client Application on a Mobile Device To debug a Mobile client application on a Windows Mobile device: 1. 2.2 How to Debug a Windows Mobile ADF Mobile Client Application on an Emulator Before you begin: In order to debug your application on an emulator. 9. execution halts until the debugger attaches. In JDeveloper. Inside the store folder. the application will load and run as usual.4 Enabling Logging of Errors on a Windows Mobile Emulator You can enable logging of errors while running the mobile client application on a device emulator. Beta Draft Testing and Debugging ADF Mobile Client Applications 9-3 .Debugging a Windows Mobile ADF Mobile Client Application if your Windows Mobile application name is myapp. in the Windows Mobile Options tab.

Note: JDeveloper will not deploy the application's . In that case. Click OK. 4.debug files to the simulator. 9.bat file is used for establishing a connection between JDeveloper and the simulator. 5.6. On the emulator. c. Before you begin: In order to debug a BlackBerry smartphone. The jdwp. debugging of BlackBerry ADF Mobile client applications is only supported on BlackBerry smartphone emulators. Edit the default configuration. Note: If you prefer to start the simulator manually.debug file(s) to the simulator by default. "Setting Up the BlackBerry Smartphone or Smartphone Emulator. see Section 2. In the JDWP window. In JDeveloper. The log file. make note of the JDWP port number. you must manually copy any . By default this value is 8000. For information on obtaining the BlackBerry JDE.Debugging a BlackBerry ADF Mobile Client Application The device will record error logs in the logs folder. 6. 9-4 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . double-click the jdwp. If you want to hit breakpoints defined in any classes in your application.2. stored in the logs folder that you created on your computer. Open the Project Properties window and select the Run/Debug/Profile panel. you need the BlackBerry JDE. but it can be changed as necessary In the Simulator tab.5 Debugging a BlackBerry ADF Mobile Client Application In this release. you can leave this box unchecked. make sure that a simulator instance has been started prior to attempting a connection. edit the location of the Shared folder field to point to the location on your computer." The task that follows assumes that your Blackberry JDE is installed at <Blackberry JDE path>. in the Communications tab. 3. check the Launch simulator when debugger connects checkbox. In the <Blackberry JDE path>\bin folder. 3. In the Emulator Properties screen. b. deploy your application to the simulator. You computer and the device will share this folder. Share the logs folder as follows: a. 2.bat file to start it. To debug your BlackBerry ADF Mobile client application: 1. is recreated each time you run the application. You have enabled logging when you run the application. or add a new one if one does not exist. select File > Configure.

To enable logging of errors on a Windows Mobile Emulator: 1. b. 8. create another folder called logs. You have enabled logging when you run the application.1 How to Debug a BlackBerry ADF Mobile Client Application on an Emulator 9. This is done in the _____ You might need to modify your run configuration for some of the following reasons: ■ To debug a device or emulator not connected to the default location or port Beta Draft Testing and Debugging ADF Mobile Client Applications 9-5 . In JDeveloper.6 Modifying the Deployment and Run Configurations At times. (8000 by default). click the Add Directory button and select the location of the logs folder. 9. and inspect variables. In the Debugger/Remote panel. Click OK then Close. select Simulate > Change SD Card.Modifying the Deployment and Run Configurations 7. Start debugging by selecting the edited run configuration from the Debug icon’s dropdown list. On the BlackBerry smartphone emulator. select the Launch Settings panel and check the Remote Debugging checkbox. The log file. Inside the store folder. Increase the Timeout to 30000. 3. 10.5. Share the logs folder as follows: a. you may find it necessary to modify the deployment and run configurations of your mobile client application. 11. stored in the logs folder that you created on your computer. You computer and the device will share this folder. In the SD Card screen.5. is recreated each time you run the application. enter the host as 127. The device will record error logs in the logs folder. 2. suspend execution.1 (or the IP address of the machine on which the simulator is running). The port should be the same one as given in the JDWP Communications tab. 9. c. just as you can with an ADF Faces application.5.2 How to Debug a BlackBerry ADF Mobile Client Application on a BlackBerry Smartphone 9. 9.0. create a folder called store in a location such as C:\JDeveloper\mywork\<application_name>. in your application project. You should now be able to set breakpoints.3 Enabling Logging of Errors on a BlackBerry Smartphone Emulator You can enable logging of errors while running the mobile client application on the BlackBerry smartphone emulator. Click OK to close the Run Configuration and Project Properties windows. In the Edit Run Configuration window.0.

see 9. To enable publication with SQLite if having this issue: 1.1 About the ADF Mobile Client Settings Facility ADF Mobile client makes use of a number of settings that alter runtime behavior.1 How to Troubleshoot Synchronization of Publications SQLite does not enable you to publish an application’s data if the application’s entity objects have different primary keys but belong to the same table.Testing Synchronization You might need to modify your deployment options for some of the following reasons: ■ ■ To deploy the client application to a non-default location on the device To configure the client to access custom code or libraries on the device 9. 9.db). In JDeveloper. ■ ■ For example. Command-line arguments. Resynchronize. All entity objects belonging to the same table must have the same primary key (or virtual primary key) structure. it takes precedence over the Java-supplied default. and delete this client database file. 2. navigate to the location of the client database (for example. For more information on testing synchronization. In Mobile Workbench. Normally. These settings affect features such as logging and database initialization. When a value is missing for a given key.8. 4. On the device. remove the existing publication items based on the table in question. These have highest priority. adf-config. If a value is specified here.8 Logging Errors 9. this setting is 9-6 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Settings are defined as key-value pairs in the following ways: ■ Runtime defaults.7 Testing Synchronization As part of the end-to-end testing you do on your mobile client application. These have lowest priority. 3. you should do the following: ■ verify any refined synchronization rules Note: If you face issues with the sync agent. the Java code supplies a default value. the initdata setting determines whether an application should initialize its database by executing an embedded SQL script. \OraCE\sqlite_db\<name>\<name>. and can also include arbitrary application-defined parameters.7. republish the data. a hard reset of the device may be required.xml.

If you want to override the value without changing adf-config.getProperty.xml file.2 How to Add Application-specific Settings To add application-specific settings: 1. 2. ApplicationDescriptor[] browserDescriptors = CodeModuleManager. but still override them easily when necessary.getModuleHandle(appName).xml: <amc:setting name="mysetting" value="myvalue"/> adf-config. using a code snippet similar to the following: int handle = CodeModuleManager. new String[] {"-mysetting=myvalue"}). However. depending on which version of getProperty is called.8.getApplicationDescriptors(handle). Define a String constant in your Java code to represent the setting's key: public static String MYSETTING_KEY = "mysetting". Read the value of the key by calling Utility. you can specify a new value by passing a command-line argument.Logging Errors FALSE. // or String myValue = Utility. then that value is the one used at runtime. If mysetting is not specified. null. Finally. This multi-layered approach makes it possible to provide values once for settings that are not expected to change frequently. Edit this file and append the following at the end of the first line in that file (including quotes): "-mysetting=myvalue" To pass a command-line argument on BlackBerry: Passing arguments to a BlackBerry application is somewhat more difficult.lnk is generated. You can change the value by adding the following entry to adf-config.getProperty(MYSETTING_KEY. "defaultValue"). To pass a command-line argument on Windows Mobile: When you build your application for Windows Mobile. if an entry is added to the adf-config. a shortcut file named YourApplication.getProperty(MYSETTING_KEY). 9. because Oracle Mobile Server is used to initialize the database. if the application is started up with the command-line argument "-initdata=true". ApplicationDescriptor descriptor = new ApplicationDescriptor(browserDescriptors[0]. Beta Draft Testing and Debugging ADF Mobile Client Applications 9-7 . then the value specified there overrides the default value. it will either be null or take the value defaultValue.xml is a static file that can only be modified at design time. which can be used to launch the application. You must launch your application through another program. optionally specifying a default value: // either String myValue = Utility.xml and rebuilding your application.

which is used to help bootstrap the data bindings. This script must be included as a resource in the application. then the database will be initialized by executing the SQL statements in the script referenced by this setting. the script will not be executed during startup and the database will not be modified in any way. Default Value: "" <amc:setting name="bindingcontext-metadata-file" value="<path/to/DataBindings. This is normally pre-populated by JDeveloper. If FALSE. If the database exists. Default Value: "false" <amc:setting name="initdata-script" value="<pathToSqlScript>"/> If initdata is true.8.3. Default Value: "" <amc:setting name="root-task-flow" Default Value: "" value="<path/to/MobileClient-task-flow. Not normally needed.runApplication(descri ptor).xcfg>"/> Path to the bc4j. Default Value: "" <amc:setting name="adfnmc-bootstrap-file" value="<path/to/bc4j." Table 9–1 Setting <amc:setting name="connection-details" value="<database identifier or path>"/> ADF Mobile Client Framework Settings Description Determines where and if the application should expect to find the database. all tables will be dropped before the script is executed. which is used to help bootstrap the data bindings.cpx file. the application will execute the SQL script in "initdata-script" during application startup to create or recreate the application database. "About the ADF Mobile Client Logging Facility.getApplicationManager().cpx>"/> Path to the DataBindings. use the JDeveloper design-time features to do so.xcfg file. ADF Mobile client framework settings are listed in Table 9–1. if you need to change it. Do not edit this directly. ADF Mobile client framework settings that are specific to the ADF Mobile client logging facility are listed in Table 9–2. Default Value: "" <amc:setting name="initdata" value="true"/> If TRUE. For more information on the logging facility. Not normally needed.Logging Errors ApplicationManager. see Section 9.xml> "/> <amc:setting name="app-name" value="NameOfYourApplication"/> The name of the application. Default Value: "" 9-8 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .

stomOperationProviderInterface"/> Default Value: "" <amc:setting name="sync-credentials-mode" value="prompt|provided|lastuser"/> This value controls how synchronization parameters are provided to the framework. Default Value: "lastuser" 9.util .qualified.Logs messages used for outputting performance metrics.A channel that can be used for test messages and test output. consoles.The parent Logger for all ADFmc Loggers.) You can add log messages to your own code. You can configure these loggers declaratively through the ADF Mobile client settings facility as well as add your own. where sub-loggers can inherit or override settings of their parent loggers. adfnmc.Logs messages associated with the ADF Mobile client data-binding layer.model .A configurable logical channel with which different groups of log messages are associated. and sockets. (By default. The following are the key elements used in ADF Mobile client logging: ■ Logger .A configurable object responsible for exporting messages to various destinations including memory. A logger directs messages to one or more associated handlers.Logging Errors Table 9–1 (Cont. All ADF Mobile client framework classes log their messages through the following named loggers according to their various functional areas within the framework. which control how the messages are output. ADF Mobile client includes the following Handler types: Beta Draft Testing and Debugging ADF Mobile Client Applications 9-9 .bindings .logging. adfnmc.Logs messages associated with the ADF Mobile client Model layer. adfnmc. only messages indicating severe issues are enabled.Logs messages from low-level Utility classes.util. The ADF Mobile client logging facility is a lightweight adaptation of the Java platform's core logging facility implemented in java. These messages can be selectively enabled or disabled by different priority levels across the framework or for specific areas of functionality within the framework for both performance and easier processing of log output.ui . – – – – – – – adfnmc. adfnmc. The subclass of the handler determines the destination type that it supports.) ADF Mobile Client Framework Settings Setting Description <amc:setting This value is used when working name="bindings-custom-operation-provider" with custom ApplicationModule value="fully.3 About the ADF Mobile Client Logging Facility ADF Mobile client makes extensive use of log messages throughout an application’s execution for informational and diagnostic purposes. adfnmc. ■ Handler .Cu and ViewObject methods. output streams. or creating your own. adfnmc .Logs messages associated with the ADF Mobile client UI layer.8.profiling . Loggers are named and organized hierarchically.test . files. using logging channels and logging output mechanisms defined within ADF Mobile client.of.implementation.

respectively. For example.Logging Errors – – – – – ■ oracle.DevNullHandler . only SEVERE messages will be output from the first handler while SEVERE.Loggers and handlers can be configured with priority levels to show or suppress messages.adfnmc. it will be suppressed.util.adfnmc.util.logging.writes messages to a socket. WARNING. and INFO messages will be output from the second handler.java. configured with levels of SEVERE and FINE. If the level for a given message is lower than the level assigned to the logger or handler the message is sent to. oracle.logging.adfnmc. oracle.writes messages to an OutputStream.logging.SocketHandler .ConsoleHandler . The levels in descending order are: – – – – – – – SEVERE (highest value) WARNING INFO CONFIG FINE FINER FINEST (lowest value) Child loggers can override the level threshold for their messages to a higher or lower level than that of their parent loggers.Handlers can be configured with different formatting options to apply to messages.writes messages to a file. ■ Formatter . Level .java.writes messages to the standard output stream.logging.logging. if a logger is configured with a level of INFO and has two handlers.StreamHandler .util. oracle.java.util. Neither will output FINE messages.util.FileHandler .java. messages sent to this Handler are not exported.adfnmc. oracle.java. 9-10 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . All messages are assigned a priority level when they are logged.adfnmc.'null' Handler. Note however that the highest level threshold in a logger-handler chain will be applied.

Declares the Formatter class to use with the named Handler.util. Declares whether or not the <amc:setting name="<loggerIdentifier>-useParentHandlers" named child Logger should use the Handler or Handlers value="<true or false>"/> associated with its parent Loggers. Cannot contain spaces. <amc:setting name="<handlerIdentifier>-level" value="<level>"/> <amc:setting name="<handlerIdentifier>-formatter" value="<formatterClass>"/> Declares the logging Level to use with the named Handler.adfnmc. with any ". value="<patternString>"/> Presently valid for use with oracle. For example. while "adfnmc. Beta Draft Testing and Debugging ADF Mobile Client Applications 9-11 .' is used in the Logger name to delimit each level in the hierarchy.NmcPatternFormatte r only. loggerName is the actual name of the Logger to be used in the logging framework. "adfnmc" declares a top-level Logger.java. handlerIdentifier is an identifier used to reference the Handler in subsequent setting declarations." delimiters replaced by a "-". handlerClass is a fully qualified class name for the Handler to use. <amc:setting name="declare-handler-<handlerIdentifier>" value="<handlerClass>"/> Declares a named Handler to be used by the logging framework. A '. Declares the named Handler or Handlers (separated by spaces) to be used with the named Logger.Logging Errors Table 9–2 Setting ADF Mobile Client Logging Settings Description Declares a named Logger. loggerIdentifier is an identifier used to reference the Logger in subsequent setting declarations. from left to right. <amc:setting Declares a pattern string to use name="<handlerIdentifier>-formatterPattern" with a pattern based Formatter. Defaults to "true".bindings" declares a child Logger that inherits settings applied to the Logger name "adfnmc".l ogging. A Logger's name determines its position in the Logger hierarchy. <amc:setting name="declare-logger-<loggerIdentifier>" value="<loggerName>"/> <amc:setting name="<loggerIdentifier>-level" value="<level>"/> <amc:setting name="<loggerIdentifier>-handlers" value="<handlerIdentifiers>"/> Declares the logging Level to be used with the named Logger. loggerIdentifier needs to be the same as loggerName.

Logging Errors

Table 9–2 (Cont.) ADF Mobile Client Logging Settings Setting <amc:setting name="<handlerIdentifier>-pattern" value="<path to log file>"/> Description Declares a path to the file to use for log output. Valid for use with oracle.adfnmc.java.util.l ogging.FileHandler only.

9.8.4 How to Configure Logging Using the Settings Facility
Most elements in the ADF Mobile client logging facility can be configured declaratively through the ADF Mobile client settings facility. See Table 9–1, " ADF Mobile Client Framework Settings" for a complete list of the settings and their descriptions. Some examples are the following:

Change the root ADFmc framework Logger Level to FINE. <amc:setting name="declare-logger-adfnmc" value="adfnmc"/> <amc:setting name="adfnmc-level" value="FINE"/>

Change the Model layer Logger level to WARNING. <amc:setting name="declare-logger-adfnmc-model" value="adfnmc.model"/> <amc:setting name="adfnmc-model-level" value="WARNING"/>

Specify a File Handler and set its Level and file path (per platform). <amc:setting name="declare-handler-FILE1" value="oracle.adfnmc.java.util.logging.FileHandler"/> <amc:setting name="FILE1-level" value="FINEST"/> <amc:setting name="FILE1-pattern" platform="wm" value="\Storage Card\Logs\logfile.txt"/> <amc:setting name="FILE1-pattern" platform="bb" value="/SDCard/Logs/logfile.txt"/>

Associate a Handler with a Logger. <amc:setting name="adfnmc-handlers" value="FILE1"/>

9.8.5 How to Log in Java Code
ADF Mobile client includes a utility class, oracle.adfnmc.util.logging.Trace, which wraps most of the details needed to use the logging facility. For example, to log an informational message, use the following code: Trace.log(Trace.TEST_LOGNAME, Level.INFO, this.getClass(), "someMethod", "my message"); The message can also be formatted with parameters, as in the following example: Trace.log(Trace.TEST_LOGNAME, Level.INFO, this.getClass(), "someMethod", "my message with param: {0} and another param: {1}", new Object[] {param0, param1});

9-12 Mobile Client Developer's Guide for Oracle Application Development Framework

Beta Draft

Optimizing Performance of a Mobile Client Application

In the above methods, the first parameter is the name of the Logger to send the message through, and the second parameter is the Level to apply to the message.

9.9 Debugging the Mobile Application with java.util.logging

You can use JDeveloper's native debugging tools to debug your application. In general, you _____.

For more information on debugging, see

9.10 Optimizing Performance of a Mobile Client Application
9.10.1 How to Monitor System Performance
9.10.1.1 Reviewing Oracle Mobile Server to Monitor User Synchronization Histories

9.10.1.2 Monitoring RI Volume

9.10.1.3 Monitoring Server Load

9.10.1.4 Monitoring Conflicts

9.10.2 How to Set ’RetrievedOnInsert’ on Sequence-driven Primary Key Fields
ADF Mobile client provides a setting for entity objects called RetrievedOnInsert so that you can use auto-increment fields when necessary. But to optimize performance of your mobile client application, use RetrievedOnInsert=FALSE. In the sample application, RetrievedOnInsert is set to FALSE.

Beta Draft

Testing and Debugging ADF Mobile Client Applications 9-13

Optimizing Performance of a Mobile Client Application

9-14 Mobile Client Developer's Guide for Oracle Application Development Framework

Beta Draft

A
A

Determining the Client Database Location
This document describes how you can specify the location of the client database, if necessary, and how Oracle Database Lite determines the location of the client database. This document includes the following sections:
■ ■ ■ ■

Section A.1, "About Determining the Location of the Local Database" Section A.2, "Specifying that an Application Should Use a Custom Database" Section A.3, "Specifying that an Application Should Not Use Any Database" Section A.4, "Specifying that an Application Should Use a Database Managed by Oracle Database Lite"

A.1 About Determining the Location of the Local Database
You usually do not have to specify the location of the database. If you use Oracle Database Lite to synchronize the mobile database with a backend enterprise database, then the database location details are handled automatically at runtime. However, you may need greater control over the database location for certain usage scenarios, including:
■ ■

An application that uses a database not managed by Oracle Database Lite, or An application that does not use a database

In these scenarios, you can override the default behavior by specifying the Device Database Name in the Deployment Profile Properties dialog (Figure A–1).

Beta Draft

Determining the Client Database Location A-1

Specifying that an Application Should Use a Custom Database

Figure A–1 The Deployment Profile Properties Dialog

A.2 Specifying that an Application Should Use a Custom Database
If an application must bypass Oracle Database Lite and you are providing your own database, you can specify a fully qualified path to the database file in the Device Database Name field on the Deployment Profile Properties dialog. Table A–1 lists example path specifications for different usage scenarios:
Table A–1 Fully Qualified Paths Path Format \SAMPLE.db

Usage Scenario Windows Mobile device with a database on an internal file system

Windows Mobile Storage Card\SAMPLE.db smartphone with a database on an external storage card BlackBerry with a database on an internal file system BlackBerry, with a database on an external SD card /store/home/user/SAMPLE.db /SDCard/SAMPLE.db

A.3 Specifying that an Application Should Not Use Any Database
If an application does not require a database, clear the Device Database Name field on the Deployment Profile Properties dialog.

A-2 Mobile Client Developer's Guide for Oracle Application Development Framework

Beta Draft

4 Specifying that an Application Should Use a Database Managed by Oracle Database Lite Usually.DATA_DIRECTORY is a value stored in OSE. you do not need to alter the Device Database Name field.1 What Happens When You Specify a Device Database Name When you deploy a mobile application.db.DATA_DIRECTORY/sqlite_ db/syncUsername/applicationName.2 What Happens When Oracle Database Lite Manages an Application's Database If you do not alter the value of Device Database Name in the Deployment Profile Properties. the application connects to it and continues running. Beta Draft Determining the Client Database Location A-3 . then the value represents a database identifier that OpenSync manages. When you run an application. see Section A. Otherwise. the value of the Device Database Name is written to the adf-config. because JDeveloper supplies a default value. When you start an application for the first time.DATA_ DIRECTORY/sqlite_db/syncUsername/applicationName. The general form for this location is: SQLite.4.Specifying that an Application Should Use a Database Managed by Oracle Database Lite A." ■ A. where: ■ SQLite. where mobile_client_install_root is usually "\Program Files\ADFmc" ■ syncUsername is a value gathered at runtime. A.4. For more information. the location which depends on the platform: ■ ■ BlackBerry–/store/user/home/oracle/sync Windows Mobile–mobile_client_install_root\sqlite.4.TXT. If this database exists at the specified location.xml file as the value of the connection-details key.db. depending on the value of this connection-details key: ■ ■ Empty (no value)–No database connection is made Fully qualified path–If the value of the connection-details key begins with either a '/' or '\' character. applications use a database that synchronizes with a back-end database through Oracle Database Lite. the application expects to find the database at that exact location on the device's or emulator's file system Default–If the connection-details key does not start with a leading '/' or '\'. then the database file resides in a location that Oracle Database Lite determines. In this scenario. it attempts to connect to the database at SQLite. it attempts to connect to the database in one of three ways.2. "What Happens When Oracle Database Lite Manages an Application's Database. the user is prompted to enter synchronization credentials so that Oracle Database Lite can connect to the back-end database and perform an initial synchronization to populate the mobile database.

Specifying that an Application Should Use a Database Managed by Oracle Database Lite

A-4 Mobile Client Developer's Guide for Oracle Application Development Framework

Beta Draft

B
B

Initializing a Database with a SQL Script
This document includes the following sections:
■ ■

Section B.1, "About Using SQL Initialization Scripts" Section B.2, "Getting the SQL Script to Work"

B.1 About Using SQL Initialization Scripts
If you do not want to synchronize data with Oracle Database Lite Mobile Server for an application that still requires a database, you can enable it to use a database through a SQL initialization script. Although this simple script supports a subset of SQL syntax, it is robust enough to populate a database with some default values.

B.2 Getting the SQL Script to Work
Getting the SQL initialization script to work is a two-step process:
1. 2.

Creating the SQL Script Updating adf-config.xml

B.2.1 Creating the SQL Script
Example B–1 illustrates a SQL initialization script. This example shows some of the supported SQL syntax (described in Section B.2.1.3, "SQL Syntax") through its use of the DROP TABLE, CREATE TABLE, and INSERT commands and the NUMBER and VARCHAR2 data types. For more information, see Section B.2.1.1, "Supported Column Data Type Declarations," and Section B.2.1.2, "Literal Format for Date Types."
Example B–1 A SQL Initialization Script DROP TABLE PERSONS; CREATE TABLE PERSONS ( PERSON_ID NUMBER(15) NOT NULL, FIRST_NAME VARCHAR2(30), LAST_NAME VARCHAR2(30), EMAIL VARCHAR2(25) NOT NULL ); INSERT INTO PERSONS (PERSON_ID, FIRST_NAME, LAST_NAME, EMAIL) VALUES ( 100, 'Steven', 'King', 'steven@king.net'); INSERT INTO PERSONS (PERSON_ID, FIRST_NAME, LAST_NAME, EMAIL) VALUES ( 101, Beta Draft Initializing a Database with a SQL Script B-1

Getting the SQL Script to Work

'Neena', 'Kochhar', 'neena@kochhar.net'); INSERT INTO PERSONS (PERSON_ID, FIRST_NAME, LAST_NAME, EMAIL) VALUES ( 102, 'Lex', 'De Haan', 'lex@dehaan.net'); INSERT INTO PERSONS (PERSON_ID, FIRST_NAME, LAST_NAME, EMAIL) VALUES ( 103, 'Alexander', 'Hunold', 'alexander@hunold.net'); INSERT INTO PERSONS (PERSON_ID, FIRST_NAME, LAST_NAME, EMAIL) VALUES ( 104, 'Bruce', 'Ernst', 'bruce@ernst.net'); COMMIT;

B.2.1.1 Supported Column Data Type Declarations
Table B–1 lists the data types used in column declarations. The types in italic font get mapped.
Table B–1 Data Types Mapped Type BIGINT BINARY DOUBLE FLOAT BLOB CHAR CLOB DATE DECIMAL FLOAT INT BIGINT LONG VARCHAR NCHAR DECIMAL DECIMAL VARCHAR TIME TIMESTAMP VARCHAR

Declared Type BIGINT BINARY BINARY_DOUBLE BINARY_FLOAT BLOB CHAR CLOB DATE DECIMAL FLOAT INT LONG LONG VARCHAR NCHAR NUMBER NUMERIC TEXT TIME TIMESTAMP VARCHAR

B.2.1.2 Literal Format for Date Types
Table B–2 lists the literal formats for date types that are allowed in the SQL script.
Table B–2 Declared Type DATE Allowed Format 'yyyy-mm-dd'

B-2 Mobile Client Developer's Guide for Oracle Application Development Framework

Beta Draft

Getting the SQL Script to Work

Table B–2 (Cont.) Declared Type TIME TIMESTAMP Allowed Format 'hh:mm:ss' 'yyyy-mm-dd hh:mm:ss.fffffffff'

B.2.1.3 SQL Syntax
The SQL script supports a subset of the SQL data types and commands. Declaring Data Types Example B–2 shows the syntax for declaring data types.
Example B–2 Declaring Data Types CHAR( n ) | NCHAR( n ) | VARCHAR( n ) | LONG VARCHAR( n ) | INT | DECIMAL( p,s ) | FLOAT | DOUBLE | DATE | TIME | TIMESTAMP| BLOB | CLOB | BINARY

Using Commands Example B–3 lists the supported commands.
Table B–3 Command DROP TABLE CREATE TABLE Supported Commands BNF Notation DROP TABLE name... CREATE TABLE table ( column type [ NULL | NOT NULL ] [ UNIQUE ] [ DEFAULT value ] [column_constraint_clause | PRIMARY KEY } [ ... ] ] [, ...] )

Type Description DDL Removes existing objects from the database. DDL Creates a new table.

INSERT

DML Inserts new rows into table. INSERT INTO table ( column [, ...] ) VALUES ( expression [, ...] )

B.2.1.4 Inserting Multiple Rows into a Table
Example B–3 shows adding rows to a table one at a time, using separate INSERT statements. Alternatively, you can use a single INSERT statement in the following form to add multiple rows into the table, as illustrated in Example B–4: INSERT INTO table (column1, column2,...) VALUES(?,?,?,?)
Example B–3 Inserting Rows into a Table INSERT INTO PERSONS (PERSON_ID, FIRST_NAME, LAST_NAME, 'Steven', 'King', 'steven@king.net'); INSERT INTO PERSONS (PERSON_ID, FIRST_NAME, LAST_NAME, 'Neena', 'Kochhar', 'neena@kochhar.net'); INSERT INTO PERSONS (PERSON_ID, FIRST_NAME, LAST_NAME, 'De Haan', 'lex@dehaan.net'); INSERT INTO PERSONS (PERSON_ID, FIRST_NAME, LAST_NAME, 'Alexander', 'Hunold', 'alexander@hunold.net'); INSERT INTO PERSONS (PERSON_ID, FIRST_NAME, LAST_NAME, 'Bruce', 'Ernst', 'bruce@ernst.net'); EMAIL) VALUES ( 100, EMAIL) VALUES ( 101, EMAIL) VALUES ( 102, 'Lex', EMAIL) VALUES ( 103, EMAIL) VALUES ( 104,

Example B–4 shows how a single INSERT statement adds the same rows to the PERSONS table as did the separate statements used in Example B–3.

Beta Draft

Initializing a Database with a SQL Script

B-3

Getting the SQL Script to Work

Example B–4 Inserting Multiple Rows into a Table INSERT INTO PERSONS (PERSON_ID, FIRST_NAME, LAST_NAME, EMAIL) VALUES(?,?,?,?); { 100, 'Steven', 'King', 'steven@king.net' 101, 'Neena', 'Kochhar', 'neena@kochhar.net' 102, 'Lex', 'De Haan', 'lex@dehaan.net' 103, 'Alexander', 'Hunold', 'alexander@hunold.net' 104, 'Bruce', 'Ernst', 'bruce@ernst.net' };

B.2.2 Updating adf-config.xml
After you write the script, you then update the ADF Mobile client application’s settings by adding the following script-related lines to the adf-config.xml file (located META-INF directory of the mobile client view project).
<amc:setting name="initdata" value="true"/> <amc:setting name="initdata-script" value="<path in jar to script>.sql"/>

For information on adf-config.xml, see "adf-config.xml" in Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework

B-4 Mobile Client Developer's Guide for Oracle Application Development Framework

Beta Draft

Beta Draft ADF Mobile Client Libraries C-1 .C C ADF Mobile Client Libraries This document includes a list of libraries and their supported functionality.

C-2 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft .

"Customizing the Synchronization Setup" D. Note: JDeveloper does not automatically generate adfmnc-config. Tip: This file is usually located at C:\Documents and Settings\<USERNAME>\Application Data\JDeveloper\<Build Number>\o.xml File <?xml version="1.2. you must create this file within the META-INF folder of the MobileClient project.1.D D Advanced Topics This document includes the following sections: ■ ■ Section D.dt\adfnmc-config.xml.xmlwhen you create an ADF Mobile client project.xml file (Example D–1) contains information about all of the supported platforms and form factors within its platforms and form-factors elements. "Adding Devices in the Page Designer" Section D. you can create new platforms and form factors and map the rendering kits (using in the rendering-kit-factory-mappings element).1 Adding Devices in the Page Designer The adfnmc-config. Only update this file with devices supported by the ADF Mobile client runtime. Example D–1 The adfnmc-config. Using this XML file. This file enables you to change the list of platforms and form factors without any changes to the JDeveloper mobile client extension.0"?> <adfnmc-config> <platforms> <platform id="WM" display-value="Windows Mobile" default="true"/> <platform id="RIM" display-value="RIM BlackBerry"/> </platforms> <form-factors> <form-factor width="240" height="320" default="true"/> <form-factor width="240" height="260"/> <form-factor width="240" height="240"/> <form-factor width="320" height="240"/> </form-factors> <rendering-kit-factory-mappings> Beta Draft Advanced Topics D-1 . Instead.adfnmc.

oracle.execute}" id="form1"> D-2 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft ." To create the custom sync page: 1.WMRenderingKitF actory </rendering-kit-factory-class> </rendering-kit-factory-mapping> <rendering-kit-factory-mapping idref="RIM"> <rendering-kit-factory-class> oracle. create a page called CustomMobileSyncPage. Example D–2 A Custom Sync Page <?xml version="1.1 How to Create a Custom Sync page Page To enable this sync page.MobileSyncBean.1.com/jdev/amc"> <amc:form onShow="#{syncContext. 2.adfnmc. you create an additional task flow for the application that includes the MCX file for the sync page itself.2 Customizing the Synchronization Setup You can customize the setup for mobile synchronization by creating a page that prompts users when they need to synchronize.w3.mcx with code similar to Example D–2.onShow.org/2001/XMLSchema-instance" xmlns:amc="http://xmlns.RIMRenderingKit Factory </rendering-kit-factory-class> </rendering-kit-factory-mapping> </rendering-kit-factory-mappings> <image-repository-mappings> <image-repository-mapping idref="WM"> <image-repository>c:\adf-nmc\controls\images\wm</image-repository> </image-repository-mapping > <image-repository-mapping idref="RIM"> <image-repository>c:\adf-nmc\controls\images\rim</image-repository> </image-repository-mapping > </image-repository-mappings> </adfnmc-config> D. you must create an additional ADF Mobile client task flow as well as an MCX file using the ADF Mobile client page and task flow dialogs.Customizing the Synchronization Setup <rendering-kit-factory-mapping idref="WM"> <rendering-kit-factory-class> oracle.2. "Creating the ADF Mobile Client User Interface.1 Creating a Custom Page for Mobile Sync To equip an application with a page that tells users when they need to sync the application.imagerenderer. D.0" encoding="UTF-8" ?> <amc:view xmlns:xsi="http://www.2. D. For example.adfnmc. Right-click the MobileClient project and choose File > New > ADF Mobile Client > ADF Mobile Client Page. You then update the application task flow to point to the custom sync task flow.imagerenderer. Before you begin: Familiarize yourself with creating MCX pages and task flows as described in Chapter 6. Create an MCX file.

it must include the following: ■ onShow handling to reset values on the page: <amc:form onShow="#{syncContext.userName}"value="#{syncContext.cancel.sync.execute}" ■ To terminate the sync process (which is optional). Beta Draft Advanced Topics D-3 .execute}" text="#{syncContext.password}" value="#{syncContext.statusMessage}" foregroundColor="#{syncContext. you must have the following listener tied to a control: actionListener="#{syncContext. create a checkbox component with the following value: value="#{syncContext.MobileSyncBean. Table D–1 lists the sync-related EL expressions used in this page.sync.syncInProgress}" actionListener="#{syncContext.error == null ? '#000000' : '#FF0000'}"/> </amc:panelGroupLayout> </amc:form> </amc:view> For the page to function properly. you must have the following listener tied to a control: actionListener="#{syncContext.syncLocal != true ? 'Sync' : 'OK'}" /> <amc:commandButton id="btnStop" actionListener="#{syncContext.MobileSyncBean.onShow.password}" secret="true" /> <amc:inputText id="txtUrl" label="URL: " value="#{syncContext.MobileSyncBean.execute}" The remaining content in Example D–2 is optional.userName}" /> <amc:inputText id="txtPassword" label="Password: " value="#{syncContext.saveCredentials}" ■ To initiate the sync process.execute}"> ■ Username.url}" ■ To save credentials.MobileSyncBean. and URL information are defined within an inputText component with the following values: value="#{syncContext. Password.cancel.execute}" text="Cancel" /> </amc:panelGroupLayout> <amc:panelGroupLayout layout="horizontal" id="panelGroupLayout2"> <amc:outputText id="lblProgress" rendered="#{syncContext.saveCredentials}" /> </amc:panelFormLayout> <amc:panelGroupLayout layout="horizontal" id="panelGroupLayout1"> <amc:commandButton id="btnGo" disabled="#{syncContext.syncInProgress}" value="Progress:" /> </amc:panelGroupLayout> <amc:outputText id="lblStatus" value="Status: #{syncContext.url}" /> <amc:selectBooleanCheckbox id="cbSave" label="Save Password:" value="#{syncContext.MobileSyncBean.Customizing the Synchronization Setup <amc:panelGroupLayout id="home" layout="vertical"> <amc:outputText id="lblTitle" value="Custom Mobile Sync" fontWeight="bold" /> <amc:panelFormLayout id="panelFormLayout1"> <amc:inputText id="txtUserName" label="User Name: " value="#{syncContext.

sending data. The sync password. Example D–3 The Sync Task Flow <?xml version="1. The percent complete of current sync phase.url} #{syncContext.password} #{syncContext.com/adf/controller" version="1. A brief message describing current sync phase (for example. The sync username.userName} #{syncContext. #{syncContext. Inquires if the password should be saved. Inquires if a sync operation currently running. The address of the Mobile Server against which to sync.syncInProgress} #{syncContext.2"> <task-flow-definition id="custom-mobile-sync-task-flow"> <default-activity id="__1">CustomMobileSyncPage</default-activity> <view id="CustomMobileSyncPage"> <page>/CustomMobileSyncPage. receiving data).statusMessage} #{syncContext. Create the bounded task flow. 4.0" encoding="windows-1252" ?> <mc-config xmlns="http://xmlns. create a task flow called custom-mobile-sync-task-flow. For example.saveCredentials} #{syncContext.currentProgress} 3.xml using code similar to that illustrated in Example D–3.error} #{syncContext.oracle.mcx</page> </view> <task-flow-return id="mobileSyncSuccess"> <outcome id="__2"> <name>mobileSyncSuccess</name> </outcome> </task-flow-return> <task-flow-return id="mobileSyncFailure"> <outcome id="__3"> <name>mobileSyncFailure</name> </outcome> </task-flow-return> <control-flow-rule id="__4"> <from-activity-id id="__5">CustomMobileSyncPage</from-activity-id> <control-flow-case id="__6"> <from-outcome id="__7">toMobileSyncSuccess</from-outcome> <to-activity-id id="__8">mobileSyncSuccess</to-activity-id> </control-flow-case> <control-flow-case id="__9"> <from-outcome id="__10">toMobileSyncFailure</from-outcome> <to-activity-id id="__11">mobileSyncFailure</to-activity-id> </control-flow-case> </control-flow-rule> D-4 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . Right-click the MobileClient project and choose File > New > ADF Mobile Client > ADF Mobile Client Task Flow.Customizing the Synchronization Setup Table D–1 Expression Sync EL Expression Reference Description Contains any exception that may have been thrown by a sync operation.

Customizing the Synchronization Setup </task-flow-definition> </mc-config> Figure D–1 shows the task flow created from the code illustrated in Example D–3.2.1. such as CustomMobileSyncFlowCall in Example D–4. add a task flow call that points to the sync task flow. Figure D–1 Bounded Task Flow for Sync 5. In the application task flow. Example D–4 The Task Flow Call to the Sync Task Flow <task-flow-call id="CustomMobileSyncTaskFlowCall"> <task-flow-reference> <document>/custom-mobile-sync-task-flow.2 Updating the Application Task Flow Add a control flow rule to override the toMobileSyncTaskFlow outcome Example D–5 The Override Control Flow Rule <control-flow-rule> <from-activity-id>*</from-activity-id> <control-flow-case> <from-outcome>toMobileSyncTaskFlow</from-outcome> <to-activity-id>CustomMobileSyncTaskFlowCall</to-activity-id> </control-flow-case> </control-flow-rule> Beta Draft Advanced Topics D-5 . Add a control flow rule to override the toMobileSyncTaskFlow outcome D.xml</document> <id>custom-mobile-sync-task-flow</id> </task-flow-reference> </task-flow-call> 6.

xml: ■ lastuser .The framework will use the last-known parameters to automatically initiate sync. This mode is most useful in scenarios where each user has his own device. prompt .The framework will always prompt the user for sync parameters before initiating sync.2 How to Control the Prompting of Synchronization Parameters You can control how and when to prompt for sync parameters.2. These include the following: ■ ■ ■ ■ Sync username Sync password Mobile Server hostname and IP address Whether to save the password Currently. D-6 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . but it is necessary in situations where multiple users share the same device. This mode is less convenient for the end user. The parameter collection mode can be altered by specifying a value for the sync-credentials-mode key in adf-config. Certain parameters must be supplied to the ADF Mobile client framework before a synchronization operation can begin. each of whom requires his own subset of data. ■ ■ The default mode is lastuser. and the user will never be prompted. provided .Customizing the Synchronization Setup D. the framework supports three different modes for collecting these parameters. and the user will not be prompted unless sync has never been run before.The application developer will provide the necessary sync parameters.

2. Restart Mobile Server Re-assign.E E Troubleshooting This document includes the following sections: ■ ■ Section E.1. 2. Note: The Mobile Server user name and credentials are specified in the Application Data Publication page of the deployment profile. "Recovering from an mSync Failure" Section E. You can only use the JDBC Positional binding style. "Errors When Testing Value Binding Queries" E. E.1 Recovering from an mSync Failure To recover from an mSync failure: 1. 4. or re-simulate a new SD card.2 Errors When Testing Value Binding Queries Issue JDeveloper generates the following error when you test a value binding query: SQL Query Error Message: Missing IN or OUT parameter at index:: 1 Solution This error occurred because you used the incorrect binding style. Verify that the SD card is connected and mounted on the device or simulator. perform the following: 1. Verify that the IDE connection with the mobileadmin user exists in JDeveloper and is a valid connection.2. 3. 3. which substitutes question mark symbols (?) for the Beta Draft Troubleshooting E-1 . Restart the device and then re-start Mobile Server. For issues at runtime. Delete the Oracle folder within the Device Memory folder and from the media card. Verify that the database exists on the device’s SD card. such as unable to login or invalid login credentials.

8.4." E-2 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . See also Section 5. "Adding Positional Binding Variables to View Objects.Errors When Testing Value Binding Queries bind parameters names.

oracle.apps.. public class CustomOperationProvider implements OperationProvider { public CustomOperationProvider() { } public OperationDelegate getCustomOperation(Object module. "Using the OperationProvider and OperationDelegate Interfaces" F.dataProvider" DataControl="AppModuleDataControl" RequiresUpdateModel="true" Action="invokeMethod" MethodName="Foo" IsViewObjectMethod="false"> <NamedData NDName="text" NDValue="testString" NDType="java.sales.OperationProvider.String"/> </methodAction> </bindings> Example F–2 Using OperationProvider and OperationDelegate package oracle. import oracle.sales.1. String instanceName.List.server.dbf.DataControl.util. oracle.ApplicationModuleImpl.1 Using the OperationProvider and OperationDelegate Interfaces Example F–2 illustrates a sample implementation of an OperationProvider and OperationDelegater to call custom methods.adfnmc. <methodAction id="Foo" InstanceName="AppModuleDataControl. oracle.jbo.apps.LeadVOImpl..mobile. Example F–1 The bindings Metadata </bindings> .view. String methodName) Beta Draft Sample Code F-1 . Example F–1 illustrates the corresponding metadata in the page definition file. import oracle.adfnmc.entities. import oracle.LeadEOImpl.adfnmc.model.bindings.mobile. import import import import oracle.bindings.OperationDelegate.bindings.mobile.sales.uiModel.F F Sample Code This document includes the following sections: ■ Section F.java.lang.adfnmc.apps.views.

List params) { String arg0 = (String)params.equals("AppModuleDataControl... List params) { ((LeadVOImpl)instance). } else { // etc.testMethod(arg0). } private static final class convertLeadToOptyDelegate implements OperationDelegate { public Object execute(Object instance. } } private static final class testMethodDelegate implements OperationDelegate { public Object execute(Object instance..equals("convertLeadToOpty")) { return new convertLeadToOptyDelegate().equals("testMethod")) { return new testMethodDelegate(). } } } F-2 Mobile Client Developer's Guide for Oracle Application Development Framework Beta Draft . return ((ApplicationModuleImpl)instance). } } else if (instanceName.get(0).OptyVO1")) { // etc..convertLeadToOpty(). } } else if (instanceName. } return null.dataProvider")) { if (methodName. } else { // etc.Using the OperationProvider and OperationDelegate Interfaces { if (instanceName.equals("AppModuleDataControl.. return null..equals("AppModuleDataControl.LeadVO1")) { if (methodName.

6-50 procedures for using. 6-58. bounded task flows creating. 2-1 ADF Mobile client task flows adding. 1-5 application modules definition. 1-3 ADF Mobile client applications as extensions of ADF server-side applications. 4-4 creating. defined. 6-49 described. 5-19 convertDateTime component attributes. 4-5 prerequisites. 6-54 B binding layer components role in the ADF Mobile client lifecycle. 1-7 dynamic tables. 5-4 application workspaces auto-generated artifacts. 6-57. 4-1 attributes setting using Property Inspector. 1-1 run-time architecture. 6-57. 6-4 supported activities. 6-58. 6-57 procedures for using. A-2 databases supported. 5-9 DRAFT 4/20/10 Index-1 . 6-59 commandButton component attributes. 6-49 D data controls adding to MCX pages. 6-59 commandLink component procedures for using. 6-49 procedures for using. 7-4 adfnmc-config. 6-60 ADF Business Components usage by ADF Mobile client. 1-5 overview. See table components adf-config. See dynamic tables ADF Read-Only Table. 6-58. 6-57. 6-11 data synchronization overview. 6-20 C calling custome code with the execute method. 1-4 database locations designating as alternative to Oracle OpenSync. 6-50 convertNumber component attributes. D-1 application developement typical stages. 5-14 devices supported. 6-59 procedures for using.Index A actionListener attribute navigation. 6-60 ActionListener class. 1-1 overview. 6-2 ADF Read-Only Dynamic Table. 6-18 control hints ADF Mobile client support of. 6-50 described. 1-7 declarative validation rules adding. 1-5 application development architecture. 6-59 Component Palette ADF Mobile client components and. See tables ADF Table.xml registering OperationProvider class. 7-2 command components actionListener attribute. 6-60 attributes. 6-2 5-4 E entity objects adding transient attributes to. 5-2 ADF Mobile client infranstructure requirements.xml file usage for adding devices.

6-37 inputText component. 6-16 procedures for creating. 6-33 procedures for using. 6-43 inputDate component attributes. 6-74 described. 6-2 I image component attributes. 6-33 outputText component. 6-58. 6-33 G geometry management commandButton component. 6-22 forms creating. A-2 Property Inspector. 6-40 selectOneChoice component. 6-61 commandLink component.xml file creating task flows. 6-60 O OperationDelegate interface. 6-76 Alt. 5-3 display hints. 6-65 creating for BlackBerry devices. 5-8 event listeners using. 6-76 Main. 6-58. 6-52 input components form. 6-31 N navigation outcomes. 6-77 Expression Language support for. 6-31 procedures for using. 5-20 editing transient attributes of. 6-51 supported file formats. 7-2 OperationProvider use with OperationDelegate. 6-60 navigationactionListener attribute. 5-24 JDeveloper Component Palette. 6-39 inputText component. 6-34 described. 7-2 MobileClient-task-flow. 6-63. 6-37 inputText component attributes. 6-64 commandMenuItem component. 6-22 creating declaratively. 6-2 designating the database location. 6-15 generated code for. 1-8 5-5 J Java classes generated by JDeveloper. 6-36 inputNumberSpinbox component. 6-37 procedures for using. 6-10 creating in JDeveloper. 6-61 image component. 6-21 inputDate component. 6-22 Fusion Order Demo application installing. using for. 3-1 L layout components listed. 6-48 selectBooleanCheckbox component. 6-21 locale inputDate component and. 6-42 selectOneChoice component. 6-20 F form component attributes.creating subsets of server-side entity objects. 6-2 diagrammer. 6-72 creating for Windows Mobile devices. 6-62 methods simulating dynamic binding. 6-52 inputDate component. 6-34 inputNumberSpinbox component attributes. 7-3 M MCX pages basic structure. 6-33 locale. 6-64 menuControl component. 6-18 creating MCX pages. 6-33 inputNumberSpinbox component. 6-62 design-time usage. 6-22 defined. 6-67 subMenu component. 6-68 menuGroup component. 6-63 menu component. 6-15 menu adding event listeners. 6-45 getCustomOperation use with OperationDelegate. 6-31 selectBooleanCheckbox component. 7-3 outputText component Index-2 DRAFT 4/20/10 . 6-15 task flows. definition. 6-69 types. 5-23 methods not supported by ADF Mobile client. 6-21 procedures for using.

6-45 selectOneChoice component attributes. 6-54 task flows creating. 4-1 SQLite overview. 1-8 P panelGroupLayout component attributes. 5-14 validators ADF Mobile client support of. 5-5 DRAFT 4/20/10 Index-3 . 6-54 widgets for. 5-19 view objects creating subsets of server-side view objects. using diagrammer. 4-5 deployment as model project. 6-52 tables dynamic. 6-47 procedures for using. 6-54 S selectBooleanCheckbox component attributes. 5-18 hints. 6-40 selectItem component described. 5-11 view life cycle. data subsetting of. 6-54 table component creating. 6-45 selectItems component described. 6-54 described.attributes. 6-47 definition. 6-2 V validation rules declarative adding. 6-40 procedures for using. 5-3 supported. 6-20 procedures for using. 6-43 server-side ADF applications basing ADF Mobile client applications on. 1-7 4-1 T table read-only. 1-7 view accessors ADF Mobile client support of. 6-20 W WYSIWYG support. 6-10 R read-only tables. 6-22 Property Inspector described. 6-43 procedures for using.

Index-4 DRAFT 4/20/10 .

Sign up to vote on this title
UsefulNot useful