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}