/* 
* Copyright 2016 Agencia Estatal de Administración Tibutaria
*
* Licencia con arreglo a la EUPL, Versión 1.1 o –en cuanto
* sean aprobadas por la Comisión Europea– versiones
* posteriores de la EUPL (la «Licencia»);
* Solo podrá usarse esta obra si se respeta la Licencia.
* Puede obtenerse una copia de la Licencia en:
*  
* https://joinup.ec.europa.eu/software/page/eupl
*  
* Salvo cuando lo exija la legislación aplicable o se acuerde
* por escrito, el programa distribuido con arreglo a la
* Licencia se distribuye «TAL CUAL», SIN GARANTÍAS NI CONDICIONES
* DE NINGÚN TIPO, ni expresasni implícitas.
*
* Véase la Licencia en el idioma concreto que rige los permisos y 
* limitaciones que establece la Licencia.
*/ 


package servidor.configurador;


import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.ToolTipManager;

import servidor.Configuracion;
import servidor.datos.BaseDatos;
import servidor.utiles.*;
import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;


public class frmConfiguraServidor implements ChangeListener
{
JTabbedPane jtpConfi=null;	
frmParametrosServidor frmConfi=null;
frmOperadores frmOp=null;
frmColas frmCo=null;
frmPuestos frmPu=null;
frmSalasEspera frmSe=null;
frmZonasAtencion frmZa=null;
//frmServiciosCP frmCP=null;
//frmDistribucionRenta frmDistri=null;
frmCategoriasEsta frmAltaCat = null;
static JFrame yomismo=null;


	public frmConfiguraServidor() {
		InstanciaUnica iu = new InstanciaUnica("ConfiguraServidor");
		  if (iu.isAppActive()) {
			 System.exit(1);
		  }
		Global.prepararLogging();
		if (yomismo == null) {
			yomismo = new JFrame("Configuración ATENEO-Servidor 2015.01");
			
			Configuracion.getConfiguracion().cargar("configuracionServidor.ini");
			BaseDatos.bd();
		        yomismo.setTitle("Configuración ATENEO-Servidor "+Configuracion.getConfiguracion().BaseDatos);
			frmConfi = new frmParametrosServidor();
			frmOp = new frmOperadores();
			frmCo = new frmColas();
			frmPu=new frmPuestos();
			frmSe=new frmSalasEspera();
			frmZa=new frmZonasAtencion();
                        frmAltaCat = new frmCategoriasEsta();
		//	frmCP=new frmServiciosCP();
		//	frmDistri=new frmDistribucionRenta();
			jtpConfi = new JTabbedPane();
			jtpConfi.addChangeListener(this);
			jtpConfi.addTab("Parámetros Servidor", frmConfi);
			jtpConfi.addTab("Operadores", frmOp.contenido());
			jtpConfi.addTab("Salas Espera",frmSe.contenido());
			jtpConfi.addTab("Colas", frmCo.contenido());
		//	//jtpConfi.addTab("Servicios CP", frmCP.contenido());
			jtpConfi.addTab("Operadores", frmOp.contenido());
			jtpConfi.addTab("Zonas Atención", frmZa.contenido());
			jtpConfi.addTab("Puestos", frmPu.contenido());
		//	//jtpConfi.addTab("Distrib. Renta", frmDistri);
			jtpConfi.addTab("Categorías", frmAltaCat.contenido());
                        jtpConfi.setOpaque(true);
			ToolTipManager.sharedInstance().setDismissDelay(5000);
			yomismo.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
			yomismo.addWindowListener( 		new WindowAdapter(){
				public void windowClosing(WindowEvent e) {
					if (comprueba_cambios()){
					BaseDatos.bd().cerrar();
					System.exit( 0);
					}
					}
				});
				
			yomismo.setContentPane(jtpConfi);
			 BufferedImage image = null;
			 try {
				 image = ImageIO.read(
				 yomismo.getClass().getResource("/servidor/utiles/ateneo32x32.gif"));
				 } catch (IOException e) {
				 e.printStackTrace();
				 }
			yomismo.setIconImage(image);
			yomismo.pack();
			yomismo.setSize(780, 600);
			yomismo.setLocationRelativeTo(null);
			yomismo.setVisible(true);

		}
	}
	public void stateChanged(ChangeEvent e) {
	
			if (jtpConfi.getTitleAt(jtpConfi.getSelectedIndex()).equalsIgnoreCase("Colas")) {
				frmCo.carga_datos();
			}
			if (jtpConfi.getTitleAt(jtpConfi.getSelectedIndex()).equalsIgnoreCase("Puestos")) {
				frmPu.carga_datos();
			}
		
		
	}

	private boolean comprueba_cambios(){
		if (frmConfi.haCambiadoalgo()){
			if (JOptionPane.showConfirmDialog(null, 
				"Salir sin guardar cambios de parámetros del servidor?","Ateneo",
				JOptionPane.YES_NO_OPTION)!=JOptionPane.YES_OPTION) 
				{return false;}
		}
//		if (frmDistri.haCambiadoalgo()){
//			if (JOptionPane.showConfirmDialog(null,
//				"Salir sin guardar cambios de distribucion de renta?","Ateneo",
//				JOptionPane.YES_NO_OPTION)!=JOptionPane.YES_OPTION)
//				{return false;}
//		}
		return true;
	}


public static JFrame getConfiFrame(){
	return yomismo;
}

	
	public static void main(String[] args) {
		frmConfiguraServidor fc=new frmConfiguraServidor();

	}


	

}
