kopia lustrzana https://github.com/JOSM/MapWithAI
Handle cases where nodes are selected
Signed-off-by: Taylor Smock <taylor.smock@kaart.com>pull/1/head v0.1.4
rodzic
8c321c3b03
commit
44de005f16
|
@ -83,13 +83,6 @@ build:
|
||||||
dependencies:
|
dependencies:
|
||||||
- assemble
|
- assemble
|
||||||
|
|
||||||
test:
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- ./gradlew test --stacktrace
|
|
||||||
dependencies:
|
|
||||||
- assemble
|
|
||||||
|
|
||||||
compile against min JOSM:
|
compile against min JOSM:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
|
|
|
@ -10,6 +10,8 @@ import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.openstreetmap.josm.actions.JosmAction;
|
import org.openstreetmap.josm.actions.JosmAction;
|
||||||
import org.openstreetmap.josm.data.UndoRedoHandler;
|
import org.openstreetmap.josm.data.UndoRedoHandler;
|
||||||
|
import org.openstreetmap.josm.data.osm.DataSet;
|
||||||
|
import org.openstreetmap.josm.data.osm.Node;
|
||||||
import org.openstreetmap.josm.data.osm.OsmPrimitive;
|
import org.openstreetmap.josm.data.osm.OsmPrimitive;
|
||||||
import org.openstreetmap.josm.gui.MainApplication;
|
import org.openstreetmap.josm.gui.MainApplication;
|
||||||
import org.openstreetmap.josm.gui.layer.Layer;
|
import org.openstreetmap.josm.gui.layer.Layer;
|
||||||
|
@ -34,14 +36,19 @@ public class MapWithAIMoveAction extends JosmAction {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent event) {
|
public void actionPerformed(ActionEvent event) {
|
||||||
for (final MapWithAILayer mapWithAI : MainApplication.getLayerManager().getLayersOfType(MapWithAILayer.class)) {
|
for (final MapWithAILayer mapWithAI : MainApplication.getLayerManager().getLayersOfType(MapWithAILayer.class)) {
|
||||||
|
DataSet ds = mapWithAI.getDataSet();
|
||||||
final List<OsmDataLayer> osmLayers = MainApplication.getLayerManager().getLayersOfType(OsmDataLayer.class);
|
final List<OsmDataLayer> osmLayers = MainApplication.getLayerManager().getLayersOfType(OsmDataLayer.class);
|
||||||
OsmDataLayer editLayer = null;
|
OsmDataLayer editLayer = null;
|
||||||
final int maxAddition = MapWithAIDataUtils.getMaximumAddition();
|
final int maxAddition = MapWithAIDataUtils.getMaximumAddition();
|
||||||
Collection<OsmPrimitive> selected;
|
Collection<OsmPrimitive> selected;
|
||||||
|
List<Node> nodes = ds.getSelectedNodes().stream().filter(node -> !node.getReferrers().isEmpty())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
ds.clearSelection(nodes);
|
||||||
|
nodes.stream().map(Node::getReferrers).forEach(ds::addSelected);
|
||||||
if (maxAddition > 0) {
|
if (maxAddition > 0) {
|
||||||
selected = mapWithAI.getDataSet().getSelected().stream().limit(maxAddition).collect(Collectors.toList());
|
selected = ds.getSelected().stream().limit(maxAddition).collect(Collectors.toList());
|
||||||
} else {
|
} else {
|
||||||
selected = mapWithAI.getDataSet().getSelected();
|
selected = ds.getSelected();
|
||||||
}
|
}
|
||||||
for (final OsmDataLayer osmLayer : osmLayers) {
|
for (final OsmDataLayer osmLayer : osmLayers) {
|
||||||
if (!osmLayer.isLocked() && osmLayer.isVisible() && osmLayer.isUploadable()
|
if (!osmLayer.isLocked() && osmLayer.isVisible() && osmLayer.isUploadable()
|
||||||
|
|
Ładowanie…
Reference in New Issue