JComponent (Dimension prefToolBarSize) { ActionGroup actions = createRevisionsActions(); myToolBar = createRevisionsToolbar(actions); myRevisionsList = new RevisionsList(new RevisionsList.SelectionListener() { @Override public void revisionsSelected(final int first, final int last) { scheduleDiffUpdate(Couple.of(first, last)); } }); myToolBar.setTargetComponent(myRevisionsList.getComponent()); PopupHandler.installPopupMenu(myRevisionsList.getComponent(), actions, "LvcsRevisionsListPopup"); JPanel result = new JPanel(new BorderLayout()); JPanel toolBarPanel = new JPanel(new BorderLayout()); toolBarPanel.add(myToolBar.getComponent(), BorderLayout.WEST); addExtraToolbar(toolBarPanel); if (prefToolBarSize != null) { toolBarPanel.setPreferredSize(new Dimension(1, prefToolBarSize.height)); } result.add(toolBarPanel, BorderLayout.NORTH); JScrollPane scrollPane = ScrollPaneFactory.createScrollPane(myRevisionsList.getComponent()); scrollPane.setBorder(IdeBorderFactory.createBorder(SideBorder.TOP | SideBorder.RIGHT)); result.add(scrollPane, BorderLayout.CENTER); return result; }