10
// 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();

ADF Binding Helpers

Embed Size (px)

Citation preview

Page 1: ADF Binding Helpers

// 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();

Page 2: ADF Binding Helpers

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();

}

Page 3: ADF Binding Helpers

// 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];

Page 4: ADF Binding Helpers

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();

Page 5: ADF Binding Helpers

return  elFactory.createValueExpression(elContext, name, Object.class);

}

// an example how to use this

RichInputText input = new RichInputText();

input.setValueExpression(”value”,getValueExpression(”#{bindings.”+item+”.inp

utValue}”));

input.setValueExpression(”label”,getValueExpression(”#{bindings.”+item+”.hint

s.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<UIComponent> items = component.getChildren();

for ( UIComponent item : items ) {

resetValueInputItems(adfFacesContext,item);

Page 6: ADF Binding Helpers

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);

Page 7: ADF Binding Helpers

// 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();

Page 8: ADF Binding Helpers

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() ;

}

N o C o m m e n t s »

No comments yet.