【问题标题】:How do I disable/remove the Palette of an Eclipse Graphiti editor?如何禁用/删除 Eclipse Graphiti 编辑器的调色板?
【发布时间】:2015-06-17 12:58:06
【问题描述】:

试图删除 Eclipse Graphiti 编辑器的调色板。

org.eclipse.graphiti.ui.editor.DiagramBehavior 有一个要覆盖的 createPaletteBehaviour(),但如果我返回 null,编辑器就会崩溃。

我也在图表行为中尝试了这个,但我实际上不希望它折叠而是删除:

@Override
protected DefaultPaletteBehavior createPaletteBehaviour() {
    return new DefaultPaletteBehavior(this) {
        @Override
        public FlyoutPreferences getPalettePreferences() {
            FlyoutPreferences palettePreferences = super.getPalettePreferences();
            palettePreferences.setPaletteState(FlyoutPaletteComposite.STATE_COLLAPSED);
            return palettePreferences;
        }
    };
}

我也更喜欢使用一些 API 而不是操纵偏好。

【问题讨论】:

    标签: java eclipse graphiti


    【解决方案1】:

    刚刚在eclipse论坛上得到回复: https://www.eclipse.org/forums/index.php/m/1698886/

    "您可以在您的工具行为提供程序中覆盖 isShowFlyoutPalette() 和 在此处返回 false 以隐藏调色板。”

    这就是我要找的。​​p>

    【讨论】:

    • 仅供参考:据我所知,Graphiti 在内部也使用了您之前的@​​987654322@ 中描述的hack,因为GEF 没有提供隐藏FlyoutPalette 的API 方法。 (这只是作为背景信息)
    【解决方案2】:

    这是我想出的技巧,有一个值为“8”的org.eclipse.gef.ui.palette.FlyoutPaletteComposite.STATE_HIDDEN,因为常量是私有的(可能不应该使用)我必须直接设置它。

    @Override
    protected DefaultPaletteBehavior createPaletteBehaviour() {
        return new DefaultPaletteBehavior(this) {
            @Override
            public FlyoutPreferences getPalettePreferences() {
                FlyoutPreferences palettePreferences = super.getPalettePreferences();
                palettePreferences.setPaletteState(8);
                return palettePreferences;
            }
        };
    }
    

    但如前所述,我更喜欢 API 而不是这种偏好设置。

    【讨论】:

      猜你喜欢
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      相关资源
      最近更新 更多