package com.topsun.posclient.application;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.ICoolBarManager;
import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;
import com.topsun.posclient.common.POSClientApp;
import com.topsun.posclient.datamodel.Auth;
/**
* An action bar advisor is responsible for creating, adding, and disposing of
* the actions added to a workbench window. Each window will be populated with
* new actions.
*/
public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
// Actions - important to allocate these only in makeActions, and then use
// them
// in the fill methods. This ensures that the actions aren't recreated
// when fillActionBars is called with FILL_PROXY.
public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
super(configurer);
}
public void fillStatusLine(IStatusLineManager statusLine){
}
@Override
protected void fillCoolBar(ICoolBarManager coolBar) {
IToolBarManager toolbar = new ToolBarManager(coolBar.getStyle());
coolBar.add(toolbar);
List<Auth> list = POSClientApp.get().getLoginUserAuths();
List<String> authNams = new ArrayList<String>();
if(list != null){
for (Auth auth : list) {
authNams.add(auth.getFunctionName());
}
}
IContributionItemService itemService = TopSunApplicationActivator.getContributionItemService();
IContributionItem[] items = itemService.getItems(IContributionItemService.CATEGORY_TOOL_BAR);
if (items != null) {
for (IContributionItem item : items) {
String itemName = ((ActionContributionItem) item).getAction().getText();
if (item instanceof ActionContributionItem) {
((ActionContributionItem) item).setMode(ActionContributionItem.MODE_FORCE_TEXT);
}
if(authNams.contains(itemName)){
ToolbarContext.getInstance().setManager(toolbar);
toolbar.add(item);
}
if("键盘开关".equals(itemName)){
toolbar.add(item);
}
// if("系统注销".equals(itemName)){
// toolbar.add(item);
// }
if("退出系统".equals(itemName)){
toolbar.add(item);
}
}
}
}
}