diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesBrowserBase.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesBrowserBase.java index 1c86403e5e1a..29434af8c04c 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesBrowserBase.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesBrowserBase.java @@ -78,7 +78,7 @@ public abstract class ChangesBrowserBase extends JPanel implements DataProvider setFocusable(false); JPanel topPanel = new JPanel(new BorderLayout()); - topPanel.add(myToolbar.getComponent(), BorderLayout.CENTER); + topPanel.add(getToolbarComponent(), BorderLayout.CENTER); JComponent headerPanel = createHeaderPanel(); if (headerPanel != null) topPanel.add(headerPanel, BorderLayout.EAST); @@ -92,6 +92,10 @@ public abstract class ChangesBrowserBase extends JPanel implements DataProvider myShowDiffAction.registerCustomShortcutSet(this, null); } + @NotNull + protected JComponent getToolbarComponent() { + return myToolbar.getComponent(); + } @NotNull protected abstract DefaultTreeModel buildTreeModel(boolean showFlatten); diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/MainFrame.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/MainFrame.java index 2f95929c9660..022bed7ff72b 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/MainFrame.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/MainFrame.java @@ -109,6 +109,7 @@ public class MainFrame extends JPanel implements DataProvider, Disposable { myTextFilter = myFilterUi.createTextFilter(); myToolbar = createActionsToolbar(); + myChangesBrowser.setToolbarHeightReferent(myToolbar); JComponent toolbars = new JPanel(new BorderLayout()); toolbars.add(myToolbar, BorderLayout.NORTH); diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogChangesBrowser.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogChangesBrowser.java index 2d5aeacf999f..9683cbc7f7ac 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogChangesBrowser.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogChangesBrowser.java @@ -34,6 +34,7 @@ import com.intellij.openapi.vcs.changes.ui.*; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.IdeBorderFactory; import com.intellij.ui.SideBorder; +import com.intellij.ui.components.panels.Wrapper; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import com.intellij.vcs.log.CommitId; @@ -52,6 +53,7 @@ import gnu.trove.THashSet; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import javax.swing.*; import javax.swing.tree.DefaultTreeModel; import java.util.*; @@ -72,6 +74,7 @@ class VcsLogChangesBrowser extends ChangesBrowserBase implements Disposable { @NotNull private final Set myRoots = ContainerUtil.newHashSet(); @NotNull private final List myChanges = ContainerUtil.newArrayList(); @NotNull private final Map> myChangesToParents = ContainerUtil.newHashMap(); + @NotNull private final Wrapper myToolbarWrapper; public VcsLogChangesBrowser(@NotNull Project project, @NotNull MainVcsLogUiProperties uiProperties, @@ -94,12 +97,24 @@ class VcsLogChangesBrowser extends ChangesBrowserBase implements Disposable { Disposer.register(parent, this); + myToolbarWrapper = new Wrapper(getToolbar().getComponent()); + init(); getViewerScrollPane().setBorder(IdeBorderFactory.createBorder(SideBorder.TOP)); myViewer.rebuildTree(); } + @NotNull + @Override + protected JComponent getToolbarComponent() { + return myToolbarWrapper; + } + + public void setToolbarHeightReferent(@NotNull JComponent referent) { + myToolbarWrapper.setVerticalSizeReferent(referent); + } + @Override public void dispose() { myUiProperties.removeChangeListener(myListener); @@ -216,7 +231,7 @@ class VcsLogChangesBrowser extends ChangesBrowserBase implements Disposable { List selectedChanges = VcsTreeModelData.selected(myViewer).userObjects(Change.class); Set selectedVcs = ChangesUtil.getAffectedVcses(selectedChanges, myProject); if (selectedVcs.size() == 1) return notNull(getFirstItem(selectedVcs)); - + return null; }