Wednesday, October 14, 2015

Create a new row programmitically

Several ways to create new row:

createrow() or createAndIntRow()
http://mahmoudoracle.blogspot.ca/2012/03/insert-rows-in-adf-view-object.html

control the insert location in table
https://mjabr.wordpress.com/2011/07/02/how-to-control-the-location-of-the-new-row-in-aftable/

Thursday, September 24, 2015

ADF action binding with Generics

ADF binding does not support Generics See below,

https://community.oracle.com/message/4304798

For example, in AM you have List<Long> getListCount() {}, you will get following exception.

Go to binding source, change following

<NamedData NDName="testList" NDType="java.util.List&lt;java.lang.Long>"/>
to
<NamedData NDName="testList" NDType="java.util.List"/>


Exception
oracle.jbo.InvalidOperException: JBO-25221: Method TestAppModuleDataControl.dataProvider.doSomethingWithList() not supported
     at oracle.adf.model.binding.DCInvokeMethod.invokeMethod(DCInvokeMethod.java:491)
     at oracle.adf.model.binding.DCDataControl.invokeMethod(DCDataControl.java:2134)
     at oracle.adf.model.bc4j.DCJboDataControl.invokeMethod(DCJboDataControl.java:3020)

Friday, September 18, 2015

Page jsff not a source file warning

Warning: java.lang.IllegalArgumentException: The file file:<directory listed here>\DepartmentsView.jsff is not a source file

https://blogs.oracle.com/jdevotnharvest/entry/warning_java_lang_illegalargumentexception_the

<!-- 
  * WORK AROUND
  * randomly, when editing files, compilation fails with an illegal argument exception
  * java.lang.IllegalArgumentException: The file <file name> .jsff is not a source file
  * To avoid this error, which initially has been reported as bug 12732652 for Facelets
  * I added the jsp-property-group entry below
 -->
 <jsp-config>
  <jsp-property-group> 
    <url-pattern>*.jsff</url-pattern>
    <is-xml>true</is-xml>
   </jsp-property-group>
  </jsp-config>
 <!-- 
  * END WORK AROUND
  -->

Monday, August 31, 2015

ADF Install tag lib


Add following to jsff
xmlns:c="http://java.sun.com/jsp/jstl/core"

But got complaint error:
Tag library referenced Tag library referenced but not installed

Go to
Project --> Select Project Property --> Select JSP Tag libraries 

There you can add library needed.

Thursday, August 27, 2015

ADF Table with context menus

We can add ADF Table context menus so user right clicks on a row, the context menu will be displayed.


add a facet to table
<af:table>
        <f:facet name="contextMenu">
           <af:popup id="cmpop" contentDelivery="lazyUncached">
               <af:menu id="cmm1" text="My Context Menu">
                  <af:commandMenuItem text="Do something"
                          id="cmi1"
                          actionListener="#{backingBeanScope.myBean.myActionListener}"/>
               </af:menu>
          </af:popup>
        </f:facet>
</af:table>
 Table has another property:
          contextMenuSelect="true" so this ensures the right click on a row will make the row selected and context menu shows up.

Note:

  • add <af:showPopupBehavior triggerType="contextMenu" popupId="cmpop"/> if you like for table columns for context menu display
  • add partial triggers so UI refreshes after context menu execution.

Wednesday, August 26, 2015

Refresh adf region without contextual event

The trick is region will refresh whenever its input parameter changes.

  • Go the page with the region which will be refreshed.
  • Go to binding tab and select the region from Executables
    • add an input parameter id=refreshInd value=#{pageFlowScope.dummyParam}
    • set Refresh=ifNeeded
So any point, you want the region to refresh, 

ADFUtils.getPageFlowScope().put("dummyParam", Long.toString(System.currentTimeMillis()));

Another trick is using current mill second as input value - that's guaranteed to have a new value for the input.

Thursday, August 20, 2015

Missing IN or OUT parameter error in ADF binding variable


See blog psot below:

The infamous Missing IN or OUT parameter error

In short:
make sure the bind variables are set to required. Bind variables that are marked as optional are only good to be used in View Criterias.