문제

Eclipse 플러그인에서 프로그래밍 방식으로 "Ctrl-Shift-T"대화 상자 (유형 찾기)를 열고 싶습니다. FilterselestelectionDialog 및 ResourceRcelistSelectionDialog를 시도했지만 작업 공간에서 모든 유형을 어떻게 얻습니까?

고마워, Ido.

도움이 되었습니까?

해결책

보다 org.eclipse.jdt.internal.ui.actions.opentyPeaction Eclipse가 처리하는 방법. 핵심 부분은 이것입니다.

SelectionDialog dialog= new OpenTypeSelectionDialog(parent, true,
    PlatformUI.getWorkbench().getProgressService(), null, 
    IJavaSearchConstants.TYPE);
dialog.setTitle(JavaUIMessages.OpenTypeAction_dialogTitle);
dialog.setMessage(JavaUIMessages.OpenTypeAction_dialogMessage);

int result= dialog.open();

부모가 대화 상자를 열려는 합성물 인 경우. 일반적으로 활성 워크 벤치 쉘, 다음에 의해 획득됩니다.

Shell parent= JavaPlugin.getActiveWorkbenchShell();

OpentyPeselectionDialog는 내부 패키지에 있으므로 "낙담 한 액세스"경고를 받게됩니다. 위험을 알고있는 한이 유형을 사용하는 것이 좋습니다. "낙담"은 오류가 아닌 경고이며, 실제로 Eclipse는 OpentyPeselectionDialog를 소개합니다.2 현재의 서명을 바꾸는 대신. Eclipse 플랫폼과 주요 제품은 혁신을 장려하기 위해 가능한 한 많은 호환성을 유지하려고 노력합니다 ( 정책 위키에서). 일반적으로 낙담 한 액세스를 통해 도우미를 사용하여 API 변경에서 나머지 코드를 보호하는 것이 합리적입니다. 즉, 참조 된 유형이 변경되면 변경 해야하는 단일 지점이 있음을 의미합니다.

대안은 대화 상자와 부모를 직접 구현하는 것이지만, 부모 인 FilterstypesselectionDialog는 20 개가 넘는 내부 참조를 가지고 있으므로 문제를 악화시킬 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top