January 22, 2013

Accessing Session Scope and Request Scope objects in ADF


We can access the session Scope objects in ADF by using ADFContext class.

The syntax for this is:

ADFContext.getCurrent().getSessionScope().get(obj);

Where obj is the object name configured in the session scope.

In the same way, we can also access the objects in request scope by using the below syntax:

ADFContext.getCurrent().getRequestScope().get(obj);

January 16, 2013

Fetching values of a list object of ADF bindings from Java


Before giving the solution, let me explain my scenario. I have JSF binding object “internalProfile” which is a list of a class. The definition of the object is like below.

List<KeyValue> internalProfile=new ArrayList<KeyValue>();

KeyValue is a bean with two String properties key and value.
A binding is created for the “internalProfile” and input fields are created for its values as below in JSF page.

//code in the JSF
<af:forEach items="#{bindings.internalProfile.rangeSet}" var="row" varStatus="sdiIndex">
<af:inputText value="#{row['value']}" label="#{row['key']}"                            id="it_${sdiIndex.index}"></af:inputText>
            </af:forEach>

We can see the bindings of the page below.





Now, I need to fetch all these text fields in my bean which is achieved by using the below code snippet.

BindingContainer bc =BindingContext.getCurrent().getCurrentBindingsEntry();
            oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding list = (oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding)bc.get(BINDING_INTERNAL_PROFILE);
            Row[] allRowsInRange = list.getAllRowsInRange();


January 9, 2013

Invoking Application Module from Java


Below code snippet will allow us to access the application module from java class.
In this code, I was trying to get records from the table.
For this, I have got the view object from the application module and applied a view criteria on the view object through which I got the records row.

/*Accessing Application Module*/
        AppModuleImpl appModule =
            (AppModuleImpl)ADFUtils.getApplicationModuleForDataControl("AppModuleDataControl");
/*Accessing View Object from App Module. Here, User_infoView is my own view created in App module*/
        ViewObjectImpl voImpl = appModule.getUser_infoView1();
        ViewCriteria vc = voImpl.createViewCriteria();
        ViewCriteriaRow vcRow = vc.createViewCriteriaRow();
        vcRow.setAttribute(“firstname”, "= 'anand'");
        vc.add(vcRow);
        voImpl.applyViewCriteria(vc);
        voImpl.executeQuery();
        System.out.println("Query: " + voImpl.getQuery());
        while (voImpl.hasNext()) {
            Row row = voImpl.next();
            String[] attributeNames = row.getAttributeNames();
            for (int index = 0; index < attributeNames.length; index++) {
                    System.out.println("Required: " +row.getAttribute(attributeNames[index]));
            }
        }