diff --git a/xml/impl/src/com/intellij/ide/browsers/BrowserFamily.java b/xml/impl/src/com/intellij/ide/browsers/BrowserFamily.java new file mode 100644 index 000000000000..63169b7c827f --- /dev/null +++ b/xml/impl/src/com/intellij/ide/browsers/BrowserFamily.java @@ -0,0 +1,84 @@ +package com.intellij.ide.browsers; + +import com.intellij.icons.AllIcons; +import com.intellij.ide.browsers.chrome.ChromeSettings; +import com.intellij.ide.browsers.firefox.FirefoxSettings; +import com.intellij.openapi.util.Iconable; +import com.intellij.openapi.util.SystemInfo; +import com.intellij.xml.XmlBundle; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import javax.swing.*; + +public enum BrowserFamily implements Iconable { + CHROME(XmlBundle.message("browsers.chrome"), "chrome", "google-chrome", "Google Chrome", AllIcons.Xml.Browsers.Chrome16) { + @Override + public BrowserSpecificSettings createBrowserSpecificSettings() { + return new ChromeSettings(); + } + }, + EXPLORER(XmlBundle.message("browsers.explorer"), "iexplore", null, null, AllIcons.Xml.Browsers.Explorer16), + FIREFOX(XmlBundle.message("browsers.firefox"), "firefox", "firefox", "Firefox", AllIcons.Xml.Browsers.Firefox16) { + @Override + public BrowserSpecificSettings createBrowserSpecificSettings() { + return new FirefoxSettings(); + } + }, + OPERA(XmlBundle.message("browsers.opera"), "opera", "opera", "Opera", AllIcons.Xml.Browsers.Opera16), + SAFARI(XmlBundle.message("browsers.safari"), "safari", null, "Safari", AllIcons.Xml.Browsers.Safari16); + + private final String myName; + private final String myWindowsPath; + private final String myUnixPath; + private final String myMacPath; + private final Icon myIcon; + + BrowserFamily(@NotNull String name, + @NotNull final String windowsPath, + @Nullable final String unixPath, + @Nullable final String macPath, + @NotNull Icon icon) { + myName = name; + myWindowsPath = windowsPath; + myUnixPath = unixPath; + myMacPath = macPath; + myIcon = icon; + } + + @Nullable + public BrowserSpecificSettings createBrowserSpecificSettings() { + return null; + } + + @Nullable + public String getExecutionPath() { + if (SystemInfo.isWindows) { + return myWindowsPath; + } + else if (SystemInfo.isMac) { + return myMacPath; + } + else { + return myUnixPath; + } + } + + public String getName() { + return myName; + } + + public Icon getIcon() { + return myIcon; + } + + @Override + public String toString() { + return myName; + } + + @Override + public Icon getIcon(@IconFlags int flags) { + return getIcon(); + } +} \ No newline at end of file diff --git a/xml/impl/src/com/intellij/ide/browsers/BrowserSelector.java b/xml/impl/src/com/intellij/ide/browsers/BrowserSelector.java index 5a144fbd4f32..9bbadf3be254 100644 --- a/xml/impl/src/com/intellij/ide/browsers/BrowserSelector.java +++ b/xml/impl/src/com/intellij/ide/browsers/BrowserSelector.java @@ -88,7 +88,7 @@ public class BrowserSelector { /** * @deprecated to remove in IDEA 14 */ - public BrowsersConfiguration.BrowserFamily getSelectedBrowser() { + public BrowserFamily getSelectedBrowser() { WebBrowser selected = getSelected(); return selected == null ? null : selected.getFamily(); } @@ -109,7 +109,7 @@ public class BrowserSelector { /** * @deprecated to remove in IDEA 14 */ - public void setSelectedBrowser(@SuppressWarnings("deprecation") @Nullable BrowsersConfiguration.BrowserFamily selectedItem) { + public void setSelectedBrowser(@SuppressWarnings("deprecation") @Nullable BrowserFamily selectedItem) { setSelected(selectedItem == null ? null : WebBrowserManager.getInstance().findBrowser(selectedItem)); } diff --git a/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.java b/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.java index 97fae1571977..8b5439aed03c 100644 --- a/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.java +++ b/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.java @@ -49,7 +49,6 @@ import java.awt.event.ItemListener; import java.util.Collections; import java.util.UUID; -import static com.intellij.ide.browsers.BrowsersConfiguration.BrowserFamily; import static com.intellij.ide.browsers.WebBrowserManager.DefaultBrowser; import static com.intellij.util.ui.table.TableModelEditor.EditableColumnInfo; diff --git a/xml/impl/src/com/intellij/ide/browsers/BrowsersConfiguration.java b/xml/impl/src/com/intellij/ide/browsers/BrowsersConfiguration.java index 2def85b9c953..73e2f2286ede 100644 --- a/xml/impl/src/com/intellij/ide/browsers/BrowsersConfiguration.java +++ b/xml/impl/src/com/intellij/ide/browsers/BrowsersConfiguration.java @@ -15,93 +15,14 @@ */ package com.intellij.ide.browsers; -import com.intellij.icons.AllIcons; -import com.intellij.ide.browsers.chrome.ChromeSettings; -import com.intellij.ide.browsers.firefox.FirefoxSettings; import com.intellij.openapi.components.ServiceManager; -import com.intellij.openapi.util.Iconable; -import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.xml.XmlBundle; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import javax.swing.*; import java.io.File; public class BrowsersConfiguration { - public enum BrowserFamily implements Iconable { - CHROME(XmlBundle.message("browsers.chrome"), "chrome", "google-chrome", "Google Chrome", AllIcons.Xml.Browsers.Chrome16) { - @Override - public BrowserSpecificSettings createBrowserSpecificSettings() { - return new ChromeSettings(); - } - }, - EXPLORER(XmlBundle.message("browsers.explorer"), "iexplore", null, null, AllIcons.Xml.Browsers.Explorer16), - FIREFOX(XmlBundle.message("browsers.firefox"), "firefox", "firefox", "Firefox", AllIcons.Xml.Browsers.Firefox16) { - @Override - public BrowserSpecificSettings createBrowserSpecificSettings() { - return new FirefoxSettings(); - } - }, - OPERA(XmlBundle.message("browsers.opera"), "opera", "opera", "Opera", AllIcons.Xml.Browsers.Opera16), - SAFARI(XmlBundle.message("browsers.safari"), "safari", null, "Safari", AllIcons.Xml.Browsers.Safari16); - - private final String myName; - private final String myWindowsPath; - private final String myUnixPath; - private final String myMacPath; - private final Icon myIcon; - - BrowserFamily(@NotNull String name, - @NotNull final String windowsPath, - @Nullable final String unixPath, - @Nullable final String macPath, - @NotNull Icon icon) { - myName = name; - myWindowsPath = windowsPath; - myUnixPath = unixPath; - myMacPath = macPath; - myIcon = icon; - } - - @Nullable - public BrowserSpecificSettings createBrowserSpecificSettings() { - return null; - } - - @Nullable - public String getExecutionPath() { - if (SystemInfo.isWindows) { - return myWindowsPath; - } - else if (SystemInfo.isMac) { - return myMacPath; - } - else { - return myUnixPath; - } - } - - public String getName() { - return myName; - } - - public Icon getIcon() { - return myIcon; - } - - @Override - public String toString() { - return myName; - } - - @Override - public Icon getIcon(@IconFlags int flags) { - return getIcon(); - } - } @SuppressWarnings({"UnusedDeclaration"}) @Nullable diff --git a/xml/impl/src/com/intellij/ide/browsers/ConfigurableWebBrowser.java b/xml/impl/src/com/intellij/ide/browsers/ConfigurableWebBrowser.java index c48e8c5bdfa2..a6b44ca3a1dd 100644 --- a/xml/impl/src/com/intellij/ide/browsers/ConfigurableWebBrowser.java +++ b/xml/impl/src/com/intellij/ide/browsers/ConfigurableWebBrowser.java @@ -9,8 +9,6 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.util.UUID; -import static com.intellij.ide.browsers.BrowsersConfiguration.BrowserFamily; - final class ConfigurableWebBrowser extends WebBrowser { private boolean active; private String path; diff --git a/xml/impl/src/com/intellij/ide/browsers/CustomWebBrowser.java b/xml/impl/src/com/intellij/ide/browsers/CustomWebBrowser.java index c55d1a10ac74..190731fbbc29 100644 --- a/xml/impl/src/com/intellij/ide/browsers/CustomWebBrowser.java +++ b/xml/impl/src/com/intellij/ide/browsers/CustomWebBrowser.java @@ -13,7 +13,7 @@ final class CustomWebBrowser extends WebBrowser { private final String browserNotFoundMessage; CustomWebBrowser(@NotNull UUID id, - @NotNull BrowsersConfiguration.BrowserFamily family, + @NotNull BrowserFamily family, @NotNull String name, @NotNull Icon icon, @NotNull Computable pathComputable, diff --git a/xml/impl/src/com/intellij/ide/browsers/UrlOpener.java b/xml/impl/src/com/intellij/ide/browsers/UrlOpener.java index cb3e27086d59..536e065476fd 100644 --- a/xml/impl/src/com/intellij/ide/browsers/UrlOpener.java +++ b/xml/impl/src/com/intellij/ide/browsers/UrlOpener.java @@ -24,10 +24,6 @@ import org.jetbrains.annotations.Nullable; public abstract class UrlOpener { public static final ExtensionPointName 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().findBrowser(family)); - } - public static void launchBrowser(@NotNull String url, @Nullable WebBrowser browser) { launchBrowser(url, browser, null); } diff --git a/xml/impl/src/com/intellij/ide/browsers/WebBrowser.java b/xml/impl/src/com/intellij/ide/browsers/WebBrowser.java index 82a56623ec31..a64b4c174381 100644 --- a/xml/impl/src/com/intellij/ide/browsers/WebBrowser.java +++ b/xml/impl/src/com/intellij/ide/browsers/WebBrowser.java @@ -24,8 +24,6 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.util.UUID; -import static com.intellij.ide.browsers.BrowsersConfiguration.BrowserFamily; - public abstract class WebBrowser { protected @NotNull BrowserFamily family; protected @NotNull String name; diff --git a/xml/impl/src/com/intellij/ide/browsers/WebBrowserManager.java b/xml/impl/src/com/intellij/ide/browsers/WebBrowserManager.java index 91e7607e401c..8072c8185111 100644 --- a/xml/impl/src/com/intellij/ide/browsers/WebBrowserManager.java +++ b/xml/impl/src/com/intellij/ide/browsers/WebBrowserManager.java @@ -32,8 +32,6 @@ import java.util.Collections; import java.util.List; import java.util.UUID; -import static com.intellij.ide.browsers.BrowsersConfiguration.BrowserFamily; - @State(name = "WebBrowsersConfiguration", storages = {@Storage(file = StoragePathMacros.APP_CONFIG + "/web-browsers.xml")}) public class WebBrowserManager implements PersistentStateComponent, ModificationTracker { private static final Logger LOG = Logger.getInstance(WebBrowserManager.class); diff --git a/xml/impl/src/com/intellij/ide/browsers/impl/BrowserConfigurationHelper.java b/xml/impl/src/com/intellij/ide/browsers/impl/BrowserConfigurationHelper.java index c534910d003e..dc08f2c357cd 100644 --- a/xml/impl/src/com/intellij/ide/browsers/impl/BrowserConfigurationHelper.java +++ b/xml/impl/src/com/intellij/ide/browsers/impl/BrowserConfigurationHelper.java @@ -15,7 +15,7 @@ */ package com.intellij.ide.browsers.impl; -import com.intellij.ide.browsers.BrowsersConfiguration; +import com.intellij.ide.browsers.BrowserFamily; import com.intellij.openapi.util.io.WindowsRegistryUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -32,13 +32,13 @@ public class BrowserConfigurationHelper { * Read data from Windows registry (may take some time to run). */ @NotNull - public static Map getBrowserPathsFromRegistry() { - Map map = - new EnumMap(BrowsersConfiguration.BrowserFamily.class); + public static Map getBrowserPathsFromRegistry() { + Map map = + new EnumMap(BrowserFamily.class); List sections = WindowsRegistryUtil.readRegistryBranch(START_MENU_KEY); for (String section : sections) { - BrowsersConfiguration.BrowserFamily family = getFamily(section); + BrowserFamily family = getFamily(section); if (family != null) { String pathToExe = WindowsRegistryUtil.readRegistryDefault(START_MENU_KEY + "\\" + section + "\\shell\\open\\command"); if (pathToExe != null) { @@ -51,9 +51,9 @@ public class BrowserConfigurationHelper { } @Nullable - private static BrowsersConfiguration.BrowserFamily getFamily(String registryName) { + private static BrowserFamily getFamily(String registryName) { registryName = registryName.toLowerCase(); - for (BrowsersConfiguration.BrowserFamily family : BrowsersConfiguration.BrowserFamily.values()) { + for (BrowserFamily family : BrowserFamily.values()) { if (registryName.contains(family.getName().toLowerCase(Locale.US))) { return family; }