Some handy code for backing beans ( ADF & JSF )

Tags: backing beans, ADF, Bindings

http://delivers2u.blogspot.com.au/2011/10/how-to-access-adf-definitions-using.html#!/2011/10/how-to-access-adf-definitions-using.html

http://biemond.blogspot.com.au/2009/03/some-handy-code-for-backing-beans-adf.html

http://www.learnoracleadf.com/2013/05/access-adf-view-object-bindings-from.html

https://technology.amis.nl/2008/02/02/adf-making-an-operation-binding-available-in-every-page-definition-binding-container/


// print the roles of the current user
for ( String role : ADFContext.getCurrent().getSecurityContext().getUserRoles() ) {
   System.out.println("role "+role);
}


// get the ADF security context and test if the user has the role users      
SecurityContext sec = ADFContext.getCurrent().getSecurityContext();
if ( sec.isUserInRole("users") ) {
}
// is the user valid
public boolean isAuthenticated() {
 return ADFContext.getCurrent().getSecurityContext().isAuthenticated();
}
// return the user
public String getCurrentUser() {
 return ADFContext.getCurrent().getSecurityContext().getUserName();
}


// get the binding container
BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();

// get an ADF attributevalue from the ADF page definitions
AttributeBinding attr = (AttributeBinding)bindings.getControlBinding("test");
attr.setInputValue("test");

// get an Action or MethodAction
OperationBinding method = bindings.getOperationBinding("methodAction");
method.execute();
List errors = method.getErrors();

method = bindings.getOperationBinding("methodAction");
Map paramsMap = method.getParamsMap();
paramsMap.put("param","value")  ;     
method.execute();


// Get the data from an ADF tree or table
DCBindingContainer dcBindings = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();

FacesCtrlHierBinding treeData = (FacesCtrlHierBinding)bc.getControlBinding("tree");
Row[] rows = treeData.getAllRowsInRange();

// Get a attribute value of the current row of iterator
DCIteratorBinding iterBind= (DCIteratorBinding)dcBindings.get("testIterator");
String attribute = (String)iterBind.getCurrentRow().getAttribute("field1");

// Get the error
String error = iterBind.getError().getMessage();


// refresh the iterator
bindings.refreshControl();
iterBind.executeQuery();
iterBind.refresh(DCIteratorBinding.RANGESIZE_UNLIMITED);

// Get all the rows of a iterator
Row[] rows = iterBind.getAllRowsInRange();
TestData dataRow = null;
for (Row row : rows) {
  dataRow = (TestData)((DCDataRow)row).getDataProvider();
}

// Get the current row of a iterator , a different way
FacesContext ctx = FacesContext.getCurrentInstance();
ExpressionFactory ef = ctx.getApplication().getExpressionFactory();
ValueExpression ve = ef.createValueExpression(ctx.getELContext(), "", TestHead.class);
TestHead test = (TestHead)ve.getValue(ctx.getELContext());

// Get a session bean
FacesContext ctx = FacesContext.getCurrentInstance();
ExpressionFactory ef = ctx.getApplication().getExpressionFactory();
ValueExpression ve = ef.createValueExpression(ctx.getELContext(), "", TestSession.class);
TestSession test = (TestSession)ve.getValue(ctx.getELContext());

// main jsf page
DCBindingContainer dc = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
// taskflow binding
DCTaskFlowBinding tf = (DCTaskFlowBinding)dc.findExecutableBinding("dynamicRegion1");
// pagedef of a page fragment
JUFormBinding form = (JUFormBinding) tf.findExecutableBinding("regions_employee_regionPageDef");
// handle to  binding container of the region.
DCBindingContainer dcRegion   = form;

// return a methodexpression like a control flow case action or ADF pagedef action
private MethodExpression getMethodExpression(String name) {
 Class [] argtypes = new Class[1];
 argtypes[0] = ActionEvent.class;
 FacesContext facesCtx = FacesContext.getCurrentInstance();
 Application app = facesCtx.getApplication();
 ExpressionFactory elFactory = app.getExpressionFactory();
 ELContext elContext = facesCtx.getELContext();
 return elFactory.createMethodExpression(elContext,name,null,argtypes);
}

//
RichCommandMenuItem menuPage1 = new RichCommandMenuItem();
menuPage1.setId("page1");
menuPage1.setText("Page 1");
menuPage1.setActionExpression(getMethodExpression("page1"));

