Skip to content

Commit d0fcc11

Browse files
GerdPGerdP
GerdP
authored and
GerdP
committed
fix #24329:Upload Selection action not enabled after update
- add listener so that the action is enabled after the selected object was changed git-svn-id: https://josm.openstreetmap.de/svn/trunk@19410 0c6e7542-c601-0410-84e7-c038aed88b3b
1 parent 48fcb47 commit d0fcc11

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

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

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323
import org.openstreetmap.josm.data.osm.OsmPrimitive;
2424
import org.openstreetmap.josm.data.osm.Relation;
2525
import org.openstreetmap.josm.data.osm.Way;
26+
import org.openstreetmap.josm.data.osm.event.AbstractDatasetChangedEvent;
27+
import org.openstreetmap.josm.data.osm.event.DataSetListenerAdapter;
28+
import org.openstreetmap.josm.data.osm.event.DatasetEventManager;
29+
import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode;
2630
import org.openstreetmap.josm.data.osm.visitor.OsmPrimitiveVisitor;
2731
import org.openstreetmap.josm.gui.MainApplication;
2832
import org.openstreetmap.josm.gui.Notification;
@@ -41,7 +45,9 @@
4145
* Uploads the current selection to the server.
4246
* @since 2250
4347
*/
44-
public class UploadSelectionAction extends AbstractUploadAction {
48+
public 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
*/
@@ -55,6 +61,7 @@ public UploadSelectionAction() {
5561
// CHECKSTYLE.ON: LineLength
5662
true);
5763
setHelpId(ht("/Action/UploadSelection"));
64+
DatasetEventManager.getInstance().addDatasetListener(dataChangedAdapter, FireMode.IMMEDIATELY);
5865
}
5966

6067
@Override
@@ -321,4 +328,16 @@ protected void realRun() throws SAXException, IOException, OsmTransferException
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
}

0 commit comments

Comments
 (0)