2015-06-17 3 views
1

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

ответ

1

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

«вы можете переопределить isShowFlyoutPalette() в поставщика поведения инструмента и вернуть ложь там, чтобы скрыть палитру.»

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

+2

FYI: Насколько я знаю, Graphiti внутренне также использует хак, описанный в вашем предыдущем [ответе] (http://stackoverflow.com/a/30908505/), поскольку GEF не предоставляет API-метод, чтобы скрыть FlyoutPalette. (Это просто как справочная информация) – tjalling

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 вместо этого предпочтения.