//package code.iface.inversefft;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
//import code.iface.highlevel.*;
//import code.iface.common.*;
//import code.iface.fft.*;
//import code.operator.inversefft.*;


public class InverseFFTInterface extends SingleInputImageInterface{

  InverseFFT inversefft;
  TimeTakenInterface timetaken;
  private long time1, time2;
  private int i;

  public void setOperation(){

    startstop.start.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
	//Start the timer
	time1 = System.currentTimeMillis();
	if(inputWidth>256) outputWidth=256;
	else outputWidth=inputWidth;
	if(inputHeight>256) outputHeight=256;
	else outputHeight=inputHeight;
	outputArray = 
	  inversefft.inverse_fft_image(inputArray,inputWidth,inputHeight);

	updateOutput(createImage(new MemoryImageSource(
						       outputWidth, 
						       outputHeight, 
						       outputArray, 
						       0, outputWidth)),
		     inputWidth,inputHeight);
	
	//Stop the timer					      
	time2 = System.currentTimeMillis();
	timetaken.updateTime(time1,time2);
	updateInput(inputImage);
      }});
    
    startstop.stop.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
      }
    });

  }

  public void init(){

    setLook();
    setContainer();

    initialImage("test1.gif");
    initialiseImages();

    inversefft = new InverseFFT();
    timetaken = new TimeTakenInterface();

    JPanel timetakenPanel = timetaken.createPanel();

    setOperation();

    operatorPanel.add(timetakenPanel);

  }
}
