MapWithAIPlugin: initialize download option when user first starts download

Signed-off-by: Taylor Smock <tsmock@fb.com>
pull/1/head
Taylor Smock 2022-05-12 12:58:06 -06:00
rodzic cfceddfb49
commit 5a265e6520
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 625F6A74A3E4311A
3 zmienionych plików z 14 dodań i 8 usunięć

Wyświetl plik

@ -22,6 +22,7 @@ import org.openstreetmap.josm.gui.MainApplication;
import org.openstreetmap.josm.gui.MainMenu;
import org.openstreetmap.josm.gui.MapFrame;
import org.openstreetmap.josm.gui.download.DownloadDialog;
import org.openstreetmap.josm.gui.download.DownloadSelection;
import org.openstreetmap.josm.gui.download.OSMDownloadSource;
import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
import org.openstreetmap.josm.gui.util.GuiHelper;
@ -124,12 +125,6 @@ public final class MapWithAIPlugin extends Plugin implements Destroyable {
MapPaintUtils.addMapWithAIPaintStyles();
destroyables = new ArrayList<>();
// Run in EDT to avoid blocking (has to be run before MapWithAIDownloadOptions
// so its already initialized)
GuiHelper.runInEDT(MapWithAILayerInfo::getInstance);
MapWithAIDownloadOptions mapWithAIDownloadOptions = new MapWithAIDownloadOptions();
mapWithAIDownloadOptions.addGui(DownloadDialog.getInstance());
destroyables.add(mapWithAIDownloadOptions);
setVersionInfo(info.localversion);
RequestProcessor.addRequestHandlerClass("mapwithai", MapWithAIRemoteControl.class);
@ -143,6 +138,17 @@ public final class MapWithAIPlugin extends Plugin implements Destroyable {
destroyables.add(new MapWithAICopyProhibit());
}
@Override
public void addDownloadSelection(List<DownloadSelection> list) {
// Run in EDT to avoid blocking (has to be run before MapWithAIDownloadOptions
// so its already initialized)
GuiHelper.runInEDT(MapWithAILayerInfo::getInstance);
MapWithAIDownloadOptions mapWithAIDownloadOptions = new MapWithAIDownloadOptions();
MainApplication.worker
.execute(() -> GuiHelper.runInEDT(() -> mapWithAIDownloadOptions.addGui(DownloadDialog.getInstance())));
destroyables.add(mapWithAIDownloadOptions);
}
@Override
public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
final Optional<MapWithAIObject> possibleMapWithAIObject = destroyables.parallelStream()

Wyświetl plik

@ -39,7 +39,7 @@ public final class CountryUtils {
*/
public static Optional<ImageryInfo.ImageryBounds> getCountryShape(String country) {
GeoPropertyIndex<Boolean> geoPropertyIndex = Territories.getGeoPropertyIndex(country);
if (geoPropertyIndex.getGeoProperty() instanceof DefaultGeoProperty) {
if (geoPropertyIndex != null && geoPropertyIndex.getGeoProperty() instanceof DefaultGeoProperty) {
DefaultGeoProperty prop = (DefaultGeoProperty) geoPropertyIndex.getGeoProperty();
Rectangle2D areaBounds = prop.getArea().getBounds2D();
ImageryInfo.ImageryBounds tmp = new ImageryInfo.ImageryBounds(bboxToBoundsString(

Wyświetl plik

@ -229,7 +229,7 @@ public class MapWithAIInfo extends
if (e.shapes != null) {
try {
for (String s : e.shapes.split(";", -1)) {
if (s.matches("[\\d,]+")) {
if (s.matches("[\\d,.-]+")) {
bounds.addShape(new Shape(s, ","));
} else {
CountryUtils.getCountryShape(s).map(SourceBounds::getShapes)