From 281f88a2e2e0454ec6d6d25e1a3e3be7cf392db6 Mon Sep 17 00:00:00 2001 From: Tor Norbye Date: Mon, 8 Jul 2013 14:19:57 -0700 Subject: More merge fixes Restores a85aa2665822cbccf9d8a2762744631ac68ffad7 765c6f92a0b59c34d5a146cecd891788edc53b5d a8539f4dc6230fd9a9a2b5559f15fd7d0612d52e 45953b78139fc1565f651b571b2b9a17850e3dfb 9b4a9fe25888002718c525405ef135786c156ba7 6b0a26c7d627b9137ec98c2eb1c03639ebcbd667 I9abc64443af3a2ed65499de731943b0f7300746c (gerrit) fbdba03ca1675559232a165427ffcc6ea6b37f58 2fd6821310bed531eb4a9a14b5ceccdddc3ba9dd Change-Id: I095ab6072fc311c51305db7faa29a16e64fb9749 --- .../ide/actions/ShowStructureSettingsAction.java | 36 ++++++++++++++++++++++ .../configuration/IdeaProjectSettingsService.java | 15 +++++++++ 2 files changed, 51 insertions(+) (limited to 'java') diff --git a/java/idea-ui/src/com/intellij/ide/actions/ShowStructureSettingsAction.java b/java/idea-ui/src/com/intellij/ide/actions/ShowStructureSettingsAction.java index 777105f840ba..cd4131363ddf 100644 --- a/java/idea-ui/src/com/intellij/ide/actions/ShowStructureSettingsAction.java +++ b/java/idea-ui/src/com/intellij/ide/actions/ShowStructureSettingsAction.java @@ -15,15 +15,20 @@ */ package com.intellij.ide.actions; +import com.intellij.facet.Facet; +import com.intellij.facet.FacetManager; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.PlatformDataKeys; +import com.intellij.openapi.module.Module; +import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.options.ShowSettingsUtil; import com.intellij.openapi.options.newEditor.OptionsEditorDialog; import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable; +import com.intellij.openapi.ui.Messages; public class ShowStructureSettingsAction extends AnAction implements DumbAware { public void actionPerformed(AnActionEvent e) { @@ -32,6 +37,37 @@ public class ShowStructureSettingsAction extends AnAction implements DumbAware { project = ProjectManager.getInstance().getDefaultProject(); } + // TEMPORARY HACK! DO NOT MERGE INTO INTELLIJ. This just works around a lot + // of confusion caused by the fact that the structure dialog lets you edit + // project state which is ignored by gradle, so temporarily disable this + // dialog for Android-Gradle-based projects. + if (isGradleProject(project)) { + showDisabledProjectStructureDialogMessage(); + } + ShowSettingsUtil.getInstance().editConfigurable(project, OptionsEditorDialog.DIMENSION_KEY, ProjectStructureConfigurable.getInstance(project)); } + + public static void showDisabledProjectStructureDialogMessage() { + Messages.showInfoMessage( + "We will provide a UI to configure project settings later. " + + "Until then, please manually edit your build.gradle file to " + + "configure source folders, libraries and dependencies.\n\n" + + "NOTE THAT EDITS MADE IN THE FOLLOWING DIALOG DO NOT AFFECT THE GRADLE BUILD.\n" + + "The dialog can be used for temporary adjustments to SDKs etc.", + "Project Structure"); + } + + public static boolean isGradleProject(Project project) { + ModuleManager moduleManager = ModuleManager.getInstance(project); + for (Module module : moduleManager.getModules()) { + FacetManager facetManager = FacetManager.getInstance(module); + for (Facet facet : facetManager.getAllFacets()) { + if ("android-gradle".equals(facet.getType().getStringId())) { + return true; + } + } + } + return false; + } } \ No newline at end of file diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/IdeaProjectSettingsService.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/IdeaProjectSettingsService.java index e654eab22bcd..612399ade011 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/IdeaProjectSettingsService.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/IdeaProjectSettingsService.java @@ -16,6 +16,7 @@ package com.intellij.openapi.roots.ui.configuration; import com.intellij.compiler.actions.ArtifactAwareProjectSettingsService; +import com.intellij.ide.actions.ShowStructureSettingsAction; import com.intellij.ide.projectView.impl.ModuleGroup; import com.intellij.ide.util.projectWizard.JdkChooserPanel; import com.intellij.openapi.module.Module; @@ -65,6 +66,7 @@ public class IdeaProjectSettingsService extends ProjectSettingsService implement @Override public void openLibrary(@NotNull final Library library) { + warnIfGradleProject(); final ProjectStructureConfigurable config = ProjectStructureConfigurable.getInstance(myProject); ShowSettingsUtil.getInstance().editConfigurable(myProject, config, new Runnable() { @Override @@ -81,6 +83,7 @@ public class IdeaProjectSettingsService extends ProjectSettingsService implement @Override public void openModuleSettings(final Module module) { + warnIfGradleProject(); ModulesConfigurator.showDialog(myProject, module.getName(), null); } @@ -91,6 +94,7 @@ public class IdeaProjectSettingsService extends ProjectSettingsService implement @Override public void openModuleLibrarySettings(final Module module) { + warnIfGradleProject(); ModulesConfigurator.showDialog(myProject, module.getName(), ClasspathEditor.NAME); } @@ -101,6 +105,7 @@ public class IdeaProjectSettingsService extends ProjectSettingsService implement @Override public void openContentEntriesSettings(final Module module) { + warnIfGradleProject(); ModulesConfigurator.showDialog(myProject, module.getName(), ContentEntriesEditor.NAME); } @@ -111,6 +116,7 @@ public class IdeaProjectSettingsService extends ProjectSettingsService implement @Override public void openModuleDependenciesSettings(@NotNull final Module module, @Nullable final OrderEntry orderEntry) { + warnIfGradleProject(); ShowSettingsUtil.getInstance().editConfigurable(myProject, ProjectStructureConfigurable.getInstance(myProject), new Runnable() { @Override public void run() { @@ -126,6 +132,7 @@ public class IdeaProjectSettingsService extends ProjectSettingsService implement @Override public void openLibraryOrSdkSettings(@NotNull final OrderEntry orderEntry) { + warnIfGradleProject(); final ProjectStructureConfigurable config = ProjectStructureConfigurable.getInstance(myProject); ShowSettingsUtil.getInstance().editConfigurable(myProject, config, new Runnable() { @Override @@ -166,6 +173,14 @@ public class IdeaProjectSettingsService extends ProjectSettingsService implement @Override public void openArtifactSettings(@Nullable Artifact artifact) { + warnIfGradleProject(); ModulesConfigurator.showArtifactSettings(myProject, artifact); } + + // TEMPORARY HACK!! REMOVE ME ASAP! + private void warnIfGradleProject() { + if (ShowStructureSettingsAction.isGradleProject(myProject)) { + ShowStructureSettingsAction.showDisabledProjectStructureDialogMessage(); + } + } } -- cgit v1.2.3