2011-09-15 24 views
2

我添加了一個控制如下在Eclipse中,如何查找通過id添加到工具欄的控件?

<extension point="org.eclipse.ui.menus"> 
<menuContribution locationURI="toolbar:org.eclipse.ui.main.toolbar"> 
<toolbar id="my.toolbar"> 
    <control 
     class="myplugin.debugger.toolbaritem.DebugDayMenu" 
     id="my.yearmenu"> 
    </control> 

我還創建了一個類DebugDayMenu

public class DebugDayMenu extends WorkbenchWindowControlContribution{... 

我現在想要訪問在另一個地方這種控制,但日食當我嘗試這樣做使用此下面的代碼,它會導致類轉換異常

IContributionItem toolbar = coolBarManager.find("my.toolbar"); 
IToolBarManager toolbarManager=((ToolBarContributionItem2)toolbar).getToolBarManager(); 
WorkbenchWindowControlContribution dayMenu= (WorkbenchWindowControlContribution) toolbarManager.find("my.yearmenu"); 

dayMenu是的instanceof DynamicToolBarContributionItem和NOT WorkbenchWindowContro l貢獻?此外,該控件嵌入在DynamicToolBarContributionItem的私有字段中,沒有公共存取方法

有沒有更好的方法來做到這一點,或者我誤解了某些東西?

回答

0

通常情況下,您可以通過訪問必要的信息或將自己添加爲某種類型的偵聽程序來解決您的貢獻方法createControl()

相關問題