如何禁用/删除Eclipse Graphiti编辑器的Palette?

时间:2015-06-17 12:58:07

标签: java eclipse graphiti

尝试删除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而不是操纵首选项。

2 个答案:

答案 0 :(得分:1)

我刚收到eclipse论坛的回复: https://www.eclipse.org/forums/index.php/m/1698886/

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

这就是我想要的。

答案 1 :(得分:0)

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

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

但如上所述,我更喜欢API而不是这种偏好黑客。

相关问题