package edu.mbl.jif.gui.imaging.player;
import edu.mbl.jif.gui.imaging.ImageDisplayPanel;
import edu.mbl.jif.imaging.api.SeriesFileListener;
import java.awt.*;
import javax.swing.*;
import edu.mbl.jif.imaging.tiff.MultipageTiffFile;
public class SeriesPlayerZoomFrame
extends JFrame implements SeriesViewer, SeriesFileListener {
BorderLayout borderLayout1 = new BorderLayout();
SeriesPlayerController playCtrl;
MultipageTiffFile tif;
String path;
ImageDisplayPanel viewPanel;
Dimension imageDim;
public SeriesPlayerZoomFrame(String _path)
{
// addFrameListener(new InternalFrameAdapter()
// {
// public void internalFrameClosing (InternalFrameEvent e) {
// close();
// }
// });
path = _path;
this.setTitle("TimeSeries: " + path);
tif = new MultipageTiffFile(path);
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception
{
// try {
// com.jgoodies.looks.plastic.Plastic3DLookAndFeel lookFeel = new com.jgoodies.looks.plastic.Plastic3DLookAndFeel();
// com.jgoodies.looks.plastic.PlasticLookAndFeel.setPlasticTheme(
// //new com.jgoodies.looks.plastic.theme.DesertBluer());
// // new com.jgoodies.looks.plastic.theme.Silver());
// //new com.jgoodies.looks.plastic.theme.SkyBluerTahoma());
// new com.jgoodies.looks.plastic.theme.DesertBlue());
// com.jgoodies.looks.plastic.PlasticLookAndFeel.setTabStyle("Metal");
// UIManager.setLookAndFeel(lookFeel);
// } catch (Exception e) {
// e.printStackTrace();
// }
//getContentPane().setLayout(borderLayout1);
// === SeriesPlayerController
playCtrl = new SeriesPlayerController(tif, this);
// playCtrl.setViewer(this);
// playCtrl.setSeriesFile(tif);
playCtrl.setNumFrames(tif.getNumImages());
//
imageDim = new Dimension(tif.getWidth(0), tif.getHeight(0));
// getWorkSpaceBounds
//GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
//Dimension dimVscroll = new Dimension(640, 480);
viewPanel = new ImageDisplayPanel(imageDim);
viewPanel.changeImage(tif.getImage(0));
getContentPane().add(viewPanel, BorderLayout.CENTER);
getContentPane().add(playCtrl, BorderLayout.SOUTH);
}
public Dimension getImageDimension()
{
return imageDim;
}
public void deactivateOverhead()
{
// viewPanel.enableObservers()
}
public void showImage(int n)
{
viewPanel.showImage(tif.getImage(n));
}
public void reactivateOverhead()
{
}
public void stopOn(int n)
{
viewPanel.changeImage(tif.getImage(n));
}
@Override
public int imageAdded()
{
boolean onLastSlice = playCtrl.isOnLastSlice();
tif.closeRead();
tif.openRead(path);
int numImages = tif.getNumImages();
// System.out.println("ImageAdded NumImages: " + numImages);
playCtrl.setNumFrames(numImages);
if (onLastSlice) {
playCtrl.gotoSlice(numImages - 1);
}
// tif.getImage(i);
return numImages;
}
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable() {
public void run()
{
String testSeries = // edu.mbl.jif.Constants.testDataPath +
"./test-images/Z50_T50.tif";
//"xyzt-200x200x10x15.tif";
//"C:\\_DevEnv\\testData\\STMPS_Yuki_TZ_04_0428_1427_41_Z-5.tif";
SeriesPlayerZoomFrame f = new SeriesPlayerZoomFrame(testSeries);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
});
}
}