原文:http://blog.chinaunix.net/uid-200142-id-4607484.html
在插件中访问StatusLine
- WorkbenchWindow window = PlatfromUI.getWorkbench().getActiveWorkbenchWindow(); IStatusLineManager status = window.getStatusLineManager();
退出RCP程序
- PlatformUI.getWorkbench().restart();
- PlatformUI.getWorkbench().restart();
- IPerspectiveDescriptor ipd = PlatformUI.getWorkbench().getPerspectiveRegistry().findPerspectiveWithId(FavoritePerspective.ID);
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- PlatformUI.getWorkbench().getHelpSystem().displayHelp();
- PlatformUI.getPreferenceStore().setValue( IWorkbenchPreferenceConstants.SHOW_MEMORY_MONITOR, true);
- PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TASK));
- /**
- * 获取插件版本
- * @return
- */
- public String getVersion(){
- return ((BundleHost)getBundle()).getVersion().toString();
- }
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView("viewId");
- PlatformUI.getWorkbench().restart();
获得父Shell的几种方法
IViewPart 或者IEditorPart :
- IShellProvider shellProvider = viewOrEditor.getSite();
- Shell parentShell =
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- Shell parentShell = Display.getDefault().getActiveShell();
- private IWorkbenchWindow window;
-
- public void init(IWorkbenchWindow window) {
- this.window = window;
- }
- public void run(IAction action) {
- Shell parentShell = window.getShell();
- MyDialog dialog = new MyDialog(parentShell, );
- etc
- }
- String[] args = Platform.getCommandLineArgs();
关闭一个当前的perspective打开一个新的perspective
- IWorkbench w=PlatformUI.getWorkbench();
-
- ActionFactory.IWorkbenchAction closePerspectiveAction
- = ActionFactory.CLOSE_PERSPECTIVE.create(w.getActiveWorkbenchWindow());
- closePerspectiveAction.run();
-
- try ...{
- PlatformUI.getWorkbench().showPerspective("com.ibm.demo.saic.ui.views.NextPerspective",
- w.getActiveWorkbenchWindow());
- } catch (WorkbenchException e) ...{
- e.printStackTrace();
- }
定制Console View的ToolBar:
去掉RCP Console View 中的Open Console和Select Console按钮。
- WorkbenchPage page = PlatformUI.getWorkbench().getWorkbenchWindows()[0].getPages()[0];
- IViewPart viewpart = page.findView(IConsoleConstants.ID_CONSOLE_VIEW);
- IActionBars actionBar = viewpart.getViewSite().getActionBars();
- IToolBarManager toolbarMgr = actionBar.getToolBarManager();
- IContributionItem[] items = toolbarMgr.getItems();
- for (IContributionItem item : items) {
- if (item instanceof ActionContributionItem) {
- IAction action = ((ActionContributionItem) item).getAction();
- String text = action.getText();
- if (text.equals("Open Console") || text.equals("Select Console")) {
- toolbarMgr.remove(item);
- }
- }
- }
- actionBar.updateActionBars();
- toolbarMgr.removeAll();
- IWorkbenchPage page = PlatformUI.getWorkbench().getWorkbenchWindows()[0]
- .getPages()[0];
- IViewPart viewpart = page.findView(IConsoleConstants.ID_CONSOLE_VIEW);
- // IActionBars actionBar = viewpart.getViewSite().getActionBars();
- IToolBarManager toolbarMgr = viewpart.getViewSite().getActionBars()
- .getToolBarManager();
- // IToolBarManager toolbarMgr = actionBar.getToolBarManager();
- IContributionItem[] items = toolbarMgr.getItems();
- for (IContributionItem item : items) {
- if (item instanceof ActionContributionItem) {
- IAction action = ((ActionContributionItem) item).getAction();
- String text = action.getText();
- if (text.equals("Open Console")
- || text.equals("Select Console")) {
- toolbarMgr.remove(item);
- }
- }
- }
- viewpart.getViewSite().getActionBars().updateActionBars();