package com.curiam.client;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DecoratorPanel;
import com.google.gwt.user.client.ui.DockPanel;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.PasswordTextBox;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;

public class Interfaz_clasificador {

		/** estructura **/
		
		final FlexTable borde_base = new FlexTable();
		final DockPanel dock = new DockPanel();
		final Grid gmenu = new Grid(9,1);
		final Grid gtexto = new Grid(3,3);
		final DecoratorPanel decPanel = new DecoratorPanel();
		final FlexTable f_id = new FlexTable();
		
		
		
		/** identificación de usuario **/
		
		final FlexTable layout = new FlexTable();
		final TextBox tb_log = new TextBox();
		final PasswordTextBox tb_pass = new PasswordTextBox();
		
		
		/** Mensajes de error **/
		
		final Utiles err = new Utiles();
		
		public Interfaz_clasificador(final Image cabecera, final Image pie){
			
			
			/** borde exterior **/
			
			borde_base.setCellSpacing(0);
			borde_base.addStyleName("borde_base");
			borde_base.setWidget(0, 0, dock);
			
			
			/** estructura general **/
			
			dock.setSize("300px", "400px");
			dock.setStyleName("cw-DockPanel");
			
			dock.add(cabecera, DockPanel.NORTH);
			dock.add(pie, DockPanel.SOUTH);
			
			dock.setHorizontalAlignment(DockPanel.ALIGN_RIGHT);
			dock.add(f_id, DockPanel.EAST);
			
			dock.setHorizontalAlignment(DockPanel.ALIGN_LEFT);
			dock.add(gmenu, DockPanel.WEST);
			dock.add(gtexto,DockPanel.CENTER);
		
			
		    
			/** menu vertical **/
			
			final Button home = new Button("<div style='text-align:left'>Home</div>",
					
					new ClickHandler() {
						public void onClick(ClickEvent event) {
							
							Interfaz_portada I_que = new Interfaz_portada();	
						}
		    });
			
			home.setStyleName("vinculo_gris");
			
			final Button que = new Button("<div style='text-align:left'>Qu&eacute; es Curiam?</div>",
					
					new ClickHandler() {
						public void onClick(ClickEvent event) {
							
							Interfaz_clasificador I_que = new Interfaz_clasificador(cabecera, pie);	
						}
		    });
			
			que.setStyleName("vinculo_gris");
			
			final Button clasif = new Button("<div style='text-align:left'>Clasificadores</div>",
					
					new ClickHandler() {
						public void onClick(ClickEvent event) {
							
							Interfaz_clasificador I_clasif = new Interfaz_clasificador(cabecera, pie);	
						}
		    });
			
			clasif.setStyleName("vinculo_gris");
			
			
			final Button politica = new Button("<div style='text-align:left'>Pol&iacute;tica privacidad</div>",
					
					new ClickHandler() {
						public void onClick(ClickEvent event) {
							
							Interfaz_politica I_clasif = new Interfaz_politica(cabecera, pie);	
						}
		    });
			
			politica.setStyleName("vinculo_gris");
			
			
			
			final Button links = new Button("<div style='text-align:left'>Links</div>",
					
					new ClickHandler() {
						public void onClick(ClickEvent event) {
							
							Interfaz_links I_links = new Interfaz_links(cabecera, pie);	
						}
		    });
			
			links.setStyleName("vinculo_gris");
			
			
			final Button conts = new Button("<div style='text-align:left'>Contacto</div>",
					
					new ClickHandler() {
						public void onClick(ClickEvent event) {
							
							Interfaz_contactos I_conts = new Interfaz_contactos(cabecera, pie);	
						}
		    });
			
			conts.setStyleName("vinculo_gris");
			
			gmenu.setStyleName("tabla_menu");
			gmenu.setSize("140px", "380px");
			
			gmenu.setWidget(0, 0, home);
			gmenu.setWidget(1, 0, que);
			gmenu.setWidget(2, 0, clasif);
			gmenu.setWidget(3, 0, politica);
			gmenu.setWidget(4, 0, links);
			gmenu.setWidget(5, 0, conts);
		
			
			
			/** imagenes **/
			
			cabecera.setUrl("curiam/tit5.jpg");
			pie.setUrl("curiam/pie.jpg");
		
		
			/** texto página **/
			
			final HTML texto_portada = new HTML("Descripción de los clasificadores de partes blandas");
			gtexto.setWidget(1, 1, texto_portada);
	    
			

			/**************************************/
			/***** Dialogo de identificacion ******/
			/**************************************/
		
			FlexCellFormatter cellFormatter = f_id.getFlexCellFormatter();
			cellFormatter.setHorizontalAlignment(2, 0, HasHorizontalAlignment.ALIGN_CENTER);
			cellFormatter.setHorizontalAlignment(3, 0, HasHorizontalAlignment.ALIGN_CENTER);
			
			
			final Button cl = new Button("Recordar clave",
					
				new ClickHandler() {
					public void onClick(ClickEvent event) {
						Analisis An1 = new Analisis("admin");	
					}
	        });
			
			cl.setStyleName("vinculo");
			
			
			final Button reg = new Button("Registrarse",
					
					new ClickHandler() {
						public void onClick(ClickEvent event) {
							
							Interfaz_registros I_reg = new Interfaz_registros(cabecera, pie);	
						}
		    });
			
			reg.setStyleName("vinculo");
			
			
			f_id.setHeight("100px");
			f_id.setWidget(1, 0, decPanel);
			f_id.setWidget(2, 0, cl);
			f_id.setWidget(3,0, reg);
			
			
			
			/** campos del formulario **/
			
			tb_log.setPixelSize(110, 24);
			tb_pass.setPixelSize(110,24);
	    
			layout.setCellSpacing(10);
			layout.setStyleName("fondo_blanco");
			layout.setHTML(1, 0, "Login");
			layout.setWidget(1, 1, tb_log);
			layout.setHTML(2, 0, "Pass");
			layout.setWidget(2, 1, tb_pass);
			
			
			/** evento del boton entrar **/
			
			final Button b_entrar = new Button("Entrar",
					
					new ClickHandler() {
						public void onClick(ClickEvent event) {
							
							if(tb_log.getText().equals("admin") && tb_pass.getText().equals("123456")){
								@SuppressWarnings("unused")
								Analisis An = new Analisis(tb_log.getText());
							}else if(tb_log.getText().equals("") || tb_pass.getText().equals("")){
								Utiles.msj("Error", "Introduzca el nombre de usuario y la contrase&ntilde;a");
							}else{
								Utiles.msj("Error", "Contrase&ntilde;a o nombre de usuario incorrecto");
							}
						}
	        	});
			
			
			b_entrar.setPixelSize(70, 26);
			b_entrar.setStyleName("letra_boton");
			
			layout.setWidget(3, 1, b_entrar);
			decPanel.add(layout);

			
			
			/**** Enlaces con RootPanel ***/
			
			
			RootPanel.get().clear();
			RootPanel.get().setStyleName("fondo_gris");
			RootPanel.get().add(borde_base);

	}
}
