Как отключить / удалить палитру редактора 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 ответа

Решение

Я только что получил ответ на форуме Eclipse: https://www.eclipse.org/forums/index.php/m/1698886/

"Вы можете переопределить isShowFlyoutPalette() в вашем провайдере поведения инструмента и вернуть false там, чтобы скрыть палитру."

Это то, что я искал.

Это хак, который я придумал, есть 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 вместо этого взломать предпочтения.

Другие вопросы по тегам