JPanel (BeforeAfter<BeforeAfter<ConflictSidePresentation>> data) { final JPanel wrapper = new JPanel(new BorderLayout()); final JPanel main = new JPanel(new GridBagLayout()); final GridBagConstraints gb = new GridBagConstraints(0, 0, 1, 1, 1, 0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, JBUI.insets(1), 0, 0); String pathDescription = myCommittedRevision == null ? myPath.getName() : message("label.path.revisions.info", myPath.getName(), myChange.getBeforeRevision().getRevisionNumber().asString(), myCommittedRevision.asString()); final JLabel name = new JLabel(pathDescription); name.setFont(name.getFont().deriveFont(Font.BOLD)); gb.insets.top = 5; main.add(name, gb); ++gb.gridy; gb.insets.top = 10; appendDescription(myChange.getBeforeDescription(), main, gb, data.getBefore()); appendDescription(myChange.getAfterDescription(), main, gb, data.getAfter()); wrapper.add(main, BorderLayout.NORTH); return wrapper; }