source: josm/trunk/src/org/openstreetmap/josm/actions/relation/AddSelectionToRelations.java@ 6053

Last change on this file since 6053 was 5799, checked in by akks, 11 years ago

Membership tabled in properties toggle dialog supports multiselect (and multiple membership deletion)
Property toggle dialog refactoring - methods splitting and reordering
see #7846: more RelationListDialog refactoring, all other relation-related actions separated from dialogs, @Override, JavaDocs

File size: 2.2 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.actions.relation;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5import static org.openstreetmap.josm.tools.I18n.trn;
6
7import java.awt.event.ActionEvent;
8import java.util.Collection;
9import java.util.LinkedList;
10
11import org.openstreetmap.josm.Main;
12import org.openstreetmap.josm.command.Command;
13import org.openstreetmap.josm.command.SequenceCommand;
14import org.openstreetmap.josm.data.SelectionChangedListener;
15import org.openstreetmap.josm.data.osm.OsmPrimitive;
16import org.openstreetmap.josm.data.osm.Relation;
17import org.openstreetmap.josm.gui.dialogs.relation.GenericRelationEditor;
18import org.openstreetmap.josm.gui.util.GuiHelper;
19import org.openstreetmap.josm.tools.ImageProvider;
20
21
22public class AddSelectionToRelations extends AbstractRelationAction implements SelectionChangedListener {
23 /**
24 * Constructs a new <code>AddSelectionToRelation</code>.
25 */
26 public AddSelectionToRelations() {
27 putValue(SMALL_ICON, ImageProvider.get("dialogs/conflict", "copyendright"));
28 putValue(SHORT_DESCRIPTION, tr("Add all objects selected in the current dataset after the last member"));
29 }
30
31 @Override
32 public void actionPerformed(ActionEvent e) {
33 Collection<Command> cmds = new LinkedList<Command>();
34 for (Relation orig : relations) {
35 Command c = GenericRelationEditor.addPrimitivesToRelation(orig, Main.main.getCurrentDataSet().getSelected());
36 if (c != null) {
37 cmds.add(c);
38 }
39 }
40 if (!cmds.isEmpty()) {
41 Main.main.undoRedo.add(new SequenceCommand(tr("Add selection to relation"), cmds));
42 }
43 }
44
45 @Override
46 public void updateEnabledState() {
47 putValue(NAME, trn("Add selection to {0} relation", "Add selection to {0} relations",
48 relations.size(), relations.size()));
49 }
50
51 @Override
52 public void selectionChanged(final Collection<? extends OsmPrimitive> newSelection) {
53 GuiHelper.runInEDT(new Runnable() {
54 @Override
55 public void run() {
56 setEnabled(newSelection != null && !newSelection.isEmpty());
57 }
58 });
59 }
60}
Note: See TracBrowser for help on using the repository browser.