Ignore:
Timestamp:
2009-06-12T10:01:57+02:00 (15 years ago)
Author:
stoecker
Message:

close #2719

Location:
applications/editors/josm/plugins/wmsplugin/src/wmsplugin
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/wmsplugin/src/wmsplugin/Grabber.java

    r15185 r15858  
    33import static org.openstreetmap.josm.tools.I18n.tr;
    44
    5 import java.awt.image.BufferedImage;
    6 import java.awt.Graphics;
    75import java.awt.Color;
    86import java.awt.Font;
     7import java.awt.Graphics;
     8import java.awt.image.BufferedImage;
    99
     10import org.openstreetmap.josm.Main;
    1011import org.openstreetmap.josm.data.Bounds;
     12import org.openstreetmap.josm.data.coor.LatLon;
    1113import org.openstreetmap.josm.data.projection.Projection;
    1214import org.openstreetmap.josm.gui.MapView;
    13 import org.openstreetmap.josm.Main;
    14 import org.openstreetmap.josm.data.coor.LatLon;
    1515import org.openstreetmap.josm.io.CacheFiles;
    1616
     
    2424    protected CacheFiles cache;
    2525
    26     Grabber(Bounds b, Projection proj, double pixelPerDegree, GeorefImage image,
    27     MapView mv, WMSLayer layer, CacheFiles cache)
     26    Grabber(Bounds b, GeorefImage image, MapView mv, WMSLayer layer, CacheFiles cache)
    2827    {
    2928        if (b.min != null && b.max != null && WMSPlugin.doOverlap)
     
    4645            this.b = b;
    4746
    48         this.proj = proj;
    49         this.pixelPerDegree = pixelPerDegree;
     47        this.proj = Main.main.proj;
     48        this.pixelPerDegree = layer.pixelPerDegree;
    5049        this.image = image;
    5150        this.mv = mv;
  • applications/editors/josm/plugins/wmsplugin/src/wmsplugin/Map_Rectifier_WMSmenuAction.java

    r15827 r15858  
    33import static org.openstreetmap.josm.tools.I18n.tr;
    44
     5import java.awt.GridBagLayout;
     6import java.awt.Toolkit;
     7import java.awt.datatransfer.DataFlavor;
     8import java.awt.datatransfer.Transferable;
    59import java.awt.event.ActionEvent;
    610import java.awt.event.KeyEvent;
    7 import java.awt.datatransfer.DataFlavor;
    8 import java.awt.datatransfer.Transferable;
    9 import java.awt.GridBagLayout;
    10 import java.awt.Toolkit;
    11 
    1211import java.util.ArrayList;
    1312import java.util.regex.Matcher;
     
    2120import javax.swing.JTextField;
    2221
     22import org.openstreetmap.josm.Main;
    2323import org.openstreetmap.josm.actions.JosmAction;
    2424import org.openstreetmap.josm.gui.ExtendedDialog;
    25 import org.openstreetmap.josm.gui.MapView;
    26 import org.openstreetmap.josm.Main;
    2725import org.openstreetmap.josm.tools.GBC;
    2826import org.openstreetmap.josm.tools.Shortcut;
     
    3432     */
    3533    public class rectifierService {
    36         private String name;
    37         private String url;
    38         private String wmsUrl;
    39         private Pattern urlRegEx;
    40         private Pattern idValidator;
     34        private final String name;
     35        private final String url;
     36        private final String wmsUrl;
     37        private final Pattern urlRegEx;
     38        private final Pattern idValidator;
    4139        public JRadioButton btn;
    4240        /**
    43           * @param name: Name of the rectifing service
    44           * @param url: URL to the service where users can register, upload, etc.
    45           * @param wmsUrl: URL to the WMS server where JOSM will grab the images. Insert __s__ where the ID should be placed
    46           * @param urlRegEx: a regular expression that determines if a given URL is one of the service and returns the WMS id if so
    47           * @param idValidator: regular expression that checks if a given ID is syntactically valid
    48           */
     41         * @param name: Name of the rectifing service
     42         * @param url: URL to the service where users can register, upload, etc.
     43         * @param wmsUrl: URL to the WMS server where JOSM will grab the images. Insert __s__ where the ID should be placed
     44         * @param urlRegEx: a regular expression that determines if a given URL is one of the service and returns the WMS id if so
     45         * @param idValidator: regular expression that checks if a given ID is syntactically valid
     46         */
    4947        public rectifierService(String name, String url, String wmsUrl, String urlRegEx, String idValidator) {
    5048            this.name = name;
     
    6260    /**
    6361     * List of available rectifier services. May be extended from the outside
    64     */
     62     */
    6563    public ArrayList<rectifierService> services = new ArrayList<rectifierService>();
    6664
    6765    public Map_Rectifier_WMSmenuAction() {
    6866        super(tr("Rectified Image..."),
    69             "OLmarker",
    70             tr("Download Rectified Images From Various Services"),
    71             Shortcut.registerShortcut("wms:rectimg",
    72                 tr("WMS: {0}", tr("Rectified Image...")),
    73                 KeyEvent.VK_R,
    74                 Shortcut.GROUP_NONE),
    75             true
     67                "OLmarker",
     68                tr("Download Rectified Images From Various Services"),
     69                Shortcut.registerShortcut("wms:rectimg",
     70                        tr("WMS: {0}", tr("Rectified Image...")),
     71                        KeyEvent.VK_R,
     72                        Shortcut.GROUP_NONE),
     73                        true
    7674        );
    7775
     
    8179                "http://labs.metacarta.com/rectifier/",
    8280                "http://labs.metacarta.com/rectifier/wms.cgi?id=__s__&srs=EPSG:4326"
    83                     + "&Service=WMS&Version=1.1.0&Request=GetMap&format=image/png",
     81                + "&Service=WMS&Version=1.1.0&Request=GetMap&format=image/png",
    8482                // This matches more than the "classic" WMS link, so users can pretty much
    8583                // copy any link as long as it includes the ID
     
    9492                "http://warper.geothings.net/",
    9593                "http://warper.geothings.net/maps/wms/__s__?request=GetMap&version=1.1.1"
    96                     + "&styles=&format=image/png&srs=epsg:4326&exceptions=application/vnd.ogc.se_inimage",
     94                + "&styles=&format=image/png&srs=epsg:4326&exceptions=application/vnd.ogc.se_inimage",
    9795                // This matches more than the "classic" WMS link, so users can pretty much
    9896                // copy any link as long as it includes the ID
    99                 "(?:mapwarper\\.net|warper\\.geothings\\.net/(?:.*?)/([0-9]+)(?:\\?|/|\\.|$)",
     97                "(?:mapwarper\\.net|warper\\.geothings\\.net)/(?:.*?)/([0-9]+)(?:\\?|/|\\.|$)",
    10098                "^[0-9]+$")
    10199        );
     
    127125            // service will be pre-selected.
    128126            if(!clip.equals("") && tfWmsUrl.getText().equals("")
    129                 && (s.urlRegEx.matcher(clip).find() || s.idValidator.matcher(clip).matches())) {
     127                    && (s.urlRegEx.matcher(clip).find() || s.idValidator.matcher(clip).matches())) {
    130128                serviceBtn.setSelected(true);
    131129                tfWmsUrl.setText(clip);
     
    148146
    149147        ExtendedDialog diag = new ExtendedDialog(Main.parent,
    150                             tr("Add Rectified Image"),
    151                             panel,
    152                             new String[] {tr("Add Rectified Image"), tr("Cancel")},
    153                             new String[] {"OLmarker.png", "cancel.png"});
     148                tr("Add Rectified Image"),
     149                panel,
     150                new String[] {tr("Add Rectified Image"), tr("Cancel")},
     151                new String[] {"OLmarker.png", "cancel.png"});
    154152
    155153        // This repeatedly shows the dialog in case there has been an error.
     
    198196            // and display an error message. The while(true) ensures that the dialog pops up again
    199197            JOptionPane.showMessageDialog(Main.parent,
    200                 tr("Couldn't match the entered link or id to the selected service. Please try again."),
    201                 tr("No valid WMS URL or id"),
    202                 JOptionPane.ERROR_MESSAGE);
     198                    tr("Couldn't match the entered link or id to the selected service. Please try again."),
     199                    tr("No valid WMS URL or id"),
     200                    JOptionPane.ERROR_MESSAGE);
    203201            diag.setVisible(true);
    204202        }
     
    206204
    207205    /**
    208      * Adds a WMS Layer with given title and UR:
     206     * Adds a WMS Layer with given title and URL
    209207     * @param title: Name of the layer as it will shop up in the layer manager
    210208     * @param url: URL to the WMS server
     209     * @param cookies: Cookies to send with each image request (Format: josm=is; very=cool)
     210     */
     211    private void addWMSLayer(String title, String url, String cookies) {
     212        WMSLayer wmsLayer = new WMSLayer(title, url, cookies);
     213        Main.main.addLayer(wmsLayer);
     214    }
     215
     216    /**
     217     * Adds a WMS Layer with given title and URL
     218     * @param title: Name of the layer as it will shop up in the layer manager
     219     * @param url: URL to the WMS server
    211220     */
    212221    private void addWMSLayer(String title, String url) {
    213         WMSLayer wmsLayer = new WMSLayer(title, url);
    214         Main.main.addLayer(wmsLayer);
     222        addWMSLayer(title, url, "");
    215223    }
    216224
  • applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSDownloadAction.java

    r13497 r15858  
    77import org.openstreetmap.josm.Main;
    88import org.openstreetmap.josm.actions.JosmAction;
    9 import org.openstreetmap.josm.gui.MapView;
    10 import org.openstreetmap.josm.gui.layer.Layer;
    11 import org.openstreetmap.josm.data.Bounds;
    129
    1310public class WMSDownloadAction extends JosmAction {
    1411
    15     private WMSInfo info;
     12    private final WMSInfo info;
    1613
    1714    public WMSDownloadAction(WMSInfo info) {
     
    2421        System.out.println(info.url);
    2522
    26         WMSLayer wmsLayer = new WMSLayer(info.name, info.url);
     23        WMSLayer wmsLayer = new WMSLayer(info.name, info.url, info.cookies);
    2724        Main.main.addLayer(wmsLayer);
    2825    }
     
    3027    public static WMSLayer getLayer(WMSInfo info) {
    3128        // FIXME: move this to WMSPlugin/WMSInfo/preferences.
    32         WMSLayer wmsLayer = new WMSLayer(info.name, info.url);
     29        WMSLayer wmsLayer = new WMSLayer(info.name, info.url, info.cookies);
    3330        Main.main.addLayer(wmsLayer);
    3431        return wmsLayer;
  • applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSGrabber.java

    r15725 r15858  
    1717import java.text.NumberFormat;
    1818import java.util.Locale;
    19 import java.util.concurrent.TimeUnit;
    2019import java.util.regex.Matcher;
    2120import java.util.regex.Pattern;
     
    2625import org.openstreetmap.josm.Main;
    2726import org.openstreetmap.josm.data.Bounds;
    28 import org.openstreetmap.josm.data.projection.Projection;
    2927import org.openstreetmap.josm.gui.MapView;
    3028import org.openstreetmap.josm.io.CacheFiles;
     
    3432public class WMSGrabber extends Grabber {
    3533    protected String baseURL;
    36     private static Boolean shownWarning = false;
    37     private boolean urlWithPatterns;
     34    private final boolean urlWithPatterns;
    3835
    39     WMSGrabber(String baseURL, Bounds b, Projection proj,
    40             double pixelPerDegree, GeorefImage image, MapView mv, WMSLayer layer, CacheFiles cache) {
    41         super(b, proj, pixelPerDegree, image, mv, layer, cache);
    42         this.baseURL = baseURL;
     36    WMSGrabber(Bounds b, GeorefImage image, MapView mv, WMSLayer layer, CacheFiles cache) {
     37        super(b, image, mv, layer, cache);
     38        this.baseURL = layer.baseURL;
    4339        /* URL containing placeholders? */
    4440        urlWithPatterns = baseURL != null && baseURL.contains("{1}");
     
    7167    }
    7268
    73     public static final NumberFormat
    74         latLonFormat = new DecimalFormat("###0.0000000",
     69    public static final NumberFormat latLonFormat = new DecimalFormat("###0.0000000",
    7570            new DecimalFormatSymbols(Locale.US));
    7671
     
    7873            int wi, int ht) throws MalformedURLException {
    7974        String str = baseURL;
    80         String bbox = latLonFormat.format(w) + "," +
    81                       latLonFormat.format(s) + "," +
    82                       latLonFormat.format(e) + "," +
    83                       latLonFormat.format(n);
     75        String bbox = latLonFormat.format(w) + ","
     76                           + latLonFormat.format(s) + ","
     77                           + latLonFormat.format(e) + ","
     78                           + latLonFormat.format(n);
    8479
    8580        if (urlWithPatterns) {
     
    132127        BufferedImage cached = cache.getImg(url.toString());
    133128        if(cached != null) return cached;
    134    
     129
    135130        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
     131        if(layer.cookies != null && !layer.cookies.equals(""))
     132            conn.setRequestProperty("Cookie", layer.cookies);
    136133        conn.setConnectTimeout(Main.pref.getInteger("wmsplugin.timeout.connect", 30) * 1000);
    137134        conn.setReadTimeout(Main.pref.getInteger("wmsplugin.timeout.read", 30) * 1000);
     
    146143        BufferedImage img = ImageIO.read(is);
    147144        is.close();
    148        
     145
    149146        cache.saveImg(url.toString(), img);
    150147        return img;
  • applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSInfo.java

    r13645 r15858  
    1212    String name;
    1313    String url;
     14    String cookies;
    1415    int prefid;
    1516
    1617    public WMSInfo(String name, String url, int prefid) {
    17         this.name=name; this.url=url; this.prefid=prefid;
     18        this(name, url, null, prefid);
    1819    }
    1920
     21    public WMSInfo(String name, String url, String cookies, int prefid) {
     22        this.name=name;
     23        this.url=url;
     24        this.cookies=cookies;
     25        this.prefid=prefid;
     26    }
    2027
    2128    public void save() {
     
    2330        Main.pref.put("wmsplugin.url." + prefid + ".url", url);
    2431    }
    25     public int compareTo(WMSInfo c)
     32
     33    public int compareTo(WMSInfo in)
    2634    {
    27         WMSInfo in = (WMSInfo)c;
    2835        Integer i = name.compareTo(in.name);
    2936        if(i == 0)
  • applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSLayer.java

    r15707 r15858  
    5959    protected JCheckBoxMenuItem alphaChannel = new JCheckBoxMenuItem(new ToggleAlphaAction());
    6060    protected String baseURL;
     61    protected String cookies;
    6162    protected final int serializeFormatVersion = 4;
    6263
     
    6465
    6566    public WMSLayer() {
    66         this(tr("Blank Layer"), null);
     67        this(tr("Blank Layer"), null, null);
    6768        initializeImages();
    6869        mv = Main.map.mapView;
    6970    }
    7071
    71     public WMSLayer(String name, String baseURL) {
     72    public WMSLayer(String name, String baseURL, String cookies) {
    7273        super(name);
    7374        alphaChannel.setSelected(Main.pref.getBoolean("wmsplugin.alpha_channel"));
     
    7576        initializeImages();
    7677        this.baseURL = baseURL;
     78        this.cookies = cookies;
    7779        WMSGrabber.getProjection(baseURL, true);
    7880        mv = Main.map.mapView;
     
    8688        try {
    8789            executor.shutdown();
    88         // Might not be initalized, so catch NullPointer as well
     90            // Might not be initalized, so catch NullPointer as well
    8991        } catch(Exception x) {}
    9092    }
     
    128130    private Bounds XYtoBounds (int x, int y) {
    129131        return new Bounds(
    130             new LatLon( x * ImageSize / pixelPerDegree,
    131                          y * ImageSize / pixelPerDegree),
    132             new LatLon((x + 1) *  ImageSize / pixelPerDegree,
    133                        (y + 1) * ImageSize / pixelPerDegree));
     132            new LatLon(      x * ImageSize / pixelPerDegree,       y * ImageSize / pixelPerDegree),
     133            new LatLon((x + 1) * ImageSize / pixelPerDegree, (y + 1) * ImageSize / pixelPerDegree));
    134134    }
    135135
    136136    private int modulo (int a, int b) {
    137       if(a%b>=0)return a%b;
    138       else return a%b+b;
     137        return a % b >= 0 ? a%b : a%b+b;
    139138    }
    140139
     
    180179                    img.image = null;
    181180                    img.flushedResizedCachedInstance();
    182                     Grabber gr = WMSPlugin.getGrabber(baseURL, XYtoBounds(x,y), Main.main.proj, pixelPerDegree, img, mv, this);
     181                    Grabber gr = WMSPlugin.getGrabber(XYtoBounds(x,y), img, mv, this);
    183182                    executor.submit(gr);
    184             }
    185         }
     183                }
     184            }
    186185    }
    187186
     
    220219        for(int x = 0; x<dax; ++x)
    221220            for(int y = 0; y<day; ++y)
    222                     if(images[x][y].image!=null && images[x][y].min!=null && images[x][y].max!=null)
    223                         if(images[x][y].contains(eastNorth, dx, dy))
    224                             return images[x][y];
     221                if(images[x][y].image!=null && images[x][y].min!=null && images[x][y].max!=null)
     222                    if(images[x][y].contains(eastNorth, dx, dy))
     223                        return images[x][y];
    225224        return null;
    226225    }
     
    294293        }
    295294        public void actionPerformed(ActionEvent ev) {
    296             File f = DiskAccessAction.createAndOpenSaveFileChooser(
    297             tr("Save WMS layer"), ".wms");
     295            File f = DiskAccessAction.createAndOpenSaveFileChooser(tr("Save WMS layer"), ".wms");
    298296            try
    299297            {
     
    323321        public void actionPerformed(ActionEvent ev) {
    324322            JFileChooser fc = DiskAccessAction.createAndOpenFileChooser(true,
    325             false, tr("Load WMS layer"));
     323                    false, tr("Load WMS layer"));
    326324            if(fc == null) return;
    327325            File f = fc.getSelectedFile();
     
    334332                if (sfv != serializeFormatVersion) {
    335333                    JOptionPane.showMessageDialog(Main.parent,
    336                         tr("Unsupported WMS file version; found {0}, expected {1}", sfv, serializeFormatVersion),
    337                         tr("File Format Error"),
    338                         JOptionPane.ERROR_MESSAGE);
     334                            tr("Unsupported WMS file version; found {0}, expected {1}", sfv, serializeFormatVersion),
     335                            tr("File Format Error"),
     336                            JOptionPane.ERROR_MESSAGE);
    339337                    return;
    340338                }
     
    355353                ex.printStackTrace(System.out);
    356354                JOptionPane.showMessageDialog(Main.parent,
    357                     tr("Error loading file"),
    358                     tr("Error"),
    359                     JOptionPane.ERROR_MESSAGE);
     355                        tr("Error loading file"),
     356                        tr("Error"),
     357                        JOptionPane.ERROR_MESSAGE);
    360358                return;
    361359            }
  • applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSPlugin.java

    r15185 r15858  
    66import java.awt.event.ActionEvent;
    77import java.awt.event.KeyEvent;
     8import java.io.BufferedReader;
     9import java.io.File;
     10import java.io.FileNotFoundException;
     11import java.io.FileOutputStream;
     12import java.io.IOException;
     13import java.io.InputStream;
     14import java.io.InputStreamReader;
     15import java.io.UnsupportedEncodingException;
    816import java.util.ArrayList;
    917import java.util.Collections;
    1018import java.util.Map;
     19import java.util.TreeMap;
    1120import java.util.TreeSet;
    12 import java.util.TreeMap;
    13 import java.io.*;
    14 
    15 import javax.swing.AbstractAction;
    16 import javax.swing.AbstractButton;
     21
    1722import javax.swing.JMenu;
    1823import javax.swing.JMenuItem;
    1924
    2025import org.openstreetmap.josm.Main;
    21 import org.openstreetmap.josm.plugins.Plugin;
     26import org.openstreetmap.josm.actions.JosmAction;
     27import org.openstreetmap.josm.data.Bounds;
     28import org.openstreetmap.josm.gui.IconToggleButton;
    2229import org.openstreetmap.josm.gui.MainMenu;
    2330import org.openstreetmap.josm.gui.MapFrame;
    24 import org.openstreetmap.josm.gui.IconToggleButton;
     31import org.openstreetmap.josm.gui.MapView;
    2532import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
    2633import org.openstreetmap.josm.io.CacheFiles;
    2734import org.openstreetmap.josm.io.MirroredInputStream;
    28 import org.openstreetmap.josm.actions.JosmAction;
    29 import org.openstreetmap.josm.data.Bounds;
    30 import org.openstreetmap.josm.data.projection.Projection;
    31 import org.openstreetmap.josm.gui.MapView;
     35import org.openstreetmap.josm.plugins.Plugin;
    3236
    3337public class WMSPlugin extends Plugin {
     
    104108        String name = null;
    105109        String url = null;
     110        String cookies = "";
    106111        int lastid = -1;
    107112        for (String key : keys) {
     
    120125            else if (elements[3].equals("url"))
    121126                url = prefs.get(key);
     127            else if (elements[3].equals("cookies"))
     128                cookies = prefs.get(key);
    122129            if (name != null && url != null)
    123                 wmsList.add(new WMSInfo(name, url, prefid));
     130                wmsList.add(new WMSInfo(name, url, cookies, prefid));
    124131        }
    125132        String source = "http://svn.openstreetmap.org/applications/editors/josm/plugins/wmsplugin/sources.cfg";
     
    127134        {
    128135            MirroredInputStream s = new MirroredInputStream(source,
    129             Main.pref.getPreferencesDir() + "plugins/wmsplugin/", -1);
     136                    Main.pref.getPreferencesDir() + "plugins/wmsplugin/", -1);
    130137            InputStreamReader r;
    131138            try
     
    200207    }
    201208
    202     public static Grabber getGrabber(String _baseURL, Bounds _b, Projection _proj,
    203                      double _pixelPerDegree, GeorefImage _image, MapView _mv, WMSLayer _layer){
    204         if(_baseURL.startsWith("yahoo://"))
    205             return new YAHOOGrabber(_baseURL, _b, _proj, _pixelPerDegree, _image, _mv, _layer, cache);
     209    // baseURL, XYtoBounds(x,y), Main.main.proj, pixelPerDegree, img, mv, this
     210    // Grabber gr = WMSPlugin.getGrabber(XYtoBounds(x,y), img, mv, this);
     211    public static Grabber getGrabber(Bounds bounds, GeorefImage img, MapView mv, WMSLayer layer){
     212        if(layer.baseURL.startsWith("yahoo://"))
     213            return new YAHOOGrabber(bounds, img, mv, layer, cache);
    206214        else
    207             return new WMSGrabber(_baseURL, _b, _proj, _pixelPerDegree, _image, _mv, _layer, cache);
     215            return new WMSGrabber(bounds, img, mv, layer, cache);
     216
    208217        // OSBGrabber should be rewrite for thread support first
    209         //if (wmsurl.matches("(?i).*layers=npeoocmap.*") || wmsurl.matches("(?i).*layers=npe.*") ){
     218        //if (wmsurl.matches("(?i).*layers=npeoocmap.*") || wmsurl.matches("(?i).*layers=npe.*") )
    210219        //  return new OSGBGrabber(_b, _proj, _pixelPerDegree,  _images, _mv, _layer);
    211         //} else {
    212         //  return new WMSGrabber(_b, _proj, _pixelPerDegree,  _images, _mv, _layer);
    213         //}
    214220    }
    215221
     
    220226            if(item != null) item.setEnabled(isEnabled);
    221227        }
    222                menuEnabled = isEnabled;
     228        menuEnabled = isEnabled;
    223229    }
    224230
     
    227233            setEnabledAll(true);
    228234            Main.map.addMapMode(new IconToggleButton
    229                         (new WMSAdjustAction(Main.map)));
     235                    (new WMSAdjustAction(Main.map)));
    230236        } else if (oldFrame!=null && newFrame==null ) {
    231237            setEnabledAll(false);
  • applications/editors/josm/plugins/wmsplugin/src/wmsplugin/YAHOOGrabber.java

    r15185 r15858  
    11package wmsplugin;
    22
    3 import static org.openstreetmap.josm.tools.I18n.tr;
    4 
    53import java.awt.image.BufferedImage;
    6 import java.awt.Image;
     4import java.io.IOException;
    75import java.net.URL;
    8 import java.io.IOException;
    96import java.text.MessageFormat;
    107import java.util.ArrayList;
     
    1310import javax.imageio.ImageIO;
    1411
    15 import org.openstreetmap.josm.Main;
    1612import org.openstreetmap.josm.data.Bounds;
    17 import org.openstreetmap.josm.data.projection.Projection;
     13import org.openstreetmap.josm.gui.MapView;
    1814import org.openstreetmap.josm.io.CacheFiles;
    19 import org.openstreetmap.josm.gui.MapView;
    2015
    2116
     
    2318    protected String browserCmd;
    2419
    25     YAHOOGrabber(String baseURL, Bounds b, Projection proj,
    26             double pixelPerDegree, GeorefImage image, MapView mv, WMSLayer layer, CacheFiles cache) {
    27         super("file:///" + WMSPlugin.getPrefsPath() + "ymap.html?"
    28         , b, proj, pixelPerDegree, image, mv, layer, cache);
    29         this.browserCmd = baseURL.replaceFirst("yahoo://", "");
     20    YAHOOGrabber(Bounds b, GeorefImage image, MapView mv, WMSLayer layer, CacheFiles cache) {
     21        super(b, image, mv, layer, cache);
     22        layer.baseURL = "file:///" + WMSPlugin.getPrefsPath() + "ymap.html?";
     23        this.browserCmd = layer.baseURL.replaceFirst("yahoo://", "");
    3024    }
    3125
     26    @Override
    3227    protected BufferedImage grab(URL url) throws IOException {
    3328        String urlstring = url.toExternalForm();
     
    5348            throw new IOException( "Could not start browser. Please check that the executable path is correct.\n" + ioe.getMessage() );
    5449        }
    55        
     50
    5651        BufferedImage img = ImageIO.read(browser.getInputStream());
    5752        cache.saveImg(urlstring, img);
Note: See TracChangeset for help on using the changeset viewer.