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) {