package core;

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

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JSlider;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;

import utils.RutasIconos;

public class BarraHerramientas extends JToolBar {

	private static final long serialVersionUID = 0x3c78dd0dae9bf6dbL;
	private ResourceBundle mensajes;
	private JButton botonGrafo;
	private JButton botonAbrir;
	private JButton botonGuardar;
	private Separator Separador1;
	private Separator Separador2;
	private JButton botonBorrar;
	private Separator Separador3;
	private JLabel numeroZoom;
	private JButton botonMenosZoom;
	private JSlider barraZoom;
	private JButton botonMasZoom;
	private Separator Separador4;
	private JButton botonDimensionGrafo;
	private Separator Separador5;
	private JButton botonSolucionAnterior;
	private JLabel numeroSolucion;
	private JLabel numeroSoluciones;	
	private JButton botonSolucionSiguiente;
	private Separator Separador6;
	private JButton botonLimpiar;
	private Separator Separador7;
	private JComboBox comboIdioma;
	private Separator Separador8;
	private JButton botonOpciones;
	private Separator Separador9;
	private Separator Separador10;
	private JButton botonAyuda;


	public BarraHerramientas() {
		botonGrafo = new JButton();
		botonAbrir = new JButton();
		botonGuardar = new JButton();
		Separador1 = new Separator();
		Separador2 = new Separator();
		botonBorrar = new JButton();
		Separador3 = new Separator();
		numeroZoom = new JLabel();
		botonMenosZoom = new JButton();
		barraZoom = new JSlider();
		botonMasZoom = new JButton();
		Separador4 = new Separator();
		botonDimensionGrafo = new JButton();
		Separador5 = new Separator();
		botonSolucionAnterior = new JButton();
		numeroSolucion = new JLabel();
		numeroSoluciones = new JLabel();
		botonSolucionSiguiente = new JButton();
		Separador6 = new Separator();
		botonLimpiar = new JButton();
		Separador7 = new Separator();
		comboIdioma = new JComboBox();
		Separador8 = new Separator();
		botonOpciones = new JButton();
		Separador9 = new Separator();
		Separador10 = new Separator();
		botonAyuda = new JButton();


		botonGrafo.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Grafo)));
		botonGrafo.setName("Grafo");
		Separador1.setSeparatorSize(new Dimension(55, 0));
		botonAbrir.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Abrir)));
		botonGuardar.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Guardar)));
		Separador2.setSeparatorSize(new Dimension(70,0));
		botonBorrar.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Borrar)));
		botonBorrar.setName("Borrar");
		Separador3.setSeparatorSize(new Dimension(50,0));
		numeroZoom.setMaximumSize(new Dimension(35,30));
		numeroZoom.setHorizontalAlignment(SwingConstants.RIGHT);
		botonMenosZoom.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.ZoomMenos)));
		botonMenosZoom.setName("menosZoom");
		barraZoom.setMaximumSize(new Dimension(200, 30));
		barraZoom.setMinimum(30);
		barraZoom.setMaximum(300);
		barraZoom.setFocusable(false);
		barraZoom.setMinorTickSpacing(145);
		barraZoom.setPaintTicks(true);
		barraZoom.setValue(100);
		botonMasZoom.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.ZoomMas)));
		botonMasZoom.setName("masZoom");
		Separador4.setSeparatorSize(new Dimension(120,0));
		botonDimensionGrafo.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.DimensionGrafo)));
		botonDimensionGrafo.setName("Dimension");
		Separador5.setSeparatorSize(new Dimension(15,0));
		botonLimpiar.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Limpiar)));
		botonLimpiar.setName("Limpiar");
		botonSolucionAnterior.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Anterior)));
		botonSolucionAnterior.setName("Anterior");
		botonSolucionSiguiente.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Siguiente)));
		botonSolucionSiguiente.setName("Siguiente");
		Separador6.setSeparatorSize(new Dimension(30,0));
		numeroSolucion.setText("-");
		numeroSolucion.setMaximumSize(new Dimension(50,30));
		numeroSolucion.setMinimumSize(new Dimension(50,30));
		numeroSolucion.setHorizontalAlignment(SwingConstants.CENTER);
		numeroSoluciones.setHorizontalAlignment(SwingConstants.LEFT);
		numeroSoluciones.setMinimumSize(new Dimension(70,30));
		numeroSoluciones.setMaximumSize(new Dimension(70,30));
		numeroSoluciones.setText("(-)");
		Separador7.setSeparatorSize(new Dimension(80,0));
		Vector<ImageIcon> vectorIdioma = new Vector<ImageIcon>();
		ImageIcon idiomaChino = new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Chino),"Chino");
		ImageIcon idiomaEspaņol = new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Espaņol),"Espaņol");
		ImageIcon idiomaIngles = new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Ingles),"Ingles");
		vectorIdioma.add(idiomaChino);
		vectorIdioma.add(idiomaEspaņol);
		vectorIdioma.add(idiomaIngles);
		ComboBoxModel comboBoxModelIdioma = new DefaultComboBoxModel(vectorIdioma);
		comboBoxModelIdioma.setSelectedItem(idiomaEspaņol);
		comboIdioma.setModel(comboBoxModelIdioma);
		comboIdioma.setMaximumSize(new Dimension(60, 30));
		comboIdioma.setMaximumRowCount(10);
		comboIdioma.setName("Idioma");
		Separador8.setSeparatorSize(new Dimension(50,0));
		botonOpciones.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Opciones)));
		Separador9.setSeparatorSize(new Dimension(50,0));
		Separador10.setSeparatorSize(new Dimension(20,0));
		botonAyuda.setIcon(new ImageIcon(getClass().getClassLoader().getResource(RutasIconos.Ayuda)));
		botonAyuda.setName("Ayuda");


		add(botonGrafo);
		add(Separador1);
		add(botonAbrir);
		add(botonGuardar);
		add(Separador2);
		add(botonBorrar);
		add(Separador3);
		add(numeroZoom);
		add(botonMenosZoom);
		add(barraZoom);
		add(botonMasZoom);
		add(Separador4);
		add(botonDimensionGrafo);
		add(Separador5);
		add(botonLimpiar);
		add(Separador6);
		add(botonSolucionAnterior);
		add(botonSolucionSiguiente);
		add(Separador10);
		add(numeroSolucion);
		add(numeroSoluciones);
		add(Separador7);
		add(comboIdioma);
		add(Separador8);
		add(botonOpciones);
		add(Separador9);
		add(botonAyuda);
		setEnabled(false);
	}

	public void setMensajes(ResourceBundle m) {
		mensajes = m;
		try {
			botonGrafo.setToolTipText(new String(mensajes.getString("Grafo").getBytes("ISO-8859-1"),"UTF-8"));
			botonAbrir.setToolTipText(new String(mensajes.getString("Abrir").getBytes("ISO-8859-1"),"UTF-8"));
			botonGuardar.setToolTipText(new String(mensajes.getString("Guardar").getBytes("ISO-8859-1"),"UTF-8"));
			botonBorrar.setToolTipText(new String(mensajes.getString("Borrar").getBytes("ISO-8859-1"),"UTF-8"));
			botonMenosZoom.setToolTipText(new String(mensajes.getString("botonZoomMenos").getBytes("ISO-8859-1"),"UTF-8"));
			botonMasZoom.setToolTipText(new String(mensajes.getString("botonZoomMas").getBytes("ISO-8859-1"),"UTF-8"));
			botonDimensionGrafo.setToolTipText(new String(mensajes.getString("DimensionMetrica").getBytes("ISO-8859-1"),"UTF-8"));
			botonSolucionAnterior.setToolTipText(new String(mensajes.getString("SolucionAnterior").getBytes("ISO-8859-1"),"UTF-8"));
			botonSolucionSiguiente.setToolTipText(new String(mensajes.getString("SolucionSiguiente").getBytes("ISO-8859-1"),"UTF-8"));
			botonLimpiar.setToolTipText(new String(mensajes.getString("Limpiar").getBytes("ISO-8859-1"),"UTF-8"));
			comboIdioma.setToolTipText(new String(mensajes.getString("CambioIdioma").getBytes("ISO-8859-1"),"UTF-8"));
			botonOpciones.setToolTipText(new String(mensajes.getString("opciones").getBytes("ISO-8859-1"),"UTF-8"));
			botonAyuda.setToolTipText(new String(mensajes.getString("Ayuda").getBytes("ISO-8859-1"),"UTF-8"));
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
	}

	public JButton getBotonGrafo() {
		return botonGrafo;
	}

	public JButton getBotonAbrir() {
		return botonAbrir;
	}

	public JButton getBotonGuardar() {
		return botonGuardar;
	}

	public JButton getBotonBorrar() {
		return botonBorrar;
	}

	public JLabel getNumeroZoom() {
		return numeroZoom;
	}

	public JButton getBotonMenosZoom() {
		return botonMenosZoom;
	}

	public JSlider getBarraZoom() {
		return barraZoom;
	}

	public JButton getBotonMasZoom() {
		return botonMasZoom;
	}

	public JButton getBotonDimensionGrafo() {
		return botonDimensionGrafo;
	}

	public JButton getBotonSolucionAnterior() {
		return botonSolucionAnterior;
	}

	public JLabel getNumeroSolucion() {
		return numeroSolucion;
	}

	public JLabel getNumeroSoluciones() {
		return numeroSoluciones;
	}

	public JButton getBotonSolucionSiguiente() {
		return botonSolucionSiguiente;
	}

	public JButton getBotonLimpiar() {
		return botonLimpiar;
	}

	public JComboBox getComboIdioma() {
		return comboIdioma;
	}

	public JButton getBotonOpciones() {
		return botonOpciones;
	}

	public JButton getBotonAyuda() {
		return botonAyuda;
	}

}