// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.plugins.fixAddresses.gui.actions; import static org.openstreetmap.josm.tools.I18n.tr; import org.openstreetmap.josm.plugins.fixAddresses.AddressEditContainer; import org.openstreetmap.josm.plugins.fixAddresses.OSMAddress; import org.openstreetmap.josm.plugins.fixAddresses.OSMStreet; import org.openstreetmap.josm.plugins.fixAddresses.gui.AddressEditSelectionEvent; /** * Assigns one or more selected addresses to a street, i. e. the name of the street is * used as value for the addr:street tag. * @author Oliver Wieland <oliver.wieland@online.de> */ public class AssignAddressToStreetAction extends AbstractAddressEditAction { /** * Instantiates a new "assign address to street" action. */ public AssignAddressToStreetAction() { super(tr("Assign address to street"), "assignstreet_24", tr("Assign the selected address(es) to the selected street."), "fixaddresses/assignaddresstostreet"); } /** * */ private static final long serialVersionUID = -6180491357232121384L; @Override public void addressEditActionPerformed(AddressEditSelectionEvent ev) { OSMStreet streetNode = ev.getSelectedStreet(); if (streetNode != null && ev.getSelectedUnresolvedAddresses() != null) { beginTransaction(tr("Set street name") + " '" + streetNode.getName() + "'"); for (OSMAddress addrNode : ev.getSelectedUnresolvedAddresses()) { beginObjectTransaction(addrNode); addrNode.assignStreet(streetNode); finishObjectTransaction(addrNode); } finishTransaction(); } } @Override public void updateEnabledState(AddressEditSelectionEvent ev) { setEnabled(ev.getSelectedStreet() != null && ev.hasUnresolvedAddresses()); } @Override public void updateEnabledState(AddressEditContainer container) { // we only accept a selection here setEnabled(false); } @Override public void addressEditActionPerformed(AddressEditContainer container) { // we only accept a selection: nothing to do here } }