ADFUtils
import java.text.SimpleDateFormat;
import java.util.Map;
import javax.el.ELContext;
import javax.el.ExpressionFactory;
import javax.el.MethodExpression;
import javax.el.ValueExpression;
import javax.faces.application.Application;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIViewRoot;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import oracle.adf.model.BindingContext;
import oracle.adf.model.binding.DCBindingContainer;
import oracle.adf.model.binding.DCIteratorBinding;
import oracle.adf.share.ADFContext;
import oracle.adf.share.logging.ADFLogger;
import oracle.adf.view.rich.component.rich.RichPopup;
import oracle.adf.view.rich.event.QueryEvent;
import oracle.binding.AttributeBinding;
import oracle.binding.BindingContainer;
import oracle.binding.ControlBinding;
import oracle.binding.OperationBinding;
import oracle.jbo.ApplicationModule;
import org.apache.myfaces.trinidad.render.ExtendedRenderKitService;
import org.apache.myfaces.trinidad.util.Service;
public class AdfUtil {
public static final ADFLogger LOGGER = ADFLogger.createADFLogger(AdfUtil.class);
public AdfUtil() {
super();
}
public static String getCurrentUser(){
return ADFContext.getCurrent().getSecurityContext().getUserName();
}
public static String getCurrentUserDisplayName(){
return ADFContext.getCurrent().getSecurityContext().getUserProfile().getDisplayName();
}
public static BindingContext getBindingContext(){
return BindingContext.getCurrent();
}
public static BindingContainer getBindingContainer(){
return getBindingContext().getCurrentBindingsEntry();
}
public static DCBindingContainer getDCBindingContainer(){
return (DCBindingContainer)getBindingContainer();
}
public static DCIteratorBinding getDCIteratorBindingByName(String iteratorName){
return getDCBindingContainer().findIteratorBinding(iteratorName) ;
}
public static OperationBinding getOperationBinding(String operationName){
OperationBinding operation = getDCBindingContainer().getOperationBinding(operationName);
return operation;
}
public static oracle.jbo.domain.Date getCurrentDateTime(){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.sql.Date currentDate = new java.sql.Date(System.currentTimeMillis());
String currentDateStr = simpleDateFormat.format(currentDate);
return new oracle.jbo.domain.Date(currentDateStr);
}
public static FacesContext getFacesContext(){
return FacesContext.getCurrentInstance();
}
public static void setExpressionValue(String expression,Object value){
FacesContext facesContext = FacesContext.getCurrentInstance();
ELContext elContext = facesContext.getELContext();
Application application = facesContext.getApplication();
ExpressionFactory elFactory = application.getExpressionFactory();
ValueExpression valueExpression = elFactory.createValueExpression(elContext, expression, Object.class);
Class bindClass = valueExpression.getType(elContext);
if(bindClass.isPrimitive()||bindClass.isInstance(value)){
valueExpression.setValue(elContext, value);
}
}
public static Object getExpressionValue(String expressionStr){
FacesContext facesContext = FacesContext.getCurrentInstance();
ELContext elContext = facesContext.getELContext();
Application application = facesContext.getApplication();
ExpressionFactory expressionFactory = application.getExpressionFactory();
ValueExpression valueExpression = expressionFactory.createValueExpression(elContext, expressionStr, Object.class);
return valueExpression.getValue(elContext);
}
public static void showPopup(RichPopup richPopup){
FacesContext facesContext = FacesContext.getCurrentInstance();
ExtendedRenderKitService kitService = Service.getRenderKitService(facesContext, ExtendedRenderKitService.class);
String scriptStr = "var popup; popup=AdfPage.PAGE.findComponent('"+richPopup.getClientId(facesContext)+"'); popup.show();";
kitService.addScript(facesContext, scriptStr);
return ;
}
public static void addFacesInfoMessage(String messageStr){
FacesContext facesContext = FacesContext.getCurrentInstance();
UIViewRoot viewRoot = facesContext.getViewRoot();
String viewId = viewRoot.getViewId();
FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_INFO,messageStr,"");
facesContext.addMessage(viewId, facesMessage);
}
public static void addFacesWarmMessage(String messageStr){
FacesContext facesContext = FacesContext.getCurrentInstance();
UIViewRoot viewRoot = facesContext.getViewRoot();
String viewId = viewRoot.getViewId();
FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_WARN,messageStr,"");
facesContext.addMessage(viewId, facesMessage);
}
public static void addFacesErrorMessage(String messageStr){
FacesContext facesContext = FacesContext.getCurrentInstance();
UIViewRoot viewRoot = facesContext.getViewRoot();
String viewId = viewRoot.getViewId();
FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR,messageStr,"");
facesContext.addMessage(viewId,facesMessage);
}
public static Object getRequestParameterByName(String paraName){
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map paraMap = externalContext.getInitParameterMap();
return paraMap.get(paraName);
}
public static void closeCurrentPage(){
FacesContext facesContext = FacesContext.getCurrentInstance();
ExtendedRenderKitService extendService = Service.getRenderKitService(facesContext, ExtendedRenderKitService.class);
String scriptStr = "window.opener=null;window.open('','_self');window.close();";
extendService.addScript(facesContext,scriptStr);
}
// The code below should be in a Utility clas
public Object invokeMethodExpression(String expr, Class returnType,
Class[] argTypes, Object[] args) {
FacesContext fc = FacesContext.getCurrentInstance();
ELContext elctx = fc.getELContext();
ExpressionFactory elFactory =
fc.getApplication().getExpressionFactory();
MethodExpression methodExpr =
elFactory.createMethodExpression(elctx, expr, returnType,
argTypes);
return methodExpr.invoke(elctx, args);
}
/**
* invokeMethodExpression("#{bindings.ProcessInstanceVO1Query.processQuery}",Object.class, QueryEvent.class, queryEvent);
* @param expr
* @param returnType
* @param argType
* @param argument
* @return
*/
public Object invokeMethodExpression(String expr, Class returnType,
Class argType, Object argument) {
return invokeMethodExpression(expr, returnType,
new Class[] { argType },
new Object[] { argument });
}
public static ApplicationModule getApplicationModuleForDataControl(String name) {
return (ApplicationModule)getExpressionValue("#{data." + name +
".dataProvider}");
}
public static AttributeBinding findControlBinding(BindingContainer bindingContainer,
String attributeName) {
if (attributeName != null) {
if (bindingContainer != null) {
ControlBinding ctrlBinding =
bindingContainer.getControlBinding(attributeName);
if (ctrlBinding instanceof AttributeBinding) {
return (AttributeBinding)ctrlBinding;
}
}
}
return null;
}
public static AttributeBinding findControlBinding(String attributeName) {
return findControlBinding(getBindingContainer(), attributeName);
}
public static void makeCurrent(SelectionEvent selectionEvent) {
RichTable _table = (RichTable)selectionEvent.getSource();
CollectionModel _tableModel = (CollectionModel)_table.getValue();
JUCtrlHierBinding _adfTableBinding =
(JUCtrlHierBinding)_tableModel.getWrappedData();
DCIteratorBinding _tableIteratorBinding =
_adfTableBinding.getDCIteratorBinding();
Object _selectedRowData = _table.getSelectedRowData();
JUCtrlHierNodeBinding _nodeBinding =
(JUCtrlHierNodeBinding)_selectedRowData;
Key _rwKey = _nodeBinding.getRowKey();
if (_rwKey != null) {
_tableIteratorBinding.setCurrentRowWithKey(_rwKey.toStringFormat(true));
}
}
}
ADFUtils的更多相关文章
- adf常用方法总结
1.使用clientAttribute传值.获取值 或组件上面放客户端属性 <af:selectBooleanCheckbox text="" label="&qu ...
- ADF 入门帮助
本文是由英文帮助翻译所得: 1>task flows “任务流 task flows”可以包括非可视化的组件,比如方法调用.“页片段 page fragment”可以运行在一个页面的某个局部区域 ...
- adf笔记
1>jsf页面js调试,手动添加debugger调试 方案:在页面中添加debugger,然后打开“开发者工具”(必须打开),直接运行页面自动跳转到debugger处. 2>jdevelo ...
- AM使用指南:如何在Managed Bean中获取AM实例?
AM是放置服务方法的地方,有时我们需要在Managed Bean中调用这些方法.要调用这些方法,首先要在Managed Bean中获取AM实例.这里要用到<ADF工具类:ADFUtil.java ...
随机推荐
- iOS 富文本属性
// NSFontAttributeName 设置字体属性,默认值:字体:Helvetica(Neue) 字号:12 // NSForegroundColorAttributeNam 设置字体颜色,取 ...
- Java入门系列-13-String 和 StringBuffer
这篇文章带你学会字符串的日常操作 String类 字符串在日常生活中无处不在,所以掌握字符串的使用至关重要. 使用 String 对象存储字符串,String 类位于 java.lang 包中,jav ...
- js运动缓动效果
http://www.cnblogs.com/hongru/archive/2012/03/16/2394332.html 转分享地址
- ASP.NET MVC4 新手入门教程之一 ---1.介绍ASP.NET MVC4
你会建造 您将实现一个简单的电影清单应用程序支持创建. 编辑. 搜索和清单数据库中的电影.下面是您将构建的应用程序的两个屏幕截图.它包括显示来自数据库的电影列表的网页: 应用程序还允许您添加. 编辑和 ...
- vcfc之zk+postsql+keystore(cassandra)框架分析
vcfc框架总结: 1 一. bus和keystore是如何协调处理的,什么样的问题是处理不了的? 1. 如果在备重启的过程中,主处理了某个时间1,备机如果同步数据呢? 二 .数据可靠性和一致性分析 ...
- java 中国网建实现发送短信验证码
现在中国网建上注册一个自己的账户, 然后里面有代码案例,也有相应的下载jar包的地址 package com.direct.note; import java.io.IOException; impo ...
- JS中forEach的用法
forEach是ES5中操作数组的一种方法,主要功能是遍历数组,例如: 1 2 var arr = [1,2,3,4]; arr.forEach(alert); 等价于: 1 2 3 4 var ar ...
- css-flex布局知识梳理
一.传统的布局 布局的传统解决方案,基于盒装模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现. 二. Flex的 ...
- JVM jmap
需求:经常会因为OOM而导致系统挂掉,很多服务无法连接,所以准备了解一下. 参考:http://www.open-open.com/lib/view/open1390916852007.html 一. ...
- easyui grid 增加合计行
一.首先,easyui grid 的 showfooter 属性设置为 true $aplgrid.datagrid({ data: globalExpenseClaimForm.ExpenseCl ...