mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
VCS: create files when adding module or converting to directory format through VFS -> this will allow VCS to add files under control automatically
This commit is contained in:
@@ -16,10 +16,11 @@
|
||||
package com.intellij.ide.util.importProject;
|
||||
|
||||
import com.intellij.ide.IdeBundle;
|
||||
import com.intellij.ide.util.projectWizard.importSources.DetectedProjectRoot;
|
||||
import com.intellij.ide.util.projectWizard.importSources.impl.JavaProjectStructureDetector;
|
||||
import com.intellij.ide.util.projectWizard.importSources.ProjectFromSourcesBuilder;
|
||||
import com.intellij.ide.util.projectWizard.AbstractStepWithProgress;
|
||||
import com.intellij.ide.util.projectWizard.importSources.DetectedProjectRoot;
|
||||
import com.intellij.ide.util.projectWizard.importSources.ProjectFromSourcesBuilder;
|
||||
import com.intellij.ide.util.projectWizard.importSources.impl.JavaProjectStructureDetector;
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
@@ -107,7 +108,7 @@ public class ModulesDetectionStep extends AbstractStepWithProgress<List<ModuleDe
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validate() {
|
||||
public boolean validate() throws ConfigurationException {
|
||||
final boolean validated = super.validate();
|
||||
if (!validated) {
|
||||
return false;
|
||||
|
||||
@@ -28,12 +28,14 @@ import com.intellij.openapi.application.ApplicationNamesInfo;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
|
||||
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.ui.MultiLineLabelUI;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.ui.DocumentAdapter;
|
||||
@@ -51,6 +53,7 @@ import java.awt.event.ActionListener;
|
||||
import java.awt.event.ItemEvent;
|
||||
import java.awt.event.ItemListener;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
@@ -241,7 +244,7 @@ public class SourcePathsStep extends AbstractStepWithProgress<List<JavaModuleSou
|
||||
}
|
||||
}
|
||||
|
||||
public boolean validate() {
|
||||
public boolean validate() throws ConfigurationException {
|
||||
if (!super.validate()) {
|
||||
return false;
|
||||
}
|
||||
@@ -270,7 +273,12 @@ public class SourcePathsStep extends AbstractStepWithProgress<List<JavaModuleSou
|
||||
CommonBundle.getErrorTitle());
|
||||
return false;
|
||||
}
|
||||
srcDir.mkdirs();
|
||||
try {
|
||||
VfsUtil.createDirectories(srcDir.getPath());
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new ConfigurationException(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.intellij.ide.util.projectWizard;
|
||||
|
||||
import com.intellij.ide.IdeBundle;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.progress.ProgressIndicator;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.progress.util.ProgressIndicatorBase;
|
||||
@@ -152,7 +153,7 @@ public abstract class AbstractStepWithProgress<Result> extends ModuleWizardStep
|
||||
myPanel.revalidate();
|
||||
}
|
||||
|
||||
public boolean validate() {
|
||||
public boolean validate() throws ConfigurationException {
|
||||
if (isProgressRunning()) {
|
||||
final int answer = Messages.showOkCancelDialog(getComponent(), myPromptStopSearch,
|
||||
IdeBundle.message("title.question"), IdeBundle.message("action.continue.searching"), IdeBundle.message("action.stop.searching"), Messages.getWarningIcon());
|
||||
|
||||
@@ -19,9 +19,11 @@ import com.intellij.CommonBundle;
|
||||
import com.intellij.ide.IdeBundle;
|
||||
import com.intellij.openapi.application.ApplicationNamesInfo;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* @author cdr
|
||||
@@ -50,8 +52,10 @@ public class ProjectWizardUtil {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
final boolean ok = dir.mkdirs();
|
||||
if (!ok) {
|
||||
try {
|
||||
VfsUtil.createDirectories(dir.getPath());
|
||||
}
|
||||
catch (IOException e) {
|
||||
Messages.showErrorDialog(IdeBundle.message("error.failed.to.create.directory", dir.getPath()), CommonBundle.getErrorTitle());
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.intellij.ide.util.projectWizard;
|
||||
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -31,7 +32,7 @@ public interface SourcePathsBuilder {
|
||||
|
||||
void setContentEntryPath(String moduleRootPath);
|
||||
|
||||
List<Pair<String,String>> getSourcePaths();
|
||||
List<Pair<String,String>> getSourcePaths() throws ConfigurationException;
|
||||
|
||||
void setSourcePaths(List<Pair<String,String>> sourcePaths);
|
||||
|
||||
|
||||
+13
-1
@@ -28,9 +28,11 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ex.ProjectEx;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* @author spleaner
|
||||
@@ -50,7 +52,7 @@ public class SaveAsDirectoryBasedFormatAction extends AnAction implements DumbAw
|
||||
assert baseDir != null;
|
||||
|
||||
File ideaDir = new File(baseDir.getPath(), ProjectEx.DIRECTORY_STORE_FOLDER + File.separatorChar);
|
||||
final boolean ok = (ideaDir.exists() && ideaDir.isDirectory()) || ideaDir.mkdirs();
|
||||
final boolean ok = (ideaDir.exists() && ideaDir.isDirectory()) || createDir(ideaDir);
|
||||
if (ok) {
|
||||
LocalFileSystem.getInstance().refreshAndFindFileByIoFile(ideaDir);
|
||||
|
||||
@@ -73,6 +75,16 @@ public class SaveAsDirectoryBasedFormatAction extends AnAction implements DumbAw
|
||||
}
|
||||
}
|
||||
|
||||
private boolean createDir(File ideaDir) {
|
||||
try {
|
||||
VfsUtil.createDirectories(ideaDir.getPath());
|
||||
return true;
|
||||
}
|
||||
catch (IOException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(AnActionEvent e) {
|
||||
final Presentation presentation = e.getPresentation();
|
||||
|
||||
Reference in New Issue
Block a user