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); } } } } }