// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.conflict.pair.tags; import java.awt.Color; import java.awt.Component; import java.text.MessageFormat; import javax.swing.JLabel; import javax.swing.JTable; import javax.swing.table.TableCellRenderer; public abstract class TagMergeTableCellRenderer extends JLabel implements TableCellRenderer { protected abstract void renderKey(TagMergeItem item, boolean isSelected ); protected abstract void renderValue(TagMergeItem item, boolean isSelected); protected void reset() { setOpaque(true); setBackground(Color.white); setForeground(Color.black); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) { reset(); TagMergeItem item = (TagMergeItem)value; switch(col) { case 0: renderKey(item, isSelected); break; case 1: renderValue(item, isSelected); break; default: // should not happen, but just in case throw new IllegalArgumentException(MessageFormat.format("Parameter 'col' must be 0 or 1. Got {0}.", col)); } return this; } }