// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.dialogs.changeset; import static org.openstreetmap.josm.tools.I18n.tr; import java.awt.Font; import java.text.DateFormat; import java.util.Date; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.UIManager; import javax.swing.table.TableCellRenderer; import org.openstreetmap.josm.data.osm.User; import org.openstreetmap.josm.tools.date.DateUtils; /** * Superclass of changeset cell renderers. * @since 7715 */ public abstract class AbstractCellRenderer extends JLabel implements TableCellRenderer { protected void reset(JComponent c, boolean tableFont) { c.setBackground(UIManager.getColor("Table.background")); c.setForeground(UIManager.getColor("Table.foreground")); if (tableFont) { c.setFont(UIManager.getFont("Table.font")); } c.setToolTipText(null); c.setOpaque(true); } protected void reset() { reset(this, true); } protected void renderColors(JComponent c, boolean isSelected) { if (isSelected) { c.setBackground(UIManager.getColor("Table.selectionBackground")); c.setForeground(UIManager.getColor("Table.selectionForeground")); } else { c.setBackground(UIManager.getColor("Table.background")); c.setForeground(UIManager.getColor("Table.foreground")); } } protected void renderColors(boolean isSelected) { renderColors(this, isSelected); } protected void renderId(long id) { setText(Long.toString(id)); setToolTipText(null); } protected void renderUser(User user) { if (user == null || user.getName().trim().isEmpty()) { setFont(UIManager.getFont("Table.font").deriveFont(Font.ITALIC)); setText(tr("anonymous")); } else { setFont(UIManager.getFont("Table.font")); setText(user.getName()); setToolTipText(user.getName()); } } protected void renderDate(Date d) { if (d == null) { setText(""); } else { setText(DateUtils.formatDateTime(d, DateFormat.SHORT, DateFormat.SHORT)); } setToolTipText(null); } }