DetectTaskingManagerUtils: Update for TM 4

Signed-off-by: Taylor Smock <tsmock@fb.com>
pull/1/head
Taylor Smock 2021-06-03 12:05:05 -06:00
rodzic 63b0356759
commit 64ff82db04
2 zmienionych plików z 17 dodań i 12 usunięć

Wyświetl plik

@ -4,18 +4,19 @@ package org.openstreetmap.josm.plugins.mapwithai.backend;
import static org.openstreetmap.josm.tools.I18n.tr;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Stream;
import org.openstreetmap.josm.data.Bounds;
import org.openstreetmap.josm.data.coor.LatLon;
import org.openstreetmap.josm.data.gpx.GpxData;
import org.openstreetmap.josm.data.gpx.GpxRoute;
import org.openstreetmap.josm.data.gpx.WayPoint;
import org.openstreetmap.josm.data.osm.BBox;
import org.openstreetmap.josm.gui.MainApplication;
import org.openstreetmap.josm.gui.layer.GpxLayer;
import org.openstreetmap.josm.gui.layer.Layer;
import org.openstreetmap.josm.gui.layer.OsmDataLayer;
import org.openstreetmap.josm.plugins.mapwithai.MapWithAIPlugin;
/**
@ -26,11 +27,8 @@ import org.openstreetmap.josm.plugins.mapwithai.MapWithAIPlugin;
*/
final class DetectTaskingManagerUtils {
public static final String MAPWITHAI_CROP_AREA = tr("{0}: Crop Area", MapWithAIPlugin.NAME);
private static final List<Pattern> PATTERNS = new ArrayList<>();
static {
PATTERNS.add(Pattern.compile("^Task Boundaries.*$"));
PATTERNS.add(Pattern.compile("^" + MAPWITHAI_CROP_AREA + "$"));
}
private static final Pattern[] PATTERNS = { Pattern.compile("^Task Boundaries.*$"),
Pattern.compile("^" + MAPWITHAI_CROP_AREA + "$"), Pattern.compile("^Boundary for task:.*$") };
private DetectTaskingManagerUtils() {
// Hide since this is going to be a static class
@ -52,9 +50,8 @@ final class DetectTaskingManagerUtils {
* {@link DetectTaskingManagerUtils#PATTERNS} or {@code null}.
*/
public static Layer getTaskingManagerLayer() {
return MainApplication.getLayerManager().getLayers().parallelStream().filter(
tlayer -> PATTERNS.parallelStream().anyMatch(pattern -> pattern.matcher(tlayer.getName()).matches()))
.findFirst().orElse(null);
return MainApplication.getLayerManager().getLayers().parallelStream().filter(tlayer -> Stream.of(PATTERNS)
.parallel().anyMatch(pattern -> pattern.matcher(tlayer.getName()).matches())).findFirst().orElse(null);
}
/**
@ -74,6 +71,10 @@ final class DetectTaskingManagerUtils {
} else {
returnBounds.extend(realBounds);
}
} else if (layer instanceof OsmDataLayer && ((OsmDataLayer) layer).getDataSet().getWays().size() == 1) {
final BBox bbox = ((OsmDataLayer) layer).getDataSet().getWays().iterator().next().getBBox();
returnBounds.extend(bbox.getBottomRight());
returnBounds.extend(bbox.getTopLeft());
}
return returnBounds;
}

Wyświetl plik

@ -70,9 +70,13 @@ public class MapWithAIAction extends JosmAction {
*/
protected static OsmDataLayer getOsmLayer(List<OsmDataLayer> osmLayers) {
OsmDataLayer returnLayer = null;
if (osmLayers.size() == 1) {
List<OsmDataLayer> tLayers = new ArrayList<>(osmLayers);
if (DetectTaskingManagerUtils.hasTaskingManagerLayer()) {
tLayers.removeIf(DetectTaskingManagerUtils.getTaskingManagerLayer()::equals);
}
if (tLayers.size() == 1) {
returnLayer = osmLayers.get(0);
} else if (!osmLayers.isEmpty()) {
} else if (!tLayers.isEmpty()) {
returnLayer = AbstractMergeAction.askTargetLayer(osmLayers.toArray(new OsmDataLayer[0]),
tr("Please select the initial layer for boundaries"), tr("Select target layer for boundaries"),
tr("OK"), "download");