import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.actionSystem.Presentation;
import com.intellij.openapi.application.ApplicationNamesInfo;
-import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.progress.ProgressIndicator;
+import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.util.Ref;
final ProgressIndicator indicator = ProgressManager.getInstance().getProgressIndicator();
final File path = new File(file.getPath());
- if (! SvnCheckoutProvider.promptForWCopyFormat(path, project)) {
+ if (! SvnCheckoutProvider.promptForWCFormatAndSelect(path, project)) {
// action cancelled
actionStarted.set(Boolean.FALSE);
return;
target.mkdirs();
}
final SVNException[] exception = new SVNException[1];
-
+ final String[] selectedFormat = new String[1];
final Task.Backgroundable checkoutBackgroundTask = new Task.Backgroundable(project,
SvnBundle.message("message.title.check.out"), true, VcsConfiguration.getInstance(project).getCheckoutOption()) {
public void run(@NotNull final ProgressIndicator indicator) {
+ SvnWorkingCopyFormatHolder.setPresetFormat(WorkingCopyFormat.getInstance(selectedFormat[0]));
+
final ProgressIndicator progressIndicator = ProgressManager.getInstance().getProgressIndicator();
final SVNUpdateClient client = SvnVcs.getInstance(project).createUpdateClient();
client.setEventHandler(new CheckoutEventHandler(SvnVcs.getInstance(project), false, progressIndicator));
};
// allow to select working copy format
- if (! promptForWCopyFormat(target, project)) {
+ selectedFormat[0] = promptForWCopyFormat(target, project);
+ if (selectedFormat == null) {
// cancelled
- SvnWorkingCopyFormatHolder.setPresetFormat(null);
return;
}
ProgressManager.getInstance().run(checkoutBackgroundTask);
}
}
- public static boolean promptForWCopyFormat(final File target, final Project project) {
+ public static boolean promptForWCFormatAndSelect(final File target, final Project project) {
+ final String result = promptForWCopyFormat(target, project);
+ if (result != null) {
+ SvnWorkingCopyFormatHolder.setPresetFormat(WorkingCopyFormat.getInstance(result));
+ }
+ return result != null;
+ }
+
+ @Nullable
+ private static String promptForWCopyFormat(final File target, final Project project) {
String formatMode = null;
final Ref<Boolean> wasOk = new Ref<Boolean>();
while ((formatMode == null) && (! Boolean.FALSE.equals(wasOk.get()))) {
formatMode = SvnFormatSelector.showUpgradeDialog(target, project, true, SvnConfiguration.UPGRADE_AUTO_16, wasOk);
- SvnWorkingCopyFormatHolder.setPresetFormat(WorkingCopyFormat.getInstance(formatMode));
}
- return Boolean.TRUE.equals(wasOk.get());
+ return Boolean.TRUE.equals(wasOk.get()) ? formatMode : null;
}
public static void doExport(final Project project, final File target, final String url, final SVNDepth depth,