2008-10-05 5 views
28

보기가있는 Eclipse RCP 응용 프로그램에 대한 플러그인이 있습니다. RCP 응용 프로그램에서 이벤트가 발생하면 플러그인이 인스턴스화되고 해당 메소드가 호출되어 플러그인 모델을 채 웁니다. 그러나 "보기 표시 ..."메뉴로 이동하지 않고도보기를 표시하는 방법을 찾을 수 없습니다 .Eclipse 플러그인에서보기를 프로그래밍 방식으로 표시

나는 이것을 처리 할 수있는 무언가가 워크 벤치 싱글 톤에있을 것이라고 생각 하겠지만, 나는 어디에서 어떻게 발견하지 못했습니다.

답변

45

당신은 아마이 찾고 있습니다 :

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("viewId"); 
+2

arg0은보기 파트의 VIEW_ID 필드가 될 수 있습니다. – JeffV

+0

어디에 넣어야합니까? 나는 그것을 모든 수업에 넣었지만 여전히 효과가 없습니다. (나는 실수로 RCP 응용 프로그램 내에서보기를 닫았습니다.) – Sterls

18

를 내가 아는 한, 더 나은 것 명령

HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().showView(viewId); 

의 핸들러에서 호출합니다.

4

배경을 열어 배경으로 밀고 나면보기를 앞쪽으로 가져올 필요가 있음을 발견했습니다. activate 메서드가 트릭을 수행합니다.

PlatformUI.getWorkbench() 
    .getActiveWorkbenchWindow() 
    .getActivePage() 
    .activate(workbenchPartToActivate); 

참고 : workbenchPartToActivate는 IWorkbenchPart의 인스턴스입니다.

0

e4에서 EPartService는 부품을 엽니 다. e3 ViewPart를 여는데도 사용할 수 있습니다. IEclipseContext를 통해 다음 클래스를 인스턴스화하고 openPart-Method를 호출하면 Eclipse 내부 브라우저보기가 표시됩니다.

public class Opener { 
    @Inject 
    EPartService partService; 

    public void openPart() { 
     MPart part = partService.createPart("org.eclipse.ui.browser.view"); 
     part.setLabel("Browser"); 

     partService.showPart(part, PartState.ACTIVATE); 
    } 
} 

Here 당신이 당신의 Application.e4xmi와 함께 작동하는 방법의 예를 찾을 수 있습니다.