功能介紹
該模塊提供了doardo7數(shù)據(jù)感知控件(datagrid,autoform)的個(gè)性化定制功能.
所謂的定制化就是允許用戶根據(jù)自己的需求去調(diào)整某一字段順序,顯隱寬度等信息,并將該信息持久化到數(shù)據(jù)庫(kù), 使得用戶有更人性化的瀏覽體驗(yàn).
環(huán)境搭建
本模塊依賴于BDF2-ORM模塊,也就是說(shuō)只要是BDF項(xiàng)目,都可以運(yùn)行該模塊.
Maven Project
為現(xiàn)有的BDF2 maven項(xiàng)目添加如下依賴:
BDF2-COMPONENTPROFILE maven依賴
<dependency>
<groupId>com.bstek.bdf2</groupId>
<artifactId>bdf2-componentprofile</artifactId>
<version>2.0.0</version>
</dependency
Dynamic Web Project
如果現(xiàn)在已經(jīng)有了一個(gè)bdf2項(xiàng)目, 可以去nexus下載該模塊的jar包:bdf2-componentprofile-2.0.0.jar, 并將其放到項(xiàng)目web-inf/lib目錄下.如果還沒(méi)有一個(gè)bdf項(xiàng)目可以通過(guò)我們的向?qū)?lái)生成一個(gè)新的bdf2項(xiàng)目.
jar包添加完畢之后, 通過(guò)在線的方式更新dorado7規(guī)則. 如果在視圖文件的Dorado ToolBox的BDF2分類(lèi)里看到兩個(gè)ProfileAction(AutoformProfielAction,DataGridProfileAction)控件說(shuō)明該模塊已成功安裝.

配置方式
1. 實(shí)現(xiàn)接口
要使用該控件,首先要實(shí)現(xiàn)com.bstek.bdf2.componentprofile.service.IDataService接口. 該接口只有一個(gè)方法,getProfileKey.
個(gè)性化定制的結(jié)果以這個(gè)key去保存,同時(shí)以這個(gè)key去加載.如果我們定義profileKey為當(dāng)前登錄用戶名,那么每個(gè)用戶都可以擁有專(zhuān)屬自己的個(gè)性化定制,如果profileKey定義為當(dāng)前登錄用戶所在的部門(mén),那么每個(gè)部門(mén)共有一個(gè)個(gè)性化定制化.
IDataService接口
public interface IDataService {
String getProfileKey();
}
以當(dāng)前登錄人為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控件
首先要根據(jù)需要為view頁(yè)面添加相應(yīng)ProfileAction控件。
2.1
dataGridProfileAction只比正常的action多了一個(gè)屬性dataGrid,用來(lái)綁定要保存?zhèn)€性化配置的dataGrid.dataGridProfileAction的配置:

2.2
autoformProfileAction的autoForm跟dataGridProfileAction的dataGrid功能類(lèi)似,是用來(lái)綁定一個(gè)要保存?zhèn)€性化信息的autoform控件。該action比datagridProfileAction多了四個(gè)屬性如圖所示:

多出四個(gè)屬性是因?yàn)閍utoform的個(gè)性化是在一個(gè)單獨(dú)的對(duì)話框中實(shí)現(xiàn)的,而datagrid是可以直接對(duì)自身做修改,這四個(gè)屬性控件著配置對(duì)話框中相應(yīng)的列的顯隱,默認(rèn)都是顯示的。如果某一列,不希望用戶去個(gè)性化定制,將其設(shè)置為false即可。

3. 當(dāng)我們對(duì)dataGrid做過(guò)調(diào)整之后,觸發(fā)dataGridProfileAction,調(diào)整過(guò)后的數(shù)據(jù)就可以自動(dòng)的保存到數(shù)據(jù)庫(kù)里。觸發(fā)的方式也跟其它action一樣,可以通過(guò)button綁定action的方式也可以通過(guò)調(diào)用action的execute方法。
當(dāng)觸發(fā)autoformProfileAction之后,會(huì)彈出如上圖所示的配置對(duì)話框,在該對(duì)話框內(nèi)對(duì)autoform做修改,然后點(diǎn)擊保存,即可保存?zhèn)€性化配置,這時(shí)需要刷新頁(yè)面看到效果。
綁定方式(兩個(gè)action方法一樣,以dataGridProfileAction為例):

4. 重置個(gè)性化設(shè)置
當(dāng)我們需要清除已有的個(gè)性化配置時(shí),需要執(zhí)行profileAction的resetConfig方法來(lái)恢復(fù)到默認(rèn)設(shè)置。該事件只能通過(guò)javascript來(lái)觸發(fā)。

更多建議: