From c68137f8205db07cbf4623a616e86b920b7167d4 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Mon, 1 Feb 2016 20:10:05 +0300 Subject: [PATCH] IDEA-117462 vcs: History For Selection - support links in commit messages --- .../impl/VcsSelectionHistoryDialog.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/history/impl/VcsSelectionHistoryDialog.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/history/impl/VcsSelectionHistoryDialog.java index 7dbbe31dd8c6..3f0e26b15aca 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/history/impl/VcsSelectionHistoryDialog.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/history/impl/VcsSelectionHistoryDialog.java @@ -36,9 +36,11 @@ import com.intellij.openapi.ui.Splitter; import com.intellij.openapi.ui.popup.util.PopupUtil; import com.intellij.openapi.vcs.*; import com.intellij.openapi.vcs.annotate.ShowAllAffectedGenericAction; +import com.intellij.openapi.vcs.changes.issueLinks.IssueLinkHtmlRenderer; import com.intellij.openapi.vcs.changes.issueLinks.TableLinkMouseListener; import com.intellij.openapi.vcs.history.*; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.ui.BrowserHyperlinkListener; import com.intellij.ui.JBSplitter; import com.intellij.ui.PopupHandler; import com.intellij.ui.ScrollPaneFactory; @@ -48,6 +50,7 @@ import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.ui.ColumnInfo; import com.intellij.util.ui.ListTableModel; +import com.intellij.util.ui.UIUtil; import com.intellij.vcsUtil.VcsUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -110,7 +113,7 @@ public class VcsSelectionHistoryDialog extends FrameWrapper implements DataProvi private final Splitter mySplitter; private final DiffRequestPanel myDiffPanel; private final JCheckBox myChangesOnlyCheckBox = new JCheckBox(VcsBundle.message("checkbox.show.changed.revisions.only")); - private final JTextArea myComments = new JTextArea(); + private final JEditorPane myComments; private boolean myIsDuringUpdate = false; private boolean myIsDisposed = false; @@ -135,6 +138,11 @@ public class VcsSelectionHistoryDialog extends FrameWrapper implements DataProvi mySelectionEnd = selectionEnd; myHelpId = notNull(vcsHistoryProvider.getHelpId(), "reference.dialogs.vcs.selection.history"); + myComments = new JEditorPane(UIUtil.HTML_MIME, ""); + myComments.setPreferredSize(new Dimension(150, 100)); + myComments.setEditable(false); + myComments.addHyperlinkListener(BrowserHyperlinkListener.INSTANCE); + JRootPane rootPane = ((RootPaneContainer)getFrame()).getRootPane(); final VcsDependentHistoryComponents components = vcsHistoryProvider.getUICustomization(session, rootPane); @@ -169,7 +177,8 @@ public class VcsSelectionHistoryDialog extends FrameWrapper implements DataProvi final VcsFileRevision revision; if (myList.getSelectedRowCount() == 1 && !myList.isEmpty()) { revision = myList.getItems().get(myList.getSelectedRow()); - myComments.setText(revision.getCommitMessage()); + String message = IssueLinkHtmlRenderer.formatTextIntoHtml(myProject, revision.getCommitMessage()); + myComments.setText(message); myComments.setCaretPosition(0); } else { @@ -391,16 +400,10 @@ public class VcsSelectionHistoryDialog extends FrameWrapper implements DataProvi } private JComponent createComments(final JComponent addComp) { - final JLabel label = new JLabel("Commit Message:"); - JPanel panel = new JPanel(new BorderLayout(4, 4)); - panel.add(label, BorderLayout.NORTH); + panel.add(new JLabel("Commit Message:"), BorderLayout.NORTH); panel.add(ScrollPaneFactory.createScrollPane(myComments), BorderLayout.CENTER); - myComments.setRows(5); - myComments.setEditable(false); - myComments.setLineWrap(true); - final Splitter splitter = new Splitter(false); splitter.setFirstComponent(panel); splitter.setSecondComponent(addComp);