/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package gradeanalyzer; import java.util.ArrayList; import java.util.Collections; import com.googlecode.lanterna.TerminalSize; import com.googlecode.lanterna.graphics.Scrollable; import com.googlecode.lanterna.gui2.BasicWindow; import com.googlecode.lanterna.gui2.Button; import com.googlecode.lanterna.gui2.Direction; import com.googlecode.lanterna.gui2.EmptySpace; import com.googlecode.lanterna.gui2.GridLayout; import com.googlecode.lanterna.gui2.Label; import com.googlecode.lanterna.gui2.LinearLayout; import com.googlecode.lanterna.gui2.Panel; import com.googlecode.lanterna.gui2.TextBox; import com.googlecode.lanterna.gui2.TextGUIGraphics; import com.googlecode.lanterna.gui2.Window; import com.googlecode.lanterna.gui2.table.Table; import com.googlecode.lanterna.gui2.table.TableCellRenderer; /** * * @author Verde */ public class FinestraTrovaAltoBasso extends BasicWindow { public FinestraTrovaAltoBasso() { super("Trova voto più alto e più basso"); ArrayList windowHints = new ArrayList<>(); windowHints.add(Window.Hint.CENTERED); this.setHints(windowHints); if (GradeAnalyzer.isEmpty) { GlobalGUI.showErrorMessage("Inserire almeno la valutazione di uno studente prima di proseguire."); this.close(); } else { if (!GradeAnalyzer.isSaved) { GlobalGUI.showNoteMessage("Ci sono dati non salvati."); GlobalGUI.salvaValutazioni(); } Panel contenutoFinestra = new Panel(new LinearLayout(Direction.VERTICAL)); Panel pannelloMigliorePeggiore = new Panel(new GridLayout(2)); Panel pannelloValutazioniOrdinate = new Panel(new LinearLayout(Direction.VERTICAL)); ArrayList copiaValutazioni = new ArrayList<>(); for (Valutazione valutazione : GradeAnalyzer.valutazioni) { copiaValutazioni.add(valutazione); } String[] nomi = new String[GradeAnalyzer.valutazioni.size()]; String[] cognomi = new String[GradeAnalyzer.valutazioni.size()]; double[] voti = new double[GradeAnalyzer.valutazioni.size()]; Collections.sort(copiaValutazioni); for (int i = 0; i < copiaValutazioni.size(); i++) { nomi[i] = copiaValutazioni.get(i).getNome(); cognomi[i] = copiaValutazioni.get(i).getCognome(); voti[i] = copiaValutazioni.get(i).getVoto(); } pannelloMigliorePeggiore.addComponent(new Label("Voto migliore: ")); pannelloMigliorePeggiore.addComponent( new Label(Double.toString(voti[voti.length - 1]))); pannelloMigliorePeggiore.addComponent(new Label("Voto peggiore: ")); pannelloMigliorePeggiore.addComponent(new Label(Double.toString(voti[0]))); // ---- Creazione tabella ---- Table tabellaVoti = new Table<>("Nome", "Cognome", "Voto"); tabellaVoti.setPreferredSize(new TerminalSize(50, 10)); // larghezza 50, altezza 10 for (int i = 0; i < copiaValutazioni.size(); i++) { tabellaVoti.getTableModel().addRow(nomi[i], cognomi[i], Double.toString(voti[i])); } pannelloValutazioniOrdinate.addComponent(tabellaVoti); contenutoFinestra.addComponent(pannelloMigliorePeggiore); contenutoFinestra.addComponent(new EmptySpace()); contenutoFinestra.addComponent(new Label("Tutte le valutazioni, in ordine crescente:")); contenutoFinestra.addComponent(new EmptySpace()); contenutoFinestra.addComponent(pannelloValutazioniOrdinate); contenutoFinestra.addComponent(new Button("Indietro", this::close)); this.setComponent(contenutoFinestra); } } }