[file-history] only calculate selected revisions and first selected revision when they are needed

Use getSelectedRevisions method and ArrayUtil.getFirstItem
This commit is contained in:
Julia Beliaeva
2017-09-12 20:30:37 +03:00
parent a9707e516f
commit 005d77fb40
@@ -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;