001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.dialogs.changeset; 003 004import static org.openstreetmap.josm.tools.I18n.tr; 005 006import java.awt.Component; 007 008import javax.swing.JTable; 009 010import org.openstreetmap.josm.data.osm.ChangesetDataSet.ChangesetModificationType; 011import org.openstreetmap.josm.data.osm.history.HistoryOsmPrimitive; 012 013/** 014 * The table cell renderer used in the changeset content table, except for the "name" 015 * column in which we use a {@link org.openstreetmap.josm.gui.OsmPrimitivRenderer}. 016 */ 017public class ChangesetContentTableCellRenderer extends AbstractCellRenderer { 018 019 protected void renderModificationType(ChangesetModificationType type) { 020 switch(type) { 021 case CREATED: setText(tr("Created")); break; 022 case UPDATED: setText(tr("Updated")); break; 023 case DELETED: setText(tr("Deleted")); break; 024 } 025 setToolTipText(null); 026 } 027 028 @Override 029 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, 030 int row, int column) { 031 if (value == null) 032 return this; 033 reset(); 034 renderColors(isSelected); 035 switch(column) { 036 case 0: 037 ChangesetModificationType type = (ChangesetModificationType)value; 038 renderModificationType(type); 039 break; 040 case 1: 041 HistoryOsmPrimitive primitive = (HistoryOsmPrimitive)value; 042 renderId(primitive.getId()); 043 break; 044 default: 045 /* do nothing */ 046 } 047 return this; 048 } 049}