package com.ceisufro.cl.agendamedica.AsignarHorarioMedico.client;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.datepicker.client.DateBox;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.datepicker.client.DatePicker;
import com.google.gwt.event.dom.client.KeyPressHandler;
import com.google.gwt.event.dom.client.KeyPressEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.BlurHandler;
import com.google.gwt.event.dom.client.BlurEvent;
import com.google.gwt.user.client.ui.Image;
/**
*
* @author V�ctor Aravena
*
*/
public class FormularioProfesionalSalud extends Composite {
private Label labelResultadoNombreProfesional = new Label("<Resultado Nombre - Apellidos Profesional>");
private final TextBox textBoxRUN = new TextBox();
private ListBox listBoxEspecialidad = new ListBox();
// private InstanciaGrilla InstanciaGrilla;
private GrillaInterfaces InstanciaGrilla;
private ListBox listBoxPoliclinico = new ListBox();
/**
*
*/
public FormularioProfesionalSalud() {
VerticalPanel verticalPanel = new VerticalPanel();
initWidget(verticalPanel);
verticalPanel.setSize("330px", "143px");
final Label lblProfesionalSalud_1 = new Label("Profesional Salud");
lblProfesionalSalud_1.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);
lblProfesionalSalud_1.setStyleName("lztitulo-seccion");
verticalPanel.add(lblProfesionalSalud_1);
FlexTable flexTable = new FlexTable();
flexTable.setStyleName("tabla-general");
verticalPanel.add(flexTable);
flexTable.setBorderWidth(0);
flexTable.setSize("500", "");
/*
*
*/
Label lblRutProfesional = new Label("Rut Profesional");
flexTable.setWidget(0, 0, lblRutProfesional);
flexTable.getCellFormatter().setWidth(0, 0, "150px");
flexTable.getCellFormatter().setHeight(0, 0, "15px");
flexTable.getCellFormatter().setStyleName(0, 0, "celdas-destacadas");
textBoxRUN.addBlurHandler(new BlurHandler() {
public void onBlur(BlurEvent event) {
String RUT = formatearRUT(textBoxRUN.getText());
textBoxRUN.setText(RUT);
}
});
textBoxRUN.addKeyPressHandler(new KeyPressHandler() {
public void onKeyPress(KeyPressEvent event) {
if (!(Character.isDigit(event.getCharCode())
|| event.getCharCode()=='K'
|| event.getCharCode()=='k'
|| event.getCharCode()=='.'
|| event.getCharCode()=='-'
|| event.getCharCode()==8
)) {
((TextBox) event.getSource()).cancelKey();
}
if (event.getCharCode()== 13)
findProfesional();
}
});
textBoxRUN.setMaxLength(12);
textBoxRUN.setVisibleLength(12);
flexTable.setWidget(0, 1, textBoxRUN);
flexTable.getCellFormatter().setWidth(0, 1, "200px");
flexTable.getCellFormatter().setHeight(0, 1, "15px");
flexTable.getCellFormatter().setStyleName(0, 1, "celdas-no-destacada");
Button buttonBuscar = new Button("New button");
buttonBuscar.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
findProfesional();
}
});
buttonBuscar.setHeight("28");
buttonBuscar.setText("Buscar");
flexTable.setWidget(0, 2, buttonBuscar);
/*
* Nombre Profesional
*/
Label lblProfesionalSalud = new Label("Nombre");
flexTable.setWidget(1, 0, lblProfesionalSalud);
flexTable.getCellFormatter().setWidth(1, 0, "150px");
flexTable.getCellFormatter().setHeight(1, 0, "15px");
flexTable.getCellFormatter().setStyleName(1, 0, "celdas-destacadas");
//Resultado Nombre Profesional
flexTable.setWidget(1, 1, labelResultadoNombreProfesional);
flexTable.getCellFormatter().setWidth(1, 1, "100px");
flexTable.getCellFormatter().setHeight(1, 1, "15px");
flexTable.getCellFormatter().setStyleName(1, 1, "celdas-no-destacada");
Label lblEspecialidad = new Label("Especialidad");
flexTable.setWidget(2, 0, lblEspecialidad);
flexTable.getCellFormatter().setWidth(2, 0, "150px");
flexTable.getCellFormatter().setHeight(2, 0, "15px");
flexTable.getCellFormatter().setStyleName(2, 0, "celdas-destacadas");
//VALORES ESPECIALIDAD
listBoxEspecialidad.setSelectedIndex(0);
listBoxEspecialidad.addItem("Sin Valor","0");
listBoxEspecialidad.addChangeHandler(new ChangeHandler() {
public void onChange(ChangeEvent event) {
// Window.alert(listBoxEspecialidad.getValue(listBoxEspecialidad.getSelectedIndex()));
findPoliclinico(Integer.parseInt(listBoxEspecialidad.getValue(listBoxEspecialidad.getSelectedIndex())));
InstanciaGrilla.find("0");
}
});
flexTable.setWidget(2, 1, listBoxEspecialidad);
flexTable.getCellFormatter().setWidth(2, 1, "100px");
flexTable.getCellFormatter().setHeight(2, 1, "15px");
flexTable.getCellFormatter().setStyleName(2, 1, "celdas-no-destacada");
/*
*
*/
Label labelPoliclinico = new Label("PoliCl\u00EDnico");
flexTable.setWidget(3, 0, labelPoliclinico);
flexTable.getCellFormatter().setWidth(3, 0, "150px");
flexTable.getCellFormatter().setHeight(3, 0, "15px");
flexTable.getCellFormatter().setStyleName(3, 0, "celdas-destacadas");
listBoxPoliclinico.addChangeHandler(new ChangeHandler() {
public void onChange(ChangeEvent event) {
if(Integer.parseInt(listBoxPoliclinico.getValue(listBoxPoliclinico.getSelectedIndex( )))==0){
InstanciaGrilla.find("0");
}
else{
InstanciaGrilla.find("1");
}
}
});
//VALORES DE POLICLINICO
listBoxPoliclinico.addItem("Sin Valor","0");
listBoxPoliclinico.setSelectedIndex(0);
flexTable.setWidget(3, 1, listBoxPoliclinico);
flexTable.getCellFormatter().setWidth(3, 1, "100px");
flexTable.getCellFormatter().setHeight(3, 1, "15px");
flexTable.getCellFormatter().setStyleName(3, 1, "celdas-no-destacada");
listBoxPoliclinico.setSize("", "");
}
/**
* A Java method using JSNI
* @param name
*/
native void sayHelloInJava(String name) /*-{
$wnd.sayHello(name); // $wnd is a JSNI synonym for 'window'
}-*/;
/**
* FORMATEAR RUT
*/
native String formatearRUT(String rut) /*-{
var valor = $wnd.formateaRUT(rut);
// $wnd.sayHello(valor); // $wnd is a JSNI synonym for 'window'
return valor;
}-*/;
/**
* FORMATEAR RUT
*/
native int validarRUT(String rut) /*-{
var valor = $wnd.verificaRUT(rut);
if(valor==1){
return 1;
}
else {
alert("Debe ingresar un rut v\u00E1lido");
return 0;
}
return valor;
}-*/;
/**
* @return
*
*/
public void setCompositiveGrilla(GrillaInterfaces bloqueHorario ){
this.InstanciaGrilla = bloqueHorario;
}
/**
*
*/
private void findProfesional(){
String RUT = formatearRUT(textBoxRUN.getText());
textBoxRUN.setText(RUT);
int resultadoRUT = validarRUT(RUT);
if(resultadoRUT==1){
// sayHelloInJava(RUT);
labelResultadoNombreProfesional.setText("Jose Antonio Velasquez Riquelme");
/*
*
*/
listBoxEspecialidad.clear();
listBoxEspecialidad.addItem("Especialidad 1","1");
listBoxEspecialidad.addItem("Especialidad 2","2");
listBoxEspecialidad.addItem("Especialidad 3","3");
listBoxEspecialidad.addItem("Especialidad 4","4");
/*
*
*/
listBoxPoliclinico.clear();
listBoxPoliclinico.addItem("Todos PoliCl\u00EDnico 1","0");
listBoxPoliclinico.addItem("PoliCl\u00EDnico 1-1","1");
listBoxPoliclinico.addItem("PoliCl\u00EDnico 1-2","2");
listBoxPoliclinico.addItem("PoliCl\u00EDnico 1-3","3");
listBoxPoliclinico.addItem("PoliCl\u00EDnico 1-4","4");
/*
* Actualiza Grilla
*/
InstanciaGrilla.find("0");
}
else {
labelResultadoNombreProfesional.setText("<Resultado Nombre - Apellidos Profesional>");
listBoxEspecialidad.clear();
listBoxEspecialidad.setSelectedIndex(0);
listBoxEspecialidad.addItem("Sin Valor");
listBoxPoliclinico.clear();
listBoxPoliclinico.addItem("Sin Valor");
listBoxPoliclinico.setSelectedIndex(0);
InstanciaGrilla.clearfind();
}
}
/**
*
*/
private void findPoliclinico(int valor){
listBoxPoliclinico.clear();
/*
* HACER LA CONSULTA Y CARGAR LOS REGISTRO EN LA ESPECIALIDAD
*/
listBoxPoliclinico.addItem("Todos PoliCl\u00EDnico "+valor+" ","0");
listBoxPoliclinico.addItem("PoliCl\u00EDnico "+valor+"-1","1");
listBoxPoliclinico.addItem("PoliCl\u00EDnico "+valor+"-2","2");
listBoxPoliclinico.addItem("PoliCl\u00EDnico "+valor+"-3","3");
listBoxPoliclinico.addItem("PoliCl\u00EDnico "+valor+"-4","4");
}
}