@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; }