Changeset 303 for trunk/loci/visbio/view


Ignore:
Timestamp:
04/05/05 16:44:28 (15 years ago)
Author:
curtis
Message:

Determine file extension automatically from selected file filter.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/visbio/view/CaptureHandler.java

    r189 r303  
    3333import javax.swing.JFileChooser; 
    3434import javax.swing.JOptionPane; 
     35import javax.swing.filechooser.FileFilter; 
    3536import loci.visbio.SystemManager; 
    3637import loci.visbio.WindowManager; 
     
    122123 
    123124    // determine file type 
    124     final String file = imageBox.getSelectedFile().getPath(); 
     125    String file = imageBox.getSelectedFile().getPath(); 
    125126    String ext = ""; 
    126127    int dot = file.lastIndexOf("."); 
    127128    if (dot >= 0) ext = file.substring(dot + 1).toLowerCase(); 
    128     final boolean tiff = ext.equals("tif") || ext.equals("tiff"); 
    129     final boolean jpeg = ext.equals("jpg") || ext.equals("jpeg"); 
    130     final boolean raw = ext.equals("raw"); 
    131     if (!tiff && !jpeg && !raw) { 
     129    boolean tiff = ext.equals("tif") || ext.equals("tiff"); 
     130    boolean jpeg = ext.equals("jpg") || ext.equals("jpeg"); 
     131    FileFilter filter = imageBox.getFileFilter(); 
     132    String desc = filter.getDescription(); 
     133    if (desc.startsWith("JPEG")) { 
     134      if (!jpeg) { 
     135        file += ".jpg"; 
     136        jpeg = true; 
     137      } 
     138    } 
     139    else if (desc.startsWith("TIFF")) { 
     140      if (!tiff) { 
     141        file += ".tif"; 
     142        tiff = true; 
     143      } 
     144    } 
     145    if (!tiff && !jpeg) { 
    132146      JOptionPane.showMessageDialog(captureWindow, "Invalid filename (" + 
    133         file + "): extension must be TIFF, JPEG or RAW.", 
     147        file + "): extension must indicate TIFF or JPEG format.", 
    134148        "Cannot export snapshot", JOptionPane.ERROR_MESSAGE); 
    135149      return; 
     
    137151 
    138152    // save file in a separate thread 
     153    final String filename = file; 
     154    final boolean isTiff = tiff, isJpeg = jpeg; 
    139155    new Thread("VisBio-SnapshotThread-" + window.getName()) { 
    140156      public void run() { 
    141157        FileSaver saver = new FileSaver(new ImagePlus("null", getSnapshot())); 
    142         if (tiff) saver.saveAsTiff(file); 
    143         else if (jpeg) saver.saveAsJpeg(file); 
    144         else if (raw) saver.saveAsRaw(file); 
     158        if (isTiff) saver.saveAsTiff(filename); 
     159        else if (isJpeg) saver.saveAsJpeg(filename); 
    145160      } 
    146161    }.start(); 
     
    203218    String file = null; 
    204219    int dot = -1; 
    205     boolean tiff = false, jpeg = false, raw = false; 
     220    boolean tiff = false, jpeg = false; 
    206221    if (movie) { 
    207222      int rval = movieBox.showSaveDialog(captureWindow); 
     
    219234      tiff = ext.equals("tif") || ext.equals("tiff"); 
    220235      jpeg = ext.equals("jpg") || ext.equals("jpeg"); 
    221       raw = ext.equals("raw"); 
    222       if (!tiff && !jpeg && !raw) { 
     236      FileFilter filter = imageBox.getFileFilter(); 
     237      String desc = filter.getDescription(); 
     238      if (desc.startsWith("JPEG")) { 
     239        if (!jpeg) { 
     240          file += ".jpg"; 
     241          jpeg = true; 
     242        } 
     243      } 
     244      else if (desc.startsWith("TIFF")) { 
     245        if (!tiff) { 
     246          file += ".tif"; 
     247          tiff = true; 
     248        } 
     249      } 
     250      if (!tiff && !jpeg) { 
    223251        JOptionPane.showMessageDialog(captureWindow, "Invalid filename (" + 
    224           file + "): extension must be TIFF, JPEG or RAW.", 
     252          file + "): extension must be TIFF or JPEG.", 
    225253          "Cannot create image sequence", JOptionPane.ERROR_MESSAGE); 
    226254        return; 
     
    232260    final String filename = file; 
    233261    final int dotIndex = dot; 
    234     final boolean isTiff = tiff, isJpeg = jpeg, isRaw = raw; 
     262    final boolean isTiff = tiff, isJpeg = jpeg; 
    235263    final Vector pos = matrices; 
    236264    final int frm = framesPerTrans; 
     
    304332            if (isTiff) saver.saveAsTiff(s); 
    305333            else if (isJpeg) saver.saveAsJpeg(s); 
    306             else if (isRaw) saver.saveAsRaw(s); 
    307334          } 
    308335        } 
     
    403430        new String[] {"jpg", "jpeg"}, "JPEG files")); 
    404431      imageBox.addChoosableFileFilter(new ExtensionFileFilter( 
    405         "raw", "RAW files")); 
    406       imageBox.addChoosableFileFilter(new ExtensionFileFilter( 
    407432        new String[] {"tif", "tiff"}, "TIFF files")); 
    408433 
Note: See TracChangeset for help on using the changeset viewer.