我正在为我的应用程序添加一个插件,以扩展现有插件的功能(用于高级报告)。该应用程序已经有一个首选项页面。当用户更改现有插件的首选项时,我需要“刷新”新插件的报告。
我的想法是“扩展”现有插件的首选项页面以添加checkbox
以“将更改传播到打开的报告”并导致刷新。此刷新仅适用于新插件正在使用时(它是可选的,现有插件可以单独使用)。在加载新插件时,如何扩展首选项页面以添加checkbox
并加载THAT首选项页面而不是现有首选项页面?
这个问题也适用于扩展视图和编辑器,但我不确定如何从不同的插件扩展(在Java定义中)GUI组件。我只能看到如何贡献新的接口。
答案 0 :(得分:0)
您可以使用OSGi fragment。简而言之,一个片段被添加到主机包(即“托管”片段的那个),它可以覆盖主机包中的任何内容。如果你考虑类路径,那么片段总是首先出现,然后是主机束。
这意味着您可以使用现有的首选项页面,将此单个源文件复制到一个片段中,根据需要进行更改,然后将其编译为片段。