13.BDF2-COMPONENTPROFILE

2023-07-03 17:36 更新

功能介紹

該模塊提供了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ā)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)