IDEA-68119 show "please specify sdk" dialog only when user opened a logcat; check version name

This commit is contained in:
Eugene Kudelevsky
2011-04-15 19:04:00 +04:00
parent c221ecc30c
commit 258c859f6c
2 changed files with 19 additions and 14 deletions
@@ -49,24 +49,12 @@ import java.util.List;
public class AndroidLogcatToolWindowFactory implements ToolWindowFactory, Condition<Project> {
public static final String TOOL_WINDOW_ID = AndroidBundle.message("android.logcat.title");
public void createToolWindowContent(Project project, final ToolWindow toolWindow) {
public void createToolWindowContent(final Project project, final ToolWindow toolWindow) {
toolWindow.setIcon(AndroidUtils.ANDROID_ICON);
toolWindow.setAvailable(true, null);
toolWindow.setToHideOnEmptyContent(true);
toolWindow.setTitle(TOOL_WINDOW_ID);
List<AndroidFacet> facets = ProjectFacetManager.getInstance(project).getFacets(AndroidFacet.ID);
if (facets.size() == 0) {
Messages.showErrorDialog(project, AndroidBundle.message("android.logcat.no.android.facets.error"), CommonBundle.getErrorTitle());
return;
}
AndroidFacet facet = facets.get(0);
AndroidPlatform platform = facet.getConfiguration().getAndroidPlatform();
if (platform == null) {
Messages.showErrorDialog(project, AndroidBundle.message("specify.platform.error"), CommonBundle.getErrorTitle());
return;
}
final AndroidLogcatToolWindowView view = new AndroidLogcatToolWindowView(project) {
@Override
protected boolean isActive() {
@@ -85,6 +73,9 @@ public class AndroidLogcatToolWindowFactory implements ToolWindowFactory, Condit
if (visible != myToolWindowVisible) {
myToolWindowVisible = visible;
view.activate();
if (visible) {
checkFacetAndSdk(project);
}
}
}
}
@@ -104,6 +95,20 @@ public class AndroidLogcatToolWindowFactory implements ToolWindowFactory, Condit
});
}
private static void checkFacetAndSdk(Project project) {
List<AndroidFacet> facets = ProjectFacetManager.getInstance(project).getFacets(AndroidFacet.ID);
if (facets.size() == 0) {
Messages.showErrorDialog(project, AndroidBundle.message("android.logcat.no.android.facets.error"), CommonBundle.getErrorTitle());
return;
}
AndroidFacet facet = facets.get(0);
AndroidPlatform platform = facet.getConfiguration().getAndroidPlatform();
if (platform == null) {
Messages.showErrorDialog(project, AndroidBundle.message("specify.platform.error"), CommonBundle.getErrorTitle());
}
}
public boolean value(Project project) {
ModuleManager manager = ModuleManager.getInstance(project);
for (Module module : manager.getModules()) {
@@ -81,7 +81,7 @@ public abstract class AndroidSdk {
public IAndroidTarget findTargetByApiLevel(@NotNull String apiLevel) {
IAndroidTarget candidate = null;
for (IAndroidTarget target : getTargets()) {
if (apiLevel.equals(target.getVersion().getApiString())) {
if (apiLevel.equals(target.getVersion().getApiString()) || apiLevel.equals(target.getVersionName())) {
if (target.isPlatform()) {
return target;
}