Package Controladores

Source Code of Controladores.ControladorCompeticion

/**
* @author
* @version 1.0
* @created 24-abr-2013 13:04:34
*/

package Controladores;

import GestorCompeticion.Competicion;
import GestorCompeticion.CompeticionBD;
import GestorCompeticion.Participa;
import GestorCompeticion.ParticipaBD;
import GestorEquipos.Equipo;
import GestorEquipos.EquipoBD;
import GestorEquipos.Juega;
import GestorJornada.Jornada;
import GestorJornada.JornadaBD;
import GestorPartido.Partido;
import GestorPartido.PartidoBD;
import GestorJugadores.Estadistica;
import GestorJugadores.EstadisticaBD;
import GestorJugadores.Jugador;
import Interfaz.InterfazEstadisticas;
import Interfaz.InterfazCompeticion;
import Interfaz.InterfazJornada;
import Interfaz.InterfazPartido;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.NavigableMap;
import java.util.SortedMap;
import java.util.TreeMap;

public class ControladorCompeticion {
  private static ControladorCompeticion Instancia=null;
        private Competicion[] competiciones;
        private Jornada[] jornadas;
        private Partido[] partidos;
        private int competicion_activa;
        private int jornada_activa=0;
        private int partido_activo=0;

  public ControladorCompeticion(){
            competiciones = null;
            competicion_activa = 0;
  
  }

  public static ControladorCompeticion getInstancia(){
            if (Instancia==null){
                Instancia = new ControladorCompeticion();
            }
        return Instancia;
  }

  /**
   *
   * @param Competicion
   */
  public Boolean addCompeticion(String[] competicion){
           
            Boolean salida= false;
            Competicion newcomp;
           
            if ( VerificarDatosCorrectosCompeticion(competicion) != false){ // Datos correctos
                // Enviar a la base de datos             
                newcomp = new Competicion(competicion[0], competicion[1].charAt(0),competicion[2]);
               
                // competicion añadida con exito
                if (CompeticionBD.getInstancia().addCompeticion(newcomp) != null){ 
                    InterfazCompeticion.getInstancia().mostrarMensaje("COMPETICION CREADA CON EXITO","", 1);
                    salida = true;
                } else { // Error con la base de datos
                    InterfazCompeticion.getInstancia().mostrarMensaje("ERROR. COMPETICION NO CREADA", "ERROR", 0);                
                }
            }else{
                InterfazJornada.getInstancia().mostrarMensaje("LOS DATOS NO SON CORRECTOS", "ERROR", 0);
           
            }
            return salida;
  }
       
        /**
   *
   * @param ComCompeticion
   * @param Categoria
   * @param Sexo
   */
  public Boolean consultarCompeticion(String[] Datos){
           
            Boolean salida=false;
            // array por si se devuelven varias competiciones en la consulta
            competiciones = CompeticionBD.getInstancia().getCompeticion(Datos[0], Datos[2], Datos[1]);
            if (competiciones.length > 0){ // Se han encontrado competiciones
                // MOSTRAR TODAS LAS COMPETICIONES ENCONTRADAS EN LA TABLA COMPETICIONES
                for(int i=0; i <competiciones.length; i++){
                    InterfazCompeticion.getInstancia().add_Competicion_Tabla(i,
                                competiciones[i].getNomCompeticion(), competiciones[i].getSexo().toString(),
                                        competiciones[i].getCategoria() );
                    }
                    // MOSTRAR LA 1º COMPETICION EN LA FICHA DE COMPETICION
                    InterfazCompeticion.getInstancia().mostrarCompeticion(
                            competiciones[0].getNomCompeticion(), competiciones[0].getSexo().toString(),
                                    competiciones[0].getCategoria());
                salida= true;
               
            } else { // No se ha encontrado competicion
                InterfazCompeticion.getInstancia().mostrarMensaje("COMPETICION NO ENCONTRADA", "ERROR", 0);
            }
           
            return salida;
  }
       
