Revision: 6033
          http://sourceforge.net/p/jump-pilot/code/6033
Author:   ma15569
Date:     2018-12-24 06:53:13 +0000 (Mon, 24 Dec 2018)
Log Message:
-----------
Added some method to make an affine transformation on image files loaded   as  
ReferencedImageLayer.class and as RasterImageLayer.class

Modified Paths:
--------------
    
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/imagery/ImageryUtils.java

Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/imagery/ImageryUtils.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/imagery/ImageryUtils.java
        2018-12-23 12:14:31 UTC (rev 6032)
+++ 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/imagery/ImageryUtils.java
        2018-12-24 06:53:13 UTC (rev 6033)
@@ -13,24 +13,45 @@
 
 import javax.imageio.IIOImage;
 import javax.imageio.ImageIO;
+import javax.imageio.ImageReader;
 import javax.imageio.ImageWriteParam;
 import javax.imageio.ImageWriter;
+import javax.imageio.stream.FileImageInputStream;
 import javax.imageio.stream.ImageOutputStream;
+import javax.media.jai.InterpolationNearest;
 import javax.media.jai.JAI;
+import javax.media.jai.PerspectiveTransform;
 import javax.media.jai.RenderedOp;
+import javax.media.jai.WarpPerspective;
+import javax.swing.JFileChooser;
+import javax.swing.JOptionPane;
 
+import org.openjump.core.apitools.IOTools;
 import org.openjump.core.rasterimage.GridAscii;
 import org.openjump.core.rasterimage.GridFloat;
+import org.openjump.core.rasterimage.RasterImageLayer;
+import org.openjump.core.ui.io.file.FileNameExtensionFilter;
+import org.openjump.core.ui.plugin.file.open.JFCWithEnterAction;
 
 import com.sun.media.jai.codec.FileSeekableStream;
 import com.sun.media.jai.codec.TIFFDecodeParam;
+import com.vividsolutions.jts.geom.Coordinate;
 import com.vividsolutions.jts.geom.Envelope;
+import com.vividsolutions.jts.geom.Geometry;
+import com.vividsolutions.jts.geom.GeometryFactory;
+import com.vividsolutions.jts.geom.util.AffineTransformation;
+import com.vividsolutions.jump.I18N;
 import com.vividsolutions.jump.feature.Feature;
 import com.vividsolutions.jump.feature.FeatureCollection;
+import com.vividsolutions.jump.workbench.JUMPWorkbench;
+import com.vividsolutions.jump.workbench.WorkbenchContext;
+import 
com.vividsolutions.jump.workbench.datasource.SaveFileDataSourceQueryChooser;
 import com.vividsolutions.jump.workbench.imagery.ImageryLayerDataset;
 import com.vividsolutions.jump.workbench.imagery.ReferencedImageException;
 import com.vividsolutions.jump.workbench.imagery.geoimg.GeoReferencedRaster;
 import com.vividsolutions.jump.workbench.model.Layer;
