Ignore:
Timestamp:
2012-11-18T22:21:44+01:00 (12 years ago)
Author:
donvip
Message:

[josm_importimage] Major refactoring/update of COTS in order to rely on GeoTools plugin

Location:
applications/editors/josm/plugins/ImportImagePlugin
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/ImportImagePlugin

    • Property svn:ignore
      •  

        old new  
        11build
         2bin
  • applications/editors/josm/plugins/ImportImagePlugin/src/org/openstreetmap/josm/plugins/ImportImagePlugin/ImageLayer.java

    r26517 r28954  
    1111
    1212import javax.media.jai.PlanarImage;
     13import javax.swing.AbstractAction;
    1314import javax.swing.Action;
    14 import javax.swing.AbstractAction;
    1515import javax.swing.Icon;
    1616import javax.swing.ImageIcon;
     
    2929import org.openstreetmap.josm.data.ProjectionBounds;
    3030import org.openstreetmap.josm.data.coor.EastNorth;
    31 import org.openstreetmap.josm.data.coor.LatLon;
    3231import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
    3332import org.openstreetmap.josm.gui.ExtendedDialog;
     
    208207
    209208            // Draw picture
    210             g.drawImage(image, 0, 0, null);
     209            try {
     210                g.drawImage(image, 0, 0, null);
     211            } catch (ArrayIndexOutOfBoundsException e) {
     212                // TODO: prevents this to happen when displaying GeoTIFF images (see #7902)
     213                e.printStackTrace();
     214            }
    211215
    212216        } else {
  • applications/editors/josm/plugins/ImportImagePlugin/src/org/openstreetmap/josm/plugins/ImportImagePlugin/ImportImagePlugin.java

    r26452 r28954  
    8787            }
    8888
    89             /* Change class path:
    90              * Use java reflection methods to add URLs to the class-path.
    91              * Changes take effect when calling methods of other plugin classes
    92              * (new threads)
    93              * */
    94             URLClassLoader sysLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
    95             String[] libraryNames = pluginProps.getProperty("libraries").split(",");
    96             Class<URLClassLoader> sysclass = URLClassLoader.class;
    97             Method method = sysclass.getDeclaredMethod("addURL", new Class[]{URL.class});
    98             method.setAccessible(true);
    99             for (int i = 0; i < libraryNames.length; i++) {
    100                 File library = new File(PLUGINLIBRARIES_DIR + "/" + libraryNames[i]);
    101                 method.invoke(sysLoader, new Object[]{library.toURI().toURL()});
    102             }
    103 
    104 
    10589            // load information about supported reference systems
    10690            PluginOperations.loadCRSData(pluginProps);
     
    11397            Main.main.menu.fileMenu.insert(loadFileAction, 8);
    11498            Main.main.menu.fileMenu.insertSeparator(9);
    115 
    11699
    117100        } catch (Exception e) {
     
    125108
    126109        logger.info("Plugin successfully loaded.");
    127 
    128110    }
    129111
     
    136118    private void checkInstallation() throws IOException
    137119    {
    138 
    139120        // check plugin resource state
    140121        boolean isInstalled = true;
     
    186167            }
    187168
    188 
    189             // Copy all needed JAR files to $PLUGIN_DIR$/lib/
    190             String[] libStrings = pluginProps.getProperty("libraries").split(",");
    191 
    192             for (int i = 0; i < libStrings.length; i++) {
    193 
    194                 URL url = pluginClassLoader.getResource("lib/" + libStrings[i]);
    195 
    196                 FileOutputStream out = null;
    197 
    198                 try{
    199                     out = new FileOutputStream(new File(libDir, libStrings[i]));
    200                 } catch (FileNotFoundException e) {
    201                     break;
    202                 }
    203 
    204                 BufferedInputStream in = null;
    205                 try
    206                 {
    207                     in = new BufferedInputStream(url.openStream());
    208 
    209                     byte[] buffer = new byte[1024];
    210                     while (true)
    211                     {
    212                         int count = in.read(buffer);
    213                         if (count == -1)
    214                             break;
    215                         out.write(buffer, 0, count);
    216                     }
    217                 }
    218                 finally
    219                 {
    220                     if (in != null)
    221                         in.close();
    222                 }
    223             }
    224169            logger.debug("Plugin successfully installed");
    225170        }
  • applications/editors/josm/plugins/ImportImagePlugin/src/org/openstreetmap/josm/plugins/ImportImagePlugin/PluginOperations.java

    r26452 r28954  
    1919import org.geotools.coverage.grid.GridCoverage2D;
    2020import org.geotools.coverage.grid.GridCoverageFactory;
    21 import org.geotools.coverage.processing.DefaultProcessor;
     21import org.geotools.coverage.processing.CoverageProcessor;
    2222import org.geotools.data.DataSourceException;
    2323import org.geotools.data.WorldFileReader;
     
    2525import org.geotools.gce.geotiff.GeoTiffReader;
    2626import org.geotools.geometry.Envelope2D;
    27 import org.geotools.image.jai.Registry;
    2827import org.geotools.referencing.CRS;
    29 import org.geotools.referencing.crs.DefaultGeographicCRS;
    30 import org.opengis.metadata.content.ImageDescription;
    3128import org.opengis.parameter.ParameterValueGroup;
    3229import org.opengis.referencing.FactoryException;
     
    3431import org.opengis.referencing.crs.CRSAuthorityFactory;
    3532import org.opengis.referencing.crs.CoordinateReferenceSystem;
    36 import org.opengis.referencing.cs.CoordinateSystemAxis;
    3733import org.opengis.util.InternationalString;
    38 
    39 
    4034
    4135/**
     
    8478        GridCoverage2D destination = null;
    8579
    86         DefaultProcessor processor = new DefaultProcessor(null);
    87         ParameterValueGroup resampleParams = processor.getOperation("Resample")
    88                 .getParameters();
     80        CoverageProcessor processor = new CoverageProcessor();
     81        ParameterValueGroup resampleParams = processor.getOperation("Resample").getParameters();
    8982
    9083        // set parameters
    9184        resampleParams.parameter("Source").setValue(coverage);
    92         resampleParams.parameter("CoordinateReferenceSystem").setValue(
    93                 targetCrs);
     85        resampleParams.parameter("CoordinateReferenceSystem").setValue(targetCrs);
    9486
    9587        // resample coverage with given parameters
     
    380372        CRSAuthorityFactory fac = CRS.getAuthorityFactory(false);
    381373
    382         for (Iterator iterator = supportedCodes.iterator(); iterator.hasNext();) {
     374        for (Iterator<String> iterator = supportedCodes.iterator(); iterator.hasNext();) {
    383375            String string = (String) iterator.next();
    384376            try {
     
    387379                }
    388380                InternationalString desc = fac.getDescriptionText("EPSG:" + string);
    389 
    390381                String description = desc.toString() + " [-EPSG:" + string + "-]";
    391 
    392382                crsDescriptions.add(description);
    393 
    394383                if(defaultcrsString != null && defaultcrsString.equalsIgnoreCase("EPSG:" + string)){
    395384                    boolean isEastingFirst = Boolean.valueOf(pluginProps.getProperty("default_crs_eastingfirst"));
     
    397386                    defaultSourceCRSDescription = description;
    398387                }
    399             } catch (NoSuchAuthorityCodeException e) {
    400                 logger.error("Error while loading EPSG data: " + e.getMessage());
     388
    401389            } catch (FactoryException e) {
    402390                logger.error("Error while loading EPSG data: " + e.getMessage());
     
    404392        }
    405393    }
    406 
    407394}
Note: See TracChangeset for help on using the changeset viewer.