-1
Eclipse RCP 응용 프로그램을 만들고 있습니다. 새로운 Launch Configuration과보기를 만들었습니다. 실행 구성을 실행하면 일련의 결과가 표시되고 해당 결과가보기로 보내집니다. 뷰가 수신Eclipse 플러그인 간의 통신
BundleContext ctx = FrameworkUtil.getBundle(TraditionalLaunchConfigurationDelegate.class).getBundleContext();
ServiceReference<EventAdmin> ref = ctx.getServiceReference(EventAdmin.class);
EventAdmin eventAdmin = ctx.getService(ref);
Map<String, Results> properties = new HashMap<String, Results>();
properties.put("MUTATIONRESULTS", //$NON-NLS-1$
results);
Event event = new Event("mutationcommunication/asyncEvent", properties); //$NON-NLS-1$
eventAdmin.postEvent(event);
:이 순간에
, 나는 결과를 포함하는 새 이벤트를 만들 수 있습니다. 실행 구성에서 이벤트를 전송하면보기가 이벤트를 포착하여 결과를 표시합니다.문제는 뷰가 인스턴스화 될 때 작동한다는 점입니다. 보기를 수동으로 열지 않으면 뷰가 존재하지 않으며 아무 것도받지 못합니다.
해결책은 프로그래밍 방식으로보기 열려있을 수 있지만,
PlatformUI.getWorkbench().getViewRegistry().find("ID").createView();
이 작동하지 않습니다.
뷰에 요소를 보내는 방법이 있으며 뷰가 존재하지 않으면 새로운 인스턴스가 생성됩니까?
도움 주셔서 감사합니다.
답변 해 주셔서 감사합니다. 이 메서드를 알고 있지만 null 포인터 예외를 throw합니다. 나는 레지스트리의 플러그인 ID를 비슷하게해야하는지 모른다. –
어떤 비트가 널을 제공합니까? Workbench, 활성 워크 벤치 창 및 활성 페이지는 모두 잠재적으로 null 일 수 있습니다. –
활성 워크 벤치가 null이고 그 이유를 알 수 없습니다. 이클립스 RCP를 실행할 때 모든 플러그인이 포함 된 새 Eclipse가 열리고 잘 작동하는 것 같습니다. –