001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.history;
003
004import javax.swing.BorderFactory;
005import javax.swing.JLabel;
006import javax.swing.JTable;
007import javax.swing.SwingConstants;
008import javax.swing.table.TableCellRenderer;
009import java.awt.Color;
010import java.awt.Component;
011
012/**
013 * Renderer for version labels.
014 */
015public class VersionTableCellRenderer extends JLabel implements TableCellRenderer {
016
017    /**
018     * Constructs a new {@code VersionCellRenderer}.
019     */
020    public VersionTableCellRenderer() {
021        setHorizontalAlignment(SwingConstants.CENTER);
022    }
023
024    @Override
025    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
026                                                   int row, int column) {
027        String v = "";
028        if (value != null) {
029            v = value.toString();
030        }
031        setText(v);
032        Color color = table.getModel() instanceof VersionTableModel
033                ? ((VersionTableModel) table.getModel()).getVersionColor(row)
034                : null;
035        if (color != null) {
036            setBorder(BorderFactory.createMatteBorder(0, 2, 0, 0, color));
037        } else {
038            setBorder(null);
039        }
040        return this;
041    }
042}