Ticket #24329: 24329.patch

File 24329.patch, 2.0 KB (added by GerdP, 7 months ago)

Add listener

  • src/org/openstreetmap/josm/actions/UploadSelectionAction.java

     
    2323import org.openstreetmap.josm.data.osm.OsmPrimitive;
    2424import org.openstreetmap.josm.data.osm.Relation;
    2525import org.openstreetmap.josm.data.osm.Way;
     26import org.openstreetmap.josm.data.osm.event.AbstractDatasetChangedEvent;
     27import org.openstreetmap.josm.data.osm.event.DataSetListenerAdapter;
     28import org.openstreetmap.josm.data.osm.event.DatasetEventManager;
     29import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode;
    2630import org.openstreetmap.josm.data.osm.visitor.OsmPrimitiveVisitor;
    2731import org.openstreetmap.josm.gui.MainApplication;
    2832import org.openstreetmap.josm.gui.Notification;
     
    4145 * Uploads the current selection to the server.
    4246 * @since 2250
    4347 */
    44 public class UploadSelectionAction extends AbstractUploadAction {
     48public class UploadSelectionAction extends AbstractUploadAction implements DataSetListenerAdapter.Listener {
     49    private final transient DataSetListenerAdapter dataChangedAdapter = new DataSetListenerAdapter(this);
     50
    4551    /**
    4652     * Constructs a new {@code UploadSelectionAction}.
    4753     */
     
    5561                // CHECKSTYLE.ON: LineLength
    5662                true);
    5763        setHelpId(ht("/Action/UploadSelection"));
     64        DatasetEventManager.getInstance().addDatasetListener(dataChangedAdapter, FireMode.IMMEDIATELY);
    5865    }
    5966
    6067    @Override
     
    321328            }
    322329        }
    323330    }
     331
     332    @Override
     333    public void destroy() {
     334        super.destroy();
     335        DatasetEventManager.getInstance().removeDatasetListener(dataChangedAdapter);
     336
     337    }
     338
     339    @Override
     340    public void processDatasetEvent(AbstractDatasetChangedEvent event) {
     341        updateEnabledStateOnCurrentSelection();
     342    }
    324343}