IDEA-101147 Gradle: Don't show unnecessary notification about invalid local path

This commit is contained in:
Denis.Zhdanov
2013-02-15 00:17:31 +04:00
parent 3de6d80c2e
commit 68b520b3d2
2 changed files with 55 additions and 8 deletions
@@ -441,7 +441,7 @@ public class GradleConfigurable implements SearchableConfigurable, Configurable.
return;
}
GradleSettings settings = GradleSettings.getInstance(myProject);
GradleSettings settings = myHelper.getSettings(myProject);
String linkedProjectPath = myLinkedGradleProjectPathField.getText();
final String gradleHomePath = getPathToUse(myGradleHomeModifiedByUser, settings.getGradleHome(), myGradleHomePathField.getText());
@@ -456,11 +456,11 @@ public class GradleConfigurable implements SearchableConfigurable, Configurable.
else {
preferLocalToWrapper = myUseLocalDistributionButton.isSelected();
}
GradleSettings.applySettings(linkedProjectPath, gradleHomePath, preferLocalToWrapper, serviceDirPath, myProject);
myHelper.applySettings(linkedProjectPath, gradleHomePath, preferLocalToWrapper, serviceDirPath, myProject);
Project defaultProject = ProjectManager.getInstance().getDefaultProject();
Project defaultProject = myHelper.getDefaultProject();
if (myProject != defaultProject) {
GradleSettings.applyPreferLocalInstallationToWrapper(preferLocalToWrapper, defaultProject);
myHelper.applyPreferLocalInstallationToWrapper(preferLocalToWrapper, defaultProject);
}
if (isValidGradleHome(gradleHomePath)) {
@@ -476,7 +476,7 @@ public class GradleConfigurable implements SearchableConfigurable, Configurable.
myGradleHomeSettingType = GradleHomeSettingType.DEDUCED;
}
}
else {
else if (preferLocalToWrapper) {
if (StringUtil.isEmpty(gradleHomePath)) {
myGradleHomeSettingType = GradleHomeSettingType.UNKNOWN;
}
@@ -696,9 +696,20 @@ public class GradleConfigurable implements SearchableConfigurable, Configurable.
@Nullable
File getGradleHome(@Nullable Project project);
@NotNull
Project getDefaultProject();
@NotNull
GradleSettings getSettings(@NotNull Project project);
void applySettings(@Nullable String linkedProjectPath,
@Nullable String gradleHomePath,
boolean preferLocalInstallationToWrapper,
@Nullable String serviceDirectoryPath,
@NotNull Project project);
void applyPreferLocalInstallationToWrapper(boolean preferLocalToWrapper, @NotNull Project project);
boolean isGradleWrapperDefined(@Nullable String linkedProjectPath);
void showBalloon(@NotNull MessageType messageType, @NotNull GradleHomeSettingType settingType, long delayMillis);
@@ -722,13 +733,34 @@ public class GradleConfigurable implements SearchableConfigurable, Configurable.
public File getGradleHome(@Nullable Project project) {
return myInstallationManager.getGradleHome(project);
}
@NotNull
@Override
public Project getDefaultProject() {
return ProjectManager.getInstance().getDefaultProject();
}
@NotNull
@Override
public GradleSettings getSettings(@NotNull Project project) {
return GradleSettings.getInstance(project);
}
@Override
public void applySettings(@Nullable String linkedProjectPath,
@Nullable String gradleHomePath,
boolean preferLocalInstallationToWrapper,
@Nullable String serviceDirectoryPath,
@NotNull Project project)
{
GradleSettings.applySettings(linkedProjectPath, gradleHomePath, preferLocalInstallationToWrapper, serviceDirectoryPath, project);
}
@Override
public void applyPreferLocalInstallationToWrapper(boolean preferLocalToWrapper, @NotNull Project project) {
GradleSettings.applyPreferLocalInstallationToWrapper(preferLocalToWrapper, project);
}
@Override
public boolean isGradleWrapperDefined(@Nullable String linkedProjectPath) {
return GradleUtil.isGradleWrapperDefined(linkedProjectPath);
@@ -20,6 +20,7 @@ public class GradleConfigurableTest {
def GradleConfigurable configurable
def projectImpl
Project defaultProject = {} as Project
Project project
def helper
Map<Project, GradleSettings> settings = [:].withDefault { new GradleSettings() }
@@ -28,7 +29,10 @@ public class GradleConfigurableTest {
void setUp() {
helper = [
getSettings : { settings[it] },
getGradleHome : { new File(VALID_GRADLE_HOME) },
applySettings: {linkedProjectPath, gradleHomePath, preferLocalInstallationToWrapper, serviceDirectoryPath, project -> },
applyPreferLocalInstallationToWrapper: { preferLocalInstallationToWrapper, project -> },
getGradleHome: { new File(VALID_GRADLE_HOME) },
getDefaultProject: { defaultProject },
isGradleSdkHome: { it == VALID_GRADLE_HOME },
isGradleWrapperDefined: { it == VALID_LINKED_PATH_WITH_WRAPPER }
]
@@ -76,7 +80,7 @@ public class GradleConfigurableTest {
@SuppressWarnings("GroovyAssignabilityCheck")
@Test
void "invalid gradle home is not reported if home control inactive"() {
void "invalid gradle home is not reported if home control is inactive"() {
projectImpl.isDefault = { false }
settings[project].linkedProjectPath = VALID_LINKED_PATH_WITH_WRAPPER
settings[project].preferLocalInstallationToWrapper = false
@@ -98,4 +102,15 @@ public class GradleConfigurableTest {
fail()
}
}
@Test
void "do not show 'invalid gradle path' balloon if 'use wrapper' is selected"() {
settings[project].linkedProjectPath = VALID_LINKED_PATH_WITH_WRAPPER
settings[project].preferLocalInstallationToWrapper = false
configurable.useWrapperButton.selected = false
configurable.gradleHomePathField.text = INVALID_GRADLE_HOME
configurable.useWrapperButton.selected = true
helper.showBalloon = { messageType, settingType, long delay -> fail() }
configurable.apply()
}
}