From a57ea6c137737d1f8c0aefa56b76c0e554c3a029 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 15 Oct 2009 13:25:33 +0400 Subject: [PATCH] customizable URL for whatsnew action --- .../src/com/intellij/ide/actions/WhatsNewAction.java | 8 +++++++- .../intellij/openapi/application/ex/ApplicationInfoEx.java | 2 ++ .../openapi/application/impl/ApplicationInfoImpl.java | 12 +++++++++++- 3 files changed, 20 insertions(+), 2 deletions(-) rename {java/idea-ui => platform/platform-impl}/src/com/intellij/ide/actions/WhatsNewAction.java (76%) diff --git a/java/idea-ui/src/com/intellij/ide/actions/WhatsNewAction.java b/platform/platform-impl/src/com/intellij/ide/actions/WhatsNewAction.java similarity index 76% rename from java/idea-ui/src/com/intellij/ide/actions/WhatsNewAction.java rename to platform/platform-impl/src/com/intellij/ide/actions/WhatsNewAction.java index e1f3fe4e6a..15090dd47b 100644 --- a/java/idea-ui/src/com/intellij/ide/actions/WhatsNewAction.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/WhatsNewAction.java @@ -18,6 +18,7 @@ package com.intellij.ide.actions; import com.intellij.ide.BrowserUtil; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.application.ex.ApplicationInfoEx; import com.intellij.openapi.project.DumbAware; /** @@ -25,6 +26,11 @@ import com.intellij.openapi.project.DumbAware; */ public class WhatsNewAction extends AnAction implements DumbAware { public void actionPerformed(AnActionEvent e) { - BrowserUtil.launchBrowser("http://www.jetbrains.com/idea/features/newfeatures.html"); + BrowserUtil.launchBrowser(ApplicationInfoEx.getInstanceEx().getWhatsNewUrl()); + } + + @Override + public void update(AnActionEvent e) { + e.getPresentation().setVisible(ApplicationInfoEx.getInstanceEx().getWhatsNewUrl() != null); } } 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 2ba037f0f4..a2a1bdc031 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 @@ -81,6 +81,8 @@ public abstract class ApplicationInfoEx extends ApplicationInfo { public abstract String getWebHelpUrl(); + public abstract String getWhatsNewUrl(); + 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 acbb0daa00..3a9061d4b6 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 @@ -64,6 +64,7 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern private String myPluginsListUrl; private String myPluginsDownloadUrl; private String myDefaultUpdateChannel; + private String myWhatsNewUrl; private boolean myEAP; @NonNls private String myHelpFileName = "ideahelp.jar"; @NonNls private String myHelpRootName = "idea"; @@ -110,6 +111,7 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern @NonNls private static final String ATTRIBUTE_LIST_URL = "list-url"; @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"; public void initComponent() { } @@ -232,11 +234,14 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern return myPluginsDownloadUrl; } - @Override public String getWebHelpUrl() { return myWebHelpUrl; } + public String getWhatsNewUrl() { + return myWhatsNewUrl; + } + public String getFullApplicationName() { @NonNls StringBuilder buffer = new StringBuilder(); buffer.append(getVersionName()); @@ -391,6 +396,11 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern myReleaseFeedbackUrl = feedbackElement.getAttributeValue(ATTRIBUTE_RELEASE_URL); } + Element whatsnewElement = parentNode.getChild(ELEMENT_WHATSNEW); + if (whatsnewElement != null) { + myWhatsNewUrl = whatsnewElement.getAttributeValue(ATTRIBUTE_URL); + } + myPluginsListUrl = "http://plugins.intellij.net/plugins/list/"; myPluginsDownloadUrl = "http://plugins.intellij.net/pluginManager"; -- 2.11.4.GIT