FinestraTrovaAltoBasso
This commit is contained in:
@@ -55,6 +55,7 @@ public class FinestraInserisciAlunno extends BasicWindow {
|
|||||||
GradeAnalyzer.isSaved = false;
|
GradeAnalyzer.isSaved = false;
|
||||||
GradeAnalyzer.isEmpty = false;
|
GradeAnalyzer.isEmpty = false;
|
||||||
double voto = -1;
|
double voto = -1;
|
||||||
|
int lunghezzaMassimaNomeCognome = 21;
|
||||||
|
|
||||||
boolean validitaCampoNome = !campoNome.getText().isBlank() && !campoNome.getText().isEmpty();
|
boolean validitaCampoNome = !campoNome.getText().isBlank() && !campoNome.getText().isEmpty();
|
||||||
boolean validitaCampoCognome = !campoCognome.getText().isBlank() && !campoCognome.getText().isEmpty();
|
boolean validitaCampoCognome = !campoCognome.getText().isBlank() && !campoCognome.getText().isEmpty();
|
||||||
@@ -64,18 +65,31 @@ public class FinestraInserisciAlunno extends BasicWindow {
|
|||||||
GlobalGUI.showErrorMessage("Il nome non può essere vuoto.");
|
GlobalGUI.showErrorMessage("Il nome non può essere vuoto.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (campoNome.getText().trim().length() > lunghezzaMassimaNomeCognome) {
|
||||||
|
GlobalGUI.showErrorMessage(
|
||||||
|
"Il nome non può superare la lunghezza di " + lunghezzaMassimaNomeCognome + " caratteri.");
|
||||||
|
}
|
||||||
|
|
||||||
if (!validitaCampoCognome) {
|
if (!validitaCampoCognome) {
|
||||||
GlobalGUI.showErrorMessage("Il cognome non può essere vuoto.");
|
GlobalGUI.showErrorMessage("Il cognome non può essere vuoto.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (campoCognome.getText().trim().length() > lunghezzaMassimaNomeCognome) {
|
||||||
|
GlobalGUI.showErrorMessage(
|
||||||
|
"Il cognome non può superare la lunghezza di " + lunghezzaMassimaNomeCognome + " caratteri.");
|
||||||
|
}
|
||||||
|
|
||||||
if (!validitaCampoVoto) {
|
if (!validitaCampoVoto) {
|
||||||
GlobalGUI.showErrorMessage("Il voto non può essere vuoto.");
|
GlobalGUI.showErrorMessage("Il voto non può essere vuoto.");
|
||||||
} else {
|
} else {
|
||||||
voto = voto(campoVoto.getText());
|
voto = voto(campoVoto.getText());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (voto != -1 && validitaCampoNome && validitaCampoCognome) {
|
if (voto != -1 && validitaCampoNome && validitaCampoCognome
|
||||||
inserisciDati(campoNome.getText().trim(), campoCognome.getText().trim(),
|
&& campoNome.getText().trim().length() <= lunghezzaMassimaNomeCognome
|
||||||
|
&& campoCognome.getText().trim().length() <= lunghezzaMassimaNomeCognome) {
|
||||||
|
|
||||||
|
inserisciDati(campoNome.getText(), campoCognome.getText(),
|
||||||
voto);
|
voto);
|
||||||
|
|
||||||
this.close();
|
this.close();
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class FinestraPrincipale extends BasicWindow {
|
|||||||
contenutoFinestra.addComponent(new MenuItem("Inserisci dati alunno",
|
contenutoFinestra.addComponent(new MenuItem("Inserisci dati alunno",
|
||||||
() -> 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",
|
||||||
() -> openWindow("Trova voto più alto e più basso", "Questa è la finestra.")));
|
() -> GlobalGUI.getGui().addWindowAndWait(new FinestraTrovaAltoBasso())));
|
||||||
contenutoFinestra.addComponent(new MenuItem("Promossi", () -> openWindow("Promossi", "Questa è la finestra.")));
|
contenutoFinestra.addComponent(new MenuItem("Promossi", () -> openWindow("Promossi", "Questa è la finestra.")));
|
||||||
|
|
||||||
contenutoFinestra.addComponent(new EmptySpace());
|
contenutoFinestra.addComponent(new EmptySpace());
|
||||||
|
|||||||
@@ -4,10 +4,88 @@
|
|||||||
*/
|
*/
|
||||||
package gradeanalyzer;
|
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
|
* @author Verde
|
||||||
*/
|
*/
|
||||||
public class FinestraTrovaAltoBasso {
|
public class FinestraTrovaAltoBasso extends BasicWindow {
|
||||||
|
public FinestraTrovaAltoBasso() {
|
||||||
|
|
||||||
|
super("Trova voto più alto e più basso");
|
||||||
|
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));
|
||||||
|
Panel pannelloMigliorePeggiore = new Panel(new GridLayout(2));
|
||||||
|
Panel pannelloValutazioniOrdinate = new Panel(new LinearLayout(Direction.VERTICAL));
|
||||||
|
|
||||||
|
ArrayList<Valutazione> 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<String> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -34,9 +34,9 @@ public class GradeAnalyzer {
|
|||||||
static final String PATH_VOTI = "./src/gradeanalyzer/data/voti.txt";
|
static final String PATH_VOTI = "./src/gradeanalyzer/data/voti.txt";
|
||||||
static final String PATH_PROMOSSI = "./src/gradeanalyzer/data/promossi.txt";
|
static final String PATH_PROMOSSI = "./src/gradeanalyzer/data/promossi.txt";
|
||||||
static final String ERRORE_GENERICO = "Opzione non valida.";
|
static final String ERRORE_GENERICO = "Opzione non valida.";
|
||||||
static ArrayList<Valutazione> valutazioni = valutazioniDaFile();
|
|
||||||
static boolean isSaved = true;
|
static boolean isSaved = true;
|
||||||
static boolean isEmpty = true;
|
static boolean isEmpty = true;
|
||||||
|
static ArrayList<Valutazione> valutazioni = valutazioniDaFile();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* public static void main(String[] args) {
|
* public static void main(String[] args) {
|
||||||
|
|||||||
Reference in New Issue
Block a user