move BrowserFamily to upper level

This commit is contained in:
Vladimir Krivosheev
2014-02-07 17:18:15 +01:00
parent e7200d54c7
commit 4389b6606e
10 changed files with 94 additions and 100 deletions
@@ -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();
}
}
@@ -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));
}
@@ -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;
@@ -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
@@ -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;
@@ -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<String> pathComputable,
@@ -24,10 +24,6 @@ import org.jetbrains.annotations.Nullable;
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().findBrowser(family));
}
public static void launchBrowser(@NotNull String url, @Nullable WebBrowser browser) {
launchBrowser(url, browser, null);
}
@@ -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;
@@ -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<Element>, ModificationTracker {
private static final Logger LOG = Logger.getInstance(WebBrowserManager.class);
@@ -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<BrowsersConfiguration.BrowserFamily, String> getBrowserPathsFromRegistry() {
Map<BrowsersConfiguration.BrowserFamily, String> map =
new EnumMap<BrowsersConfiguration.BrowserFamily, String>(BrowsersConfiguration.BrowserFamily.class);
public static Map<BrowserFamily, String> getBrowserPathsFromRegistry() {
Map<BrowserFamily, String> map =
new EnumMap<BrowserFamily, String>(BrowserFamily.class);
List<String> 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;
}