From 6f766830056d58960082d2ff556bcefd2129fb71 Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Tue, 23 Sep 2014 19:08:01 +0400 Subject: [PATCH] [push] Enable show diff from the repository node --- .../src/com/intellij/dvcs/push/ui/PushLog.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/platform/dvcs-impl/src/com/intellij/dvcs/push/ui/PushLog.java b/platform/dvcs-impl/src/com/intellij/dvcs/push/ui/PushLog.java index 15c9aa9ec51b..91a9bc4a2840 100644 --- a/platform/dvcs-impl/src/com/intellij/dvcs/push/ui/PushLog.java +++ b/platform/dvcs-impl/src/com/intellij/dvcs/push/ui/PushLog.java @@ -188,7 +188,7 @@ public class PushLog extends JPanel implements TypeSafeDataProvider { } @NotNull - private static Collection collectAllChanges(@NotNull RepositoryNode rootNode) { + private static Collection collectAllChanges(@NotNull RepositoryNode rootNode) { ArrayList changes = new ArrayList(); if (rootNode.getChildCount() <= 0) return changes; for (DefaultMutableTreeNode childNode = (DefaultMutableTreeNode)rootNode.getFirstChild(); @@ -218,9 +218,19 @@ public class PushLog extends JPanel implements TypeSafeDataProvider { if (selectedNodes.length == 0) { return; } - Object object = selectedNodes[0].getUserObject(); + DefaultMutableTreeNode node = selectedNodes[0]; + Object object = node.getUserObject(); + + Collection changes = null; if (object instanceof VcsFullCommitDetails) { - sink.put(key, ArrayUtil.toObjectArray(((VcsFullCommitDetails)object).getChanges(), Change.class)); + changes = ((VcsFullCommitDetails)object).getChanges(); + } + else if (node instanceof RepositoryNode) { + changes = collectAllChanges((RepositoryNode)node); + } + + if (changes != null) { + sink.put(key, ArrayUtil.toObjectArray(changes, Change.class)); } } }