В настоящее время я работаю над приложением eclipse e4 RCP, и у меня есть часть, которая служит менеджером заданий, где пользователь может видеть все активные задания и их прогресс, как один в затмении. Проблема в том, что пользователь может открыть часть прогресса, дважды щелкнув на панели инструментов, и он также должен быть способен закрыть часть прогресса всякий раз, когда захочет, но вместо того, чтобы удалять часть, я хочу просто сделать ее невидимой. Я подумал, что сначала это не должно быть проблемой, потому что я могу установить, что часть не видна, но проблема в том, как поймать закрытие события и обработать его по моему пути. Есть ли какие-либо события, интерфейсы или прослушиватели, которые я могу реализовать, чтобы поймать событие закрытия и не допустить, чтобы часть была удалена?Завершить событие закрытия части (Eclipse e4 RCP)
1
A
ответ
1
Вы можете реализовать CustomSaveHandler и заменить обработчик сохранения Eclipse по умолчанию на процессор. В этом SaveHandler вы можете контролировать, закрывается ли часть shoud или нет. Поэтому вы не можете закрыть его и сделать его невидимым.
ExampleCode:
public class ReplaceSaveHandlerProcessor {
@Named("your.id.to.window")
@Inject
MWindow window;
@Inject
IEventBroker eventBroker;
@Execute
void installIntoContext() {
eventBroker.subscribe(UIEvents.Context.TOPIC_CONTEXT, new EventHandler() {
@Override
public void handleEvent(final Event event) {
if (UIEvents.isSET(event)) {
if (window.equals(event.getProperty("ChangedElement")) && (window.getContext() != null)) {
window.getContext().runAndTrack(new RunAndTrack() {
private final ISaveHandler saveHandler = new CustomSaveHandler();
@Override
public boolean changed(final IEclipseContext context) {
Object getSaveHandlerValue = context.get(ISaveHandler.class);
if (!saveHandler.equals(getSaveHandlerValue)) { // prevents endless loop
ContextInjectionFactory.inject(saveHandler, window.getContext());
context.set(ISaveHandler.class, saveHandler);
}
return true; // ture keeps tracking and the saveHandler as the only opportunity
}
});
}
}
}
});
}
}
Вы должны определить Удлинитель для ExtentionPoint org.eclipse.e4.workbench.model С Вашим ReplaceSaveHandlerProcessor. (Вы должны объявить идентификатор окна, как «элемент» в этом расширении (Добавлено Скриншот:. )
CustomSaveHandler должны реализовать интерфейс ISaveHandler В своих методах певец можно сказать, если часть действительно должно быть закрыта
..public class CustomSaveHandler implements ISaveHandler {
@Override
public boolean save(MPart dirtyPart, boolean confirm) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean saveParts(Collection<MPart> dirtyParts, boolean confirm) {
// TODO Auto-generated method stub
return false;
}
@Override
public Save promptToSave(MPart dirtyPart) {
// TODO Auto-generated method stub
return null;
}
@Override
public Save[] promptToSave(Collection<MPart> dirtyParts) {
// TODO Auto-generated method stub
return null;
}
}
Смежные вопросы
- 1. Eclipse e4 RCP BundleActivator
- 2. ECLIPSE E4 RCP - PreferenceDialog()
- 3. Eclipse RCP e4 Ведение журнала
- 4. Eclipse RCP E4 Ширина детали не работает
- 5. Eclipse RCP E4, доступ к другому классу
- 6. Приложение Eclipse E4 RCP и Dynamic Services
- 7. Обработка глобальной ошибки Eclipse E4 RCP
- 8. Eclipse RCP с использованием инструментов e4
- 9. Документация Eclipse 4 RCP (aka E4)
- 10. RCP E4 @UIEventTopic не называется
- 11. Подключить e4 RCP и Hibernate
- 12. настраиваемого протоколирования консоли RCP e4
- 13. e4 RCP синхронная обработка событий
- 14. Как изменить язык диалога Save Parts в eclipse e4 rcp?
- 15. Eclipse RCP Extension Points
- 16. Максимизировать часть программно в E4 RCP?
- 17. Eclipse E4 RCP StyledText получить INSERT KEY state
- 18. Разработка Eclipse e4 и плагинов
- 19. Eclipse e4 - Добавить обработчик закрывающей части
- 20. RCP e4 programitcally создает панель инструментов с HandledToolItem в части
- 21. Изменение позиции панели инструментов RCP в e4
- 22. Являются ли инъекции контекста e4 rcp медленными
- 23. Eclipse RCP e4 с использованием кэшированной версии файла Application.e4xmi
- 24. Контекстно-зависимая справка в чистом E4 Eclipse RCP-приложении
- 25. Eclipse e4 RCP - настройка заголовка текста во время выполнения
- 26. Eclipse: отсутствует требование E4 RCP patch при установке редактора свойств
- 27. Внешняя таблица стилей CSS в приложении Eclipse E4 RCP
- 28. Как добавить элемент действия в панель управления e4 eclipse rcp?
- 29. Как фиксировать размер окна в eclipse rcp e4
- 30. Добавить перевод в Eclipse e4 PartStack в приложении RCP
вы спрашиваете о применении e4 (с использованием Application.e4xmi) или в режиме RCP совместимости 3.x? –
Да я с просьбой о приложении e4, используя Application.e4xmi .. – tom1991te
'EPartService.addPartListener' расскажет вам о закрытии, но я не знаю anywa y, чтобы остановить закрытие. –