001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.conflict.pair.relation;
003
004import static org.openstreetmap.josm.tools.I18n.tr;
005
006import javax.swing.table.DefaultTableColumnModel;
007import javax.swing.table.TableColumn;
008
009/**
010 * Column model used in {@link RelationMemberTable}.
011 * @since 1622
012 */
013public class RelationMemberListColumnModel extends DefaultTableColumnModel {
014
015    /**
016     * Constructs a new {@code RelationMemberListColumnModel}.
017     */
018    public RelationMemberListColumnModel() {
019        createColumns();
020    }
021
022    protected final void createColumns() {
023        RelationMemberTableCellRenderer renderer = new RelationMemberTableCellRenderer();
024
025        // column 0 - Row num
026        TableColumn col = new TableColumn(0);
027        col.setHeaderValue("");
028        col.setResizable(true);
029        col.setPreferredWidth(32);
030        col.setMaxWidth(40);    // Up to 5 digits
031        col.setCellRenderer(renderer);
032        addColumn(col);
033
034        // column 1 - Role
035        col = new TableColumn(1);
036        col.setHeaderValue(tr("Role"));
037        col.setResizable(true);
038        col.setCellRenderer(renderer);
039        col.setMaxWidth(100);
040        col.setCellEditor(new RelationMemberTableCellEditor());
041        addColumn(col);
042
043        // column 2 - Primitive
044        col = new TableColumn(2);
045        col.setHeaderValue(tr("Primitive"));
046        col.setResizable(true);
047        col.setCellRenderer(renderer);
048        addColumn(col);
049    }
050}