【问题标题】:How to force update of view titles after having changed the locale and restarted?更改区域设置并重新启动后如何强制更新视图标题?
【发布时间】:2012-09-09 15:26:25
【问题描述】:

在 RCP 应用程序中,我通过在 .ini 文件中以编程方式设置区域设置并重新启动应用程序来更改区域设置。

问题是在 plugin.xml 文件引用的OSGI-INF/l10n 文件中定义的视图标题在我关注它们之前不会更新。

例如,从EN 切换到FR 后,我有这个:

只有在我点击第二个标签后,我才会得到这个:

我无法重置视角,因为它们可能已被用户更改(视图已调整大小、删除或添加)。我在WorkbenchAdvisor.initialize 方法中设置了configurer.setSaveAndRestore(true);,以确保在启动时恢复视图布局。

有没有办法以编程方式强制更新视图标题而不会丢失透视配置?

我确切地说我不能使用新的 Eclipse 4 (Juno) API。

【问题讨论】:

  • 你试过用-clean运行eclipse吗?
  • @katsharp 我尝试在.ini 的开头添加-clean,但它似乎没有任何作用。这是所有 RCP 应用程序(即不仅仅是 Eclipse IDE)都支持的选项吗?
  • 您是否尝试在视图 createPartControl 中设置断点,然后在类层次结构中进行深入调试?
  • ViewPart 的实例在我单击选项卡之前不会创建。

标签: java internationalization osgi eclipse-rcp


【解决方案1】:

当您从之前的会话中恢复视角时,它可能会记住部分标题。 默认情况下,ViewPart 在saveMemento() 方法中不做任何事情。 覆盖下面的方法是为了调试问题

 public void init(IViewSite site, IMemento memento) throws PartInitException 

   String getPartName() 

【讨论】:

  • 在我单击选项卡之前,甚至都没有创建 ViewPart 实例。
猜你喜欢
  • 1970-01-01
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多