@Override
 public boolean performFinish() {
   String[] previousProposals =
       getDialogSettings().getArray(SmartImportRootWizardPage.IMPORTED_SOURCES);
   if (previousProposals == null) {
     previousProposals = new String[0];
   }
   if (!Arrays.asList(previousProposals)
       .contains(this.projectRootPage.getSelectedRoot().getAbsolutePath())) {
     String[] newProposals = new String[previousProposals.length + 1];
     newProposals[0] = this.projectRootPage.getSelectedRoot().getAbsolutePath();
     System.arraycopy(previousProposals, 0, newProposals, 1, previousProposals.length);
     getDialogSettings().put(SmartImportRootWizardPage.IMPORTED_SOURCES, newProposals);
   }
   SmartImportJob job = getImportJob();
   if (projectRootPage.isDetectNestedProject() || projectRootPage.isConfigureProjects()) {
     SmartImportJobReportDialog dialog = new SmartImportJobReportDialog(null);
     dialog.setBlockOnOpen(false);
     getContainer().getShell().setEnabled(false);
     dialog.show(job, getShell());
   }
   job.schedule();
   return true;
 }