【问题标题】:Adding a custom renderer to different parts将自定义渲染器添加到不同的部分
【发布时间】:2019-02-07 11:48:49
【问题描述】:

我希望某些部分使用不同的渲染器。在某些情况下,我想在右键单击时删除 Detach 选项,这是根据对我的问题 here 的评论的解决方案。

我一直在关注this 教程,了解如何做到这一点。

我创建了两个类。 UndetachableStackRendererUndetachableStackRendererFactory

如果我将 UndetachableStackRendererFactory 添加到 plugin.xml 中,它会成功删除从 ALL 零件堆栈中分离的选项。

<property
    name="rendererFactoryUri"
    value="bundleclass://com.example.loc/com.example.loc.UndetachableStackRendererFactory">
</property>

我想更改一部分堆栈的渲染器。根据教程,我可以将CUSTOM_RENDERER_URI 添加到零件堆栈的Persisted State

键:

CUSTOM_RENDERER_URI

价值:

bundleclass://com.example.loc/com.example.loc.UndetachableStackRenderer

我已经尝试过了,但它什么也没做。如果我输入了不正确的位置,它也不会出现任何错误,因此似乎没有看到 CUSTOM_RENDERER_URI

这可能是什么原因?

【问题讨论】:

    标签: java eclipse-rcp rcp e4


    【解决方案1】:

    本教程似乎是错误的,至少对于当前的 Eclipse 版本而言。

    键值在IPresentationEngine.CUSTOM_RENDERER_KEY中定义,值为Custom Renderer

    String CUSTOM_RENDERER_KEY = "Custom Renderer";
    

    org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEnginegetRenderer方法中使用

    【讨论】:

    • 这在 Windows 上运行良好,但我们注意到在 Mac 上所有视图都是空的,并且没有输出错误。我所做的唯一更改是添加Custom RendererUndetachableStackRendererpersistedState,如上所示。是否有任何已知问题,因为到目前为止我还没有发现任何问题。
    • 我不使用这种定义渲染器的方式所以我不知道。您可以随时搜索 Eclipse Bugzilla。渲染器工厂方法在 macOS 上运行良好。
    • 是否有另一种定义渲染器的方法?这很奇怪。我去看看。
    猜你喜欢
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多