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

Last change on this file since 2689 was 2613, checked in by Gubaer, 14 years ago

new: global in-memory cache for downloaded changesets
new: toggle dialog for changesets
new: downloading of changesets (currently without changeset content, will follow later)

File size: 1.8 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{
17
18 public ChangesetListCellRenderer() {
19 setOpaque(true);
20 setIcon(ImageProvider.get("data", "changeset"));
21 }
22
23 protected void renderColors(boolean selected) {
24 if (selected) {
25 setForeground(UIManager.getColor("List.selectionForeground"));
26 setBackground(UIManager.getColor("List.selectionBackground"));
27 } else {
28 setForeground(UIManager.getColor("List.foreground"));
29 setBackground(UIManager.getColor("List.background"));
30 }
31 }
32
33 protected void renderLabel(Changeset cs) {
34 StringBuffer sb = new StringBuffer();
35 if (cs.isIncomplete()) {
36 sb.append(tr("{0} [incomplete]", cs.getId()));
37 } else {
38 String comment = cs.get("comment");
39 sb.append(cs.getId());
40 sb.append(" - ");
41 sb.append(cs.isOpen() ? tr("open") : tr("closed"));
42 if (comment != null) {
43 sb.append(" - ").append("'").append(comment).append("'");
44 }
45 }
46 setText(sb.toString());
47 }
48
49 public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected,
50 boolean cellHasFocus) {
51 Changeset cs = (Changeset)value;
52 renderColors(isSelected);
53 renderLabel(cs);
54 return this;
55 }
56}
Note: See TracBrowser for help on using the repository browser.