tolerant findBrowser

This commit is contained in:
Vladimir Krivosheev
2014-01-13 17:41:30 +01:00
parent 968f634120
commit 2c0ef615f5
3 changed files with 10 additions and 3 deletions
@@ -110,7 +110,7 @@ public class BrowserSelector {
* @deprecated to remove in IDEA 14
*/
public void setSelectedBrowser(@SuppressWarnings("deprecation") @Nullable BrowsersConfiguration.BrowserFamily selectedItem) {
setSelected(selectedItem == null ? null : WebBrowserManager.getInstance().getBrowser(selectedItem));
setSelected(selectedItem == null ? null : WebBrowserManager.getInstance().findBrowser(selectedItem));
}
public void setSelected(@Nullable WebBrowser selectedItem) {
@@ -24,7 +24,7 @@ public abstract class UrlOpener {
public static final ExtensionPointName<UrlOpener> EP_NAME = ExtensionPointName.create("org.jetbrains.urlOpener");
public static void launchBrowser(final @Nullable BrowsersConfiguration.BrowserFamily family, final @NotNull String url) {
launchBrowser(url, family == null ? null : WebBrowserManager.getInstance().getBrowser(family));
launchBrowser(url, family == null ? null : WebBrowserManager.getInstance().findBrowser(family));
}
// different params order in order not to break compilation for launchBrowser(null, url)
@@ -253,13 +253,20 @@ public class WebBrowserManager implements PersistentStateComponent<Element>, Mod
@NotNull
public WebBrowser getBrowser(@NotNull BrowserFamily family) {
WebBrowser browser = findBrowser(family);
LOG.assertTrue(browser != null, "Must be at least one browser per family");
return browser;
}
@Nullable
public WebBrowser findBrowser(@NotNull BrowserFamily family) {
for (ConfigurableWebBrowser browser : browsers) {
if (family.equals(browser.getFamily())) {
return browser;
}
}
throw new IllegalStateException("Must be at least one browser per family");
return null;
}
public boolean isActive(@NotNull WebBrowser browser) {