Я работаю над приложением RCP, у меня есть прецедент, в котором я проверяю, не является ли корневой компонент нулевым, что означает, что модель уже загружена и если она равна нулю, тогда модель не загружается, если модель не загружена, я пытаюсь сначала загрузить модель в отдельное задание, а затем получить модель после ее загрузки. То, что я написалЗапуск работы затмения
if (cm != null) {
LoadModel m = null;
swaModel = architectureModelReader.getArchitectureModel();
Component rootComponent = swaModel.getRootComponent();
if(rootComponent != null){
MirrorConfigurationModel mcm = new MirrorConfigurationModel(rootComponent, connectionString, emptyEapName, platformDB.getAbsolutePath(),temp, getJetPath(), disabledComponents, disabledDiagrams, disabledInterfaces, disabledElements);
mcm.execute();
}
else{
final Job readArchitectureModelJob = new Job("Long Running Job") {
protected IStatus run(IProgressMonitor monitor) {
try {
architectureModelReader.createSamInstance(monitor, true);
return Status.OK_STATUS;
}catch(final Exception e) {
return Status.CANCEL_STATUS;
}
}
};
readArchitectureModelJob.addJobChangeListener(new JobChangeAdapter() {
public void done(IJobChangeEvent event) {
if (event.getResult().isOK()){
Component c = swaModel.getRootComponent();
System.out.println(c.getName());
}
else
System.out.println("Job did not complete successfully");
}
});
readArchitectureModelJob.setSystem(true);
readArchitectureModelJob.schedule();
}
}
}
Так вот, если корневой компонент не является нулевым зеркало нагруженная модель (которая работает отлично), но если корень компонента равна нулю, я пытаюсь загрузить модель в еще пункте, а затем получение но проблема до загрузки модели в позицию else, которую обработчик перескакивает до
Может ли кто-нибудь сказать мне, как запустить загрузку этой модели, прежде чем я получу модель?
Благодаря
Вам придется подождать, пока работа запустится, и сделайте то, что вы хотите сделать. –
Как я могу ждать выполнения задания? – wearybands