        /**
   *
   * @param Competiciion
   */
  public boolean modificarCompeticion(String[] Competicion){
            Competicion compt;
            Boolean salida= false;
           
            if(VerificarDatosCorrectosCompeticion(Competicion) != false){ // Datos correctos
                // Se completa la nueva Competicion con idCompeticion
                compt = new Competicion(Competicion[0],Competicion[1].charAt(0),Competicion[2]);
                compt.setIdCompeticion(competiciones[competicion_activa].getIdCompeticion());
                // Enviar a la BD
                if (CompeticionBD.getInstancia().updateCompeticion(compt) != null){
                    // Modificado con éxito
                    competiciones[competicion_activa] = compt;
                    InterfazCompeticion.getInstancia().mostrarMensaje("COMPETICION MODIFICADA CON EXITO","", 1);
                    salida= true;
                } else {
                    InterfazCompeticion.getInstancia().mostrarMensaje
                            ("COMPETICION NO MODIFICADA.\nIntentelo de nuevo.", "ERROR", 0);
                }
            }else{
                InterfazJornada.getInstancia().mostrarMensaje("LOS DATOS NO SON CORRECTOS", "ERROR", 0);
           
            }
           
            return salida;
  }

  /**
   *
   * @param Competiciion
   */
  public boolean eliminarCompeticion(){
           
            Boolean salida= false;
            if(CompeticionBD.getInstancia().deleteCompeticion(competiciones[competicion_activa])) {
                InterfazJornada.getInstancia().mostrarMensaje("COMPETICION ELIMINADA CON EXITO", "", 1);
                salida = true;
            }else{
               InterfazJornada.getInstancia().mostrarMensaje("COMPETICION NO ELIMINADA", "ERROR", 0);
            }
           
            return salida;
  }


  /**
   *
   * @param Competicion
   */
  public Boolean VerificarDatosCorrectosCompeticion(String[] competicion){
            Boolean error_nomComp = false, error_categ = false, error_sexo = false, salida=false;
       
            if (competicion[0].length() == 0 || competicion[0].length() > 20 ){
                error_nomComp = true;
            }
            if(competicion[1] != null) {
                if (competicion[1].charAt(0) != 'M' && competicion[1].charAt(0) != 'F') {
                    error_sexo = true;
                }
            }else {
                error_sexo = true;
            }
            ArrayList<String> cat = new ArrayList<String>
                    (Arrays.asList ("BENJAMIN", "ALEVIN", "INFANTIL", "JUNIOR", "CADETE"));
            if (! cat.contains(competicion[2].toUpperCase())){
                error_categ = true;
            }
           
            if (!error_nomComp && !error_categ && !error_sexo){
                //InterfazJornada.getInstancia().mostrarMensaje("LOS DATOS NO SON CORRECTOS", "ERROR", 0);
                salida = true;
            }
            return salida;
  }

       
       
//******************************************************************************

  /**
   *
   * @param jornada
   */
  public boolean addJornada(String[] jornada){

            Boolean salida = false;
           
            if ( VerificarDatosCorrectosJornada(jornada) != false ){ // Datos correctos
                // Enviar a la base de datos
                Jornada newJorn = new Jornada(competiciones[competicion_activa].getIdCompeticion(),
                                            Integer.parseInt(jornada[0]) );
               
                if (JornadaBD.getInstancia().addJornada(newJorn) != null){  // jornada añadida con exito
                    InterfazJornada.getInstancia().mostrarMensaje("JORNADA CREADA CON EXITO","", 1);
                    salida =  true;
                   
                } else { // Error con la base de datos
                    InterfazJornada.getInstancia().mostrarMensaje("JORNADA NO CREADA", "ERROR", 0);
                }
            }else{
                InterfazJornada.getInstancia().mostrarMensaje("LOS DATOS NO SON CORRECTOS", "ERROR", 0);               
            }
           
            return salida;
  }

