HtmlChunk (@Nullable VcsUser committer, @Nullable Long commitTime) { if (committer == null && commitTime == null) { return HtmlChunk.empty(); } String style = "color:#" + ColorUtil.toHex(JBColor.GRAY); HtmlChunk.Element graySpan = HtmlChunk.span(style); String committed; if (committer == null) { String date = DateFormatUtil.formatDate(commitTime); String time = DateFormatUtil.formatTime(commitTime); committed = VcsLogBundle.message("vcs.log.details.committer.info.date.time", date, time); } else { String by = VcsUserUtil.getShortPresentation(committer) + (!committer.getEmail().isEmpty() ? "</span> " + getEmailLink(committer) + "<span style=\"" + style + "\">" : ""); if (commitTime == null) { committed = VcsLogBundle.message("vcs.log.details.committer.info.user", by); } else { String date = DateFormatUtil.formatDate(commitTime); String time = DateFormatUtil.formatTime(commitTime); committed = VcsLogBundle.message("vcs.log.details.committer.info.user.date.time", by, date, time); } } return new HtmlBuilder().appendRaw(committed).wrapWith(graySpan); }