Posts

Showing posts from February, 2012

IE Compatibility Mode and ADF Faces

Straight to the point :)
You cannot use Internet Explorer in compatibility mode while running ADF Faces pages.Please see Supported Platforms in the following link http://jdevadf.oracle.com/adf-richclient-demo/docs/release.html.  Recently a check has been added in ADF Faces framework to alert you if the browser and document modes are not equal to the version number of the Internet Explorer that  you are running.


How Do You Find Out The Compatibility View Settings for IE?


Click Alt on your IE browser. That will bring up a new menu. Click Tools > Compatibility View settings.  In the Compatibility View Settings dialogue window,  locate the URL for your application from Compatibility View list and then click Remove. Also, uncheck all compatibility mode options as appropriate.

While running your page, you can check the compatibility mode of the browser by  pressing F12 (if your on IE 9 or higher). When you press F12, you will get  Developer Tools window with lot of information :)


Free online Oracle ADF eCourse !

Oracle JDeveloper and Oracle ADF 11g Release 1 (11.1.1.6.0)

Programmatically Starting Transaction in a Task Flow

Sometimes static transaction settings for a task flow may not be really flexible enough to meet your use case requirements. For instance, based on the  invocation context(based on the caller) a task flow may need to either start new transaction or skip the transaction altogether. A simple example illustrating the programmatic transaction creation is attached in the post. Take a look at the  dept-task-flow-definition in the example which uses 'TxnInitializer' method for programmatically starting new transaction based on the input parameter(Transaction) value set by the caller. Here is the code snippet :


public void beginNewTransaction() {
BindingContext context  = BindingContext.getCurrent();
String dataControlFrameName  = context.getCurrentDataControlFrame();
DataControlFrame  dcFrame  = context.findDataControlFrame(dataControlFrameName );
dcFrame.beginTransaction(new TransactionProperties());
}



Download

You can download the sample workspace from here.
1. Run main.jsf.
2. The dept…

Using oracle.adf.view.rich.util.ResetUtils for programmatically resetting page content

Background - Custom reset implementation that is discussed in an old post - http://jobinesh.blogspot.com/2009/10/reset-content-of-web-page.html

Today I noticed a Utility class for resetting component tree - oracle.adf.view.rich.util.ResetUtils::reset(UIComponent startComponent)
It resets all editable value holders under the 'startComponent'. Hope this may save some of your time.

JSF Component ID must start with a letter...

If you are are on ADF 11gR2 and seeing the following error when you run the application, then change the component id to match with JSF spec :)

The following exception occurred:
oracle.mds.exception.MDSRuntimeException: JSF Component ID must start with a letter.
at oracle.mds.internal.el.ELUtils.getValue(ELUtils.java:150)

See section 3.1.1 Component Identifiers in the following pdf
http://download.oracle.com/otn-pub/jcp/jsf-2.0-fr-full-oth-JSpec/jsf-2_0-fr-spec.pdf
It says ....
Every component may be named by a component identifier that must conform to
the following rules:
■ They must start with a letter (as defined by the Character.isLetter() method).
■ Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by
the Character.isDigit() method, dashes (‘-’), or underscores (‘_’).

To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers be as short as possible.

If a component has been giv…

dvt:pieGraph with GraphDataModel Sample

Sharing a simple example for dvt:pieGraph that uses manually created GraphDataModel(hand coded data model without using ADF binding).


Download

You can download the sample workspace from here.
Check out PieBean.java to get a feel of implementation.
[Runs with Oracle JDeveloper 11g R2 PS1]

Disclaimer

The views expressed on this blog are my own and do not necessarily reflect the views of my employer.