001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.dialogs.relation;
003
004import static org.openstreetmap.josm.tools.I18n.tr;
005
006import javax.swing.table.DefaultTableColumnModel;
007import javax.swing.table.TableColumn;
008
009import org.openstreetmap.josm.data.osm.Relation;
010import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager;
011
012/**
013 * This is the column model for the {@link MemberTable}
014 */
015public class MemberTableColumnModel extends DefaultTableColumnModel {
016
017    /**
018     * Constructs a new {@code MemberTableColumnModel}.
019     * @param autoCompletionManager the auto completion manager. Must not be null
020     * @param relation the relation. Can be null
021     * @since 13675
022     */
023    public MemberTableColumnModel(AutoCompletionManager autoCompletionManager, Relation relation) {
024        TableColumn col = null;
025
026        // column 0 - the member role
027        col = new TableColumn(0);
028        col.setHeaderValue(tr("Role"));
029        col.setResizable(true);
030        col.setPreferredWidth(100);
031        col.setCellRenderer(new MemberTableRoleCellRenderer());
032        col.setCellEditor(new MemberRoleCellEditor(autoCompletionManager, relation));
033        addColumn(col);
034
035        // column 1 - the member
036        col = new TableColumn(1);
037        col.setHeaderValue(tr("Refers to"));
038        col.setResizable(true);
039        col.setPreferredWidth(300);
040        col.setCellRenderer(new MemberTableMemberCellRenderer());
041        addColumn(col);
042
043        // column 2 -
044        col = new TableColumn(2);
045        col.setHeaderValue("");
046        col.setResizable(false);
047        col.setPreferredWidth(20);
048        col.setCellRenderer(new MemberTableLinkedCellRenderer());
049        addColumn(col);
050    }
051}