Ignore:
Timestamp:
2013-02-19T10:04:40+01:00 (12 years ago)
Author:
bastiK
Message:

applied #8441 - show local imagery sources in menu instead of popup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java

    r5691 r5729  
    77import java.io.IOException;
    88import java.net.URL;
    9 import java.util.ArrayList;
    109import java.util.Collection;
    11 import java.util.HashSet;
    12 import java.util.Iterator;
    13 import java.util.List;
    14 import java.util.Set;
    1510import java.util.concurrent.Future;
    1611import java.util.regex.Matcher;
    1712import java.util.regex.Pattern;
    1813
    19 import javax.swing.JOptionPane;
     14import org.xml.sax.SAXException;
    2015
    2116import org.openstreetmap.josm.Main;
    2217import org.openstreetmap.josm.data.Bounds;
    2318import org.openstreetmap.josm.data.coor.LatLon;
    24 import org.openstreetmap.josm.data.imagery.ImageryInfo;
    25 import org.openstreetmap.josm.data.imagery.ImageryLayerInfo;
    26 import org.openstreetmap.josm.data.imagery.Shape;
    2719import org.openstreetmap.josm.data.osm.DataSet;
    2820import org.openstreetmap.josm.data.osm.DataSource;
    2921import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
    30 import org.openstreetmap.josm.gui.ConditionalOptionPaneUtil;
    3122import org.openstreetmap.josm.gui.PleaseWaitRunnable;
    3223import org.openstreetmap.josm.gui.layer.Layer;
     
    3930import org.openstreetmap.josm.io.OsmTransferCanceledException;
    4031import org.openstreetmap.josm.io.OsmTransferException;
    41 import org.openstreetmap.josm.tools.Utils;
    42 import org.xml.sax.SAXException;
    4332
    4433/**
     
    283272                targetLayer.onPostDownloadFromServer();
    284273            }
    285 
    286             // Suggest potential imagery data, except if the data is downloaded after a "data update" command (see #8307)
    287             if (!isUpdateData) {
    288                 suggestImageryLayers();
    289             }
    290274        }
    291275       
     
    304288            if (reader != null) {
    305289                reader.cancel();
    306             }
    307         }
    308 
    309         protected void suggestImageryLayers() {
    310             if (currentBounds != null) {
    311                 final LatLon center = currentBounds.getCenter();
    312                 final Set<ImageryInfo> layers = new HashSet<ImageryInfo>();
    313    
    314                 for (ImageryInfo i : ImageryLayerInfo.instance.getDefaultLayers()) {
    315                     if (i.getBounds() != null && i.getBounds().contains(center)) {
    316                         layers.add(i);
    317                     }
    318                 }
    319                 // Do not suggest layers already in use
    320                 layers.removeAll(ImageryLayerInfo.instance.getLayers());
    321                 // For layers containing complex shapes, check that center is in one of its shapes (fix #7910)
    322                 for (Iterator<ImageryInfo> iti = layers.iterator(); iti.hasNext(); ) {
    323                     List<Shape> shapes = iti.next().getBounds().getShapes();
    324                     if (shapes != null && !shapes.isEmpty()) {
    325                         boolean found = false;
    326                         for (Iterator<Shape> its = shapes.iterator(); its.hasNext() && !found; ) {
    327                             found = its.next().contains(center);
    328                         }
    329                         if (!found) {
    330                             iti.remove();
    331                         }
    332                     }
    333                 }
    334    
    335                 if (layers.isEmpty()) {
    336                     return;
    337                 }
    338    
    339                 final List<String> layerNames = new ArrayList<String>();
    340                 for (ImageryInfo i : layers) {
    341                     layerNames.add(i.getName());
    342                 }
    343    
    344                 if (!ConditionalOptionPaneUtil.showConfirmationDialog(
    345                         "download.suggest-imagery-layer",
    346                         Main.parent,
    347                         tr("<html>For the downloaded area, the following additional imagery layers are available: {0}" +
    348                                 "Do you want to add those layers to the <em>Imagery</em> menu?" +
    349                                 "<br>(If needed, you can remove those entries in the <em>Preferences</em>.)",
    350                                 Utils.joinAsHtmlUnorderedList(layerNames)),
    351                         tr("Add imagery layers?"),
    352                         JOptionPane.YES_NO_OPTION,
    353                         JOptionPane.QUESTION_MESSAGE,
    354                         JOptionPane.YES_OPTION)) {
    355                     return;
    356                 }
    357    
    358                 ImageryLayerInfo.addLayers(layers);
    359290            }
    360291        }
Note: See TracChangeset for help on using the changeset viewer.