一. 菜单栏,工具栏,状态栏中的操作可以共享一个Action。
二. actionSets创建有两种方式 1.扩展(plugin,xml)2.编程(ActionBarAdvisor.java)
1. actionSets可以包括:菜单栏,工具栏,状态栏
2. plugin.xml中通过:action中属性menubarPath和toolbarPath区分
程序中:覆盖父类方法:fillMenuBar,fillCollBar(这里主要讲诉这种方法)
3.Action编程的步骤:1)创建具体的action,需继承Action类,实现run()方法
2)注册action
三. 菜单栏所涉及到的问题:
1. 菜单栏中的菜单
2. 菜单中的菜单项
3. 菜单项的样式
4. 二级菜单
5. 图标
6. 动态设置不可用
四. 工具栏所涉及到的问题:
1. 工具栏分组
2. 工具栏样式
3. 工具栏中的下拉菜单
4. 图标
5. 动态设置不可用
五. 代码实现:
package rcptest;
import java.net.URL;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.ICoolBarManager;
import org.eclipse.jface.action.IMenuCreator;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.util.Util;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowPulldownDelegate2;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;
public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
private NewAction new1;
private IWorkbenchAction exitAction;
private IWorkbenchAction helpopen;
private IWork