From 0667117a9506790e9339e87dedc16da7a07a24a9 Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Wed, 23 Sep 2015 17:49:34 +0200 Subject: [PATCH] add meta information about recent projects for jb toolbox --- .../ide/RecentProjectsManagerBase.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java b/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java index 7d15daffbcc5..67e8913e738a 100644 --- a/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java +++ b/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java @@ -19,6 +19,7 @@ import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.Separator; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.PathManager; import com.intellij.openapi.application.ex.ApplicationInfoEx; import com.intellij.openapi.components.PersistentStateComponent; import com.intellij.openapi.project.DumbAwareAction; @@ -79,6 +80,7 @@ public abstract class RecentProjectsManagerBase extends RecentProjectsManager im public Map names = ContainerUtil.newLinkedHashMap(); public List groups = new SmartList(); public String lastPath; + public Map additionalInfo = ContainerUtil.newLinkedHashMap(); public String lastProjectLocation; @@ -445,6 +447,8 @@ public abstract class RecentProjectsManagerBase extends RecentProjectsManager im myState.lastPath = path; removePath(path); myState.recentPaths.add(0, path); + myState.additionalInfo.remove(path); + myState.additionalInfo.put(path, RecentProjectMetaInfo.create()); } } @@ -614,4 +618,24 @@ public abstract class RecentProjectsManagerBase extends RecentProjectsManager im return second; } } + + public static class RecentProjectMetaInfo { + public String build; + public String productionCode; + public boolean eap; + public String binFolder; + public long projectOpenTimestamp; + public long buildTimestamp; + + public static RecentProjectMetaInfo create() { + RecentProjectMetaInfo info = new RecentProjectMetaInfo(); + info.build = ApplicationInfoEx.getInstanceEx().getBuild().asString(); + info.productionCode = ApplicationInfoEx.getInstanceEx().getBuild().getProductCode(); + info.eap = ApplicationInfoEx.getInstanceEx().isEAP(); + info.binFolder = PathManager.getBinPath(); + info.projectOpenTimestamp = System.currentTimeMillis(); + info.buildTimestamp = ApplicationInfoEx.getInstanceEx().getBuildDate().getTimeInMillis(); + return info; + } + } }