mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
move BrowserFamily to upper level
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user