package edu.calpoly.csc480.Entomo.Main;

import java.awt.event.*;
import java.io.*;
import javax.swing.*;

import edu.calpoly.csc480.Entomo.Seer.*;

public class Main extends JFrame {
	public Main() {
		super();

		seer = new Seer();
		seer.setOwner(this);

		fileMenu = new FileMenu();
		toolsMenu = new ToolsMenu();
		helpMenu = new HelpMenu();
		
		fileMenu.setOwner(this);
		toolsMenu.setOwner(this);
		helpMenu.setOwner(this);

		makeFrame();
		makeMenus();
		
		updateTitle();
		
		pack();
	}
	
	public void exit() {
		dispose();
		System.exit(0);
	}
	
	final public Seer getSeer()		{return seer;}

// FIX BWC	Verify that this works as expected.	
	public void seerResting() {
		menuBar.setEnabled(true);
	}
	
	public void seerRunning() {
		menuBar.setEnabled(false);
	}

	public void fileOpened(File in) throws IOException {
		seer.areaOpened(in);
		toolsMenu.fileOpened();
		updateTitle();
	}

	public void fileClosed() {
		seer.areaClosed();
		toolsMenu.fileClosed();
		updateTitle();
	}
	
	protected Seer seer;
	
	protected FileMenu fileMenu;
	protected ToolsMenu toolsMenu;
	protected HelpMenu helpMenu;

	protected JMenuBar menuBar;

	protected void makeFrame() {
   	addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent evt) {
				exit();
			}
      });
		
		setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
		getContentPane().add(seer.getView());
	}
	
	protected void makeMenus() {
		menuBar = new JMenuBar();
		setJMenuBar(menuBar);

		menuBar.add(fileMenu);
		menuBar.add(toolsMenu);
		menuBar.add(helpMenu);
	}
	
	protected void updateTitle() {
		setTitle("Entomo - [" + fileMenu.getFileName() + "]");
	}
}