У меня есть приложение Eclipse E4.Приложение в настоящее время активирует все MParts, которые связаны с определенным персективом при его открытии.Теперь я узнаю, что открытие новой перспективы занимает годы (около 20 лет).Поэтому я рефакторинг кода для ускорения открытия перспективы.
Я активировал их, потому что в противном случае mParts не прослушивает события EventBroker.Мой код для активации частей выглядит следующим образом:
public void makeAllActive(MPerspective perspective) {
List<MPart> part = service.findElements(application, null, MPart.class, null);
List<MPartStack> mainPartStack = service.findElements(application, "partstack.shared", MPartStack.class, null);
if (!mainPartStack.isEmpty()) {
for (int i = part.size() - 1; i >= 0; i--) {
List<MPart> children = service.findElements(mainPartStack.get(0), part.get(i).getElementId(),
MPart.class, null);
if (!children.contains(part.get(i))) {
this.partService.activate(part.get(i));
}
}
}
}
Также с кодом, когда пользователи переключают несколько ракурсов и возвращаются к первой, выбранная часть не будет располагаться поверх всех других частей.Это также не очень удобно для пользователя.
Есть ли способ активировать все детали, которые находятся в перспективе, чтобы детали могли прослушивать события eventBroker?