// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.dialogs.changeset; import static org.openstreetmap.josm.tools.I18n.trc; import java.awt.Component; import java.awt.Font; import javax.swing.JTable; import javax.swing.UIManager; import org.openstreetmap.josm.data.osm.Changeset; /** * The cell renderer for the changeset table * @since 2689 */ public class ChangesetCacheTableCellRenderer extends AbstractCellRenderer { protected void renderUploadComment(Changeset cs) { String comment = cs.get("comment"); if (comment == null || comment.trim().isEmpty()) { setText(trc("changeset.upload-comment", "empty")); setFont(UIManager.getFont("Table.font").deriveFont(Font.ITALIC)); } else { setText(comment); setToolTipText(comment); setFont(UIManager.getFont("Table.font")); } } protected void renderOpen(Changeset cs) { if (cs.isOpen()) { setText(trc("changeset.state", "Open")); } else { setText(trc("changeset.state", "Closed")); } setToolTipText(null); } protected void renderDiscussions(Changeset cs) { setText(Integer.toString(cs.getCommentsCount())); setToolTipText(null); } @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (value == null) return this; reset(); renderColors(isSelected); Changeset cs = (Changeset) value; switch(column) { case 0: /* id */ renderId(cs.getId()); break; case 1: /* upload comment */ renderUploadComment(cs); break; case 2: /* open/closed */ renderOpen(cs); break; case 3: /* user */ renderUser(cs.getUser()); break; case 4: /* created at */ renderDate(cs.getCreatedAt()); break; case 5: /* closed at */ renderDate(cs.getClosedAt()); break; case 6: /* discussions */ renderDiscussions(cs); break; default: // Do nothing } return this; } }