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}