diff --git a/community-resources/src/idea/IdeaApplicationInfo.xml b/community-resources/src/idea/IdeaApplicationInfo.xml
index deadba3600c5..8ab937ded5e0 100644
--- a/community-resources/src/idea/IdeaApplicationInfo.xml
+++ b/community-resources/src/idea/IdeaApplicationInfo.xml
@@ -19,6 +19,8 @@
+
diff --git a/platform/platform-impl/src/com/intellij/ide/actions/RefCardAction.java b/platform/platform-impl/src/com/intellij/ide/actions/RefCardAction.java
index a4ddf760e270..c371c702c42d 100644
--- a/platform/platform-impl/src/com/intellij/ide/actions/RefCardAction.java
+++ b/platform/platform-impl/src/com/intellij/ide/actions/RefCardAction.java
@@ -20,6 +20,7 @@ import com.intellij.openapi.actionSystem.ActionPlaces;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.application.PathManager;
+import com.intellij.openapi.application.ex.ApplicationInfoEx;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.util.SystemInfo;
import org.jetbrains.annotations.NonNls;
@@ -38,9 +39,11 @@ public class RefCardAction extends AnAction implements DumbAware {
BrowserUtil.launchBrowser(url);
}
else {
- BrowserUtil.launchBrowser(SystemInfo.isMac
- ? "http://www.jetbrains.com/idea/docs/IntelliJIDEA8_ReferenceCard_Mac.pdf"
- : "http://www.jetbrains.com/idea/docs/IntelliJIDEA8_ReferenceCard.pdf");
+ final ApplicationInfoEx appInfo = ApplicationInfoEx.getInstanceEx();
+ String webUrl = SystemInfo.isMac ? appInfo.getMacKeymapUrl() : appInfo.getWinKeymapUrl();
+ if (webUrl != null) {
+ BrowserUtil.launchBrowser(webUrl);
+ }
}
}
diff --git a/platform/platform-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java b/platform/platform-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java
index a2a1bdc031ca..46f9046ef782 100644
--- a/platform/platform-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java
+++ b/platform/platform-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java
@@ -83,6 +83,10 @@ public abstract class ApplicationInfoEx extends ApplicationInfo {
public abstract String getWhatsNewUrl();
+ public abstract String getWinKeymapUrl();
+
+ public abstract String getMacKeymapUrl();
+
public interface UpdateUrls {
String getCheckingUrl();
String getPatchesUrl();
diff --git a/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java b/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java
index fda5fae20280..960296bf7146 100644
--- a/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java
+++ b/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java
@@ -65,6 +65,8 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern
private String myPluginsDownloadUrl;
private String myDefaultUpdateChannel;
private String myWhatsNewUrl;
+ private String myWinKeymapUrl;
+ private String myMacKeymapUrl;
private boolean myEAP;
@NonNls private String myHelpFileName = "ideahelp.jar";
@NonNls private String myHelpRootName = "idea";
@@ -112,6 +114,9 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern
@NonNls private static final String ATTRIBUTE_DOWNLOAD_URL = "download-url";
@NonNls private static final String ATTRIBUTE_WEBHELP_URL = "webhelp-url";
@NonNls private static final String ELEMENT_WHATSNEW = "whatsnew";
+ @NonNls private static final String ELEMENT_KEYMAP = "keymap";
+ @NonNls private static final String ATTRIBUTE_WINDOWS_URL = "win";
+ @NonNls private static final String ATTRIBUTE_MAC_URL = "mac";
private static final String DEFAULT_PLUGINS_HOST = "http://plugins.intellij.net";
public void initComponent() { }
@@ -243,6 +248,14 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern
return myWhatsNewUrl;
}
+ public String getWinKeymapUrl() {
+ return myWinKeymapUrl;
+ }
+
+ public String getMacKeymapUrl() {
+ return myMacKeymapUrl;
+ }
+
public String getFullApplicationName() {
@NonNls StringBuilder buffer = new StringBuilder();
buffer.append(getVersionName());
@@ -420,6 +433,12 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern
myPluginsDownloadUrl = myPluginsDownloadUrl.replace(DEFAULT_PLUGINS_HOST, pluginsHost);
}
+ Element keymapElement = parentNode.getChild(ELEMENT_KEYMAP);
+ if (keymapElement != null) {
+ myWinKeymapUrl = keymapElement.getAttributeValue(ATTRIBUTE_WINDOWS_URL);
+ myMacKeymapUrl = keymapElement.getAttributeValue(ATTRIBUTE_MAC_URL);
+ }
+
myPluginChooserPages = new ArrayList();
final List children = parentNode.getChildren(PLUGINS_PAGE_ELEMENT_NAME);
for(Object child: children) {