RichCommandButton button = new RichCommandButton();
button.setValueExpression("disabled",getValueExpression(""));
button.setId(item);
button.setText(item);
MethodExpression me = getMethodExpression("");
button.addActionListener(new MethodExpressionActionListener(me));
footer.getChildren().add(button);


// get a value
private ValueExpression getValueExpression(String name) {
 FacesContext facesCtx = FacesContext.getCurrentInstance();
 Application app = facesCtx.getApplication();
 ExpressionFactory elFactory = app.getExpressionFactory();
 ELContext elContext = facesCtx.getELContext();
 return  elFactory.createValueExpression(elContext, name, Object.class);
}
// an example how to use this
RichInputText input = new RichInputText();
input.setValueExpression("value",getValueExpression(""));
input.setValueExpression("label",getValueExpression(""));
input.setId(item);
panelForm.getChildren().add(input);

// catch an exception and show it in the jsf page
catch(Exception e) {
 FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), "");
 FacesContext.getCurrentInstance().addMessage(null, msg);
}

                 
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_WARN, msgHead , msgDetail);
facesContext.addMessage(uiComponent.getClientId(facesContext), msg);                                                                  


// reset all the child uicomponents
private void resetValueInputItems(AdfFacesContext adfFacesContext,
                                 UIComponent component){
   List<UIComponent> items = component.getChildren();
   for ( UIComponent item : items ) {
     
       resetValueInputItems(adfFacesContext,item);
     
       if ( item instanceof RichInputText  ) {
           RichInputText input = (RichInputText)item;
           if ( !input.isDisabled() ) {
               input.resetValue() ;
               adfFacesContext.addPartialTarget(input);
           };
       } else if ( item instanceof RichInputDate ) {
           RichInputDate input = (RichInputDate)item;
           if ( !input.isDisabled() ) {
               input.resetValue() ;
               adfFacesContext.addPartialTarget(input);
           };
       }
   }
}
 
// redirect to a other url
ExternalContext ectx = FacesContext.getCurrentInstance().getExternalContext();
HttpServletResponse response = (HttpServletResponse)ectx.getResponse();
String url = ectx.getRequestContextPath()+"/adfAuthentication?logout=true&end_url=/faces/start.jspx";

try {
  response.sendRedirect(url);
} catch (Exception ex) {
  ex.printStackTrace();
}

// PPR refresh a jsf component
AdfFacesContext.getCurrentInstance().addPartialTarget(UIComponent);


// find a jsf component   
private UIComponent getUIComponent(String name) {
 FacesContext facesCtx = FacesContext.getCurrentInstance();
 return facesCtx.getViewRoot().findComponent(name) ;
}


// get the adf bc application module
private OEServiceImpl getAm(){
   FacesContext fc = FacesContext.getCurrentInstance();
   Application app = fc.getApplication();
   ExpressionFactory elFactory = app.getExpressionFactory();
   ELContext elContext = fc.getELContext();
   ValueExpression valueExp =
   elFactory.createValueExpression(elContext, "",
                                       Object.class);
   return   (OEServiceImpl)valueExp.getValue(elContext);
}


// change the locale
Locale newLocale = new Locale(this.language);
FacesContext context = FacesContext.getCurrentInstance();
context.getViewRoot().setLocale(newLocale);


// get the stacktrace of a not handled exception
private ControllerContext cc = ControllerContext.getInstance();

public String getStacktrace() {
   if ( cc.getCurrentViewPort().getExceptionData()!=null ) {
       StringWriter sw = new StringWriter();
       PrintWriter pw = new PrintWriter(sw);
       cc.getCurrentViewPort().getExceptionData().printStackTrace(pw);
       return sw.toString();          
   }
   return null;
}


// get the selected rows from a table component
RowKeySet selection = resultTable.getSelectedRowKeys();
Object[] keys = selection.toArray();
List<Long> receivers = new ArrayList<Long>(keys.length);
for ( Object key : keys ) {
  User user = modelFriends.get((Integer)key);
}

// get  selected Rows of a table 2
for (Object facesRowKey : table.getSelectedRowKeys()) {
 table.setRowKey(facesRowKey);
 Object o = table.getRowData();
 JUCtrlHierNodeBinding rowData = (JUCtrlHierNodeBinding)o;
 Row row = rowData.getRow();
 Test testRow = (Test)((DCDataRow)row).getDataProvider() ;
}

No Comments

You must log on to comment.