Eclipse 기반 프로젝트에서 Workbench 창이 모달 대화 상자를 열도록하려면 어떻게합니까?

StackOverflow https://stackoverflow.com/questions/443245

문제

모달 대화 상자를 열려면 부모 창을 전달하고 대화 상자가 모달이되기 위해 필요한 플래그를 전달해야합니다.

일식 인프라의 위치에 따라이 부모 창을 찾는 것이 항상 쉬운 것은 아닙니다.

부모 창에 어떻게 액세스 할 수 있습니까?

도움이 되었습니까?

해결책 2

보기 또는 편집자에서 (이 부분은 쉽습니다) :

this.getSite().getWorkbenchWindow().getShell()

다른 곳에서 볼 수 있도록 뷰 또는 편집기에 액세스하며 위와 동일합니다.

보기 나 편집자에 액세스 할 수없는 수업에 자신을 찾으면 UI 코드를 호출하고 싶지 않지만 실제로 발에서 자신을 쏘고 싶다면 :

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()

다른 팁

이전 답변의 코드가 작동합니다. 그러나 UI 스레드에서만 대화 상자 만 열 수 있습니다. 배경 프로세스와 같은 다른 스레드에서 대화 상자를 열면 다음과 같은 작업을 수행해야합니다.

PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
    public void run() {
        Shell activeShell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
    }
});

그렇지 않으면 대화 상자를 만들 때 예외가 나타납니다.

당신이하고 싶은 일이 정확히 아니지만 사용해야 할 수도 있습니다. swt.application_modal, swt.dialog_trim 등.

이것 좀 봐 링크 더 많은 정보를 위해서.

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