source: josm/trunk/src/org/openstreetmap/josm/gui/io/ChangesetCellRenderer.java@ 12866

Last change on this file since 12866 was 12494, checked in by Don-vip, 7 years ago

add Changeset.getComment()

  • Property svn:eol-style set to native
File size: 2.9 KB
RevLine 
[2512]1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.io;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.Component;
[5319]7import java.text.DateFormat;
[11878]8import java.util.Date;
[2512]9
10import javax.swing.ImageIcon;
11import javax.swing.JLabel;
12import javax.swing.JList;
13import javax.swing.ListCellRenderer;
14import javax.swing.UIManager;
15
16import org.openstreetmap.josm.data.osm.Changeset;
17import org.openstreetmap.josm.tools.ImageProvider;
[11848]18import org.openstreetmap.josm.tools.Utils;
[7299]19import org.openstreetmap.josm.tools.date.DateUtils;
[2512]20
21/**
[5266]22 * A {@link ListCellRenderer} for the list of changesets in the upload dialog.
[2512]23 *
[7299]24 * @since 2115
[2512]25 */
[7001]26public class ChangesetCellRenderer extends JLabel implements ListCellRenderer<Changeset> {
[9078]27 private final ImageIcon icon;
[7001]28
29 /**
30 * Constructs a new {@code ChangesetCellRenderer}.
31 */
[2512]32 public ChangesetCellRenderer() {
33 icon = ImageProvider.get("data", "changeset");
34 setOpaque(true);
35 }
36
37 protected String buildToolTipText(Changeset cs) {
[10242]38 StringBuilder sb = new StringBuilder(64);
[8390]39 sb.append("<html><strong>").append(tr("Changeset id:")).append("</strong>").append(cs.getId()).append("<br>");
[11878]40 Date createdDate = cs.getCreatedAt();
41 if (createdDate != null) {
[7299]42 sb.append("<strong>").append(tr("Created at:")).append("</strong>").append(
[11878]43 DateUtils.formatDateTime(createdDate, DateFormat.SHORT, DateFormat.SHORT)).append("<br>");
[2512]44 }
[12494]45 String comment = cs.getComment();
46 if (!comment.isEmpty()) {
[11848]47 sb.append("<strong>").append(tr("Changeset comment:")).append("</strong>")
48 .append(Utils.escapeReservedCharactersHTML(comment)).append("<br>");
[2512]49 }
50 return sb.toString();
51 }
52
[6084]53 @Override
[8509]54 public Component getListCellRendererComponent(JList<? extends Changeset> list, Changeset cs, int index, boolean isSelected,
55 boolean cellHasFocus) {
[2512]56 if (isSelected) {
57 setForeground(UIManager.getColor("List.selectionForeground"));
58 setBackground(UIManager.getColor("List.selectionBackground"));
59 } else {
60 setForeground(UIManager.getColor("List.foreground"));
61 setBackground(UIManager.getColor("List.background"));
62 }
63 if (cs != null) {
64 setIcon(icon);
[6822]65 StringBuilder sb = new StringBuilder();
[12494]66 String comment = cs.getComment();
67 if (!comment.isEmpty()) {
[11608]68 sb.append(cs.getId()).append(" - ").append(comment);
[2512]69 } else if (cs.get("name") != null) {
70 sb.append(cs.getId()).append(" - ").append(cs.get("name"));
71 } else {
72 sb.append(tr("Changeset {0}", cs.getId()));
73 }
74 setText(sb.toString());
75 setToolTipText(buildToolTipText(cs));
76 } else {
77 setText(tr("No open changeset"));
78 }
79 return this;
80 }
81}
Note: See TracBrowser for help on using the repository browser.