리스너가있는 여러 UI 구성 요소가 있습니다. 이러한 모든 리스너는 dialogChanged()
메서드를 호출합니다. 내 목표는이 메서드에서 일부 긴 처리 및 UI 고정시키지 않는 것입니다. Lars Vogel에 따르면 런타임 중에 실행되는 UISynchronize
의 도움으로이를 수행 할 수 있습니다. 그러나 그것은 나를 위해 실패합니다.이 유형의 필드는 주입되지 않고 NullPointerException
이됩니다.Eclipse 플러그인 개발, 장기 실행 태스크
@Inject UISynchronize sync;
Job job = new Job("My Job") {
@Override
protected IStatus run(IProgressMonitor arg0)
{
sync.asyncExec(new Runnable()
{
@Override
public void run()
{
updateStatus("Checking connection...");
if (bisInstallDirSelected)
bisSettingsChanged();
else
jarSettingsChanged();
}
});
return Status.OK_STATUS;
}
};
protected void dialogChanged()
{
job.schedule();
}
방법 updateStatus(String s)
, bisSettingsChanged()
및 jarSettingsChanged()
presice을로, 그들은 누군가가 내가 뭐하는 거지 말해 수 있다면 나는 감사하겠습니다 슈퍼 클래스 org.eclipse.jface.wizard.WizardPage
방법 setErrorMessage(String newMessage)
를 사용하여 UI와 상호 작용 : 여기 내 코드의 관련 부분입니다 잘못되었거나이 문제를 해결할 수있는 더 좋은 방법을 제안합니다.
클래스가이 코드가 포함 된 무엇을? @Inject는 애플리케이션 모델이 알고있는 클래스 (예 : MPart 클래스)에서만 작동합니다. –
클래스는 간접적으로'org.eclipse.jface.wizard.WizardPage'를 확장하고 다른 의존성을 가지지 않습니다. –