У меня есть partStack с большим количеством частей во вкладках. Я хотел бы знать, как я могу сделать вкладки неактивными, когда они мне не нужны, и активными, когда они мне нужны.
Под неактивным я подразумеваю вкладку, которая видна, но я не могу щелкнуть по ней, и это похоже на отключение функции (например, текст на ней серый, а не черный).
Я использую e4 RCP (с Application.e4xmi).
Спасибо за помощь.
Ответ 1 · greg-449
Обработка выбора частей в стеке деталей осуществляется средством визуализации стека частей org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer, которое в основном использует CTabFolder.
Вы можете использовать фабрику средств визуализации, чтобы переопределить средство визуализации стека см. здесь
Вы можете расширить существующий класс StackRenderer и переопределить методы, чтобы изменить его поведение. В этом случае, вероятно, метод hookControllerLogic. Но вам придется внимательно изучить источник, чтобы увидеть, что нужно сделать.
Ответ 2 · Community
Вы можете попробовать использовать EPartService для управления частью, но я думаю, что активная/неактивная часть просто означает видимость или нет.
Или вы можете просто вручную отключить все элементы управления swt ????
Ответ 3 · Yogesh Bitake
Используйте фабрику Renderer для переопределения средства визуализации стека. Расширьте существующий класс StackRenderer и переопределите методы hookControllerLogic() или активировать() с пустой реализацией.
Пример-
public class MyE4Part extends ContributedPartRenderer {
/*
* Don't activate the Part on part selection. part should not be gain the focus on any
* selection on part .
*/
@Override
public void hookControllerLogic( MUIElement me )
{
//Don't do anything.
//super.hookControllerLogic( me );
}
}