From 29bcffe991a7009f0046c774c3e6c22e0f457bb3 Mon Sep 17 00:00:00 2001 From: Nadya Zabrodina Date: Mon, 8 Oct 2018 23:59:01 +0300 Subject: [PATCH] shelf: cleanup - remove code duplication --- .../shelf/ShelvedChangesViewManager.java | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/shelf/ShelvedChangesViewManager.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/shelf/ShelvedChangesViewManager.java index e4bfddcd35db..57e5bc2530d5 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/shelf/ShelvedChangesViewManager.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/shelf/ShelvedChangesViewManager.java @@ -396,27 +396,13 @@ public class ShelvedChangesViewManager implements Disposable { List shelvedChanges = TreeUtil.collectSelectedObjectsOfType(this, ShelvedChange.class); final List shelvedBinaryFiles = TreeUtil.collectSelectedObjectsOfType(this, ShelvedBinaryFile.class); if (!shelvedChanges.isEmpty() || !shelvedBinaryFiles.isEmpty()) { - final List changes = new ArrayList<>(shelvedChanges.size() + shelvedBinaryFiles.size()); - for (ShelvedChange shelvedChange : shelvedChanges) { - changes.add(shelvedChange.getChange(myProject)); - } - for (ShelvedBinaryFile binaryFile : shelvedBinaryFiles) { - changes.add(binaryFile.createChange(myProject)); - } - return changes.toArray(new Change[0]); + return ArrayUtil.toObjectArray(getChangesFromShelvedChanges(shelvedChanges, shelvedBinaryFiles), Change.class); } else { final List changeLists = TreeUtil.collectSelectedObjectsOfType(this, ShelvedChangeList.class); final List changes = new ArrayList<>(); - for (ShelvedChangeList changeList : changeLists) { - shelvedChanges = changeList.getChanges(myProject); - for (ShelvedChange shelvedChange : shelvedChanges) { - changes.add(shelvedChange.getChange(myProject)); - } - final List binaryFiles = changeList.getBinaryFiles(); - for (ShelvedBinaryFile file : binaryFiles) { - changes.add(file.createChange(myProject)); - } + for (ShelvedChangeList list : changeLists) { + changes.addAll(getChangesFromShelvedChanges(list.getChanges(myProject), list.getBinaryFiles())); } return ArrayUtil.toObjectArray(changes, Change.class); } @@ -450,6 +436,19 @@ public class ShelvedChangesViewManager implements Disposable { return null; } + @NotNull + private List getChangesFromShelvedChanges(@NotNull List shelvedChanges, + @NotNull List shelvedBinaryFiles) { + final List changes = new ArrayList<>(shelvedChanges.size() + shelvedBinaryFiles.size()); + for (ShelvedChange shelvedChange : shelvedChanges) { + changes.add(shelvedChange.getChange(myProject)); + } + for (ShelvedBinaryFile binaryFile : shelvedBinaryFiles) { + changes.add(binaryFile.createChange(myProject)); + } + return changes; + } + private Set getSelectedLists(final boolean recycled) { final TreePath[] selections = getSelectionPaths(); final Set changeLists = new HashSet<>();