package core;

import java.awt.Color;
import java.awt.Dimension;
import java.io.UnsupportedEncodingException;
import java.util.ResourceBundle;

import javax.swing.ImageIcon;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JSeparator;

import utils.RutasIconos;

public class Menu extends JMenuBar {

	private static final long serialVersionUID = 0xa2f1526f0c5469cdL;
	private ResourceBundle mensajes;
	private JMenu archivo;
	private JMenu nuevo;
	private JMenuItem grafo;
	private JMenuItem arbol;
	private JMenu particulares;
	private JMenuItem ciclo;
	private JMenuItem completo;
	private JMenuItem estrella;
	private JMenuItem rueda;
	private JMenuItem tresDimensiones;
	private JSeparator separador1;
	private JMenuItem abrir;
	private JMenuItem guardar;
	private JSeparator separador2;
	private JMenuItem salir;
	private JMenu calculo;
	private JMenuItem dimension;
	private JMenuItem detalle;
	private JMenu extras;
	private JMenuItem matriz;
	private JMenuItem gemelos;
	private JMenuItem dijkstra;
	private JMenu herramientas;
	private JMenuItem opciones;
	private JMenu ayuda;
	private JMenuItem tablaContenidos;
	private JMenuItem acercaDe;

	public Menu() {

		archivo = new JMenu();
		nuevo = new JMenu();
		grafo = new JMenuItem();
		arbol = new JMenuItem();
		particulares = new JMenu();
		ciclo = new JMenuItem();
		completo = new JMenuItem();
		estrella = new JMenuItem();
		rueda = new JMenuItem();
		tresDimensiones = new JMenuItem();
		separador1 = new JSeparator();
		abrir = new JMenuItem();
		guardar = new JMenuItem();
		separador2 = new JSeparator();
		salir = new JMenuItem();
		calculo = new JMenu();
		dimension = new JMenuItem();
		detalle = new JMenuItem();
		matriz = new JMenuItem();
		extras = new JMenu();
		gemelos = new JMenuItem();
		dijkstra = new JMenuItem();
		herramientas = new JMenu();
		opciones = new JMenuItem();
		ayuda = new JMenu();
		tablaContenidos = new JMenuItem();
		acercaDe = new JMenuItem();


		archivo.setMnemonic('A');

		arbol.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Arbol)));
		arbol.setName("Arbol");

		ciclo.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Ciclo)));
		ciclo.setName("Ciclo");

		completo.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Completo)));
		completo.setName("Completo");

		estrella.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Estrella)));
		estrella.setName("Estrella");

		rueda.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Rueda)));
		rueda.setName("Rueda");

		grafo.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Grafo)));
		grafo.setName("Grafo");

		abrir.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Abrir)));
		abrir.setName("Abrir");
		abrir.setPreferredSize(new Dimension(125,25));

		particulares.setPreferredSize(new Dimension(150,25));
		particulares.setMnemonic('P');

		guardar.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Guardar)));
		guardar.setName("Guardar");

		salir.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Salir)));
		salir.setName("Salir");

		calculo.setMnemonic('D');

		dimension.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.DimensionGrafo)));
		dimension.setName("Dimension");
		dimension.setPreferredSize(new Dimension(150,25));

		detalle.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Detalle)));

		extras.setMnemonic('E');
		matriz.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Matriz)));
		matriz.setName("Matriz");
		gemelos.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Gemelos)));
		dijkstra.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Dijkstra)));
		dijkstra.setName("Dijkstra");
		tresDimensiones.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.tresD)));
		tresDimensiones.setName("3D");

		herramientas.setMnemonic('H');
		opciones.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Opciones)));

		ayuda.setMnemonic('y');
		tablaContenidos.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Ayuda)));
		tablaContenidos.setName("Ayuda");

		acercaDe.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Acerca)));
		acercaDe.setName("AcercaDe");


		archivo.getPopupMenu().setBackground(new Color(060,175,255));
		nuevo.getPopupMenu().setBackground(new Color(060,175,255));
		grafo.setBackground(new Color(060,175,255));
		arbol.setBackground(new Color(060,175,255));
		particulares.getPopupMenu().setBackground(new Color(060,175,255));
		ciclo.setBackground(new Color(060,175,255));
		completo.setBackground(new Color(060,175,255));
		estrella.setBackground(new Color(060,175,255));
		rueda.setBackground(new Color(060,175,255));
		tresDimensiones.setBackground(new Color(060,175,255));
		separador1.setBackground(new Color(155,255,250));
		abrir.setBackground(new Color(060,175,255));
		guardar.setBackground(new Color(060,175,255));
		separador2.setBackground(new Color(155,255,250));
		salir.setBackground(new Color(060,175,255));
		calculo.getPopupMenu().setBackground(new Color(060,175,255));
		dimension.setBackground(new Color(060,175,255));
		detalle.setBackground(new Color(060,175,255));
		extras.getPopupMenu().setBackground(new Color(060,175,255));
		matriz.setBackground(new Color(060,175,255));
		gemelos.setBackground(new Color(060,175,255));
		dijkstra.setBackground(new Color(060,175,255));
		herramientas.getPopupMenu().setBackground(new Color(060,175,255));
		opciones.setBackground(new Color(060,175,255));
		ayuda.getPopupMenu().setBackground(new Color(060,175,255));
		tablaContenidos.setBackground(new Color(060,175,255));
		acercaDe.setBackground(new Color(060,175,255));
		setBackground(new Color(172,213,215));


		nuevo.add(grafo);
		nuevo.add(arbol);
		particulares.add(ciclo);
		particulares.add(completo);
		particulares.add(estrella);
		particulares.add(rueda);
		nuevo.add(particulares);
		archivo.add(nuevo);
		archivo.add(separador1);
		archivo.add(abrir);
		archivo.add(guardar);
		archivo.add(separador2);
		archivo.add(salir);
		calculo.add(dimension);
		calculo.add(detalle);
		extras.add(matriz);
		extras.add(gemelos);
		extras.add(dijkstra);
		extras.add(tresDimensiones);
		herramientas.add(opciones);
		ayuda.add(tablaContenidos);
		ayuda.add(acercaDe);
		add(archivo);
		add(calculo);
		add(extras);
		add(herramientas);
		add(ayuda);
	}


	public void setMensajes(ResourceBundle m) {
		mensajes = m;
		try {
			archivo.setText(new String(mensajes.getString("Archivo").getBytes("ISO-8859-1"),"UTF-8"));
			nuevo.setText(new String(mensajes.getString("Nuevo").getBytes("ISO-8859-1"),"UTF-8"));
			grafo.setText(new String(mensajes.getString("Grafo").getBytes("ISO-8859-1"),"UTF-8"));
			arbol.setText(new String(mensajes.getString("Arbol").getBytes("ISO-8859-1"),"UTF-8"));
			particulares.setText(new String(mensajes.getString("particulares").getBytes("ISO-8859-1"),"UTF-8"));
			ciclo.setText(new String(mensajes.getString("GrafoCiclo").getBytes("ISO-8859-1"),"UTF-8"));
			completo.setText(new String(mensajes.getString("GrafoCompleto").getBytes("ISO-8859-1"),"UTF-8"));
			estrella.setText(new String(mensajes.getString("ArbolEstrella").getBytes("ISO-8859-1"),"UTF-8"));
			rueda.setText(new String(mensajes.getString("GrafoRueda").getBytes("ISO-8859-1"),"UTF-8"));
			tresDimensiones.setText(new String(mensajes.getString("3D").getBytes("ISO-8859-1"),"UTF-8"));
			abrir.setText(new String(mensajes.getString("Abrir").getBytes("ISO-8859-1"),"UTF-8"));
			guardar.setText(new String(mensajes.getString("Guardar").getBytes("ISO-8859-1"),"UTF-8"));
			salir.setText(new String(mensajes.getString("Salir").getBytes("ISO-8859-1"),"UTF-8"));
			calculo.setText(new String(mensajes.getString("DimensionMetrica").getBytes("ISO-8859-1"),"UTF-8"));
			dimension.setText(new String(mensajes.getString("CalcularDimension").getBytes("ISO-8859-1"),"UTF-8"));
			detalle.setText(new String(mensajes.getString("Detalle").getBytes("ISO-8859-1"),"UTF-8"));
			extras.setText(new String(mensajes.getString("extras").getBytes("ISO-8859-1"),"UTF-8"));
			matriz.setText(new String(mensajes.getString("MatrizDist").getBytes("ISO-8859-1"),"UTF-8"));
			gemelos.setText(new String(mensajes.getString("GemelosAdy").getBytes("ISO-8859-1"),"UTF-8"));
			dijkstra.setText(new String(mensajes.getString("Dijkstra").getBytes("ISO-8859-1"),"UTF-8"));
			herramientas.setText(new String(mensajes.getString("Configuracion").getBytes("ISO-8859-1"),"UTF-8"));
			opciones.setText((new StringBuilder(String.valueOf(new String(mensajes.getString("opciones").getBytes("ISO-8859-1"),"UTF-8")))).toString());
			ayuda.setText(new String(mensajes.getString("Ayuda").getBytes("ISO-8859-1"),"UTF-8"));
			tablaContenidos.setText(new String(mensajes.getString("Ayuda").getBytes("ISO-8859-1"),"UTF-8"));
			acercaDe.setText(new String(mensajes.getString("Acerca").getBytes("ISO-8859-1"),"UTF-8"));
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
	}


	public JMenuItem getAbrirItem()	{
		return abrir;
	}

	public JMenuItem getGuardarMItem() {
		return guardar;
	}

	public JMenuItem getDistancias() {
		return matriz;
	}

	public JMenuItem getGemelos() {
		return gemelos;
	}

	public JMenuItem getDijkstra() {
		return dijkstra;
	}

	public JMenuItem getDimension() {
		return dimension;
	}

	public JMenuItem getDetalle() {
		return detalle;
	}

	public JMenuItem getSalir()	{
		return salir;
	}

	public JMenuItem getOpciones() {
		return opciones;
	}

	public JMenuItem getTablaContenidos() {
		return tablaContenidos;
	}

	public JMenuItem getAcercaDe() {
		return acercaDe;
	}

	public JMenuItem getGrafo() {
		return grafo;
	}

	public JMenuItem getArbol() {
		return arbol;
	}

	public JMenuItem getCiclo() {
		return ciclo;
	}

	public JMenuItem getCompleto() {
		return completo;
	}

	public JMenuItem getEstrella() {
		return estrella;
	}

	public JMenuItem getRueda() {
		return rueda;
	}

	public JMenuItem getTresDimensiones() {
		return tresDimensiones;
	}

}