001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.dialogs.changeset;
003
004import java.awt.Component;
005import java.util.Date;
006
007import javax.swing.JComponent;
008import javax.swing.JTable;
009
010import org.openstreetmap.josm.data.osm.User;
011import org.openstreetmap.josm.gui.widgets.JosmTextArea;
012
013/**
014 * The cell renderer for the changeset dicussion table
015 * @since 7715
016 */
017public class ChangesetDiscussionTableCellRenderer extends AbstractCellRenderer {
018
019    @Override
020    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
021            int row, int column) {
022        if (value == null)
023            return this;
024        JComponent comp = this;
025        reset(comp, true);
026        renderColors(comp, isSelected);
027        switch(column) {
028        case 0:
029            renderDate((Date) value);
030            break;
031        case 1:
032            renderUser((User) value);
033            break;
034        case 2:
035            comp = new JosmTextArea((String) value);
036            ((JosmTextArea) comp).setLineWrap(true);
037            ((JosmTextArea) comp).setWrapStyleWord(true);
038            reset(comp, false);
039            renderColors(comp, isSelected);
040            break;
041        default: // Do nothing
042        }
043        return comp;
044    }
045}