From eed8a4134b71b47859ed535b2328cafe9ff7d805 Mon Sep 17 00:00:00 2001 From: Giovanni Di Grezia Date: Wed, 18 Dec 2013 23:12:52 +0100 Subject: [PATCH] Creato l'ordinamento per il visualizza_storico --- .../info13d/GestioneCatalogo/Catalogo.java | 80 ++++++++++++++++--- 1 file changed, 68 insertions(+), 12 deletions(-) diff --git a/it/unisa/info13d/GestioneCatalogo/Catalogo.java b/it/unisa/info13d/GestioneCatalogo/Catalogo.java index f91c000..776ed1a 100644 --- a/it/unisa/info13d/GestioneCatalogo/Catalogo.java +++ b/it/unisa/info13d/GestioneCatalogo/Catalogo.java @@ -771,19 +771,75 @@ public class Catalogo{ public void visualizzaStorico(String user) throws FileNotFoundException, ClassNotFoundException, IOException { - Entry userLogged = Access.get_user_data(user); - System.out.println("########### STORICO ###########"); - ArrayList storico = userLogged.getStorico(); - for(StoricoItem record: storico) - { - GregorianCalendar partenza = record.getData_acquisto(); - int giornoP = partenza.get(Calendar.DAY_OF_MONTH); - int meseP = partenza.get(Calendar.MONTH); - int annoP = partenza.get(Calendar.YEAR); - System.out.println("| deal: "+record.getDescription()+"| Data Acquisto: "+giornoP+"/"+(meseP+1)+"/"+annoP+"| Prezzo: "+record.getPrezzo()); - } + Scanner reader = new Scanner(System.in); + + + System.out.println("1 --> Ordina Per Data di Acquisto"); + System.out.println("2 --> Ordina Per Costo Prodotto"); + + String choice; + choice = reader.nextLine(); + for ( ; !(choice.equals("1")) && !(choice.equals("2")) ;){ + System.out.println("Scelta Errata. Riprovare"); + choice = reader.nextLine(); + } + + Entry userLogged = Access.get_user_data(user); + System.out.println("########### STORICO ###########"); + ArrayList storico = userLogged.getStorico(); + + if (choice.equals("1")){ + + + class CompareDataAcquisto implements Comparator { + + @Override + public int compare(StoricoItem e1, StoricoItem e2) { + + if (e1.getData_acquisto().getTimeInMillis() < e2.getData_acquisto().getTimeInMillis()) + return -1; + return 1; + + } + } + + Collections.sort(storico,new CompareDataAcquisto()); + print_storico(storico); + + } else { + + class ComparePrezzo implements Comparator { + + @Override + public int compare(StoricoItem e1, StoricoItem e2) { + + if (e1.getPrezzo() < e2.getPrezzo()) + return -1; + return 1; + + } + } + + Collections.sort(storico,new ComparePrezzo()); + print_storico (storico); + + } + + } - + + protected void print_storico (ArrayList in){ + + for(StoricoItem record: in) + { + GregorianCalendar partenza = record.getData_acquisto(); + int giornoP = partenza.get(Calendar.DAY_OF_MONTH); + int meseP = partenza.get(Calendar.MONTH); + int annoP = partenza.get(Calendar.YEAR); + System.out.println("| deal: "+record.getDescription()+"| Data Acquisto: "+giornoP+"/"+(meseP+1)+"/"+annoP+"| Prezzo: "+record.getPrezzo()); + } + + } public void visualizzaVacanza(Vacanze dealVacanza) {