我在eclipse中添加了一个控件,如下所示
<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是DynamicToolBarContributionItem和NOT WorkbenchWindowControlContribution的实例?此外,控件嵌入在DynamicToolBarContributionItem中的私有字段中,没有公共访问器方法
有更好的方法可以做到这一点,还是我误解了什么?
答案 0 :(得分:0)
通常情况下,您可以通过访问必要的信息或将自己添加为某种类型的监听器,在您的贡献的createControl()
方法中解决此问题。