KotlinJsModuleConfigurator, KotlinJavaModuleConfigurator: refactoring
This commit is contained in:
@@ -18,7 +18,6 @@ package org.jetbrains.jet.plugin.configuration;
|
|||||||
|
|
||||||
import com.intellij.openapi.application.ApplicationManager;
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
import com.intellij.openapi.module.Module;
|
import com.intellij.openapi.module.Module;
|
||||||
import com.intellij.openapi.module.ModuleManager;
|
|
||||||
import com.intellij.openapi.module.impl.scopes.LibraryScope;
|
import com.intellij.openapi.module.impl.scopes.LibraryScope;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.openapi.roots.OrderRootType;
|
import com.intellij.openapi.roots.OrderRootType;
|
||||||
@@ -27,14 +26,11 @@ import com.intellij.openapi.vfs.VirtualFile;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.plugin.framework.JavaRuntimeLibraryDescription;
|
import org.jetbrains.jet.plugin.framework.JavaRuntimeLibraryDescription;
|
||||||
import org.jetbrains.jet.plugin.framework.JavaRuntimePresentationProvider;
|
import org.jetbrains.jet.plugin.framework.JavaRuntimePresentationProvider;
|
||||||
import org.jetbrains.jet.plugin.framework.ui.CreateLibraryDialogWithModules;
|
|
||||||
import org.jetbrains.jet.plugin.project.ProjectStructureUtil;
|
import org.jetbrains.jet.plugin.project.ProjectStructureUtil;
|
||||||
import org.jetbrains.jet.plugin.versions.KotlinRuntimeLibraryCoreUtil;
|
import org.jetbrains.jet.plugin.versions.KotlinRuntimeLibraryCoreUtil;
|
||||||
import org.jetbrains.jet.utils.PathUtil;
|
import org.jetbrains.jet.utils.PathUtil;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static org.jetbrains.jet.plugin.configuration.ConfigureKotlinInProjectUtils.showInfoNotification;
|
import static org.jetbrains.jet.plugin.configuration.ConfigureKotlinInProjectUtils.showInfoNotification;
|
||||||
|
|
||||||
@@ -52,6 +48,18 @@ public class KotlinJavaModuleConfigurator extends KotlinWithLibraryConfigurator
|
|||||||
return JavaRuntimeLibraryDescription.LIBRARY_NAME;
|
return JavaRuntimeLibraryDescription.LIBRARY_NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
protected String getDialogTitle() {
|
||||||
|
return JavaRuntimeLibraryDescription.DIALOG_TITLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
protected String getLibraryCaption() {
|
||||||
|
return JavaRuntimeLibraryDescription.LIBRARY_CAPTION;
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public String getJarName() {
|
public String getJarName() {
|
||||||
@@ -82,38 +90,6 @@ public class KotlinJavaModuleConfigurator extends KotlinWithLibraryConfigurator
|
|||||||
return NAME;
|
return NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void configure(@NotNull Project project) {
|
|
||||||
String defaultPath = getDefaultPathToJarFile(project);
|
|
||||||
boolean showPathPanelForJava = needToChooseJarPath(project);
|
|
||||||
|
|
||||||
List<Module> nonConfiguredModules = !ApplicationManager.getApplication().isUnitTestMode() ?
|
|
||||||
ConfigureKotlinInProjectUtils.getNonConfiguredModules(project, this):
|
|
||||||
Arrays.asList(ModuleManager.getInstance(project).getModules());
|
|
||||||
|
|
||||||
List<Module> modulesToConfigure = nonConfiguredModules;
|
|
||||||
String copyLibIntoPath = null;
|
|
||||||
|
|
||||||
if (nonConfiguredModules.size() > 1 || showPathPanelForJava) {
|
|
||||||
CreateLibraryDialogWithModules dialog = new CreateLibraryDialogWithModules(
|
|
||||||
project, nonConfiguredModules, defaultPath, showPathPanelForJava,
|
|
||||||
JavaRuntimeLibraryDescription.DIALOG_TITLE,
|
|
||||||
JavaRuntimeLibraryDescription.LIBRARY_CAPTION);
|
|
||||||
|
|
||||||
if (!ApplicationManager.getApplication().isUnitTestMode()) {
|
|
||||||
dialog.show();
|
|
||||||
if (!dialog.isOK()) return;
|
|
||||||
}
|
|
||||||
|
|
||||||
modulesToConfigure = dialog.getModulesToConfigure();
|
|
||||||
copyLibIntoPath = dialog.getCopyIntoPath();
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Module module : modulesToConfigure) {
|
|
||||||
configureModuleWithLibrary(module, defaultPath, copyLibIntoPath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public File getExistedJarFile() {
|
public File getExistedJarFile() {
|
||||||
|
|||||||
@@ -16,20 +16,14 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.plugin.configuration;
|
package org.jetbrains.jet.plugin.configuration;
|
||||||
|
|
||||||
import com.intellij.openapi.application.ApplicationManager;
|
|
||||||
import com.intellij.openapi.module.Module;
|
import com.intellij.openapi.module.Module;
|
||||||
import com.intellij.openapi.module.ModuleManager;
|
|
||||||
import com.intellij.openapi.project.Project;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.plugin.framework.JSLibraryStdDescription;
|
import org.jetbrains.jet.plugin.framework.JSLibraryStdDescription;
|
||||||
import org.jetbrains.jet.plugin.framework.ui.CreateLibraryDialogWithModules;
|
|
||||||
import org.jetbrains.jet.plugin.project.ProjectStructureUtil;
|
import org.jetbrains.jet.plugin.project.ProjectStructureUtil;
|
||||||
import org.jetbrains.jet.utils.PathUtil;
|
import org.jetbrains.jet.utils.PathUtil;
|
||||||
import org.jetbrains.k2js.JavaScript;
|
import org.jetbrains.k2js.JavaScript;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class KotlinJsModuleConfigurator extends KotlinWithLibraryConfigurator {
|
public class KotlinJsModuleConfigurator extends KotlinWithLibraryConfigurator {
|
||||||
public static final String NAME = JavaScript.LOWER_NAME;
|
public static final String NAME = JavaScript.LOWER_NAME;
|
||||||
@@ -57,6 +51,18 @@ public class KotlinJsModuleConfigurator extends KotlinWithLibraryConfigurator {
|
|||||||
return JSLibraryStdDescription.LIBRARY_NAME;
|
return JSLibraryStdDescription.LIBRARY_NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
protected String getDialogTitle() {
|
||||||
|
return JSLibraryStdDescription.DIALOG_TITLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
protected String getLibraryCaption() {
|
||||||
|
return JSLibraryStdDescription.LIBRARY_CAPTION;
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public String getJarName() {
|
public String getJarName() {
|
||||||
@@ -86,39 +92,6 @@ public class KotlinJsModuleConfigurator extends KotlinWithLibraryConfigurator {
|
|||||||
return assertFileExists(PathUtil.getKotlinPathsForIdeaPlugin().getJsStdLibSrcJarPath());
|
return assertFileExists(PathUtil.getKotlinPathsForIdeaPlugin().getJsStdLibSrcJarPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void configure(@NotNull Project project) {
|
|
||||||
String defaultPathToJar = getDefaultPathToJarFile(project);
|
|
||||||
boolean showPathToJarPanel = needToChooseJarPath(project);
|
|
||||||
|
|
||||||
List<Module> nonConfiguredModules =
|
|
||||||
!ApplicationManager.getApplication().isUnitTestMode() ?
|
|
||||||
ConfigureKotlinInProjectUtils.getNonConfiguredModules(project, this) :
|
|
||||||
Arrays.asList(ModuleManager.getInstance(project).getModules());
|
|
||||||
|
|
||||||
List<Module> modulesToConfigure = nonConfiguredModules;
|
|
||||||
String copyLibraryIntoPath = null;
|
|
||||||
|
|
||||||
if (nonConfiguredModules.size() > 1 || showPathToJarPanel) {
|
|
||||||
CreateLibraryDialogWithModules dialog = new CreateLibraryDialogWithModules(
|
|
||||||
project, nonConfiguredModules, defaultPathToJar, showPathToJarPanel,
|
|
||||||
JSLibraryStdDescription.DIALOG_TITLE,
|
|
||||||
JSLibraryStdDescription.LIBRARY_CAPTION);
|
|
||||||
|
|
||||||
if (!ApplicationManager.getApplication().isUnitTestMode()) {
|
|
||||||
dialog.show();
|
|
||||||
if (!dialog.isOK()) return;
|
|
||||||
}
|
|
||||||
|
|
||||||
modulesToConfigure = dialog.getModulesToConfigure();
|
|
||||||
copyLibraryIntoPath = dialog.getCopyIntoPath();
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Module module : modulesToConfigure) {
|
|
||||||
configureModuleWithLibrary(module, defaultPathToJar, copyLibraryIntoPath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
KotlinJsModuleConfigurator() {
|
KotlinJsModuleConfigurator() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package org.jetbrains.jet.plugin.configuration;
|
|||||||
|
|
||||||
import com.intellij.openapi.application.ApplicationManager;
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
import com.intellij.openapi.module.Module;
|
import com.intellij.openapi.module.Module;
|
||||||
|
import com.intellij.openapi.module.ModuleManager;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.openapi.roots.*;
|
import com.intellij.openapi.roots.*;
|
||||||
import com.intellij.openapi.roots.libraries.Library;
|
import com.intellij.openapi.roots.libraries.Library;
|
||||||
@@ -34,10 +35,13 @@ import com.intellij.util.Processor;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.plugin.JetPluginUtil;
|
import org.jetbrains.jet.plugin.JetPluginUtil;
|
||||||
|
import org.jetbrains.jet.plugin.framework.ui.CreateLibraryDialogWithModules;
|
||||||
import org.jetbrains.jet.plugin.framework.ui.FileUIUtils;
|
import org.jetbrains.jet.plugin.framework.ui.FileUIUtils;
|
||||||
import org.jetbrains.jet.plugin.project.ProjectStructureUtil;
|
import org.jetbrains.jet.plugin.project.ProjectStructureUtil;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static org.jetbrains.jet.plugin.configuration.ConfigureKotlinInProjectUtils.showInfoNotification;
|
import static org.jetbrains.jet.plugin.configuration.ConfigureKotlinInProjectUtils.showInfoNotification;
|
||||||
|
|
||||||
@@ -56,6 +60,12 @@ public abstract class KotlinWithLibraryConfigurator implements KotlinProjectConf
|
|||||||
@NotNull
|
@NotNull
|
||||||
protected abstract String getMessageForOverrideDialog();
|
protected abstract String getMessageForOverrideDialog();
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
protected abstract String getDialogTitle();
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
protected abstract String getLibraryCaption();
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public abstract File getExistedJarFile();
|
public abstract File getExistedJarFile();
|
||||||
|
|
||||||
@@ -68,6 +78,39 @@ public abstract class KotlinWithLibraryConfigurator implements KotlinProjectConf
|
|||||||
!JetPluginUtil.isGradleModule(module);
|
!JetPluginUtil.isGradleModule(module);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void configure(@NotNull Project project) {
|
||||||
|
String defaultPathToJar = getDefaultPathToJarFile(project);
|
||||||
|
boolean showPathToJarPanel = needToChooseJarPath(project);
|
||||||
|
|
||||||
|
List<Module> nonConfiguredModules =
|
||||||
|
!ApplicationManager.getApplication().isUnitTestMode() ?
|
||||||
|
ConfigureKotlinInProjectUtils.getNonConfiguredModules(project, this) :
|
||||||
|
Arrays.asList(ModuleManager.getInstance(project).getModules());
|
||||||
|
|
||||||
|
List<Module> modulesToConfigure = nonConfiguredModules;
|
||||||
|
String copyLibraryIntoPath = null;
|
||||||
|
|
||||||
|
if (nonConfiguredModules.size() > 1 || showPathToJarPanel) {
|
||||||
|
CreateLibraryDialogWithModules dialog = new CreateLibraryDialogWithModules(
|
||||||
|
project, nonConfiguredModules, defaultPathToJar, showPathToJarPanel,
|
||||||
|
getDialogTitle(),
|
||||||
|
getLibraryCaption());
|
||||||
|
|
||||||
|
if (!ApplicationManager.getApplication().isUnitTestMode()) {
|
||||||
|
dialog.show();
|
||||||
|
if (!dialog.isOK()) return;
|
||||||
|
}
|
||||||
|
|
||||||
|
modulesToConfigure = dialog.getModulesToConfigure();
|
||||||
|
copyLibraryIntoPath = dialog.getCopyIntoPath();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Module module : modulesToConfigure) {
|
||||||
|
configureModuleWithLibrary(module, defaultPathToJar, copyLibraryIntoPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected void configureModuleWithLibrary(
|
protected void configureModuleWithLibrary(
|
||||||
@NotNull Module module,
|
@NotNull Module module,
|
||||||
@NotNull String defaultPath,
|
@NotNull String defaultPath,
|
||||||
|
|||||||
Reference in New Issue
Block a user