아마도 가장 초기에 워크 벤치를 얻을 수있는 것은 응용 프로그램 시작 완료 이벤트 UIEvents.UILifeCycle.APP_STARTUP_COMPLETE
에 이벤트 브로커를 등록하는 것입니다. 그러나 UI가 표시된 직후까지는 실행되지 않습니다.
업데이트 :
private static final class AppStartupCompleteEventHandler implements EventHandler
{
private final IEclipseContext _context;
AppStartupCompleteEventHandler(final IEclipseContext context)
{
_context = context;
}
@Override
public void handleEvent(final Event event)
{
IWorkbench workbench = _context.get(IWorkbench.class);
workbench.restart();
}
}
가 @PostContextCreate 방법이 이벤트에 가입 : 이벤트 핸들러는 무언가 같이 될 것입니다.
@PostContextCreate
public void postContextCreate(IEclipseContext context, IEventBroker eventBroker)
{
eventBroker.subscribe(UIEvents.UILifeCycle.APP_STARTUP_COMPLETE, new AppStartupCompleteEventHandler(context));
}
어떻게 내가 거기에서 작업대를 가져올 수 있습니까? 순수 E4 응용 프로그램을 실행 중이므로 "PlatformUI.getWorkbench()"를 사용할 수 없습니다. 또한 "새로운 EventHandler() {...}"를 사용하여 해당 이벤트를 구독하려고 시도했지만 IWorkBench를 필드로 삽입하려고 시도했지만 null입니다 (EventHandler가 WorkBench 전에 만들어 졌기 때문에) . 고마워요! – rubenrumu
이벤트 핸들러에 IEclipseContext를 전달하면 이벤트가 발생하면 컨텍스트에 IWorkbench가 추가됩니다.이 예제에서는 이것을 테스트하는 데 사용됩니다. –
이것은 나를 위해 완벽하게 작동합니다. 감사! – rubenrumu