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 46f9046ef782..dd0138cbd068 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 @@ -27,6 +27,7 @@ package com.intellij.openapi.application.ex; import com.intellij.openapi.application.ApplicationInfo; import java.awt.*; +import java.util.Calendar; import java.util.List; public abstract class ApplicationInfoEx extends ApplicationInfo { @@ -35,6 +36,8 @@ public abstract class ApplicationInfoEx extends ApplicationInfo { return (ApplicationInfoEx) getInstance(); } + public abstract Calendar getMajorReleaseBuildDate(); + public abstract String getLogoUrl(); public abstract Color getLogoTextColor(); 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 019003a1259d..bc33d0767684 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 @@ -51,6 +51,7 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern @NonNls private String myOpaqueIconUrl = "/icon.png"; @NonNls private String myToolWindowIconUrl = "/general/toolWindowProject.png"; private Calendar myBuildDate = null; + private Calendar myMajorReleaseBuildDate = null; private String myPackageCode = null; private boolean myShowLicensee = true; private String myWelcomeScreenCaptionUrl; @@ -81,6 +82,7 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern @NonNls private static final String ELEMENT_BUILD = "build"; @NonNls private static final String ATTRIBUTE_NUMBER = "number"; @NonNls private static final String ATTRIBUTE_DATE = "date"; + @NonNls private static final String ATTRIBUTE_MAJOR_RELEASE_DATE = "majorReleaseDate"; @NonNls private static final String ELEMENT_LOGO = "logo"; @NonNls private static final String ATTRIBUTE_URL = "url"; @NonNls private static final String ATTRIBUTE_TEXTCOLOR = "textcolor"; @@ -128,6 +130,10 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern return myBuildDate; } + public Calendar getMajorReleaseBuildDate() { + return myMajorReleaseBuildDate != null ? myMajorReleaseBuildDate : myBuildDate; + } + @Override public BuildNumber getBuild() { return BuildNumber.fromString(myBuildNumber); @@ -314,21 +320,11 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern myBuildDate = new GregorianCalendar(); } else { - int year = 0; - int month = 0; - int day = 0; - try { - year = Integer.parseInt(dateString.substring(0, 4)); - month = Integer.parseInt(dateString.substring(4, 6)); - day = Integer.parseInt(dateString.substring(6, 8)); - } - catch (Exception ex) { - //ignore - } - if (month > 0) { - month--; - } - myBuildDate = new GregorianCalendar(year, month, day); + myBuildDate = parseDate(dateString); + } + String majorReleaseDateString = buildElement.getAttributeValue(ATTRIBUTE_MAJOR_RELEASE_DATE); + if (majorReleaseDateString != null) { + myMajorReleaseBuildDate = parseDate(majorReleaseDateString); } } @@ -446,6 +442,24 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern } } + private static GregorianCalendar parseDate(String dateString) { + int year = 0; + int month = 0; + int day = 0; + try { + year = Integer.parseInt(dateString.substring(0, 4)); + month = Integer.parseInt(dateString.substring(4, 6)); + day = Integer.parseInt(dateString.substring(6, 8)); + } + catch (Exception ex) { + //ignore + } + if (month > 0) { + month--; + } + return new GregorianCalendar(year, month, day); + } + public List getPluginChooserPages() { return myPluginChooserPages; }