【问题标题】:How to update view title如何更新视图标题
【发布时间】:2012-11-09 23:47:30
【问题描述】:

我正在尝试以编程方式更新视图的标题(即:选项卡中显示的文本)。

当我这样做时:

view.setPartName(newTitle);

视图名称更新得很好,但 UI 没有。那我该怎么做呢?

提前谢谢你!

【问题讨论】:

  • @david 和@Duncan Krebs:你们都是对的!我们必须在init 方法中调用setPartname 方法。所以,为了解决我的问题,我使用了一个特殊的对象来存储我的IViewPart 的名称,然后我在IViewPartinit 方法中检索了这个对象!非常感谢你们俩

标签: eclipse-rcp rcp


【解决方案1】:

您需要确保在正确的 init 方法中设置 partName 并且在像这样设置部件名称之前调用 super。我知道这个例子是从我的应用程序中粘贴的。

@Override
public void init(IViewSite site) throws PartInitException {
    super.init(site);
    String scannerName = site.getSecondaryId();
    setPartName("MyName");
}

【讨论】:

    【解决方案2】:

    我正在毫无问题地更新视图的标题...您何时调用 setPartName 方法?

    在扩展ViewPart 的类中,我在init 方法中调用setPartName 方法。

    【讨论】:

    • 问题是我在ViewPart之外调用了setPartName方法。
    • 如何调用 setPartName 方法?它受到保护。至少据我所知。 help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/…
    • 在我的ViewPart 类中,我编写了一个名为changePartName(String newName) 的公共方法,它调用setPartName 方法。我在其他地方使用我的方法changePartName
    • 我深入研究了 WorkbenchPart 代码并注意到,当调用内容描述方法时,它们会触发 IWorkbenchPartConstants.PROP_CONTENT_DESCRIPTION 事件。也许你可以在你的 changePartName 方法中做类似的事情?
    • 不幸的是,这个解决方案不起作用......我尝试了firePropertyChange(IWorkbenchPartConstants.PROP_PART_NAME);firePropertyChange(IWorkbenchPart.PROP_TITLE);
    猜你喜欢
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    相关资源
    最近更新 更多