Wednesday, September 3, 2014

Oracle MAF Skinning

I tried two ways of doing skinning in MAF -
1. skin-addition -> skin-addition tag adds a new stylesheet to the existing skin
2. skin -> skin tag is used to define a new skin or to customize existing skin for particular OS or device.

Note: maf-config.xml file under Application Resources -> Dscriptors -> ADF META-INF contains the default skin family. That skin family will be applied to the application.

1. <skin-addition>

Tuesday, August 26, 2014

Oracle MAF - Disabling Landscape mode

Recently I had a requirement for disabling landscape orientation.
Frank and Chris suggested me below and it worked for me:

iOS
--------
For iOS on the deployment profile. 
Select Application --> Application Properties --> Deployment --> select iOS profile and and click on edit. Select device orientations. And there you will find option for enabling/disabling portrait/landscape modes for iPhone and iPad.

Saturday, August 23, 2014

Oracle MAF - Using Panel Group Layout - wrap

In Oracle MAF one new option has been provided for the attribute "layout" of panelGroupLayout. It is very useful. I will give you a scenario: you want to create a contact us section where by you will want the text, followed by phone numbers(which should be clickable and should open phone dial on clicking) and email(clicking on which a write message of your default mail should open).

For such scenario you can use panel group layout with layout property set to wrap and inside it you can use output text and golinks to serve the purpose.



Friday, August 22, 2014

Oracle MAF - Issues, Tips and Tricks

Hi All,

I have built a mobile application using Mobile Application Framework released in July 2014.
In the mobile app I have done integration using REST services with JSON output. And the user will fill some forms and will send attachments from camera and library. The user can see history and I have used a pie chart as well for historical data.

Here is some of the issues, tricks which I learnt and I am sharing the same:

*********************************************************************************

ISSUES, TIPS & TRICKS:

*********************************************************************************
1.

[11:29:47 AM] Checking state of Android Debug Bridge server...
[11:29:47 AM] Android Debug Bridge server already running.
[11:29:55 AM] Command-line executed: ["C:\Program Files\Android\android-sdk\platform-tools\adb", start-server]
[11:29:55 AM] ADB server didn't ACK
[11:29:55 AM] * failed to start daemon *
[11:29:55 AM] * daemon not running. starting it now on port 5037 *
[11:29:55 AM] Command-line execution failed (Return code: -1)
[11:29:55 AM] Deployment cancelled.

Solution:
Go to platform-tools and kill adb server, it might be running because you would have done some debugging.
cd C:\Program Files\Android\android-sdk\platform-tools
adb kill-server

Thursday, January 16, 2014

ADF Exception Handling - Taskflow, Controller, Model

Exception handling in ADF can be done at following three places:
a. Taskflow Exception Handler
b. Extending Controller level ExceptionHandler - for controller level exceptions
c. Extending DCErrorHandlerImpl- for model

  • Whenever there is an exception in model layer it is being handled by custom class extending DCErrorHandlerImpl.
  • Exception in ADF Controller can be handled by creating a custom class extending Controller level ExceptionHandler.
  • If an exception rethrown from above, it can be handled at TaskFlow level exception handler which can be a view activity, router or a method call.
One by one let`s discuss all of them:

Sunday, January 5, 2014

ADF integration with Jasper Report

In this post i am just posting a few important steps and code snippet which can be helpful to integrate with Jasper Reports for generating a pdf or an excel.


You need add the following jars from /modules/ext folder of Jasper Reports in your ADF project(fonts related jar need to be added if you are using some specific fonts in your jrxml):

Make sure to add above jars from Add Jar/Directory and not through Add Library, otherwise you will get the following error:
<ActionListenerImpl> <processAction> java.lang.ClassCircularityError: net/sf/jasperreports/engine/JRException
javax.faces.el.EvaluationException: java.lang.ClassCircularityError: net/sf/jasperreports/engine/JRException

Wednesday, December 25, 2013

ADF - Java Mail with attachments

First create a mail session in weblogic server. In Weblogic server under "Services" you can find Mail sessions. Create a new Mail Session. Give following information:
Name - test
JNDI Name - mail/test
Java Mail Properties
mail.smtp.password=[password]
mail.debug=false
mail.smtp.user=[user name]
mail.from=xx-do-not-reply@abc.com
mail.smtp.host=[host name or IP of exchange server]
mail.smtp.auth=false
mail.smtp.port=25
mail.verbose=false
mail.disable=false
mail.transport.protocol=smtp


The following java method can be called to send mail with attachments

destination - array of email addresses to which mail has to be sent
subject - subject of mail
content - body of mail
data - list containing byte[] of the files to be attached in the email
fileNames - names of the attachement
contentTypes - content types of the attachments


ADF - setting default value for Range Slider

When using a range slider if you put minimum=0 and maximum=10000 then it will look like this :

            <af:inputRangeSlider value="#{bindings.area.inputValue}"
                                 shortDesc="#{bindings.area.hints.tooltip}"
                                 label="#{bindings.area.hints.label}"
                                 required="#{bindings.area.hints.mandatory}"
                                 id="irs1" autoSubmit="true" majorIncrement="-1"
                                 minorIncrement="-1" minimumIncrement="100"
                                 maximum="10000" partialTriggers="cil3" styleClass="selectField"
                                 animationInterval="0"
                                />



ADF - Showing UCM Images in carousel

I had an interesting requirement where we are showing all the available properties in a list view(new feature in 11.1.1.7). Each row of a list view has a carousel. Carousel will show images of the concerned property. The images are residing in UCM. Whenever a new image is uploaded in UCM automatically the carousel will include the new image as well.




Now i will explain how we have implemented the same.

ADF mobile - Setting Up

ADF Mobile – Setting up
1.     Downloads:
  • ADF Mobile support is available from Jdeveloper 11.1.2.3.0 onwards. It can be downloaded from here. Download Jdev 11.1.2.4
  • ADF Mobile Developer`s guide can be downloaded from here.                                                                       
  • Android SDK can be downloaded from here. Android SDK contains a set of API libraries and tools to build test and develop Android Apps.