Wednesday, January 7, 2015

Some Important Code for backing beans ADF & JSF

بسم الله الرحمن الرحيم
اللهم علمنا ما ينفعنا وانفعنا بما علمتنا يا رب العالمين
---------------
موضوعنا اليوم عن Some Important Code for backing beans ADF & JSF  ...


 
// 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(), "#{bindings.testIter.currentRow.dataProvider}", 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(), "#{testSessionBean}", 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("#{!bindings."+item+".enabled}"));
button.setId(item);
button.setText(item);
MethodExpression me = getMethodExpression("#{bindings."+item+".execute}");
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("#{bindings."+item+".inputValue}"));
input.setValueExpression("label",getValueExpression("#{bindings."+item+".hints.label}"));
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 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, "#{data.OEServiceDataControl.dataProvider}",
                                       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 receivers = new ArrayList(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 :

Post a Comment

Related Posts Plugin for WordPress, Blogger...