From 429fd1dec67b73911e837db645f91b49111667bf Mon Sep 17 00:00:00 2001 From: Nadya Zabrodina Date: Mon, 13 Apr 2015 17:22:40 +0400 Subject: [PATCH] IDEA-138180 Push Dialog: last target is invisible (if it has no commits to push) * scroll bar sometimes doesn't appear when needed, and only a part of last commit is visible->collapse and re-expand or resize helps --- .../com/intellij/dvcs/push/ui/PushLog.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) 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 d223306b9858..5de0142324d8 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 @@ -29,6 +29,7 @@ import com.intellij.openapi.vcs.changes.ui.EditSourceForDialogAction; import com.intellij.openapi.vcs.history.VcsRevisionNumber; import com.intellij.ui.*; import com.intellij.ui.components.JBScrollPane; +import com.intellij.ui.components.JBViewport; import com.intellij.ui.components.labels.LinkLabel; import com.intellij.ui.components.labels.LinkListener; import com.intellij.util.ArrayUtil; @@ -233,6 +234,10 @@ public class PushLog extends JPanel implements DataProvider { } } }; + if (syncStrategyPanel != null) { + myScrollPane.setViewport(new MyTreeViewPort(myTree, syncStrategyPanel.getPreferredSize().height)); + } + myScrollPane.getViewport().setScrollMode(JViewport.SIMPLE_SCROLL_MODE); myScrollPane.setOpaque(false); if (syncStrategyPanel != null) { myScrollPane.add(syncStrategyPanel); @@ -653,6 +658,23 @@ public class PushLog extends JPanel implements DataProvider { }; } } + + private static class MyTreeViewPort extends JBViewport { + + final int myHeightToReduce; + + public MyTreeViewPort(@Nullable Component view, int heightToReduce) { + super(); + setView(view); + myHeightToReduce = heightToReduce; + } + + @Override + public Dimension getExtentSize() { + Dimension defaultSize = super.getExtentSize(); + return new Dimension(defaultSize.width, defaultSize.height - myHeightToReduce); + } + } }