From 005d77fb4039deb90bf3ab06f0e6f00a1f24c9f7 Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Thu, 31 Aug 2017 23:27:27 +0300 Subject: [PATCH] [file-history] only calculate selected revisions and first selected revision when they are needed Use getSelectedRevisions method and ArrayUtil.getFirstItem --- .../openapi/vcs/history/FileHistoryPanelImpl.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/history/FileHistoryPanelImpl.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/history/FileHistoryPanelImpl.java index cc15c8340878..a5ba22bd976f 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/history/FileHistoryPanelImpl.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/history/FileHistoryPanelImpl.java @@ -441,11 +441,10 @@ public class FileHistoryPanelImpl extends PanelWithActionsAndCloseButton impleme } public Object getData(String dataId) { - List selectedItems = myDualView.getSelection(); - VcsFileRevision firstSelectedRevision = selectedItems.isEmpty() ? null : ((TreeNodeOnVcsRevision)selectedItems.get(0)).getRevision(); - if (CommonDataKeys.NAVIGATABLE.is(dataId)) { - if (selectedItems.size() != 1) return null; + VcsFileRevision[] selectedRevisions = getSelectedRevisions(); + if (selectedRevisions.length != 1) return null; + VcsFileRevision firstSelectedRevision = ArrayUtil.getFirstElement(selectedRevisions); if (!myHistorySession.isContentAvailable(firstSelectedRevision)) { return null; } @@ -461,7 +460,7 @@ public class FileHistoryPanelImpl extends PanelWithActionsAndCloseButton impleme return myVcs.getProject(); } else if (VcsDataKeys.VCS_FILE_REVISION.is(dataId)) { - return firstSelectedRevision; + return ArrayUtil.getFirstElement(getSelectedRevisions()); } else if (VcsDataKeys.VCS_NON_LOCAL_HISTORY_SESSION.is(dataId)) { return !myHistorySession.hasLocalSource(); @@ -479,8 +478,9 @@ public class FileHistoryPanelImpl extends PanelWithActionsAndCloseButton impleme return getChanges(); } else if (VcsDataKeys.VCS_VIRTUAL_FILE.is(dataId)) { - if (firstSelectedRevision == null) return null; - return createVirtualFileForRevision(firstSelectedRevision); + VcsFileRevision[] selectedRevisions = getSelectedRevisions(); + if (selectedRevisions.length == 0) return null; + return createVirtualFileForRevision(ArrayUtil.getFirstElement(selectedRevisions)); } else if (VcsDataKeys.FILE_PATH.is(dataId)) { return myFilePath;