diff --git a/plugins/android/src/META-INF/plugin.xml b/plugins/android/src/META-INF/plugin.xml
index 8e5d32123c76..c400d4777a05 100644
--- a/plugins/android/src/META-INF/plugin.xml
+++ b/plugins/android/src/META-INF/plugin.xml
@@ -116,8 +116,7 @@
-
-
+
@@ -151,6 +150,7 @@
+
diff --git a/plugins/android/src/org/jetbrains/android/converter/AndroidModuleToJavaModuleConverterProvider.java b/plugins/android/src/org/jetbrains/android/converter/AndroidModuleToJavaModuleConverterProvider.java
new file mode 100644
index 000000000000..442b46d66bb8
--- /dev/null
+++ b/plugins/android/src/org/jetbrains/android/converter/AndroidModuleToJavaModuleConverterProvider.java
@@ -0,0 +1,40 @@
+package org.jetbrains.android.converter;
+
+import com.intellij.conversion.*;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * @author Eugene.Kudelevsky
+ */
+public class AndroidModuleToJavaModuleConverterProvider extends ConverterProvider {
+ public AndroidModuleToJavaModuleConverterProvider() {
+ super("android-module-to-java-module");
+ }
+
+ @NotNull
+ @Override
+ public String getConversionDescription() {
+ return "Android modules will be converted to Java modules with Android facet";
+ }
+
+ @NotNull
+ @Override
+ public ProjectConverter createConverter(@NotNull ConversionContext context) {
+ return new ProjectConverter() {
+ @Override
+ public ConversionProcessor createModuleFileConverter() {
+ return new ConversionProcessor() {
+ @Override
+ public boolean isConversionNeeded(ModuleSettings moduleSettings) {
+ return "ANDROID_MODULE".equals(moduleSettings.getModuleType());
+ }
+
+ @Override
+ public void process(ModuleSettings moduleSettings) throws CannotConvertException {
+ moduleSettings.setModuleType("JAVA_MODULE");
+ }
+ };
+ }
+ };
+ }
+}
diff --git a/plugins/android/src/org/jetbrains/android/facet/AndroidFacetType.java b/plugins/android/src/org/jetbrains/android/facet/AndroidFacetType.java
index b364d859e1b7..6d13032edc00 100644
--- a/plugins/android/src/org/jetbrains/android/facet/AndroidFacetType.java
+++ b/plugins/android/src/org/jetbrains/android/facet/AndroidFacetType.java
@@ -20,7 +20,6 @@ import com.intellij.facet.FacetType;
import com.intellij.openapi.module.JavaModuleType;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleType;
-import org.jetbrains.android.newProject.AndroidModuleType;
import org.jetbrains.android.util.AndroidUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -52,7 +51,7 @@ public class AndroidFacetType extends FacetType steps = new ArrayList();
+ ProjectWizardStepFactory factory = ProjectWizardStepFactory.getInstance();
+ steps.add(factory.createSourcePathsStep(wizardContext, this, null, "reference.dialogs.new.project.fromScratch.source"));
+
+ if (!hasAppropriateJdk()) {
+ steps.add(new ProjectJdkForModuleStep(wizardContext, JavaSdk.getInstance()) {
+ @Override
+ public void updateDataModel() {
+ // do nothing
+ }
+
+ @Override
+ public boolean validate() {
+ for (Object o : getAllJdks()) {
+ if (o instanceof Sdk) {
+ Sdk sdk = (Sdk)o;
+ if (AndroidSdkUtils.isApplicableJdk(sdk)) {
+ return true;
+ }
+ }
+ }
+ Messages.showErrorDialog(AndroidBundle.message("no.jdk.error"), CommonBundle.getErrorTitle());
+ return false;
+ }
+ });
+ }
+
+ steps.add(new AndroidModuleWizardStep(this, wizardContext));
+ return steps.toArray(new ModuleWizardStep[steps.size()]);
+ }
+
+ public Icon getBigIcon() {
+ return AndroidUtils.ANDROID_ICON_24;
+ }
+
+ public String getDescription() {
+ return AndroidBundle.message("android.module.type.description");
+ }
+
+ public String getPresentableName() {
+ return AndroidBundle.message("android.module.type.name");
+ }
+
+ @Override
+ public String getBuilderId() {
+ return getClass().getName();
+ }
+
+ private static boolean hasAppropriateJdk() {
+ for (Sdk sdk : ProjectJdkTable.getInstance().getAllJdks()) {
+ if (AndroidSdkUtils.isApplicableJdk(sdk)) {
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/plugins/android/src/org/jetbrains/android/newProject/AndroidModuleConfigurationEditorProvider.java b/plugins/android/src/org/jetbrains/android/newProject/AndroidModuleConfigurationEditorProvider.java
deleted file mode 100644
index 98b77903d7be..000000000000
--- a/plugins/android/src/org/jetbrains/android/newProject/AndroidModuleConfigurationEditorProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2000-2010 JetBrains s.r.o.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.jetbrains.android.newProject;
-
-import com.intellij.openapi.module.ModuleType;
-import com.intellij.openapi.roots.ui.configuration.ModuleConfigurationEditorProvider;
-import com.intellij.openapi.roots.ui.configuration.ModuleConfigurationState;
-import com.intellij.openapi.roots.ui.configuration.DefaultModuleConfigurationEditorFactory;
-import com.intellij.openapi.module.ModuleConfigurationEditor;
-import com.intellij.openapi.module.Module;
-
-import java.util.List;
-import java.util.ArrayList;
-
-/**
- * Created by IntelliJ IDEA.
- * User: Eugene.Kudelevsky
- * Date: Jun 27, 2009
- * Time: 6:34:42 PM
- * To change this template use File | Settings | File Templates.
- */
-public class AndroidModuleConfigurationEditorProvider implements ModuleConfigurationEditorProvider {
- public ModuleConfigurationEditor[] createEditors(ModuleConfigurationState state) {
- final Module module = state.getRootModel().getModule();
- if (ModuleType.get(module) != AndroidModuleType.getInstance()) {
- return ModuleConfigurationEditor.EMPTY;
- }
-
- final DefaultModuleConfigurationEditorFactory editorFactory = DefaultModuleConfigurationEditorFactory.getInstance();
- List editors = new ArrayList();
- editors.add(editorFactory.createModuleContentRootsEditor(state));
- editors.add(editorFactory.createOutputEditor(state));
- editors.add(editorFactory.createClasspathEditor(state));
- return editors.toArray(new ModuleConfigurationEditor[editors.size()]);
- }
-}
diff --git a/plugins/android/src/org/jetbrains/android/newProject/AndroidModuleType.java b/plugins/android/src/org/jetbrains/android/newProject/AndroidModuleType.java
deleted file mode 100644
index 78e7fc5b17ae..000000000000
--- a/plugins/android/src/org/jetbrains/android/newProject/AndroidModuleType.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright 2000-2010 JetBrains s.r.o.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.jetbrains.android.newProject;
-
-import com.intellij.CommonBundle;
-import com.intellij.ide.util.projectWizard.ModuleWizardStep;
-import com.intellij.ide.util.projectWizard.ProjectJdkForModuleStep;
-import com.intellij.ide.util.projectWizard.ProjectWizardStepFactory;
-import com.intellij.ide.util.projectWizard.WizardContext;
-import com.intellij.openapi.module.ModuleType;
-import com.intellij.openapi.module.ModuleTypeManager;
-import com.intellij.openapi.projectRoots.JavaSdk;
-import com.intellij.openapi.projectRoots.ProjectJdkTable;
-import com.intellij.openapi.projectRoots.Sdk;
-import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
-import com.intellij.openapi.ui.Messages;
-import org.jetbrains.android.sdk.AndroidSdkUtils;
-import org.jetbrains.android.util.AndroidBundle;
-import org.jetbrains.android.util.AndroidUtils;
-
-import javax.swing.*;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by IntelliJ IDEA.
- * User: Eugene.Kudelevsky
- * Date: Jun 26, 2009
- * Time: 7:30:12 PM
- * To change this template use File | Settings | File Templates.
- */
-public class AndroidModuleType extends ModuleType {
- public static final String MODULE_TYPE_ID = "ANDROID_MODULE";
-
- public AndroidModuleType() {
- super(MODULE_TYPE_ID);
- }
-
- public static AndroidModuleType getInstance() {
- return (AndroidModuleType)ModuleTypeManager.getInstance().findByID(MODULE_TYPE_ID);
- }
-
- public AndroidModuleBuilder createModuleBuilder() {
- return new AndroidModuleBuilder();
- }
-
- @Override
- public ModuleWizardStep[] createWizardSteps(final WizardContext wizardContext,
- final AndroidModuleBuilder moduleBuilder,
- ModulesProvider modulesProvider) {
- List steps = new ArrayList();
- ProjectWizardStepFactory factory = ProjectWizardStepFactory.getInstance();
- steps.add(factory.createSourcePathsStep(wizardContext, moduleBuilder, null, "reference.dialogs.new.project.fromScratch.source"));
-
- if (!hasAppropriateJdk()) {
- steps.add(new ProjectJdkForModuleStep(wizardContext, JavaSdk.getInstance()) {
- @Override
- public void updateDataModel() {
- // do nothing
- }
-
- @Override
- public boolean validate() {
- for (Object o : getAllJdks()) {
- if (o instanceof Sdk) {
- Sdk sdk = (Sdk)o;
- if (AndroidSdkUtils.isApplicableJdk(sdk)) {
- return true;
- }
- }
- }
- Messages.showErrorDialog(AndroidBundle.message("no.jdk.error"), CommonBundle.getErrorTitle());
- return false;
- }
- });
- }
-
- steps.add(new AndroidModuleWizardStep(moduleBuilder, wizardContext));
- return steps.toArray(new ModuleWizardStep[steps.size()]);
- }
-
- private static boolean hasAppropriateJdk() {
- for (Sdk sdk : ProjectJdkTable.getInstance().getAllJdks()) {
- if (AndroidSdkUtils.isApplicableJdk(sdk)) {
- return true;
- }
- }
- return false;
- }
-
- public String getName() {
- return AndroidBundle.message("android.module.type.name");
- }
-
- public String getDescription() {
- return AndroidBundle.message("android.module.type.description");
- }
-
- public Icon getBigIcon() {
- return AndroidUtils.ANDROID_ICON_24;
- }
-
- public Icon getNodeIcon(boolean isOpened) {
- return AndroidUtils.ANDROID_ICON;
- }
-}