Eclipse RCP : 편집기로드 후 메시지 대화 상자를 표시하는 방법은 무엇입니까?

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

  •  07-07-2019
  •  | 
  •  

문제

Treenode의 클릭에 대한보기에서 편집기를 열고 있습니다. 이제 편집기로드 및 컨트롤이 사용자에게 표시되면 편집기에있는 특정 값을 기반으로 사용자에게 경고 메시지 대화 상자를 표시하려고합니다.

편집기의 CreatePartControl 메소드가 끝날 때 경고 대화 상자를 넣어 시도했습니다. 필요한 기능에 따라 Treenode를 두 번 클라이킹하는 데 대화 상자가 나타납니다. 그러나 문제는 대화 상자가 나타날 때 편집기의 컨트롤이 아직 표시되지 않는다는 것입니다. 편집기 컨트롤이 표시되는 대화 상자를 닫을 때만 가능합니다.

나는 그것이 다른 방법으로 일어나기를 원합니다. 즉, 편집기가 먼저 나타나도록 컨트롤 된 다음 경고 대화 상자가 나타납니다. 이 효과를 달성하기 위해 어떤 변화가 있어야합니까?

도움이 되었습니까?

해결책

당신은 그것을 부르고 싶을 수도 있습니다 메시지 메시드 비동기적인 방식으로, 편집자가 제안한대로 스스로를 완료 할 수있는 기회를 남기기 위해 이 메시지.

asyncexec () runnable에 경고 대화 상자를 표시하면 편집기 초기화가 올바른 순서로 모든 일이 발생하도록합니다.

따라서이 코드와 같은 것은 다음과 같은 트릭을 수행 할 수 있습니다.

getSite().getShell().getDisplay().asyncExec
    (new Runnable() {
        public void run() {
            MessageDialog.openWarning(getSite().getShell(),"wrong","no)
        }
    });
}

이것의 다른 예 MAPEDITOR Asyncexec을 통해 메시지가 표시되는 클래스, 결과를 기다립니다.

Platformgis.syncIndisplaythread

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