mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
android: remove module type, use java module + android facet instead
This commit is contained in:
@@ -116,8 +116,7 @@
|
||||
<facetType implementation="org.jetbrains.android.facet.AndroidFacetType"/>
|
||||
<framework.detector implementation="org.jetbrains.android.facet.AndroidFrameworkDetector"/>
|
||||
<fileTemplateGroup implementation="org.jetbrains.android.AndroidFileTemplateProvider"/>
|
||||
<moduleType id="ANDROID_MODULE" implementationClass="org.jetbrains.android.newProject.AndroidModuleType" classpathProvider="true"/>
|
||||
<moduleConfigurationEditorProvider implementation="org.jetbrains.android.newProject.AndroidModuleConfigurationEditorProvider"/>
|
||||
<moduleBuilder builderClass="org.jetbrains.android.newProject.AndroidModuleBuilder"/>
|
||||
|
||||
<compiler implementation="org.jetbrains.android.compiler.AndroidIncludingCompiler"/>
|
||||
<compiler implementation="org.jetbrains.android.compiler.AndroidRenderscriptCompiler"/>
|
||||
@@ -151,6 +150,7 @@
|
||||
<findUsagesHandlerFactory implementation="org.jetbrains.android.AndroidFindUsagesHandlerFactory"/>
|
||||
<xml.schemaProvider implementation="org.jetbrains.android.AndroidXmlSchemaProvider"/>
|
||||
<project.converterProvider implementation="org.jetbrains.android.converter.AndroidModuleConverterProvider"/>
|
||||
<project.converterProvider implementation="org.jetbrains.android.converter.AndroidModuleToJavaModuleConverterProvider"/>
|
||||
<annotator language="XML" implementationClass="org.jetbrains.android.AndroidColorAnnotator" order="first"/>
|
||||
<xml.elementDescriptorProvider implementation="org.jetbrains.android.dom.AndroidDomElementDescriptorProvider" order="first"/>
|
||||
|
||||
|
||||
+40
@@ -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<ModuleSettings> createModuleFileConverter() {
|
||||
return new ConversionProcessor<ModuleSettings>() {
|
||||
@Override
|
||||
public boolean isConversionNeeded(ModuleSettings moduleSettings) {
|
||||
return "ANDROID_MODULE".equals(moduleSettings.getModuleType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(ModuleSettings moduleSettings) throws CannotConvertException {
|
||||
moduleSettings.setModuleType("JAVA_MODULE");
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -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<AndroidFacet, AndroidFacetConfig
|
||||
}
|
||||
|
||||
public boolean isSuitableModuleType(ModuleType moduleType) {
|
||||
return moduleType instanceof JavaModuleType || moduleType instanceof AndroidModuleType;
|
||||
return moduleType instanceof JavaModuleType;
|
||||
}
|
||||
|
||||
public Icon getIcon() {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package org.jetbrains.android.importDependencies;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.module.ModifiableModuleModel;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.module.StdModuleTypes;
|
||||
@@ -11,7 +10,6 @@ import com.intellij.openapi.roots.ModuleRootManager;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import org.jetbrains.android.newProject.AndroidModuleType;
|
||||
import org.jetbrains.android.sdk.AndroidSdkUtils;
|
||||
import org.jetbrains.android.util.AndroidBundle;
|
||||
import org.jetbrains.android.util.AndroidUtils;
|
||||
|
||||
@@ -25,17 +25,21 @@ import com.intellij.execution.RunnerAndConfigurationSettings;
|
||||
import com.intellij.execution.configurations.GeneralCommandLine;
|
||||
import com.intellij.execution.ui.ConsoleViewContentType;
|
||||
import com.intellij.ide.fileTemplates.FileTemplateManager;
|
||||
import com.intellij.ide.util.projectWizard.JavaModuleBuilder;
|
||||
import com.intellij.ide.util.projectWizard.*;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.command.CommandProcessor;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleType;
|
||||
import com.intellij.openapi.module.StdModuleTypes;
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.projectRoots.JavaSdk;
|
||||
import com.intellij.openapi.projectRoots.ProjectJdkTable;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.roots.*;
|
||||
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
|
||||
import com.intellij.openapi.startup.StartupManager;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
@@ -57,14 +61,18 @@ import org.jetbrains.android.run.TargetSelectionMode;
|
||||
import org.jetbrains.android.run.testing.AndroidTestRunConfiguration;
|
||||
import org.jetbrains.android.run.testing.AndroidTestRunConfigurationType;
|
||||
import org.jetbrains.android.sdk.AndroidPlatform;
|
||||
import org.jetbrains.android.sdk.AndroidSdkUtils;
|
||||
import org.jetbrains.android.util.AndroidBundle;
|
||||
import org.jetbrains.android.util.AndroidUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import static com.android.sdklib.SdkConstants.FN_ANDROID_MANIFEST_XML;
|
||||
@@ -574,7 +582,7 @@ public class AndroidModuleBuilder extends JavaModuleBuilder {
|
||||
}
|
||||
|
||||
public ModuleType getModuleType() {
|
||||
return AndroidModuleType.getInstance();
|
||||
return StdModuleTypes.JAVA;
|
||||
}
|
||||
|
||||
public void setTestedModule(Module module) {
|
||||
@@ -588,4 +596,63 @@ public class AndroidModuleBuilder extends JavaModuleBuilder {
|
||||
public void setPreferredAvd(String preferredAvd) {
|
||||
myPreferredAvd = preferredAvd;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModuleWizardStep[] createWizardSteps(WizardContext wizardContext, ModulesProvider modulesProvider) {
|
||||
List<ModuleWizardStep> steps = new ArrayList<ModuleWizardStep>();
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
-50
@@ -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<ModuleConfigurationEditor> editors = new ArrayList<ModuleConfigurationEditor>();
|
||||
editors.add(editorFactory.createModuleContentRootsEditor(state));
|
||||
editors.add(editorFactory.createOutputEditor(state));
|
||||
editors.add(editorFactory.createClasspathEditor(state));
|
||||
return editors.toArray(new ModuleConfigurationEditor[editors.size()]);
|
||||
}
|
||||
}
|
||||
@@ -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<AndroidModuleBuilder> {
|
||||
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<ModuleWizardStep> steps = new ArrayList<ModuleWizardStep>();
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user