+import com.vividsolutions.jump.workbench.ui.GUIUtil;
+import com.vividsolutions.jump.workbench.ui.plugin.PersistentBlackboardPlugIn;
 
 public class ImageryUtils {
 
@@ -39,7 +60,7 @@
 
     /**
      * Save to Tiff
-     * 
+     * @deprecated see IOTools.saveGeoTIFF(BufferedImage bufferedImage, 
Envelope envelope, File tiffFile)
      * @param tiffFile
      *            : ex. C:/Folder/file.tif
      * @param bufferedImage
@@ -46,12 +67,13 @@
      *            : BufferedImage from a layer
      * @return
      */
+    @Deprecated
     public static boolean saveToTiff(File tiffFile, BufferedImage 
bufferedImage) {
         ImageOutputStream ios = null;
         ImageWriter writer = null;
         try {
             // find an appropriate writer
-            Iterator it = ImageIO.getImageWritersByFormatName("TIF");
+            final Iterator it = ImageIO.getImageWritersByFormatName("TIF");
             if (it.hasNext()) {
                 writer = (ImageWriter) it.next();
             } else {
@@ -60,16 +82,16 @@
             // setup writer
             ios = ImageIO.createImageOutputStream(tiffFile);
             writer.setOutput(ios);
-            ImageWriteParam writeParam = new ImageWriteParam(
+            final ImageWriteParam writeParam = new ImageWriteParam(
                     Locale.ENGLISH);
             writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
             writeParam.setCompressionType("LZW");
             // convert to an IIOImage
-            IIOImage iioImage = new IIOImage(bufferedImage, null, null);
+            final IIOImage iioImage = new IIOImage(bufferedImage, null, null);
 
             writer.write(null, iioImage, writeParam);
 
-        } catch (IOException e) {
+        } catch (final IOException e) {
             e.printStackTrace();
             return false;
         }
@@ -91,7 +113,7 @@
         try {
             ImageIO.write(image, "png", pngFile);
 
-        } catch (IOException e) {
+        } catch (final IOException e) {
             e.printStackTrace();
             return false;
         }
@@ -106,10 +128,10 @@
      */
 
     public static boolean hasBeenModified(Layer layer) {
-        FeatureCollection featureCollection = layer
+        final FeatureCollection featureCollection = layer
                 .getFeatureCollectionWrapper();
-        for (Iterator i = featureCollection.iterator(); i.hasNext();) {
-            Feature feature = (Feature) i.next();
+        for (final Iterator i = featureCollection.iterator(); i.hasNext();) {
+            final Feature feature = (Feature) i.next();
             sourcePathImage = feature.getString(ImageryLayerDataset.ATTR_URI);
             if (sourcePathImage == null || sourcePathImage.length() < 5) {
                 sourcePathImage = "";
@@ -123,14 +145,14 @@
         GeoReferencedRaster geoRaster = null;
         try {
             geoRaster = new GeoReferencedRaster(fileNameOrURL);
-        } catch (ReferencedImageException e) {
+        } catch (final ReferencedImageException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
 
-        Envelope originalEnv = geoRaster.getOriginalEnvelope();
+        final Envelope originalEnv = geoRaster.getOriginalEnvelope();
 
-        Envelope targetEnv = geoRaster.getEnvelope();
+        final Envelope targetEnv = geoRaster.getEnvelope();
         // targetEnv.expandToInclude(layer.getFeatureCollectionWrapper()
         // .getEnvelope());
 
@@ -149,10 +171,10 @@
      */
 
     public static boolean isCompatibleImageLayer(Layer layer) {
-        FeatureCollection featureCollection = layer
+        final FeatureCollection featureCollection = layer
                 .getFeatureCollectionWrapper();
-        for (Iterator i = featureCollection.iterator(); i.hasNext();) {
-            Feature feature = (Feature) i.next();
+        for (final Iterator i = featureCollection.iterator(); i.hasNext();) {
+            final Feature feature = (Feature) i.next();
             sourcePathImage = feature.getString(ImageryLayerDataset.ATTR_URI);
             if (sourcePathImage == null || sourcePathImage.length() < 5) {
                 sourcePathImage = "";
@@ -185,13 +207,48 @@
      * @throws IOException
      */
 
+    public static BufferedImage getBufferFromReferenceImageLayer2(Layer layer)
+            throws IOException {
+
+        final FeatureCollection featureCollection = layer
+                .getFeatureCollectionWrapper();
+        for (final Iterator<Feature> i = featureCollection.iterator(); i
+                .hasNext();) {
+            final Feature feature = i.next();
+            sourcePathImage = feature.getString(ImageryLayerDataset.ATTR_URI);
+            if (sourcePathImage == null || sourcePathImage.length() < 5) {
+                sourcePathImage = "";
+            } else {
+                sourcePathImage = sourcePathImage.substring(5);
+            }
+
+        }
+        fileNameOrURL = sourcePathImage.replace("%20", " ");
+        BufferedImage bImage = null;
+        final FileImageInputStream is = new FileImageInputStream(new File(
+                fileNameOrURL));
+        final ImageReader reader = ImageIO.getImageReaders(is).next();
+        reader.setInput(is);
+        bImage = reader.read(0);
+        return bImage;
+
+    }
+
+    /**
+     * Get a bufferedImage from a ReferencedImage layer
+     * 
+     * @param layer
+     * @return
+     * @throws IOException
+     */
+
     public static BufferedImage getBufferFromReferenceImageLayer(Layer layer)
             throws IOException {
 
-        FeatureCollection featureCollection = layer
+        final FeatureCollection featureCollection = layer
                 .getFeatureCollectionWrapper();
-        for (Iterator i = featureCollection.iterator(); i.hasNext();) {
-            Feature feature = (Feature) i.next();
+        for (final Iterator i = featureCollection.iterator(); i.hasNext();) {
+            final Feature feature = (Feature) i.next();
             sourcePathImage = feature.getString(ImageryLayerDataset.ATTR_URI);
             if (sourcePathImage == null || sourcePathImage.length() < 5) {
                 sourcePathImage = "";
@@ -211,7 +268,7 @@
             try {
                 // Try with ImageIO
                 bImage = ImageIO.read(new File(fileNameOrURL));
-            } catch (Exception ex) {
+            } catch (final Exception ex) {
                 // Try with JAI
                 bImage = JAI.create("fileload", fileNameOrURL)
                         .getAsBufferedImage();
@@ -222,23 +279,23 @@
             try {
                 bImage = ImageIO.read(new File(fileNameOrURL));
 
-            } catch (Exception ex) {
+            } catch (final Exception ex) {
 
-                FileSeekableStream stream = new FileSeekableStream(
+                final FileSeekableStream stream = new FileSeekableStream(
                         fileNameOrURL);
-                TIFFDecodeParam decodeParam = new TIFFDecodeParam();
+                final TIFFDecodeParam decodeParam = new TIFFDecodeParam();
                 decodeParam.setDecodePaletteAsShorts(true);
-                ParameterBlock params = new ParameterBlock();
+                final ParameterBlock params = new ParameterBlock();
                 params.add(stream);
-                RenderedOp image1 = JAI.create("tiff", params);
+                final RenderedOp image1 = JAI.create("tiff", params);
                 bImage = image1.getAsBufferedImage();
             }
         } else if (fileNameOrURL.toLowerCase().endsWith(".flt")) {
             try {
-                GridFloat gf = new GridFloat(fileNameOrURL);
+                final GridFloat gf = new GridFloat(fileNameOrURL);
                 gf.readGrid(null);
                 bImage = gf.getBufferedImage();
-            } catch (Exception ex) {
+            } catch (final Exception ex) {
                 // Try with ImageIO
                 bImage = ImageIO.read(new File(fileNameOrURL));
             }
@@ -245,10 +302,10 @@
         } else if (fileNameOrURL.toLowerCase().endsWith(".asc")
                 || fileNameOrURL.toLowerCase().endsWith(".txt")) {
             try {
-                GridAscii ga = new GridAscii(fileNameOrURL);
+                final GridAscii ga = new GridAscii(fileNameOrURL);
                 ga.readGrid(null);
                 bImage = ga.getBufferedImage();
-            } catch (Exception ex) {
+            } catch (final Exception ex) {
                 // Try with ImageIO
                 bImage = ImageIO.read(new File(fileNameOrURL));
             }
@@ -258,7 +315,7 @@
             try {
                 // ECWImage ecw = new ECWImage(fileNameOrURL);
                 bImage = ImageIO.read(new File(fileNameOrURL));
-            } catch (Exception ex) {
+            } catch (final Exception ex) {
                 // Try with ImageIO
                 bImage = ImageIO.read(new File(fileNameOrURL));
             }
@@ -275,10 +332,11 @@
      */
 
     public static BufferedImage addAlphaChannel(BufferedImage image) {
-        BufferedImage bufferedImage = new BufferedImage(image.getWidth(null),
-                image.getHeight(null), BufferedImage.TYPE_INT_ARGB);
+        final BufferedImage bufferedImage = new BufferedImage(
+                image.getWidth(null), image.getHeight(null),
+                BufferedImage.TYPE_INT_ARGB);
 
-        Graphics2D g2 = bufferedImage.createGraphics();
+        final Graphics2D g2 = bufferedImage.createGraphics();
         g2.drawImage(image, 0, 0, null);
         g2.dispose();
         return bufferedImage;
@@ -285,7 +343,7 @@
     }
 
     /**
-     * 
+     * Resize image
      * @param originalImage
      * @param width
      * @param height
@@ -293,9 +351,9 @@
      */
     public static BufferedImage resizeImage(BufferedImage bufferedImage,
             int width, int height) {
-        BufferedImage resizedImage = new BufferedImage(width, height,
+        final BufferedImage resizedImage = new BufferedImage(width, height,
                 BufferedImage.TYPE_INT_ARGB);
-        Graphics2D g = resizedImage.createGraphics();
+        final Graphics2D g = resizedImage.createGraphics();
         // g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null);
         g.drawImage(bufferedImage.getScaledInstance(width, height,
                 Image.SCALE_SMOOTH), 0, 0, null);
@@ -307,9 +365,9 @@
     public static BufferedImage resizeImage_test(BufferedImage bufferedImage,
             int width, int height) {
 
-        BufferedImage resizedImage = new BufferedImage(width, height,
+        final BufferedImage resizedImage = new BufferedImage(width, height,
                 BufferedImage.TYPE_INT_ARGB);
-        Graphics2D g = resizedImage.createGraphics();
+        final Graphics2D g = resizedImage.createGraphics();
         g.drawImage(bufferedImage, 0, 0, width, height, null);
         g.setComposite(AlphaComposite.Src);
 
@@ -323,4 +381,238 @@
         return resizedImage;
     }
 
+    private static final String FILE_CHOOSER_DIRECTORY_KEY = 
SaveFileDataSourceQueryChooser.class
+            .getName() + " - FILE CHOOSER DIRECTORY";
+    private final static JFCWithEnterAction fileChooser = new 
GUIUtil.FileChooserWithOverwritePrompting();
+    private final static FileNameExtensionFilter filter = new 
FileNameExtensionFilter(
+            "GeoTIFF", "tif");
+    private static final String SAVE = I18N
+            .get("jump.plugin.edit.AffineTransformationPlugIn.save");
+    private static final String ALLOWED_IMAGES = I18N
+            .get("jump.plugin.edit.AffineTransformationPlugIn.allowed-files");
+    static WorkbenchContext wcontex = JUMPWorkbench.getInstance().getContext();
+
+    /**
+     * Affine transformation of an image file loaded as 
ReferencedImageLayer.class
+     * @param Layer.  (as ReferencedImageLayer.class)
+     * @param AffineTransformation. 
com.vividsolutions.jts.geom.util.AffineTransformation
+     * @param resizeImageToHalf. Resize image to half dimension
+     * @throws Exception
+     */
+    public static void affineTransformation(Layer layer,
+            AffineTransformation trans, boolean resizeImageToHalf)
+            throws Exception {
+        try {
+
+            fileChooser.setDialogTitle(SAVE);
+            fileChooser.setFileFilter(filter);
+            fileChooser.setDialogType(JFileChooser.SAVE_DIALOG);
+            fileChooser.addChoosableFileFilter(filter);
+            if (PersistentBlackboardPlugIn.get(wcontex).get(
+                    FILE_CHOOSER_DIRECTORY_KEY) != null) {
+                fileChooser.setCurrentDirectory(new File(
+                        (String) PersistentBlackboardPlugIn.get(wcontex).get(
+                                FILE_CHOOSER_DIRECTORY_KEY)));
+            }
+            //    File outFile = null;
+            File outFile = null;
+            int option;
+            option = fileChooser.showSaveDialog(wcontex.getWorkbench()
+                    .getFrame());
+            if (option == JFileChooser.APPROVE_OPTION) {
+                outFile = fileChooser.getSelectedFile();
+                final String filePath = outFile.getAbsolutePath();
+                //   outFile = new File(filePath + ".png");
+                outFile = new File(filePath + ".tif");
+
+                final Envelope inEnvelope = new Envelope();
+                // Get the bufferedImage from a ReferencedImage layer
+                BufferedImage InImageBuffer = 
getBufferFromReferenceImageLayer2(layer);
+                // Ad alpha chanel
+                InImageBuffer = ImageryUtils.addAlphaChannel(InImageBuffer);
+                if (resizeImageToHalf) {
+                    InImageBuffer = ImageryUtils.resizeImage(InImageBuffer,
+                            InImageBuffer.getWidth() / 2,
+                            InImageBuffer.getHeight() / 2);
+                }
+                inEnvelope.expandToInclude(layer.getFeatureCollectionWrapper()
+                        .getEnvelope());
+                final Geometry P0 = new GeometryFactory()
+                        .createPoint(new Coordinate(inEnvelope.getMinX(),
+                                inEnvelope.getMinY()));
+                final Geometry P1 = new GeometryFactory()
+                        .createPoint(new Coordinate(inEnvelope.getMaxX(),
+                                inEnvelope.getMinY()));
+                final Geometry P2 = new GeometryFactory()
+                        .createPoint(new Coordinate(inEnvelope.getMaxX(),
+                                inEnvelope.getMaxY()));
+                final Geometry P3 = new GeometryFactory()
+                        .createPoint(new Coordinate(inEnvelope.getMinX(),
+                                inEnvelope.getMaxY()));
+
+                final Geometry P0_ = trans.transform(P0);
+                final Geometry P1_ = trans.transform(P1);
+                final Geometry P2_ = trans.transform(P2);
+                final Geometry P3_ = trans.transform(P3);
+                // Apply transformation from source points to target points
+                // To use for the image buffer
+                final WarpPerspective warp = new WarpPerspective(
+                        PerspectiveTransform.getQuadToQuad(
+                                P0.getCoordinate().x, P0.getCoordinate().y,
+                                P1.getCoordinate().x, P1.getCoordinate().y,
+                                P2.getCoordinate().x, P2.getCoordinate().y,
+                                P3.getCoordinate().x, P3.getCoordinate().y,
+                                P0_.getCoordinate().x, P0_.getCoordinate().y,
+                                P1_.getCoordinate().x, P1_.getCoordinate().y,
+                                P2_.getCoordinate().x, P2_.getCoordinate().y,
+                                P3_.getCoordinate().x, P3_.getCoordinate().y));
+                // Apply transformation to the image buffer
+                // outImageBuffer to use for transformed Image
+
+                final ParameterBlock pb = new ParameterBlock();
+                pb.addSource(InImageBuffer);
+                pb.add(warp);
+                pb.add(new InterpolationNearest());
+                final RenderedOp outputOp = JAI.create("warp", pb);
+                final BufferedImage outImageBuffer = outputOp
+                        .getAsBufferedImage();
+
+                //    final Raster outRaster = outputOp.getData(null);
+                final GeometryFactory gf = new GeometryFactory();
+                final Geometry outGeometry = trans.transform(gf
+                        .toGeometry(inEnvelope));
+                // Get Envelope from out Geometry
+                // outoutEnvelope to use for transformed Image
+                final Envelope outEnvelope = outGeometry.getEnvelope()
+                        .getEnvelopeInternal();
+                // Set input raster layer to invisible
+                layer.setVisible(false);
+                outputOp.dispose();
+                // Save output (affined transformed) image GeoTIF file
+                IOTools.saveGeoTIFF(outImageBuffer, outEnvelope, outFile);
+
+                IOTools.loadImageAsLayer(outFile, wcontex, "tif");
+            } else if (option == JFileChooser.CANCEL_OPTION) {
+
+                return;
+            }
+
+        } catch (final RuntimeException localRuntimeException) {
+            JOptionPane.showMessageDialog(null, ALLOWED_IMAGES, null,
+                    JOptionPane.INFORMATION_MESSAGE);
+        }
+    }
+
+    /**
+     * Affine transformation of an image file loaded as RasterImageLaye.class
+     * @param RasterImageLayer.  
+     * @param AffineTransformation. 
com.vividsolutions.jts.geom.util.AffineTransformation
+     * @param resizeImageToHalf. Resize image to half dimension
+     * @throws Exception
+     */
+
+    public static void affineTransformation(RasterImageLayer layer,
+            AffineTransformation trans, boolean resizeImageToHalf)
+            throws Exception {
+        try {
+
+            fileChooser.setDialogTitle(SAVE);
+            fileChooser.setFileFilter(filter);
+            fileChooser.setDialogType(JFileChooser.SAVE_DIALOG);
+            fileChooser.addChoosableFileFilter(filter);
+            if (PersistentBlackboardPlugIn.get(wcontex).get(
+                    FILE_CHOOSER_DIRECTORY_KEY) != null) {
+                fileChooser.setCurrentDirectory(new File(
+                        (String) PersistentBlackboardPlugIn.get(wcontex).get(
+                                FILE_CHOOSER_DIRECTORY_KEY)));
+            }
+            //    File outFile = null;
+            File outFile = null;
+            int option;
+            option = fileChooser.showSaveDialog(wcontex.getWorkbench()
+                    .getFrame());
+            if (option == JFileChooser.APPROVE_OPTION) {
+                outFile = fileChooser.getSelectedFile();
+                final String filePath = outFile.getAbsolutePath();
+                //   outFile = new File(filePath + ".png");
+                outFile = new File(filePath + ".tif");
+
+                final Envelope inEnvelope = new Envelope();
+                // Get the bufferedImage from a ReferencedImage layer
+                BufferedImage InImageBuffer = layer.getImage();
+                // Ad alpha chanel
+                InImageBuffer = ImageryUtils.addAlphaChannel(InImageBuffer);
+                if (resizeImageToHalf) {
+                    InImageBuffer = ImageryUtils.resizeImage(InImageBuffer,
+                            InImageBuffer.getWidth() / 2,
+                            InImageBuffer.getHeight() / 2);
+                }
+                inEnvelope.expandToInclude(layer.getWholeImageEnvelope());
+                final Geometry P0 = new GeometryFactory()
+                        .createPoint(new Coordinate(inEnvelope.getMinX(),
+                                inEnvelope.getMinY()));
+                final Geometry P1 = new GeometryFactory()
+                        .createPoint(new Coordinate(inEnvelope.getMaxX(),
+                                inEnvelope.getMinY()));
+                final Geometry P2 = new GeometryFactory()
+                        .createPoint(new Coordinate(inEnvelope.getMaxX(),
+                                inEnvelope.getMaxY()));
+                final Geometry P3 = new GeometryFactory()
+                        .createPoint(new Coordinate(inEnvelope.getMinX(),
+                                inEnvelope.getMaxY()));
+
+                final Geometry P0_ = trans.transform(P0);
+                final Geometry P1_ = trans.transform(P1);
+                final Geometry P2_ = trans.transform(P2);
+                final Geometry P3_ = trans.transform(P3);
+                // Apply transformation from source points to target points
+                // To use for the image buffer
+                final WarpPerspective warp = new WarpPerspective(
+                        PerspectiveTransform.getQuadToQuad(
+                                P0.getCoordinate().x, P0.getCoordinate().y,
+                                P1.getCoordinate().x, P1.getCoordinate().y,
+                                P2.getCoordinate().x, P2.getCoordinate().y,
+                                P3.getCoordinate().x, P3.getCoordinate().y,
+                                P0_.getCoordinate().x, P0_.getCoordinate().y,
+                                P1_.getCoordinate().x, P1_.getCoordinate().y,
+                                P2_.getCoordinate().x, P2_.getCoordinate().y,
+                                P3_.getCoordinate().x, P3_.getCoordinate().y));
+                // Apply transformation to the image buffer
+                // outImageBuffer to use for transformed Image
+
+                final ParameterBlock pb = new ParameterBlock();
+                pb.addSource(InImageBuffer);
+                pb.add(warp);
+                pb.add(new InterpolationNearest());
+                final RenderedOp outputOp = JAI.create("warp", pb);
+                final BufferedImage outImageBuffer = outputOp
+                        .getAsBufferedImage();
+
+                //    final Raster outRaster = outputOp.getData(null);
+                final GeometryFactory gf = new GeometryFactory();
+                final Geometry outGeometry = trans.transform(gf
+                        .toGeometry(inEnvelope));
+                // Get Envelope from out Geometry
+                // outoutEnvelope to use for transformed Image
+                final Envelope outEnvelope = outGeometry.getEnvelope()
+                        .getEnvelopeInternal();
+                // Set input raster layer to invisible
+                layer.setVisible(false);
+                outputOp.dispose();
+                // Save output (affined transformed) image GeoTIF file
+
+                IOTools.saveGeoTIFF(outImageBuffer, outEnvelope, outFile);
+
+                IOTools.loadImageAsLayer(outFile, wcontex, "tif");
+            } else if (option == JFileChooser.CANCEL_OPTION) {
+
+                return;
+            }
+
+        } catch (final RuntimeException localRuntimeException) {
+            JOptionPane.showMessageDialog(null, ALLOWED_IMAGES, null,
+                    JOptionPane.INFORMATION_MESSAGE);
+        }
+    }
+
 }



_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to