1、在设计界面加入导航栏
2、在plugin处理初始化加载和点击事件
//注册监听事件
public void registerListener(EventObject e) {
super.registerListener(e);
TreeMenu navigationBar = (TreeMenu)this.getView().getControl("navigationbar");
navigationBar.addTreeMenuClickListener(this);
this.addClickListeners(new String[]{"navigationbar"});
}
//初始化绑定菜单数据
public void afterBindData(EventObject e) {
String userId = RequestContext.get().getUserId();
String appNum = this.getView().getFormShowParameter().getAppId();
List markedMenuList = this.loadUserMarkedMenus(userId, appNum);
TreeMenu treeMenu = (TreeMenu)this.getControl("navigationbar");
treeMenu.setTreeMenusMarked(markedMenuList);
}
//获取用户的对应app菜单
private List<String> loadUserMarkedMenus(String userId, String appNum) {
ArrayList markedMenuList = new ArrayList();
try {
DynamicObject[] menuObject = BusinessDataServiceHelper.load("portal_usermarkedmenu", "menu", new QFilter[]{new QFilter("user", "=", userId), new QFilter("bizapp", "=", appNum)});
if (menuObject!=null && menuObject>0) {
for(int i = 0; i < menuObject.length; ++i) {
markedMenuList.add(menuObject[i].getString("menu"));
}
}
} catch (Exception e) {
}
return markedMenuList;
}
//菜单点击事件
public void treeMenuClick(TreeNodeEvent evt) {
}