use of com.intellij.openapi.externalSystem.service.project.wizard.SelectExternalProjectStep in project intellij-community by JetBrains.
the class GradleProjectOpenProcessor method doQuickImport.
@Override
protected boolean doQuickImport(VirtualFile file, WizardContext wizardContext) {
final GradleProjectImportProvider projectImportProvider = new GradleProjectImportProvider(getBuilder());
getBuilder().setFileToImport(file.getPath());
getBuilder().prepare(wizardContext);
final String pathToUse;
if (!file.isDirectory() && file.getParent() != null) {
pathToUse = file.getParent().getPath();
} else {
pathToUse = file.getPath();
}
getBuilder().getControl(null).setLinkedProjectPath(pathToUse);
final boolean result;
if (ApplicationManager.getApplication().isHeadlessEnvironment()) {
result = setupGradleProjectSettingsInHeadlessMode(projectImportProvider, wizardContext);
} else {
AddModuleWizard dialog = new AddModuleWizard(null, file.getPath(), projectImportProvider);
dialog.getWizardContext().setProjectBuilder(getBuilder());
dialog.navigateToStep(step -> step instanceof SelectExternalProjectStep);
result = dialog.showAndGet();
}
if (result && getBuilder().getExternalProjectNode() != null) {
wizardContext.setProjectName(getBuilder().getExternalProjectNode().getData().getInternalName());
}
return result;
}
use of com.intellij.openapi.externalSystem.service.project.wizard.SelectExternalProjectStep in project intellij-community by JetBrains.
the class GradleProjectOpenProcessor method setupGradleProjectSettingsInHeadlessMode.
private boolean setupGradleProjectSettingsInHeadlessMode(GradleProjectImportProvider projectImportProvider, WizardContext wizardContext) {
final ModuleWizardStep[] wizardSteps = projectImportProvider.createSteps(wizardContext);
if (wizardSteps.length > 0 && wizardSteps[0] instanceof SelectExternalProjectStep) {
SelectExternalProjectStep selectExternalProjectStep = (SelectExternalProjectStep) wizardSteps[0];
wizardContext.setProjectBuilder(getBuilder());
try {
selectExternalProjectStep.updateStep();
final ImportFromGradleControl importFromGradleControl = getBuilder().getControl(wizardContext.getProject());
GradleProjectSettingsControl gradleProjectSettingsControl = (GradleProjectSettingsControl) importFromGradleControl.getProjectSettingsControl();
final GradleProjectSettings projectSettings = gradleProjectSettingsControl.getInitialSettings();
if (GRADLE_DISTRIBUTION_TYPE != null) {
for (DistributionType type : DistributionType.values()) {
if (type.name().equals(GRADLE_DISTRIBUTION_TYPE)) {
projectSettings.setDistributionType(type);
break;
}
}
}
if (GRADLE_HOME != null) {
projectSettings.setGradleHome(GRADLE_HOME);
}
gradleProjectSettingsControl.reset();
final GradleSystemSettingsControl systemSettingsControl = (GradleSystemSettingsControl) importFromGradleControl.getSystemSettingsControl();
assert systemSettingsControl != null;
final GradleSettings gradleSettings = systemSettingsControl.getInitialSettings();
if (GRADLE_VM_OPTIONS != null) {
gradleSettings.setGradleVmOptions(GRADLE_VM_OPTIONS);
}
if (GRADLE_OFFLINE != null) {
gradleSettings.setOfflineWork(Boolean.parseBoolean(GRADLE_OFFLINE));
}
String serviceDirectory = GRADLE_SERVICE_DIRECTORY;
if (GRADLE_SERVICE_DIRECTORY != null) {
gradleSettings.setServiceDirectoryPath(serviceDirectory);
}
systemSettingsControl.reset();
if (!selectExternalProjectStep.validate()) {
return false;
}
} catch (ConfigurationException e) {
Messages.showErrorDialog(wizardContext.getProject(), e.getMessage(), e.getTitle());
return false;
}
selectExternalProjectStep.updateDataModel();
}
return true;
}
Aggregations