+ checkUpdateJob.schedule();
+
+
+ checkUpdateJob.addJobChangeListener(new JobChangeAdapter() {
+ @Override
+ public void done(IJobChangeEvent event) {
+ if (event.getResult().isOK()) {
+ sync.syncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ if(MessageDialog.openConfirm(shell, Messages.UpdateHandler_UPDATES_FOUND_TITLE, Messages.UpdateHandler_UPDATES_FOUND_MESSAGE)){
+ Job installUpdateJob = new Job(Messages.UpdateHandler_INSTALL_JOB) {
+ @Override
+ protected IStatus run(final IProgressMonitor monitor) {
+ // run installation
+ ProvisioningJob provisioningJob = operation.getProvisioningJob(monitor);
+
+ // updates cannot run from within Eclipse IDE!!!
+ if (provisioningJob == null) {
+ logger.error("Trying to update from the Eclipse IDE? This won't work!"); //$NON-NLS-1$
+ return Status.CANCEL_STATUS;
+ }
+ configureProvisioningJob(provisioningJob, shell, sync, workbench);
+ provisioningJob.schedule();
+ return Status.OK_STATUS;
+ }
+ };
+ installUpdateJob.schedule();
+ }
+ }
+ });
+ }
+ }
+ });