Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. 实现接口

    要使用该控件,首先要实现com.bstek.bdf2.componentprofile.service.IDataService接口.  该接口只有一个方法,getProfileKey. 个性化定制的结果以这个key去保存,同时以这个key去加载.如果我们定义profileKey为当前登录用户名,那么每个用户都可以拥有专属自己的个性化定制,如果profileKey定义为当前登录用户所在的部门,那么每个部门共有一个个性化定制化.

    Code Block
    titleIDataService接口
    languagejava
    public interface IDataService {
        String getProfileKey();
    }
    Code Block
    title以当前登录人为profileKey的样例
    languagejava
    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;
    	}
    }
    Info

    定义好这个类,并将这个类配置到spring的BeanFactory中

  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为例):


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


...