The Eclipse RCP plugin you created needs to add a menu bar and a toolbar like eclipse, which can be done in two ways: 1 through extension points and 2 by writing code in the Applicationactionbaradvisor class.
1, through the extension point implementation: Org.eclipse.ui.menus for the expansion of the menu bar, the example implementation of Eclipse in the Window menu bar part of the action
Viewsshortlistcontributionitem Source:
package Com.workflow.menu;import Java.util.arraylist;import Java.util.list;import Org.eclipse.jface.action.icontributionitem;import Org.eclipse.ui.iworkbenchwindow;import Org.eclipse.ui.platformui;import Org.eclipse.ui.actions.compoundcontributionitem;import org.eclipse.ui.actions.contributionitemfactory;/** * Add a dynamic menu item for show view * @author LWW * */public class Viewsshortlistcont Ributionitem extends Compoundcontributionitem {@Overrideprotected icontributionitem[] Getcontributionitems () { Iworkbenchwindow window = Platformui.getworkbench (). Getactiveworkbenchwindow (); Icontributionitem item = ContributionItemFactory.VIEWS_SHORTLIST.create (window);//Create Viewshortlist List<icontrib utionitem> menucontributionlist = new arraylist<icontributionitem> (); Menucontributionlist.add (item); Return Menucontributionlist.toarray (new icontributionitem[0]);}
Perspectivecontributionitem Source:
Package Com.workflow.menu;import Java.util.arraylist;import Java.util.list;import Org.eclipse.jface.action.icontributionitem;import Org.eclipse.ui.iworkbenchwindow;import Org.eclipse.ui.platformui;import Org.eclipse.ui.actions.compoundcontributionitem;import org.eclipse.ui.actions.contributionitemfactory;/** * Create perspective Level Two Menu * @author LWW * */public class Perspectivecontributionitem extends compoundcontributionitem{@Overrideprotected icontributionitem[] Getcontributionitems () {iworkbenchwindow window = Platformui.getworkbench (). Getactiveworkbenchwindow (); Icontributionitem item = ContributionItemFactory.PERSPECTIVES_SHORTLIST.create (window); list<icontributionitem> menucontributionlist = new arraylist<icontributionitem> (); Menucontributionlist.add (item); Return Menucontributionlist.toarray (new icontributionitem[0]);}
The contents of the Plugin.xml are as follows:
This enables the implementation of its own RCP menu with the Add Window menu bar, the effect is as follows:
Another way is to implement it through code:
Package Mydesigner;import Org.eclipse.jface.action.icontributionitem;import Org.eclipse.jface.action.icoolbarmanager;import Org.eclipse.jface.action.imenumanager;import Org.eclipse.jface.action.menumanager;import Org.eclipse.jface.action.separator;import Org.eclipse.jface.action.toolbarmanager;import Org.eclipse.ui.iworkbenchactionconstants;import Org.eclipse.ui.iworkbenchwindow;import Org.eclipse.ui.actions.actionfactory;import Org.eclipse.ui.actions.contributionitemfactory;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 iworkbenchaction exitaction;//exit button Private Iworkbenchaction aboutaction;//about button private iworkbenchaction newaction;//New button Private iworkbenchaction saveprojectaction;//Save the project file private iworkbenchaction saveallaction;//Save all private iworkbenchaction newwindowaction; Private IcontributionItem item;//file in the menu bar actionprivate iworkbenchaction importaction;private iworkbenchaction exportaction;public Applicationactionbaradvisor (Iactionbarconfigurer configurer) {super (configurer);} Create actionprotected void makeactions (Iworkbenchwindow window) {exitaction = ActionFactory.QUIT.create (window); Register (exitaction); aboutaction = ActionFactory.ABOUT.create (window); register (aboutaction); newaction = ActionFactory.NEW.create (window); register (newaction);//New Button saveprojectaction = ActionFactory.SAVE.create (window) ; saveallaction = ActionFactory.SAVE_ALL.create (window); This.getactionbarconfigurer (). Registerglobalaction ( Saveprojectaction); Ctrl+s, save the project file. This.getactionbarconfigurer (). Registerglobalaction (saveallaction);//Activate shortcut key, Ctrl+shift+s, save all. Newwindowaction = ActionFactory.OPEN_NEW_WINDOW.create (WINDOW), register (newwindowaction);//Register as Global Action item = CONTR IbutionItemFactory.VIEWS_SHORTLIST.create (window);//create viewshortlist importaction = actionfactory.im PORT.Create (window); Register (importaction); exportaction = ActionFactory.EXPORT.create (window); Register (exportaction); }//menu bar protected void Fillmenubar (Imenumanager menuBar) {//file menu bar Menumanager filemenu = new Menumanager ("&file", Iworkbenchactionconstants.m_file); Filemenu.add (exitaction); Filemenu.add (new Separator ());//Add Separator bar Filemenu.add ( newaction); Filemenu.add (new Separator ()); Filemenu.add (importaction);//import Filemenu.add (exportaction);//export// Help menu bar Menumanager helpmenu = new Menumanager ("&help", Iworkbenchactionconstants.m_help); Helpmenu.add ( aboutaction)//window menu bar Menumanager windowmenu = new Menumanager ("&window", Iworkbenchactionconstants.m_window) ; Windowmenu.add (newwindowaction); Menumanager ShowView = new Menumanager ("Show View"); Showview.add (item);//Add Contributionitem Windowmenu.add (ShowView ); Menubar.add (filemenu);//Add the menu bar to the workspace Menubar.add (helpmenu); Menubar.add (Windowmenu);} Add to toolbar @overrideprotected void Fillcoolbar (IcoolbarmanagEr coolbar) {toolbarmanager Barmanager = new Toolbarmanager (); Barmanager.add (saveprojectaction); BarManager.add ( saveallaction); Coolbar.add (Barmanager);}}
Effects such as:
If you want to add another action, you can do so in the class:
Org.eclipse.ui.IWorkbenchActionConstantsorg.eclipse.ui.actions.ActionFactoryorg.eclipse.ui.actions.ContributionItemFactory
Org.eclipse.ui.IWorkbenchCommandConstants finds the implementation of the corresponding action, the eclipse implementation.