source: josm/trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTable.java@ 10089

Last change on this file since 10089 was 10089, checked in by Don-vip, 8 years ago

add unit test, javadoc

  • Property svn:eol-style set to native
File size: 1.4 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.dialogs.relation;
3
4import java.awt.event.MouseAdapter;
5import java.awt.event.MouseEvent;
6import java.util.Collections;
7
8import javax.swing.JTable;
9import javax.swing.ListSelectionModel;
10import javax.swing.SwingUtilities;
11
12/**
13 * Selection table of relation editor.
14 * @since 2563
15 */
16public class SelectionTable extends JTable {
17
18 private final SelectionTableModel model;
19 private final MemberTableModel memberTableModel;
20
21 /**
22 * Constructs a new {@code SelectionTable}.
23 * @param model table model
24 * @param memberTableModel member table model
25 */
26 public SelectionTable(SelectionTableModel model, MemberTableModel memberTableModel) {
27 super(model, new SelectionTableColumnModel(memberTableModel));
28 this.model = model;
29 this.memberTableModel = memberTableModel;
30 build();
31 }
32
33 protected void build() {
34 setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
35 addMouseListener(new DoubleClickAdapter());
36 }
37
38 class DoubleClickAdapter extends MouseAdapter {
39 @Override
40 public void mouseClicked(MouseEvent evt) {
41 if (!(SwingUtilities.isLeftMouseButton(evt) && evt.getClickCount() > 1))
42 return;
43 int row = rowAtPoint(evt.getPoint());
44 memberTableModel.selectMembersReferringTo(Collections.singleton(model.getPrimitive(row)));
45 }
46 }
47}
Note: See TracBrowser for help on using the repository browser.