2013-10-31 4 views
-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(); 

이 작동하지 않습니다.

뷰에 요소를 보내는 방법이 있으며 뷰가 존재하지 않으면 새로운 인스턴스가 생성됩니까?

도움 주셔서 감사합니다.

답변

1

사용 :

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("id"); 

이 (가 이미 표시되어 있지 않은 경우 생성됩니다)보기를 표시합니다.

+0

답변 해 주셔서 감사합니다. 이 메서드를 알고 있지만 null 포인터 예외를 throw합니다. 나는 레지스트리의 플러그인 ID를 비슷하게해야하는지 모른다. –

+0

어떤 비트가 널을 제공합니까? Workbench, 활성 워크 벤치 창 및 활성 페이지는 모두 잠재적으로 null 일 수 있습니다. –

+0

활성 워크 벤치가 null이고 그 이유를 알 수 없습니다. 이클립스 RCP를 실행할 때 모든 플러그인이 포함 된 새 Eclipse가 열리고 잘 작동하는 것 같습니다. –