Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何禁用/删除Eclipse Graphiti编辑器的调色板?_Java_Eclipse_Graphiti - Fatal编程技术网

Java 如何禁用/删除Eclipse Graphiti编辑器的调色板?

Java 如何禁用/删除Eclipse Graphiti编辑器的调色板?,java,eclipse,graphiti,Java,Eclipse,Graphiti,试图删除Eclipse Graphiti编辑器的调色板 org.eclipse.graphiti.ui.editor.DiagramBehavior有一个createPaletteBehavior() 我也在图表行为中尝试了这一点,但实际上我不希望它被折叠,而是被删除: @Override protected DefaultPaletteBehavior createPaletteBehaviour() { return new DefaultPaletteBehavior(this)

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

org.eclipse.graphiti.ui.editor.DiagramBehavior
有一个
createPaletteBehavior()

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

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

我还希望使用一些API,而不是操纵首选项。

这是我想出的一个方法,有一个
org.eclipse.gef.ui.palete.FlyoutPaletteComposite.STATE\u HIDDEN
值为“8”,因为常量是私有的(可能不应该使用),我必须直接设置它

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

但正如前面提到的,我更喜欢API,而不是这种偏好黑客。

我刚刚在eclipse论坛上得到回复:

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


这就是我一直在寻找的。

FYI:据我所知,Graphiti内部也使用了您之前介绍的hack,因为GEF没有提供API方法来隐藏flyOutpalete。(这只是作为背景信息)