FinestraPromossi

This commit is contained in:
La Programmatrice Verde
2025-12-04 11:46:34 +01:00
parent 4183ac2e5c
commit 32296cfa50
4 changed files with 75 additions and 21 deletions

View File

@@ -10,7 +10,6 @@ import com.googlecode.lanterna.gui2.BasicWindow;
import com.googlecode.lanterna.gui2.Button; import com.googlecode.lanterna.gui2.Button;
import com.googlecode.lanterna.gui2.Direction; import com.googlecode.lanterna.gui2.Direction;
import com.googlecode.lanterna.gui2.EmptySpace; import com.googlecode.lanterna.gui2.EmptySpace;
import com.googlecode.lanterna.gui2.Label;
import com.googlecode.lanterna.gui2.LinearLayout; import com.googlecode.lanterna.gui2.LinearLayout;
import com.googlecode.lanterna.gui2.Panel; import com.googlecode.lanterna.gui2.Panel;
import com.googlecode.lanterna.gui2.Window; import com.googlecode.lanterna.gui2.Window;
@@ -34,7 +33,7 @@ public class FinestraPrincipale extends BasicWindow {
() -> GlobalGUI.getGui().addWindowAndWait(new FinestraInserisciAlunno()))); () -> GlobalGUI.getGui().addWindowAndWait(new FinestraInserisciAlunno())));
contenutoFinestra.addComponent(new MenuItem("Trova voto più alto e più basso", contenutoFinestra.addComponent(new MenuItem("Trova voto più alto e più basso",
() -> GlobalGUI.getGui().addWindowAndWait(new FinestraTrovaAltoBasso()))); () -> GlobalGUI.getGui().addWindowAndWait(new FinestraTrovaAltoBasso())));
contenutoFinestra.addComponent(new MenuItem("Promossi", () -> openWindow("Promossi", "Questa è la finestra."))); contenutoFinestra.addComponent(new MenuItem("Promossi", () -> GlobalGUI.getGui().addWindowAndWait(new FinestraPromossi())));
contenutoFinestra.addComponent(new EmptySpace()); contenutoFinestra.addComponent(new EmptySpace());
@@ -47,16 +46,4 @@ public class FinestraPrincipale extends BasicWindow {
this.setComponent(contenutoFinestra); this.setComponent(contenutoFinestra);
} }
private static void openWindow(String title, String text) {
BasicWindow window = new BasicWindow(title);
Panel panel = new Panel(new LinearLayout(Direction.VERTICAL));
panel.addComponent(new Label(text));
panel.addComponent(new Button("Chiudi", window::close));
window.setComponent(panel);
GlobalGUI.getGui().addWindow(window);
}
} }

View File

@@ -4,10 +4,74 @@
*/ */
package gradeanalyzer; package gradeanalyzer;
import java.util.ArrayList;
import java.util.Collections;
import com.googlecode.lanterna.TerminalSize;
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.Window;
import com.googlecode.lanterna.gui2.table.Table;
/** /**
* *
* @author Verde * @author Verde
*/ */
public class FinestraPromossi { public class FinestraPromossi extends BasicWindow {
public FinestraPromossi() {
super("Promossi");
ArrayList<Window.Hint> 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));
final int MINIMO_PROMOZIONE = 6;
ArrayList<Valutazione> promossi = new ArrayList<>();
ArrayList<Valutazione> copiaValutazioni = new ArrayList<>();
for (Valutazione valutazione : GradeAnalyzer.valutazioni) {
copiaValutazioni.add(valutazione);
}
Collections.sort(copiaValutazioni);
for (Valutazione valutazione : copiaValutazioni) {
if (valutazione.getVoto() >= MINIMO_PROMOZIONE) {
promossi.add(valutazione);
}
}
// ---- Creazione tabella ----
Table<String> tabellaVoti = new Table<>("Nome", "Cognome", "Voto");
tabellaVoti.setPreferredSize(new TerminalSize(50, 10)); // larghezza 50, altezza 10
for (int i = 0; i < promossi.size(); i++) {
tabellaVoti.getTableModel().addRow(promossi.get(i).getNome(), promossi.get(i).getCognome(), Double.toString(promossi.get(i).getVoto()));
}
GradeAnalyzer.salva(promossi, GradeAnalyzer.PATH_PROMOSSI);
contenutoFinestra.addComponent(new Label("Tutte le valutazioni dei promossi, in ordine crescente:"));
contenutoFinestra.addComponent(new EmptySpace());
contenutoFinestra.addComponent(tabellaVoti);
contenutoFinestra.addComponent(new Button("Indietro", this::close));
this.setComponent(contenutoFinestra);
}
}
} }

View File

@@ -291,7 +291,7 @@ public class GradeAnalyzer {
return messaggio; return messaggio;
} }
static void trovaMigliorePeggiore() { /* static void trovaMigliorePeggiore() {
ArrayList<Valutazione> copiaValutazioni = new ArrayList<>(); ArrayList<Valutazione> copiaValutazioni = new ArrayList<>();
for (Valutazione valutazione : valutazioni) { for (Valutazione valutazione : valutazioni) {
copiaValutazioni.add(valutazione); copiaValutazioni.add(valutazione);
@@ -319,7 +319,7 @@ public class GradeAnalyzer {
for (int i = 0; i < nomi.length; i++) { for (int i = 0; i < nomi.length; i++) {
System.out.println(String.format(stringaFormattazione, nomi[i], cognomi[i], Double.toString(voti[i]))); System.out.println(String.format(stringaFormattazione, nomi[i], cognomi[i], Double.toString(voti[i])));
} }
} }*/
static void promossi() { static void promossi() {
final int MINIMO_PROMOZIONE = 6; final int MINIMO_PROMOZIONE = 6;

View File

@@ -1,4 +1,7 @@
Mario;Rossi;7 Mario;Rossi;7.0
Anna;Bianchi;5 Anna;Bianchi;5.0
Luca;Verdi;6 Luca;Verdi;6.0
Mia;Chan;9 Mia;Chan;9.0
stefano;okaka;7.0
toto;dinatale;2.0
Bogdan;Agiorgiuculesi;5.0