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.PrimitiveRenderer}. 016 */ 017public class ChangesetContentTableCellRenderer extends AbstractCellRenderer { 018 019 /** 020 * Renders primitive modification type. 021 * @param type modification type 022 */ 023 protected void renderModificationType(ChangesetModificationType type) { 024 switch(type) { 025 case CREATED: setText(tr("Created")); break; 026 case UPDATED: setText(tr("Updated")); break; 027 case DELETED: setText(tr("Deleted")); break; 028 } 029 setToolTipText(null); 030 } 031 032 @Override 033 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, 034 int row, int column) { 035 if (value == null) 036 return this; 037 reset(); 038 renderColors(isSelected); 039 switch(column) { 040 case 0: 041 if (value instanceof ChangesetModificationType) { 042 renderModificationType((ChangesetModificationType) value); 043 } 044 break; 045 case 1: 046 if (value instanceof HistoryOsmPrimitive) { 047 renderId(((HistoryOsmPrimitive) value).getId()); 048 } 049 break; 050 default: 051 /* do nothing */ 052 } 053 return this; 054 } 055}