import java.io.*;
import Liste.*;
public class TestListe {


  private static void ClearScreen(){
     for (int i=0;i<25;i++) System.out.println("");
  }

  private static void menu(){
     System.out.println("Test classe ListaDoppia................................");
     System.out.println("");
     System.out.println("1.  Numero elementi nella lista");
     System.out.println("2.  elimina tutti gli elementi dalla lista");
     System.out.println("3.  controlla se la lista e' vuota");
     System.out.println("4.  inserisci un elemento in testa alla lista");
     System.out.println("5.  controlla se un elemento appartiene alla lista"); 
     System.out.println("6.  cancella un elemento dalla lista");
     System.out.println("7.  stampa gli elementi della lista");

     System.out.println("0.  ESCI");
     System.out.println("");
     System.out.println(".......................................................");
  }

  public static void main(String[] args) {

     int risposta;
     Integer new_el = null;
     ListaDoppia L = new ListaDoppia();
     boolean b;

     InputStream in=System.in;
     BufferedReader d = new  BufferedReader(new InputStreamReader(in));
     try{
        do {
            ClearScreen();
            menu();
            risposta = Integer.parseInt(d.readLine());
            b = true;
            switch (risposta){
              case 1 :// numero elementi
		  System.out.println("Totale elementi: " + L.size());
		  break;
              case 2 :// clear
		  L.clear();
       		  System.out.println("Eliminati tutti gli elementi dalla lista");
		  break;
              case 3 :// lista vuota?
                  if (L.isEmpty())
       		     System.out.println("La lista e' vuota");
                  else
		     System.out.println("La lista non e' vuota");
		  break;
              case 4 ://inserisci elemento
                 try {
                    System.out.print("elemento da inserire = ");
                    new_el = new Integer( d.readLine() );
                 } catch(Exception ex) { 
                      System.out.println("eccezione in lettura "+
                                         ex.toString()); 
                      b = false;
                 }
		 if (b) {
		     L.insert(new_el);
		     System.out.println("elemento inserito nella lista");
		 }
                 else
		     System.out.println("inserimento elemento non eseguito");
		 break;

              case 5 ://controlla se un elemento appartiene alla lista
                 try {
                    System.out.print("elemento = ");
                    new_el = new Integer( d.readLine() );
                 } catch(Exception ex) { 
                      System.out.println("eccezione in lettura  "+
                                         ex.toString()); 
                      b = false;
                 }

		 if (b)
                    if (L.contains(new_el))
		       System.out.println("elemento presente nella lista");
                    else
		       System.out.println("elemento non presente nella lista");
                 else		 
		    System.out.println("Appartenenza elemento non verificata");
		 break;
              case 6 ://cancellazione di un elemento dalla lista
                 try {
                    System.out.print("elemento da cancellare = ");
                    new_el = new Integer( d.readLine() );;
                 } catch(Exception ex) { 
                      System.out.println("eccezione in lettura  "+
                                         ex.toString()); 
                      b = false;
                 }

		 if (b)
                    if (L.remove(new_el))
		       System.out.println("elemento rimosso dalla lista");
                    else
		       System.out.println("elemento non rimosso dalla lista");
                 else		 
		    System.out.println("rimozione elemento non eseguita");
		 break;
              case 7 :// stampa elementi della lista
       		  System.out.println("Elementi della lista: " + 
                                      L.toString());
		  break;
            }

            System.out.println("(Premere Invio)");
            d.readLine();

        }while (risposta!=0);
     }catch (Exception ex){System.out.println(ex.toString());}
  }

}

