在系统中导航用layout:accordionLayout 布局,每个layout:panel根据用户权限动态生成,layout:panel下动态添加w:tree组件,那么可以用如下方法,对每个layout:panel底下的w:tree动态添绑定同一个事件监听处理方法,代码如下:
/**
* 在页面展示前,根据用户的功能权限,动态生成功能模块的树结构
*
* @param isPostback
*/
@BeforeRender
public void beforeRender(boolean isPostback) {
//
if (isPostback) {
return;
}
FacesContext context = FacesContext.getCurrentInstance();
Application app = context.getApplication();
// 1、根据用户的功能模块权限,查找属于用户的功能模块信息
HttpSession session = (HttpSession) context.getExternalContext()
.getSession(true);
// 用户登录信息
LoginInfo loginInfo = (LoginInfo) session
.getAttribute(Global.LOGIN_INFO);
// 2、循环功能模块信息列表,动态构建功能模块及操作模块
List<XtGnmk> gnmkList = mainService.getGnmkList(loginInfo);
// 循环功能模块列表,动态生成树结构
int i = 0;
for (XtGnmk gnmk : gnmkList) {
// 只对第一级的节点处理
if (gnmk.getMkBh().length() == 2) {
// 新建功能模块的抽屉标签
UIPanel panel = (UIPanel) app
.createComponent(UIPanel.COMPONENT_TYPE);
panel.setTitle(gnmk.getMkMc());
panel.setBorder(false);
panel.setCollapsed(true);
// 给功能模块抽屉下添加功能模块树
UITree tree = (UITree) app
.createComponent(UITree.COMPONENT_TYPE);
tree.setValue(new XtGnmkTreeDataProvider(gnmk));
tree.setId("tree" + i);
tree.setRootVisible(false);
tree.setExpandAll(true);
// 为树结构添加点击事件的监听
tree.getAjaxEventHandler().addElBinding("onclick",
"#{mainBean.tree_onclick}", false);
// 将生成的Tree添加到对应的抽屉下
panel.getChildren().add(tree);
// 将抽屉添加到功能导航LayoutPanel中
layout.getChildren().add(panel);
i++;
}
}
}
/**
* 为树添加事件的监听,执行页面的专项操作
*
* @param event
*/
public void tree_onclick(TreeNodeEvent event) {
// 根据事件对象,得到事件的Node
UITreeNode node = event.getEventNode();
// 得到节点中的功能模块对像
XtGnmk gnmk = (XtGnmk) node.getUserData();
// 得到功能模块连接的url
String url = gnmk.getUrl();
// 激活contentLayout中的第二个Tab,即工作区的Panel
content.setActiveTab(1);
// 设置工作区的Frame的URL,执行页面的转向
workPanelFrame.load(url);
}
分享到:
相关推荐
金蝶OperaMasks参考手册
只是我在网上找的 operamasks-ui api 文档 , 希望对你们有帮助
operamasks
operamasks-sdk_3.2,是金蝶中间件出的一款SDK
新手可以看看,这个教程是根据国外jsf教程改编过来,其中的例子都用operamasks是现实了,对学习jsf也有很大帮助!
Apusic OperaMasks很全的JSF的例子,什么都有,如:TREE 、GRID、FORM、BOX、MENU、DIALOG、AJAX。都很漂亮的。
Apusic OperaMasks――开箱即用的Web Framework,它以JSF为基础引擎,辅以独创的原生Ajax技术,同时提供丰富的组件和集成开发环境,使Web开发变得简单方便。无论是后台的事 务、存储、分布式计算等基础服务,还是...
operamasks-faces_1.0
operamasks-ui-2.0的开发文档离线版。网上很难找的资源。
operamasks-ui-2.1-demo
operamasks-ui-1.2.zip
operamasks-ui-2.0 这个帮助文档很难才找到的,感谢CSDN,其中的说明真的是很详细了,维护旧代码用到的这个框架,相比easyui和bootstrap这个框架简单一些,不过用起来还是不错的,除了文档太少,不过有这个就基本...
前台使用OperaMasks框架,后台使用servlet+bean的形式完成的一个查询Demo,主要包括模糊查询,有数据库,有使用帮助!
operaMasks_studio是金山公司的产品,主要用于开发jsf
OperaMasks-UI-Guide帮助文档
operamasks-ui-2.0-demo operamasks-ui-2.0-demo operamasks-ui-2.0-demo
operamasks-ui的demo程序,能够直接部署,运行。查看om-ui上优秀的标签。
很好用的一个小框架operamasks-ui-2.1
operamasks整合spring、hibernate实现grid增删改查,不是最新operamasks。
operamasks-ui 最新.完成的,下载下来直接可以点击查看,跟官网一模一样