001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.dialogs.changeset; 003 004import java.awt.Component; 005import java.time.Instant; 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 discussion 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 renderInstant((Instant) 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}