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; - } -}