source: josm/trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/SelectedMembersForSelectionAction.java@ 13130

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

fix #15572 - use ImageProvider attach API for all JOSM actions to ensure proper icon size everywhere

File size: 2.1 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.dialogs.relation.actions;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.event.ActionEvent;
7
8import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel;
9import org.openstreetmap.josm.gui.dialogs.relation.SelectionTableModel;
10import org.openstreetmap.josm.gui.layer.OsmDataLayer;
11import org.openstreetmap.josm.tools.ImageProvider;
12
13/**
14 * Selects members in the relation editor which refer to primitives in the current selection of the context layer.
15 * @since 9496
16 */
17public class SelectedMembersForSelectionAction extends AddFromSelectionAction {
18
19 /**
20 * Constructs a new {@code SelectedMembersForSelectionAction}.
21 * @param memberTableModel member table model
22 * @param selectionTableModel selection table model
23 * @param layer OSM data layer
24 */
25 public SelectedMembersForSelectionAction(MemberTableModel memberTableModel, SelectionTableModel selectionTableModel, OsmDataLayer layer) {
26 super(null, memberTableModel, null, selectionTableModel, null, layer, null);
27 putValue(SHORT_DESCRIPTION, tr("Select relation members which refer to objects in the current selection"));
28 new ImageProvider("dialogs/relation", "selectmembers").getResource().attachImageIcon(this, true);
29 updateEnabledState();
30 }
31
32 @Override
33 protected void updateEnabledState() {
34 boolean enabled = selectionTableModel.getRowCount() > 0
35 && !memberTableModel.getChildPrimitives(layer.data.getSelected()).isEmpty();
36
37 if (enabled) {
38 putValue(SHORT_DESCRIPTION, tr("Select relation members which refer to {0} objects in the current selection",
39 memberTableModel.getChildPrimitives(layer.data.getSelected()).size()));
40 } else {
41 putValue(SHORT_DESCRIPTION, tr("Select relation members which refer to objects in the current selection"));
42 }
43 setEnabled(enabled);
44 }
45
46 @Override
47 public void actionPerformed(ActionEvent e) {
48 memberTableModel.selectMembersReferringTo(layer.data.getSelected());
49 }
50}
Note: See TracBrowser for help on using the repository browser.