1

试图删除 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 而不是操纵偏好。

4

2 回答 2

1

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

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

这就是我一直在寻找的。

于 2015-06-18T14:12:04.253 回答
0

这是我想出的技巧,有一个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 而不是这种偏好破解。

于 2015-06-18T06:59:57.410 回答