   /**
   *
   * @param IdCampeonato
   * @param NumJornada
   */
  public Boolean consultarJornada(String[] Datos){ //Integer NumJornada

            Integer IdJornada, IdCampeonato = competiciones[competicion_activa].getIdCompeticion();
            try {IdJornada = Integer.parseInt(Datos[0]);} catch(NumberFormatException e){IdJornada=-1;}
           
            jornadas = JornadaBD.getInstancia().getJornada(IdCampeonato, IdJornada);
                      
            if (jornadas != null){ // Si se han encontrado competiciones
                // MOSTRAR TODAS LAS JORNADAS ENCONTRADAS EN LA TABLA JORNADAS
                for(int i=0; i <jornadas.length; i++){
                   InterfazJornada.getInstancia().add_Jornada_fila(i,jornadas[i].getNumJornada().toString());
               
                    // MOSTRAR LA 1º JORNADA EN LA FICHA DE JORNADA
                    InterfazJornada.getInstancia().mostrarJornada(
                            jornadas[0].getNumJornada());
               
                return true;
               
            } else { // No se ha encontrado competicion
                //InterfazJornada.getInstancia().mostrarMensaje("JORNADA NO ENCONTRADA", "ERROR", 0);
                return false;
            }

            
  }      
       
  /**
   *
   * @param Datos
   */
  public boolean modificarJornada(String[] Datos){
            
            Boolean salida=false;
            if (VerificarDatosCorrectosJornada(Datos) != false){ // Datos correctos
               
                // Se completa la nueva Jornada con idJornada  y se envia a la BD
                jornadas[jornada_activa].setNumJornada(Integer.parseInt(Datos[0]));
                if (JornadaBD.getInstancia().updateJornada(jornadas[jornada_activa])){
                   
                    // Modificado con éxito
                    InterfazJornada.getInstancia().mostrarMensaje("JORNADA MODIFICADA CON EXITO","", 1);
                    salida = true;
                } else {
                    InterfazJornada.getInstancia().mostrarMensaje("JORNADA NO MODIFICADA.\nIntentelo de nuevo.",
                                                                        "Error en la Base de Datos", 0);
                }
            }else{
                InterfazJornada.getInstancia().mostrarMensaje("LOS DATOS NO SON CORRECTOS", "ERROR", 0);               
            }
           
            return salida;
  }       
       
   /**
   *
   * @param Jornada
   */
  public boolean eliminarJornada(){

            boolean salida = false;

            if(JornadaBD.getInstancia().deleteJornada(jornadas[jornada_activa])) {
                InterfazJornada.getInstancia().mostrarMensaje("JORNADA ELIMINADA CON EXITO", "", 1);
                salida = true;
            }else{
                InterfazJornada.getInstancia().mostrarMensaje("JORNADA NO ELIMINADA", "ERROR", 0);
            }
           
            return salida;
  }
       
  /**
   *
   * @param Datos
   */
  public Boolean VerificarDatosCorrectosJornada(String[] Datos){
           
            try {
                if(Integer.parseInt(Datos[0]) > 0) {
                    return false;
                }
            }catch (NumberFormatException e){
                return false;
            }
            return true;
  }
       
       
//****************************************************************************       
  /**
   *
   * @param Datos
   */
  public boolean addPartido(String[] Datos){
           
            Boolean salida= false;
            Integer id_local=null, id_visitante=null;
            String cat = competiciones[competicion_activa].getCategoria();
            Character s = competiciones[competicion_activa].getSexo();
             Partido newPart; 
            if (VerificarDatosCorrectosPartido(Datos)){ // Datos correctos
                //Comprobar si los nombres de los equipos están guardados y obtener sus ids
                Date fecha=null;// se vuelve a convertir fecha a date, despues de la comprobacion
                try {fecha = new SimpleDateFormat("yyyy-MM-dd").parse(Datos[3]);
                } catch (ParseException ex) { /* no hay excepcion ya que se ha comprobado antes con el metodo VerificarDatos... */
                    //System.out.println(ex);
                }
 
               if(!EquipoBD.getIntance().getEquipos(Datos[0], cat, s.toString(),"").isEmpty()){
                     id_local = EquipoBD.getIntance().getEquipos(Datos[0], cat, s.toString(),"").get(0).getIdEquipo();
                }
                if(!EquipoBD.getIntance().getEquipos(Datos[1], cat, s.toString(),"").isEmpty()){
                    id_visitante = EquipoBD.getIntance().getEquipos(Datos[1], cat, s.toString(),"").get(0).getIdEquipo();
                }
                if(ParticipaBD.getInstancia().getParticipa(id_local,
                        competiciones[competicion_activa].getIdCompeticion())!=null &&
                        ParticipaBD.getInstancia().getParticipa(id_visitante,
                        competiciones[competicion_activa].getIdCompeticion())!=null){
                    //String[] buscaLocal = {Datos[0],"",Datos[2],Datos[3]};
                    //String[] buscaVisit = {Datos[1],"",Datos[2],Datos[3]};
                    //if(this.consultarPartido(buscaLocal)){
                    //    if(this.consultarPartido(buscaVisit)){
                        newPart = new Partido(jornadas[jornada_activa].getIdJornada(),
                                                    id_local, id_visitante, Datos[2], fecha);

                        // Enviar a la base de datos
                        if (PartidoBD.getInstancia().addPartido(newPart) != null){  // partido añadido con exito
                            InterfazPartido.getInstancia().mostrarMensaje("PARTIDO CREADO CON EXITO","", 1);
                            salida =  true;
                        } else { // Error con la base de datos
                            InterfazPartido.getInstancia().mostrarMensaje("PARTIDO NO CREADO", "ERROR", 0);
                        }
                   //    }else{
                   //     InterfazPartido.getInstancia().mostrarMensaje("EL EQUIPO VISITANTE\n YA TIENEN ASIGNADO OTRO PARTIDO EN ESTA JORNADA", "ERROR", 0);                              
                   // }
                   // }else{
                   //     InterfazPartido.getInstancia().mostrarMensaje("EL EQUIPO LOCAL\n YA TIENEN ASIGNADO OTRO PARTIDO EN ESTA JORNADA", "ERROR", 0);                              
                   // }
                }else{
                    InterfazPartido.getInstancia().mostrarMensaje("UNO O AMBOS EQUIPOS NO PERTENECEN A LA COMPETICION", "ERROR", 0);               
                }
            }else{
                InterfazPartido.getInstancia().mostrarMensaje("LOS DATOS NO SON CORRECTOS", "ERROR", 0);               
            }
           
            return salida;
  }


       public Boolean consultarPartido(String[] Datos) { //Integer NumJornada, String NomLocal, String NomVisitante, Date fecha){
          
            Boolean salida = false;
            String cat = competiciones[competicion_activa].getCategoria();
            Character s = competiciones[competicion_activa].getSexo();

            Integer id_local = null, id_visitante=null;
            String resultado=(Datos[2].equals("") ? null:Datos[2]), fechaPartido=Datos[3],
                    nombreLocal=(Datos[0].equals("") ? null:Datos[0]), nombreVisit=(Datos[1].equals("") ? null:Datos[1]);
            if(nombreLocal != null){id_local=EquipoBD.getIntance().consultarIdEquipo(Datos[0], cat, s);}
            if(nombreVisit != null){id_visitante=EquipoBD.getIntance().consultarIdEquipo(Datos[1], cat, s);}
            //System.out.println(nombreLocal+"\t"+id_local);
            //System.out.println(nombreVisit+"\t"+id_visitante);
            partidos = PartidoBD.getInstancia().getPartido
                    (jornadas[jornada_activa].getIdJornada(), id_local, id_visitante, resultado, fechaPartido);

            if (partidos.length>0){ // Si se ha encontrado partido(s) <<---
              
                 // MOSTRAR TODAS LAS JORNADAS ENCONTRADAS EN LA TABLA JORNADAS
                for(int i=0; i <partidos.length; i++){
                    String nomLocal = EquipoBD.getIntance().getEquipo(partidos[i].getIdLocal()).getNombre();
                    String nomVisitante = EquipoBD.getIntance().getEquipo(partidos[i].getIdVisitante()).getNombre();
                    resultado = partidos[i].getResultado();
                    fechaPartido= partidos[i].getFecha().toString();
                    InterfazPartido.getInstancia().add_Partido_Tabla(i,nomLocal,nomVisitante,resultado,fechaPartido);
                    // MOSTRAR LA 1º JORNADA EN LA FICHA DE JORNADA
                    if(i==0)
                    InterfazPartido.getInstancia().mostrarPartido(nomLocal,nomVisitante,resultado,partidos[0].getFecha());
                }

                salida= true;
            }
           
            return salida;
  }       
       
   /**
   *
   * @param Datos
   */
  public boolean modificarPartido(String[] Datos){
           
            Boolean salida = false;
            String cat = competiciones[competicion_activa].getCategoria();
            Character s = competiciones[competicion_activa].getSexo();
            Integer id_local=null, id_visitante=null;
           
            if(!EquipoBD.getIntance().getEquipos(Datos[0], cat, s.toString(), "").isEmpty())
                 id_local = EquipoBD.getIntance().getEquipos(Datos[0], cat, s.toString(),"").get(0).getIdEquipo();
            if(!EquipoBD.getIntance().getEquipos(Datos[1], cat, s.toString(),"").isEmpty())
                 id_visitante = EquipoBD.getIntance().getEquipos(Datos[1], cat, s.toString(),"").get(0).getIdEquipo();
            //System.out.println("Local: "+id_local+" Visit: "+id_visitante );

            if (VerificarDatosCorrectosPartido(Datos)){ // Datos correctos
         
                Date fecha=null;
                try {fecha = new SimpleDateFormat("yyyy-mm-dd").parse(Datos[3]);
                } catch (ParseException ex) { }
          
                Partido newPart = new Partido(jornadas[jornada_activa].getIdJornada(),
                        id_local, id_visitante, Datos[2], fecha);
               
                // Se completa el nuevo partido con IdPartido
                newPart.setIdPartido(partidos[partido_activo].getIdPartido());
                // Enviar a la BD
                if (PartidoBD.getInstancia().updatePartido(newPart)){
                    // Modificado con éxito
                    partidos[partido_activo] = newPart;
                    InterfazPartido.getInstancia().mostrarMensaje("PARTIDO MODIFICADO CON EXITO","", 1);
                    salida= true;
                } else {
                    InterfazPartido.getInstancia().mostrarMensaje("PARTIDO NO MODIFICADO", "ERROR", 0);
                }
            }else{
                InterfazPartido.getInstancia().mostrarMensaje("LOS DATOS NO SON CORRECTOS", "ERROR", 0);               
            }
           
            return salida;
  }      

  /**
   *
   * @param Partido
   */
  public boolean eliminarPartido(){
           
            boolean salida = false;
           
            if(PartidoBD.getInstancia().deletePartido(partidos[partido_activo])){
                InterfazPartido.getInstancia().mostrarMensaje("PARTIDO ELIMINADO CON EXITO", "", 1);
                salida = true;
            }
           
            return salida;
  }
  /**
         * IdJornada=Id_Jornada;
                IdLocal=Id_Local;
                IdVisitante=Id_Visitante;
                Resultado=Result;
                Fecha=Date;
                IdPartido=-1;
   *
   * @param Datos
   */
  public boolean VerificarDatosCorrectosPartido(String[] Datos){

            String delimitador = "-";
            String[] temp=null;
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
           
            if (Datos[0].length()==0 || Datos[0].length()>50) {
                return false;
            }
            if (Datos[1].length()==0 || Datos[1].length()>50) {
                return false;
            }          
            try {
                formatter.parse(Datos[3]);
            } catch (ParseException ex) {
                return false;
            }
            if(!Datos[2].equals("")){
                if (Datos[2].contains(delimitador)){
                    temp = Datos[2].split(delimitador);
                    temp[0] = temp[0].trim();
                    temp[1] = temp[1].trim();
                    Integer scorelocal=null,scoreVisit=null ;
                    try{
                         scorelocal =Integer.parseInt(temp[0]);
                         scoreVisit = Integer.parseInt(temp[1]);
                    }catch(NumberFormatException nfe){}
                    if(scorelocal == scoreVisit) {
                        return false;
                    }
               }else{return false;}
            }
           
            if(Datos[0].equals(Datos[1])){
                return false;
            }
            return true;
  }

       
//******************************************************************************       

  /**
   *
   * @param Estadisticas
   */
  public boolean addActa(String[] Estadisticas){
    return false;
  }


  /**
   *
   * @param Estadisticas
   */
  public boolean consultarActa(Integer partidoSeleccionado){

            Integer idPartido = this.partidos[partido_activo].getIdPartido();
            Equipo local = EquipoBD.getIntance().getEquipo(partidos[partido_activo].getIdLocal());
            Equipo visitante = EquipoBD.getIntance().getEquipo(partidos[partido_activo].getIdVisitante());
            ArrayList <Juega> plantillaLocal = EquipoBD.getIntance().getJugadores_Asignados(local);
            ArrayList <Juega> plantillaVisit = EquipoBD.getIntance().getJugadores_Asignados(visitante);
           
            if(! plantillaLocal.isEmpty()){// Si se ha encontrado plantilla  <<---
                // MOSTRAR TODOS LOS JUGADORES ENCONTRADAS EN LA TABLA JUGADORES LOCALES
                int i=0;
                for(Juega j: plantillaLocal){ // para todos los dorsales encontrados
                    String nomJugador =  j.getJugador().getNombre();//local.getPlantilla().get(d).getNombre();
                    String apellidosJugador = j.getJugador().getApellidos();//local.getPlantilla().get(d).getApellidos();
                    Integer dorsalJugador = j.getDorsal();
                   InterfazPartido.getInstancia().add_JugadoresLocal_Tabla(i,nomJugador,apellidosJugador,dorsalJugador);
                   if(i==0)
                       // OBTENER LAS 1º ESTADISTICAS EN LA FICHA DEL ACTA
                        EstadisticaBD.getInstancia().getEstadística(j.getJugador().getIdJugador(), idPartido);
                   i++;
                }
               
            }
           if(! plantillaVisit.isEmpty()){// Si se ha encontrado plantilla  <<---
                // MOSTRAR TODOS LOS JUGADORES ENCONTRADAS EN LA TABLA JUGADORES LOCALES
                int i=0;
                for(Juega j: plantillaVisit){ // para todos los dorsales encontrados
                    String nomJugador =  j.getJugador().getNombre();//local.getPlantilla().get(d).getNombre();
                    String apellidosJugador = j.getJugador().getApellidos();//local.getPlantilla().get(d).getApellidos();
                    Integer dorsalJugador = j.getDorsal();
                   InterfazPartido.getInstancia().add_JugadoresLocal_Tabla(i,nomJugador,apellidosJugador,dorsalJugador);
                   if(i==0)
                       // OBTENER LAS 1º ESTADISTICAS EN LA FICHA DEL ACTA
                        EstadisticaBD.getInstancia().getEstadística(j.getJugador().getIdJugador(), idPartido);
                   i++;
                }
               
            }
           // MOSTRAR LAS 1º ESTADISTICAS EN LA FICHA DEL ACTA
           //InterfazPartido.getInstancia().mostrarEstadisticas()               
                return false;
  }

  /**
   *
   * @param Estadisticas
   */
  public boolean modificarActa(String[] Estadisticas){
    return false;
  }

  /**
   *
   * @param Estadisticas
   */
/* ****  public boolean deleteEstadisticas(String[] Estadisticas){
    return false;
  }*/ //¿Y el diagrama de secuencia?

  /**
   *
   * @param Estadisticas
   */
  public Boolean VerficiarDatosEstadisticas(String[] Datos){

            try{
                if (Integer.parseInt(Datos[0]) < 0) {
                    return false;
                }
                if (Integer.parseInt(Datos[1]) < 0) {
                    return false;
                }
                if (Integer.parseInt(Datos[2]) < 0) {
                    return false;
                }
                if (Integer.parseInt(Datos[3]) < 0) {
                    return false;
                }
                if (Integer.parseInt(Datos[4]) < 0) {
                    return false;
                }
                if (Integer.parseInt(Datos[5]) < 0) {
                    return false;
                }
                if (Integer.parseInt(Datos[6]) < 0) {
                    return false;
                }
                if (Integer.parseInt(Datos[7]) < 0) {
                    return false;
                }
                if (Integer.parseInt(Datos[8]) < 0) {
                    return false;
                }
                if (Integer.parseInt(Datos[9]) < 0) {
                    return false;
                }
                if (Integer.parseInt(Datos[10]) < 0) {
                    return false;
                }
                if (Integer.parseInt(Datos[11]) < 0) {
                    return false;
                }
                if (Integer.parseInt(Datos[12]) < 0) {
                    return false;
                }
                if (Integer.parseInt(Datos[13]) < 0) {
                    return false;
                }
            }catch (NumberFormatException e){
                return false;
            }

            return true;
  }

//******************************************************************************       
        /**
   *
   * @param Datos
   */
  public boolean addParticipa(String[] Datos){
           
            Boolean salida = false;
            Integer IdEquipo = null;
            Integer IdCompt = competiciones[competicion_activa].getIdCompeticion();
            if(!EquipoBD.getIntance().getEquipos(Datos[0], Datos[2], Datos[1],Datos[3]).isEmpty()) {
                IdEquipo = EquipoBD.getIntance().getEquipos(Datos[0], Datos[2], Datos[1],Datos[3]).get(0).getIdEquipo();

                Participa part = new Participa(IdEquipo, IdCompt);
                if(ParticipaBD.getInstancia().addParticipa(part) != null) {
                    InterfazCompeticion.getInstancia().mostrarMensaje("EQUIPO AÑADIDO A COMPETICION CON EXITO","",1);                
                    salida = true;
                }else{
                    InterfazCompeticion.getInstancia().mostrarMensaje("EQUIPO NO AÑADIDO A COMPETICION","ERROR",0);
                }
            }
             return salida;
  }
        /**
   *
   * @param Datos
   */
  public boolean deleteParticipa(String[] Datos){
           
            Boolean salida = false;
           
            Integer IdEquipo = null;
            Integer IdCompt = competiciones[competicion_activa].getIdCompeticion();
                if(!EquipoBD.getIntance().getEquipos(Datos[0], Datos[2], Datos[1], Datos[3]).isEmpty()) {
                    IdEquipo = EquipoBD.getIntance().getEquipos(Datos[0], Datos[2], Datos[1], Datos[3]).get(0).getIdEquipo();

                    Participa part = new Participa(IdEquipo, IdCompt);
                    if(ParticipaBD.getInstancia().deleteParticipa(part) != false) {
                        InterfazCompeticion.getInstancia().mostrarMensaje("EQUIPO ELIMINADO DE COMPETICION CON EXITO","",1);                
                        salida = true;
                    }else{
                        InterfazCompeticion.getInstancia().mostrarMensaje("EQUIPO NO ELIMINANDO DE COMPETICION","ERROR",0);
                    }
                }           

            return salida;
  }
       
  /**
   *
   * @param IdEquipo
   * @param IdCompeticion
   */
        public Participa[] getParticipa(Integer IdEquipo, Integer IdCompeticion){
    return null;
  }       
  /**
   *
   * @param Participa
   */
  public boolean updateParticipa(String[] Participa){
    return false;
  }
       
       
        public void actualizarCompeticionActiva(int num){
          
            this.competicion_activa=num;
          
        }
         public void actualizarJornadaActiva(int num){
            this.jornada_activa=num;
        }
         public void actualizarPartidoActivo(int num){
            this.partido_activo=num;
        }

    public void listarEquiposActivos() {
        String est; Integer fila =0;
        List<Equipo> al = EquipoBD.getIntance().getEquipos("",
                        competiciones[competicion_activa].getCategoria(),
                        competiciones[competicion_activa].getSexo().toString(),"activo");
       
        Equipo[] equipos = al.toArray(new Equipo[al.size()]);
       
        if (equipos.length > 0){ // Se han encontrado competiciones

            for(int i=0; i <equipos.length; i++){

                if(ParticipaBD.getInstancia().getParticipa(equipos[i].getIdEquipo(),
                            competiciones[competicion_activa].getIdCompeticion())== null){
                       
                        if(equipos[i].getEstado()) {
                            est ="activo";
                        }
                        else {
                            est= "baja";
                        }
                        //System.out.println("equipo no participa:"+equipos[i].getNombre());
                        InterfazCompeticion.getInstancia().add_Equipo_Tabla(fila,
                                    equipos[i].getNombre(), equipos[i].getGenero().toString(),
                                            equipos[i].getCategoria(), est );
                        fila++;
                }
            }

        }
    }
   
    public void listarEquiposEnCompeticion(){
        String est; Integer fila=0;
        List<Equipo> al = EquipoBD.getIntance().getEquipos("",
                        competiciones[competicion_activa].getCategoria(),
                        competiciones[competicion_activa].getSexo().toString(),"activo");
       
        Equipo[] equipos = al.toArray(new Equipo[al.size()]);
         if (equipos.length > 0){ // Se han encontrado competiciones
               
                for(int i=0; i <equipos.length; i++){

                    if(ParticipaBD.getInstancia().getParticipa(equipos[i].getIdEquipo(),
                            competiciones[competicion_activa].getIdCompeticion())!= null){
                       
                        if(equipos[i].getEstado()) {
                            est ="activo";
                        }
                        else {
                            est= "baja";
                        }
                        InterfazCompeticion.getInstancia().add_Equipo_Tabla(fila,
                                    equipos[i].getNombre(), equipos[i].getGenero().toString(),
                                            equipos[i].getCategoria(), est );
                        fila ++;
                    }
                }

            }
   
    }
   
   
    public Boolean getClasificacion(String[] Datos){
       
        //CompeticionBD.getInstancia().getClasificacion(Comp);
       
        return null;
   
    }

    public void getClasificacion() {
       
        List<Partido> Lpartidos=new ArrayList<Partido>();   // lista de todos los partidos (en todas las jornadas) de la competicion
        String[] jornada= {""};   // para consultar todas las jornadas
        consultarJornada(jornada)//actualizar this.jornadas
        //System.out.println(jornadas.length);
        for (int i=0; i< jornadas.length;i++) {
            Partido[] p =PartidoBD.getInstancia().getPartido
                    (jornadas[i].getIdJornada(), null, null, null, null);
            //if (p.length>0)System.out.println("Partido numero "+p[0].getIdPartido());
            if(p.length>0) Lpartidos.addAll(Arrays.asList(p));
        }
       
        Map<Integer, Integer> clasificacioon = sortByValue(CompeticionBD.getInstancia().getClasificacion(Lpartidos));
        int posicion =0;
        for (Integer key : clasificacioon.keySet()) {
            //System.out.println(" Puntos: "+sortedMap.get(key1) +" IdGanador: "+key1);
            String nombre = EquipoBD.getIntance().getEquipo(key).getNombre();
            InterfazCompeticion.getInstancia().add_Clasificacion_Tabla(posicion, nombre, clasificacioon.get(key));
           posicion++;    
        }

    }

    static Map sortByValue(Map map) {
        List list = new LinkedList(map.entrySet());
        Collections.sort(list, new Comparator() {
             public int compare(Object o1, Object o2) {
                  return ((Comparable) ((Map.Entry) (o2)).getValue())
                 .compareTo(((Map.Entry) (o1)).getValue());
             }
        });

       Map result = new LinkedHashMap();
       for (Iterator it = list.iterator(); it.hasNext();) {
           Map.Entry entry = (Map.Entry)it.next();
           result.put(entry.getKey(), entry.getValue());
       }
       return result;
    }
}
TOP

Related Classes of Controladores.ControladorCompeticion

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.