A simple calculator….
• In Vanilla ADF…… • InputText for Value
• OutputText for Result
• Managed Bean
• Holds the values
This is annoying….
• ADF Mobile
• Autosubmit and PartialTriggers does not exist !
• 2 Options
I. Use application Scoped Variables (no Coding)
• Not meant for this purpose
II. Use the Property Change Listener Pattern
• Create a Webserivce Datacontrol
Using Webservices (1)
• Just drag & drop the method from the Data Control
Using Webservices (1)
• The PageDefinition File
• The PageDefinition
Using Webservices (2)
• Invoke directly from java.
• Does not use the binding layer
• Uses Framework utilityMethod
• Datacontrol must be in available in DataBindings.cpx
• Do Not Hook Up Webservices Directly to Your Page
– Use Multiple Layers of Datacontrols For Abstraction
– You are in control
• By default the webservice will be called on every request
• Simply compare if what is in memory is the same as what needs to be
MyLocation cur = (MyLocation)s_locationsList.get(0);
Integer currentLoc = cur.getId();
// clear cache
The return of the invokeAction
• The current row in ADF Mobile is not preserved across pages that bind to
the same data collection
– Inside the <amx:listItem> element of the list page, you need to add a
<amx:setPropertyListener> element to store the row key in a pageFlowScope
– In the page definition of the detail page, you need to add a setCurrentRowWithKey
action, which uses the pageFlowScope variable to set the current row.
– In the page definition of the detail page, you need to add an invokeAction
executable for the setCurrentRowWithKey action to ensure the current row is
automatically set when entering the detail page.
The Nice Differences
• Device Interaction
• Thematic Maps
• The Device Datacontrol
• Drag n Drop support
• Attributes as fields
• Operations as buttons
• Take a picture ……………
• …… or get one from the Library
Be careful !!
• DESTINATIONTYPE_DATA_URL you will get the image as base64 encoded
• Camera’s are very good.
• Picture quality is amazing.
– Encoding such images as base64 causes memory issues
• Don’t blow up your app.
– iOS you should set quality parameter to a value less then 50 to avoid
– On Android out-of-memory can be caused with default image settings. Make
image smaller by setting targetWidth and targetHeight
• Today was about differences
• Know the differences
• Know the ADF Mobile way to do it
• There are many parallels
• Developing ‘feels’ like Vanilla ADF
• Component Based Developement
• ADF ‘like’ config files
• DataControl / DataBinding
• My advise
• Use ADF Mobile like ADF
• Know The DataControl by heart
• Know how to use Multiple (levels) of Datacontrols
• Use Java; it is more flexible then declarative