我可以使用 org.eclipse.core.variables... 来定义其他扩展的属性吗
Can I use org.eclipse.core.variables... in defining attributes of other extensions
我正在使用 org.eclipse.ui.editors
扩展点创建 RCP 3.7 编辑器。我需要的是在编辑器启动时根据一些条件动态定义图标路径。
(编辑:编辑器实际上只是在启动后恢复,但尚未被选中,因此您只能看到带有标题和图标的选项卡)
我尝试在 class 中使用 getImageDescriptor()
方法实现 IEditorInput
,但似乎没有用到。对图标有一定影响的唯一方法是更改编辑器扩展定义中的图标路径。
因此我开始使用 org.eclipse.core.variables.valueVariables
和 org.eclipse.core.variables.dynamicVariables
用于图标属性(显示 valueVariables 只是为了简单的例子):
<extension point="org.eclipse.ui.editors">
<editor name="%Editor_TITLE"
extensions="xml"
icon="${FOO}"
class="org.example.ExampleEditor"
id="org.example.ExampleEditor">
</editor>
</extension>
<extension point="org.eclipse.core.variables.valueVariables">
<variable name="FOO"
initialValue="images/obj16/editor.png">
</variable>
</extension>
但是,这也不起作用。有没有办法使用动态定义的变量值(基于当前条件)来改变图标的路径? ...或者即使是解决方法建议,我也会很高兴,这将导致在启动期间成功更改图标(例如使 ImageDescriptor 在不启动的情况下工作)。
变量只在代码明确支持的地方起作用。如果扩展点的文档没有说明它们受支持,那么它们将无法工作。
您可以使用编辑器输入中的图像描述符来设置编辑器标题图像,方法是在编辑器的 init
方法中执行类似以下操作:
public void init(IEditorSite site, IEditorInput input)
throws PartInitException
{
... other code
ImageDescriptor desc = input.getImageDescriptor();
Image image = desc.createImage();
setTitleImage(image);
... other code
}
我正在使用 org.eclipse.ui.editors
扩展点创建 RCP 3.7 编辑器。我需要的是在编辑器启动时根据一些条件动态定义图标路径。
(编辑:编辑器实际上只是在启动后恢复,但尚未被选中,因此您只能看到带有标题和图标的选项卡)
我尝试在 class 中使用 getImageDescriptor()
方法实现 IEditorInput
,但似乎没有用到。对图标有一定影响的唯一方法是更改编辑器扩展定义中的图标路径。
因此我开始使用 org.eclipse.core.variables.valueVariables
和 org.eclipse.core.variables.dynamicVariables
用于图标属性(显示 valueVariables 只是为了简单的例子):
<extension point="org.eclipse.ui.editors">
<editor name="%Editor_TITLE"
extensions="xml"
icon="${FOO}"
class="org.example.ExampleEditor"
id="org.example.ExampleEditor">
</editor>
</extension>
<extension point="org.eclipse.core.variables.valueVariables">
<variable name="FOO"
initialValue="images/obj16/editor.png">
</variable>
</extension>
但是,这也不起作用。有没有办法使用动态定义的变量值(基于当前条件)来改变图标的路径? ...或者即使是解决方法建议,我也会很高兴,这将导致在启动期间成功更改图标(例如使 ImageDescriptor 在不启动的情况下工作)。
变量只在代码明确支持的地方起作用。如果扩展点的文档没有说明它们受支持,那么它们将无法工作。
您可以使用编辑器输入中的图像描述符来设置编辑器标题图像,方法是在编辑器的 init
方法中执行类似以下操作:
public void init(IEditorSite site, IEditorInput input)
throws PartInitException
{
... other code
ImageDescriptor desc = input.getImageDescriptor();
Image image = desc.createImage();
setTitleImage(image);
... other code
}