source: josm/trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/CopyMembersAction.java@ 9496

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

massive refactoring of GenericRelationEditor. As JDialog cannot be instantiated in headless mode, extract all actions to separate classes in new package gui.dialogs.relation.actions in order to test them with JUnit

File size: 1.5 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.dialogs.relation.actions;
3
4import java.awt.event.ActionEvent;
5import java.util.HashSet;
6import java.util.Set;
7
8import org.openstreetmap.josm.actions.CopyAction;
9import org.openstreetmap.josm.data.osm.OsmPrimitive;
10import org.openstreetmap.josm.data.osm.RelationMember;
11import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel;
12import org.openstreetmap.josm.gui.dialogs.relation.RelationAware;
13import org.openstreetmap.josm.gui.layer.OsmDataLayer;
14
15/**
16 * Copy members.
17 * @since 9496
18 */
19public class CopyMembersAction extends AddFromSelectionAction {
20
21 /**
22 * Constructs a new {@code CopyMembersAction}.
23 * @param memberTableModel member table model
24 * @param layer OSM data layer
25 * @param editor relation editor
26 */
27 public CopyMembersAction(MemberTableModel memberTableModel, OsmDataLayer layer, RelationAware editor) {
28 super(null, memberTableModel, null, null, null, layer, editor);
29 }
30
31 @Override
32 public void actionPerformed(ActionEvent e) {
33 Set<OsmPrimitive> primitives = new HashSet<>();
34 for (RelationMember rm: memberTableModel.getSelectedMembers()) {
35 primitives.add(rm.getMember());
36 }
37 if (!primitives.isEmpty()) {
38 CopyAction.copy(layer, primitives);
39 }
40 }
41
42 @Override
43 protected void updateEnabledState() {
44 // Do nothing
45 }
46}
Note: See TracBrowser for help on using the repository browser.