Как отключить / удалить палитру редактора 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 вместо этого взломать предпочтения.