codecamp

13.BDF2-COMPONENTPROFILE

功能介绍

该模块提供了doardo7数据感知控件(datagrid,autoform)的个性化定制功能.
所谓的定制化就是允许用户根据自己的需求去调整某一字段顺序,显隐宽度等信息,并将该信息持久化到数据库, 使得用户有更人性化的浏览体验.

环境搭建

本模块依赖于BDF2-ORM模块,也就是说只要是BDF项目,都可以运行该模块.

Maven Project
为现有的BDF2 maven项目添加如下依赖:
BDF2-COMPONENTPROFILE maven依赖
<dependency>
 <groupId>com.bstek.bdf2</groupId>
 <artifactId>bdf2-componentprofile</artifactId>
 <version>2.0.0</version>
</dependency
Dynamic Web Project
如果现在已经有了一个bdf2项目, 可以去nexus下载该模块的jar包:bdf2-componentprofile-2.0.0.jar, 并将其放到项目web-inf/lib目录下.如果还没有一个bdf项目可以通过我们的向导来生成一个新的bdf2项目.

jar包添加完毕之后, 通过在线的方式更新dorado7规则. 如果在视图文件的Dorado ToolBox的BDF2分类里看到两个ProfileAction(AutoformProfielAction,DataGridProfileAction)控件说明该模块已成功安装.

配置方式

1. 实现接口
要使用该控件,首先要实现com.bstek.bdf2.componentprofile.service.IDataService接口. 该接口只有一个方法,getProfileKey.
个性化定制的结果以这个key去保存,同时以这个key去加载.如果我们定义profileKey为当前登录用户名,那么每个用户都可以拥有专属自己的个性化定制,如果profileKey定义为当前登录用户所在的部门,那么每个部门共有一个个性化定制化.
IDataService接口
public interface IDataService {
 String getProfileKey();
}
以当前登录人为profileKey的样例
public class UserProfile implements IDataService {
 public static String UNKNOWN = "unknown";
 @Override
 public String getProfileKey() {
 String profileKey = null;
 try {
 profileKey = ContextHolder.getLoginUserName();
 } catch (Exception e) {
 profileKey = UNKNOWN;
 }
 return profileKey;
 }
}
2. 配置ProfileAction控件
首先要根据需要为view页面添加相应ProfileAction控件。

2.1
 dataGridProfileAction只比正常的action多了一个属性dataGrid,用来绑定要保存个性化配置的dataGrid.dataGridProfileAction的配置:

2.2
autoformProfileAction的autoForm跟dataGridProfileAction的dataGrid功能类似,是用来绑定一个要保存个性化信息的autoform控件。该action比datagridProfileAction多了四个属性如图所示:

多出四个属性是因为autoform的个性化是在一个单独的对话框中实现的,而datagrid是可以直接对自身做修改,这四个属性控件着配置对话框中相应的列的显隐,默认都是显示的。如果某一列,不希望用户去个性化定制,将其设置为false即可。

3. 当我们对dataGrid做过调整之后,触发dataGridProfileAction,调整过后的数据就可以自动的保存到数据库里。触发的方式也跟其它action一样,可以通过button绑定action的方式也可以通过调用action的execute方法。
当触发autoformProfileAction之后,会弹出如上图所示的配置对话框,在该对话框内对autoform做修改,然后点击保存,即可保存个性化配置,这时需要刷新页面看到效果。
绑定方式(两个action方法一样,以dataGridProfileAction为例):

4. 重置个性化设置
当我们需要清除已有的个性化配置时,需要执行profileAction的resetConfig方法来恢复到默认设置。该事件只能通过javascript来触发。

12.BDF2-AUTHORITYDELEGATION
14.BDF2-EXPORT
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }