package SesameGUI;

import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.util.EventListener;

public class GuiWindow2 extends javax.swing.JDialog
	{

	/** Creates new form SesameDlg1b */
	public GuiWindow2(java.awt.Frame parent, boolean modal)
		{
		super(parent, modal);
		initComponents();
		}

	private void nextButtonActionPerformed(ActionEvent evt)
		{
		setVisible(false);
		getNext().setVisible(true);
		}

  private void graph1ButtonActionPerformed(ActionEvent evt)
		{
    GraphPropertiesDlg    dlg = new GraphPropertiesDlg (this);

    dlg.type = 2;
    dlg.s1 = spectra;
    dlg.s2 = spectraPlus;
    dlg.s3 = spectraMinus;
    dlg.s4 = spectraNS;
    dlg.s5 = spectraNSPlus;
    dlg.s6 = spectraNSMinus;
    dlg.s7 = spectraEW;
    dlg.s8 = spectraEWPlus;
    dlg.s9 = spectraEWMinus;

    dlg.sv = wave_ns;
    dlg.load();

    dlg.show();
		}

  private void graph2ButtonActionPerformed(ActionEvent evt)
		{
    GraphPropertiesDlg    dlg = new GraphPropertiesDlg (this);

    dlg.type = 2;
    dlg.s1 = spectra;
    dlg.s2 = spectraPlus;
    dlg.s3 = spectraMinus;
    dlg.s4 = spectraNS;
    dlg.s5 = spectraNSPlus;
    dlg.s6 = spectraNSMinus;
    dlg.s7 = spectraEW;
    dlg.s8 = spectraEWPlus;
    dlg.s9 = spectraEWMinus;

    dlg.sv = wave_ew;
    dlg.load();
    
    dlg.show();
		}
	private void prevButtonActionPerformed(java.awt.event.ActionEvent evt)
		{
		setVisible(false);
		getPrev().setVisible(true);
		}

	/** This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor. */
	private void initComponents()
		{ //GEN-BEGIN:initComponents
		getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
		nextButton = new javax.swing.JButton();

		nextButton.setText(">");
		nextButton.setMargin(new java.awt.Insets(0, 0, 0, 0));
		nextButton.addActionListener(
		    new java.awt.event.ActionListener()
			    {
			    public void actionPerformed(java.awt.event.ActionEvent evt)
				    {
				    nextButtonActionPerformed(evt);
				    }
			    });

		getContentPane().add(nextButton, new org.netbeans.lib.awtextra.AbsoluteConstraints(861, 10, 30, 30));

		prevButton = new javax.swing.JButton();

		prevButton.setText("<");
		prevButton.setMargin(new java.awt.Insets(0, 0, 0, 0));
		prevButton.addActionListener(
		    new java.awt.event.ActionListener()
			    {
			    public void actionPerformed(java.awt.event.ActionEvent evt)
				    {
				    prevButtonActionPerformed(evt);
				    }
			    });

		getContentPane().add(prevButton, new org.netbeans.lib.awtextra.AbsoluteConstraints(798, 10, 30, 30));

    graph1Button = new javax.swing.JButton();

		graph1Button.setText("*");
    graph1Button.setBackground(Color.red);
		graph1Button.setMargin(new java.awt.Insets(0, 0, 0, 0));
		graph1Button.addActionListener(
		    new java.awt.event.ActionListener()
			    {
			    public void actionPerformed(java.awt.event.ActionEvent evt)
				    {
				    graph1ButtonActionPerformed(evt);
				    }
			    });

		getContentPane().add(graph1Button, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 58, 10, 10));

    graph2Button = new javax.swing.JButton();

		graph2Button.setText("*");
    graph2Button.setBackground(Color.red);
		graph2Button.setMargin(new java.awt.Insets(0, 0, 0, 0));
		graph2Button.addActionListener(
		    new java.awt.event.ActionListener()
			    {
			    public void actionPerformed(java.awt.event.ActionEvent evt)
				    {
				    graph2ButtonActionPerformed(evt);
				    }
			    });

		getContentPane().add(graph2Button, new org.netbeans.lib.awtextra.AbsoluteConstraints(1000, 58, 10, 10));

		wave_ns = new SpectrumView();
		title = new ModiLabel();
		wave_ew = new SpectrumView();
		jLabel1 = new ModiLabel();
		jLabel2 = new ModiLabel();

		setTitle("Output (2/3)");
		addWindowListener(
		    new java.awt.event.WindowAdapter()
			    {
			    public void windowClosing(java.awt.event.WindowEvent evt)
				    {
				    closeDialog(evt);
				    }
			    });

		wave_ns.setBackground(java.awt.Color.white);
		wave_ns.setBorder(new javax.swing.border.LineBorder(java.awt.Color.black));
		getContentPane().add(wave_ns, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 70, 490, 655));

		title.setFont(new java.awt.Font("Dialog", 1, 16));
		title.setForeground(new java.awt.Color(0, 0, 204));
		title.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
		title.setText("Title");
		getContentPane().add(title, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 10, 1020, -1));

		wave_ew.setBackground(java.awt.Color.white);
		wave_ew.setBorder(new javax.swing.border.LineBorder(java.awt.Color.black));
		getContentPane().add(wave_ew, new org.netbeans.lib.awtextra.AbsoluteConstraints(520, 70, 490, 655));

		jLabel1.setText("NS/V spectral ratio");
		getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 40, 480, 20));

		jLabel2.setText("EW/V spectral ratio");
		getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(540, 40, 490, 20));

    setSize(1024,768);
		//pack();
		} //GEN-END:initComponents

	/** Closes the dialog */
	

	public void dispose() {
	    //getNext().dispose();
	    super.dispose();
	}
	
	public void closeDialog(java.awt.event.WindowEvent evt)
		{ //GEN-FIRST:event_closeDialog
		setVisible(false);
		((GuiWindow1)getPrev()).closeDialog(evt);
		//dispose();
		} //GEN-LAST:event_closeDialog


	private void setScale(Scale scaleX, Scale scaleY, Scale scaleX_ew, Scale scaleY_ew)
		{
		wave_ns.setScaleX(scaleX);
		wave_ns.setScaleY(scaleY);
		wave_ns.setParentPanel(null);

		wave_ew.setScaleX(scaleX_ew);
		wave_ew.setScaleY(scaleY_ew);
		wave_ew.setParentPanel(null);
		}

	public static GuiWindow2 createDlg(Spectrum s1 , Spectrum s2 , Spectrum s3 , Spectrum s4 , Spectrum s5 , Spectrum s6 , Spectrum s7 , Spectrum s8 , Spectrum s9)
		{
		GuiWindow2 dlg = new GuiWindow2(new javax.swing.JFrame(), true);

    dlg.spectra      = s1;
    dlg.spectraPlus  = s2;
    dlg.spectraMinus = s3;

    dlg.spectraNS      = s4;
    dlg.spectraNSPlus  = s5;
    dlg.spectraNSMinus = s6;

    dlg.spectraEW      = s7;
    dlg.spectraEWPlus  = s8;
    dlg.spectraEWMinus = s9;


			{
      LogarithmicHorizontalScale scaleX;
      AbsoluteVerticalScale scaleY;
      LogarithmicHorizontalScale scaleX_ew;
      AbsoluteVerticalScale scaleY_ew;
      scaleX = new LogarithmicHorizontalScale(dlg.wave_ns);
      scaleY = new AbsoluteVerticalScale(dlg.wave_ns);
      scaleX_ew = new LogarithmicHorizontalScale(dlg.wave_ew);
      scaleY_ew = new AbsoluteVerticalScale(dlg.wave_ew);
      scaleX.setLabel("Frequency (Hz)");
      scaleY.setLabel("Spectral ratio");
      scaleX_ew.setLabel("Frequency (Hz)");
      scaleY_ew.setLabel("Spectral ratio");
      dlg.setScale(scaleX, scaleY, scaleX_ew, scaleY_ew);

      dlg.wave_ns.setMargins(true);
      dlg.wave_ew.setMargins(true);      

      dlg.spectra.getSpectraVisualProperties().setLineColor(Color.black);
      dlg.spectraPlus.getSpectraVisualProperties().setLineColor(Color.red);
      dlg.spectraMinus.getSpectraVisualProperties().setLineColor(Color.blue);

      dlg.spectraNS.getSpectraVisualProperties().setLineColor(Color.black);
      dlg.spectraNSPlus.getSpectraVisualProperties().setLineColor(Color.red);
      dlg.spectraNSMinus.getSpectraVisualProperties().setLineColor(Color.blue);

      dlg.spectraEW.getSpectraVisualProperties().setLineColor(Color.black);
      dlg.spectraEWPlus.getSpectraVisualProperties().setLineColor(Color.red);
      dlg.spectraEWMinus.getSpectraVisualProperties().setLineColor(Color.blue);

      dlg.setSpectrum(dlg.spectraNS);
      dlg.setSpectrumPlus(dlg.spectraNSPlus);
      dlg.setSpectrumMinus(dlg.spectraNSMinus);

      dlg.setSpectrum_ew(dlg.spectraEW);
      dlg.setSpectrumPlus_ew(dlg.spectraEWPlus);
      dlg.setSpectrumMinus_ew(dlg.spectraEWMinus);
			}

		return dlg;
		}

	public Spectrum getSpectrum()
		{
		return spectrum;
		}

	public void setSpectrum(Spectrum spectrum)
		{
		this.spectrum = spectrum;
		wave_ns.addSpectrum(this.spectrum);
		}

	public Spectrum getSpectrum_ew()
		{
		return spectrum_ew;
		}

	public void setSpectrum_ew(Spectrum spectrum)
		{
		this.spectrum_ew = spectrum;
		wave_ew.addSpectrum(this.spectrum_ew);
		}

	public Spectrum getSpectrumPlus()
		{
		return spectrumPlus;
		}

	public void setSpectrumPlus(Spectrum spectrumPlus)
		{
		this.spectrumPlus = spectrumPlus;
		wave_ns.addSpectrum(this.spectrumPlus);
		}

	public Spectrum getSpectrumPlus_ew()
		{
		return spectrumPlus_ew;
		}

	public void setSpectrumPlus_ew(Spectrum spectrumPlus)
		{
		this.spectrumPlus_ew = spectrumPlus;
		wave_ew.addSpectrum(this.spectrumPlus_ew);
		}

	public Spectrum getSpectrumMinus()
		{
		return spectrumMinus;
		}

	public void setSpectrumMinus(Spectrum spectrumMinus)
		{
		this.spectrumMinus = spectrumMinus;
		wave_ns.addSpectrum(this.spectrumMinus);
		}

	public Spectrum getSpectrumMinus_ew()
		{
		return spectrumMinus_ew;
		}

	public void setSpectrumMinus_ew(Spectrum spectrumMinus)
		{
		this.spectrumMinus_ew = spectrumMinus;
		wave_ew.addSpectrum(this.spectrumMinus_ew);
		}

  public void setMTitle(String t)
    {
    title.setText(t);    
    }

	public JDialog getNext() { return next; }

	public void setNext(JDialog next) 
    { 
    this.next = next; 

    if (next == null)
      this.nextButton.setVisible(false);
    }

	public JDialog getPrev() { return prev; }

	public void setPrev(JDialog prev) { this.prev = prev; }

	// Variables declaration - do not modify//GEN-BEGIN:variables
	public SpectrumView wave_ns;
	private JButton nextButton;
	private JButton prevButton;
  private JButton graph1Button;
  private JButton graph2Button;
	private ModiLabel title;
	public SpectrumView wave_ew;
	private ModiLabel jLabel1;
	private ModiLabel jLabel2;
	private Spectrum spectrum;
	private Spectrum spectrumPlus;
	private Spectrum spectrumMinus;
	private Spectrum spectrum_ew;
	private Spectrum spectrumPlus_ew;
	private Spectrum spectrumMinus_ew;
	private JDialog next;
	private JDialog prev;
	// End of variables declaration//GEN-END:variables

  private   Spectrum spectra;
  private   Spectrum spectraPlus;
  private   Spectrum spectraMinus;

  private   Spectrum spectraNS;
  private   Spectrum spectraNSPlus;
  private   Spectrum spectraNSMinus;

  private   Spectrum spectraEW;
  private   Spectrum spectraEWPlus;
  private   Spectrum spectraEWMinus;
	}

