Eclipse plugin 从AbstractPropertySection插入操作按钮

Eclipse plugin 从AbstractPropertySection插入操作按钮,eclipse-plugin,eclipse-rcp,jface,Eclipse Plugin,Eclipse Rcp,Jface,我使用扩展点org.eclipse.ui.views.properties.tabbed.propertySections有一个选项卡式propertiesContributor(以及一些附带的propertySections) 我想在操作栏中放置一个特定于选项卡的“刷新”操作按钮,但看不到该如何操作。有一种非常诱人的方法 TabbedPropertySheetPage.setActionBars( ... ) 。。。在“createControls()”中可用,但我看不出如何利用它 有人能告

我使用扩展点org.eclipse.ui.views.properties.tabbed.propertySections有一个选项卡式propertiesContributor(以及一些附带的propertySections)

我想在操作栏中放置一个特定于选项卡的“刷新”操作按钮,但看不到该如何操作。有一种非常诱人的方法

TabbedPropertySheetPage.setActionBars( ... )
。。。在“createControls()”中可用,但我看不出如何利用它

有人能告诉我一些关于如何实现这一点的工作示例代码吗

欢迎你的提示和嘘声


M.

我认为没有办法将特定于选项卡的操作添加到视图的操作栏中。您可能只需要在该选项卡的某个部分添加操作。

解决方案是使用org.eclipse.ui.SubActionBars的实例,并将特定于选项卡的操作添加到其中,如下所示

@Override
public void createControls(Composite parent, final TabbedPropertySheetPage aTabbedPropertySheetPage)
{
    ...

    makeActions();
    subActionBars = new SubActionBars( tabbedPropertySheetPage.getSite().getActionBars() );
    subActionBars.getToolBarManager().add( refreshAction );
    subActionBars.getMenuManager().add( refreshAction );
}
@Override
public void aboutToBeShown()
{
    super.aboutToBeShown();
    subActionBars.activate();
    subActionBars.updateActionBars();
}

@Override
public void aboutToBeHidden()
{
    super.aboutToBeHidden();
    subActionBars.deactivate();
    subActionBars.updateActionBars();
}
。。然后像这样重写aboutToBeShown()和aboutToBeHidden()

@Override
public void createControls(Composite parent, final TabbedPropertySheetPage aTabbedPropertySheetPage)
{
    ...

    makeActions();
    subActionBars = new SubActionBars( tabbedPropertySheetPage.getSite().getActionBars() );
    subActionBars.getToolBarManager().add( refreshAction );
    subActionBars.getMenuManager().add( refreshAction );
}
@Override
public void aboutToBeShown()
{
    super.aboutToBeShown();
    subActionBars.activate();
    subActionBars.updateActionBars();
}

@Override
public void aboutToBeHidden()
{
    super.aboutToBeHidden();
    subActionBars.deactivate();
    subActionBars.updateActionBars();
}