(轉)Eclipse RCP 外掛程式開發中經常調用的幾個方法

來源:互聯網
上載者:User
在外掛程式中訪問StatusLine

WorkbenchWindow window = PlatfromUI.getWorkbench().getActiveWorkbenchWindow(); IStatusLineManager status = window.getStatusLineManager(); 退出RCP程式

PlatformUI.getWorkbench().restart(); 重啟RCP應用

PlatformUI.getWorkbench().restart();
在外掛程式資產庫中尋找Perspective(其它extend point資源的獲得類似)

IPerspectiveDescriptor ipd = PlatformUI.getWorkbench().getPerspectiveRegistry().findPerspectiveWithId(FavoritePerspective.ID); 獲得當前RCP應用的shell

Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); 顯示協助資訊

PlatformUI.getWorkbench().getHelpSystem().displayHelp(); 顯示記憶體

PlatformUI.getPreferenceStore().setValue( IWorkbenchPreferenceConstants.SHOW_MEMORY_MONITOR, true); eclipse平台圖片資源共用的擷取方法

PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TASK)); rcp(外掛程式開發) 擷取外掛程式版本資訊

/**
* 擷取外掛程式版本
* @return
*/
public String getVersion(){
return ((BundleHost)getBundle()).getVersion().toString();
}
* 在其他view中擷取某個view的引用

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(“viewId”); 如何使用代碼重啟RCP程式。

PlatformUI.getWorkbench().restart(); 獲得父Shell的幾種方法

IViewPart 或者IEditorPart :

IShellProvider shellProvider = viewOrEditor.getSite();
PlatformUI:

Shell parentShell =
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
Display :

Shell parentShell = Display.getDefault().getActiveShell();
在實現了IWorkbenchWindowActionDelegate介面的類中:

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(); 如果不需要toobar中的任何東西,可以直接

toolbarMgr.removeAll(); 可以看到現在的rcp上有很多menubar,這些是我們所不需要的,可以通過在代碼中添加下列代碼來簡化

menubar

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.