/* * ImageOpener.java * * Created on September 25, 2006, 3:00 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package edu.mbl.jif.imaging; import edu.mbl.jif.gui.dialog.DialogBox; import edu.mbl.jif.gui.file.DirectoryChooserPanel; import edu.mbl.jif.imaging.tiff.MultipageTiffFile; import edu.mbl.jif.utils.FileUtil; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; /** * * @author GBH */ public class ImageOpener { /** Creates a new instance of ImageOpener */ public ImageOpener() { } public static void open(File file) { open(file.getAbsolutePath()); } public static void open(String path) { String ext = FileUtil.getExtension(path); if(ext.equalsIgnoreCase("tif") || ext.equalsIgnoreCase("tiff") ) { MultipageTiffFile tifFile = new MultipageTiffFile(path); if(tifFile!=null) { if(tifFile.getNumImages()>1) { openSeries(tifFile); } else { } } else { // failed } } } public static void openSeries(MultipageTiffFile tifFile) { } public static BufferedImage load(String file) { Image image = null; try { image = ImageIO.read(new File(file)); } catch (Exception e) { System.out.println("Exception loading: " + file); } return (BufferedImage)image; } //----------------------------------------------------------- // fileOpenerTree // public static void fileOpenerTree(String msg, String path) { JPanel panelFileChooser = new JPanel(); panelFileChooser.setLayout(new BorderLayout()); JPanel choices = new JPanel(new FlowLayout()); final DirectoryChooserPanel dlg = new DirectoryChooserPanel(path); panelFileChooser.add(dlg, BorderLayout.CENTER); JButton openButton = new JButton("Open"); choices.add(openButton); panelFileChooser.add(choices, BorderLayout.SOUTH); final JFrame frame = new JFrame("Open File"); frame.add(panelFileChooser); //, 20, 50); // openButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (dlg.getSelectedFile() != null) { String ext = FileUtil.getFileExtension(dlg.getSelectedFile(), false); // System.out.println("dlg.getSelectedFile(): " + dlg.getSelectedFile()); if (dlg.getSelectedFile().isFile() && (ext.equalsIgnoreCase("tif") || ext.equalsIgnoreCase("tiff"))) { open(dlg.getSelectedFile()); frame.dispose(); } else { DialogBox.boxError(frame, "Sorry", "Cannot open this file type"); } } } }); frame.setSize(new Dimension(300, 600)); frame.setVisible(true); } //---------------------------------------------------------------- // openSelectedFile (for TIFFs and PolStacks) // // public static void openSelectedFile(final java.io.File file) { // //System.out.println("::" + file); // try { // Worker.post(new Task() { // public Object run() throws Exception { // int imageType = // psj.Image.ImageType.getImageTypeFor(file.getName()); // edu.mbl.jif.utils.PSjUtils.statusProgress("Opening file: " + // file.getName()); // if ((imageType == psj.Image.ImageType.POLSTACK) // || (imageType == psj.Image.ImageType.RAWPOLSTACK) // || (imageType == psj.Image.ImageType.BKGDSTACK)) { // psj.Image.ImageManager.loadPolStackFromFile(file. // getAbsolutePath()); // } else { // //ArrayList imgs = ImageUtils.loadImageArrayList(file.getAbsolutePath()); // // if (imgs != null) { // // ViewerUtil.openViewerForTIFF(file.getAbsolutePath(), imgs); // } else { // DialogBox.boxError("Error opening TIFF file", // "Cannot open: " + file.getAbsolutePath()); // } // } // return null; // } // }); // } catch (Exception x) { // DialogBox.boxError("Error Open_InAnalyzer", x.getMessage()); // } finally { // //statusClear(); // } // //statusClear(); // } }