Eclipse 기반 프로젝트에서 Workbench 창이 모달 대화 상자를 열도록하려면 어떻게합니까?
-
22-07-2019 - |
문제
모달 대화 상자를 열려면 부모 창을 전달하고 대화 상자가 모달이되기 위해 필요한 플래그를 전달해야합니다.
일식 인프라의 위치에 따라이 부모 창을 찾는 것이 항상 쉬운 것은 아닙니다.
부모 창에 어떻게 액세스 할 수 있습니까?
해결책 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 등.
이것 좀 봐 링크 더 많은 정보를 위해서.
제휴하지 않습니다 StackOverflow