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}