source: josm/trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetListCellRenderer.java@ 7730

Last change on this file since 7730 was 7001, checked in by Don-vip, 10 years ago

see #8465 - switch core to Java 7

  • Property svn:eol-style set to native
File size: 1.9 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.dialogs.changeset;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.Component;
7
8import javax.swing.JLabel;
9import javax.swing.JList;
10import javax.swing.ListCellRenderer;
11import javax.swing.UIManager;
12
13import org.openstreetmap.josm.data.osm.Changeset;
14import org.openstreetmap.josm.tools.ImageProvider;
15
16public class ChangesetListCellRenderer extends JLabel implements ListCellRenderer<Changeset> {
17
18 /**
19 * Constructs a new {@code ChangesetListCellRenderer}.
20 */
21 public ChangesetListCellRenderer() {
22 setOpaque(true);
23 setIcon(ImageProvider.get("data", "changeset"));
24 }
25
26 protected void renderColors(boolean selected) {
27 if (selected) {
28 setForeground(UIManager.getColor("List.selectionForeground"));
29 setBackground(UIManager.getColor("List.selectionBackground"));
30 } else {
31 setForeground(UIManager.getColor("List.foreground"));
32 setBackground(UIManager.getColor("List.background"));
33 }
34 }
35
36 protected void renderLabel(Changeset cs) {
37 StringBuilder sb = new StringBuilder();
38 if (cs.isIncomplete()) {
39 sb.append(tr("{0} [incomplete]", cs.getId()));
40 } else {
41 String comment = cs.get("comment");
42 sb.append(cs.getId());
43 sb.append(" - ");
44 sb.append(cs.isOpen() ? tr("open") : tr("closed"));
45 if (comment != null) {
46 sb.append(" - ").append("'").append(comment).append("'");
47 }
48 }
49 setText(sb.toString());
50 }
51
52 @Override
53 public Component getListCellRendererComponent(JList<? extends Changeset> list, Changeset cs, int index, boolean isSelected, boolean cellHasFocus) {
54 renderColors(isSelected);
55 renderLabel(cs);
56 return this;
57 }
58}
Note: See TracBrowser for help on using the repository browser.