// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.dialogs.relation; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Collections; import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.SwingUtilities; /** * Selection table of relation editor. * @since 2563 */ public class SelectionTable extends JTable { private final SelectionTableModel model; private final MemberTableModel memberTableModel; /** * Constructs a new {@code SelectionTable}. * @param model table model * @param memberTableModel member table model */ public SelectionTable(SelectionTableModel model, MemberTableModel memberTableModel) { super(model, new SelectionTableColumnModel(memberTableModel)); this.model = model; this.memberTableModel = memberTableModel; build(); } protected void build() { setSelectionMode(ListSelectionModel.SINGLE_SELECTION); addMouseListener(new DoubleClickAdapter()); } class DoubleClickAdapter extends MouseAdapter { @Override public void mouseClicked(MouseEvent evt) { if (!(SwingUtilities.isLeftMouseButton(evt) && evt.getClickCount() > 1)) return; int row = rowAtPoint(evt.getPoint()); memberTableModel.selectMembersReferringTo(Collections.singleton(model.getPrimitive(row))); } } }