forked from IF-LK-2020/stundenplan
Sortieren nach Fächern und Räumen hinzugefügt
This commit is contained in:
@@ -38,26 +38,43 @@ public class Stundenplan implements SelectionListener {
|
||||
|
||||
// Lehrer abfragen und ein Auswahlfeld erstellen, dass in der
|
||||
// GUI angezeigt wird, um den angezeigten Stundenplan anzupassen
|
||||
dbc.executeStatement("SELECT kuerzel FROM lehrer");
|
||||
dbc.executeStatement("SELECT kuerzel FROM lehrer ORDER BY kuerzel");
|
||||
r = dbc.getCurrentQueryResult();
|
||||
String[] teachers = new String[r.getRowCount()];
|
||||
String[] lehrer = new String[r.getRowCount()];
|
||||
for (int i = 0; i < r.getRowCount(); i++) {
|
||||
teachers[i] = r.getData()[i][0];
|
||||
lehrer[i] = r.getData()[i][0];
|
||||
}
|
||||
gui.addFilter("Lehrer", teachers);
|
||||
gui.addFilter("Lehrer", lehrer);
|
||||
// Das gleiche für die klassen
|
||||
dbc.executeStatement("SELECT bezeichner FROM klassen");
|
||||
dbc.executeStatement("SELECT bezeichner FROM klassen ORDER BY bezeichner");
|
||||
r = dbc.getCurrentQueryResult();
|
||||
String[] klassen = new String[r.getRowCount()];
|
||||
for (int i = 0; i < r.getRowCount(); i++) {
|
||||
klassen[i] = r.getData()[i][0];
|
||||
}
|
||||
gui.addFilter("Klassen", klassen);
|
||||
// Und für die Räume:
|
||||
dbc.executeStatement("SELECT DISTINCT Raum FROM Unterrichtsstunden ORDER BY Raum");
|
||||
r = dbc.getCurrentQueryResult();
|
||||
String[] räume = new String[r.getRowCount()];
|
||||
for (int i = 0; i < r.getRowCount(); i++) {
|
||||
räume[i] = r.getData()[i][0];
|
||||
}
|
||||
gui.addFilter("Räume", räume);
|
||||
// Und die Fächer:
|
||||
dbc.executeStatement("SELECT DISTINCT Fach FROM Unterrichtsstunden ORDER BY Fach");
|
||||
r = dbc.getCurrentQueryResult();
|
||||
String[] fächer = new String[r.getRowCount()];
|
||||
for (int i = 0; i < r.getRowCount(); i++) {
|
||||
fächer[i] = r.getData()[i][0];
|
||||
}
|
||||
gui.addFilter("Fächer", fächer);
|
||||
// GUI anzeigen und Verhalten bei Interaktion festlegen
|
||||
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
gui.addSelectionListener(this); // GUI ruft Methode selectionChanged auf, wenn sich eine Auswahlbox ändert.
|
||||
gui.setLocationRelativeTo(null);
|
||||
gui.setVisible(true);
|
||||
selectionChanged("Lehrer", lehrer[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -95,7 +112,7 @@ public class Stundenplan implements SelectionListener {
|
||||
"Raum " + data[i][1], // Untertitel
|
||||
data[i][2], // Beschreibungstext
|
||||
pNewValue, // Fußzeile
|
||||
new Color(-16711936) // Farbe (Objekt der Klasse Color)
|
||||
new Color(bestimmeFarbe(data[i][0])) // Farbe (Objekt der Klasse Color)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -108,7 +125,10 @@ public class Stundenplan implements SelectionListener {
|
||||
gui.removeAllLessons();
|
||||
|
||||
// Neue Daten aus der Datenbank abfragen.
|
||||
dbc.executeStatement("");
|
||||
dbc.executeStatement(
|
||||
"SELECT Fach,Raum,Lehrer_Kürzel,Tag,Stunde FROM Unterrichtsstunden LEFT OUTER JOIN sind_in_Unterrichtsstunden"
|
||||
+ " WHERE sind_in_Unterrichtsstunden.Stunden_ID = Unterrichtsstunden.StundenId AND sind_in_Unterrichtsstunden.Klassen_Bezeichner LIKE \""
|
||||
+ pNewValue + "\"");
|
||||
QueryResult r = dbc.getCurrentQueryResult();
|
||||
|
||||
// Falls es ein Ergebnis gibt ...
|
||||
@@ -121,12 +141,74 @@ public class Stundenplan implements SelectionListener {
|
||||
Integer.parseInt(data[i][4]) - 1, // Zeile im Plan (0=1. Stunde, ... ,9=10. Stunde)
|
||||
data[i][0], // Titel
|
||||
"Raum " + data[i][1], // Untertitel
|
||||
data[i][2], // Beschreibungstext
|
||||
pNewValue, // Fußzeile
|
||||
new Color(-16711936) // Farbe (Objekt der Klasse Color)
|
||||
pNewValue, // Beschreibungstext
|
||||
data[i][2], // Fußzeile
|
||||
new Color(bestimmeFarbe(data[i][0])) // Farbe (Objekt der Klasse Color)
|
||||
);
|
||||
}
|
||||
|
||||
// GUI-Fenster neu zeichnen, um neue Elemente anzuzeigen.
|
||||
gui.revalidate();
|
||||
gui.repaint();
|
||||
}
|
||||
} else if (pList == "Räume") {
|
||||
// Zuerst alle bisherigen Stunden aus der GUI entfernen
|
||||
gui.removeAllLessons();
|
||||
|
||||
// Neue Daten aus der Datenbank abfragen.
|
||||
dbc.executeStatement(
|
||||
"SELECT Fach,Klassen_bezeichner,Lehrer_Kürzel,Tag,Stunde FROM Unterrichtsstunden LEFT OUTER JOIN sind_in_Unterrichtsstunden "
|
||||
+ "WHERE Unterrichtsstunden.StundenID = sind_in_Unterrichtsstunden.Stunden_ID AND Raum LIKE \""
|
||||
+ pNewValue + "\"");
|
||||
QueryResult r = dbc.getCurrentQueryResult();
|
||||
|
||||
// Falls es ein Ergebnis gibt ...
|
||||
if (r != null) {
|
||||
String[][] data = r.getData();
|
||||
|
||||
// Neue Stunden in die GUI schreiben
|
||||
for (int i = 0; i < data.length; i++) {
|
||||
gui.addLesson(bestimmeSpalte(data[i][3]), // Spalte im Plan (0=Montag, ... ,4=Freitag)
|
||||
Integer.parseInt(data[i][4]) - 1, // Zeile im Plan (0=1. Stunde, ... ,9=10. Stunde)
|
||||
data[i][0], // Titel
|
||||
"Raum " + pNewValue, // Untertitel
|
||||
data[i][1], // Beschreibungstext
|
||||
data[i][2], // Fußzeile
|
||||
new Color(bestimmeFarbe(data[i][0])) // Farbe (Objekt der Klasse Color)
|
||||
);
|
||||
}
|
||||
|
||||
// GUI-Fenster neu zeichnen, um neue Elemente anzuzeigen.
|
||||
gui.revalidate();
|
||||
gui.repaint();
|
||||
}
|
||||
} else if (pList == "Fächer") {
|
||||
// Zuerst alle bisherigen Stunden aus der GUI entfernen
|
||||
gui.removeAllLessons();
|
||||
|
||||
// Neue Daten aus der Datenbank abfragen.
|
||||
dbc.executeStatement(
|
||||
"SELECT Raum,Klassen_bezeichner,Lehrer_Kürzel,Tag,Stunde FROM Unterrichtsstunden LEFT OUTER JOIN sind_in_Unterrichtsstunden "
|
||||
+ "WHERE Unterrichtsstunden.StundenID = sind_in_Unterrichtsstunden.Stunden_ID AND Fach LIKE \""
|
||||
+ pNewValue + "\"");
|
||||
QueryResult r = dbc.getCurrentQueryResult();
|
||||
|
||||
// Falls es ein Ergebnis gibt ...
|
||||
if (r != null) {
|
||||
String[][] data = r.getData();
|
||||
|
||||
// Neue Stunden in die GUI schreiben
|
||||
for (int i = 0; i < data.length; i++) {
|
||||
gui.addLesson(bestimmeSpalte(data[i][3]), // Spalte im Plan (0=Montag, ... ,4=Freitag)
|
||||
Integer.parseInt(data[i][4]) - 1, // Zeile im Plan (0=1. Stunde, ... ,9=10. Stunde)
|
||||
pNewValue, // Titel
|
||||
"Raum " + data[i][0], // Untertitel
|
||||
data[i][1], // Beschreibungstext
|
||||
data[i][2], // Fußzeile
|
||||
new Color(bestimmeFarbe(pNewValue) // Farbe (Objekt der Klasse Color)
|
||||
));
|
||||
}
|
||||
|
||||
// GUI-Fenster neu zeichnen, um neue Elemente anzuzeigen.
|
||||
gui.revalidate();
|
||||
gui.repaint();
|
||||
@@ -150,4 +232,43 @@ public class Stundenplan implements SelectionListener {
|
||||
return 5;
|
||||
}
|
||||
}
|
||||
|
||||
public int bestimmeFarbe(String pFach) {
|
||||
switch (pFach) {
|
||||
case "Biologie":
|
||||
return 0x00FF77;
|
||||
case "Mathematik":
|
||||
return 0x5000FF;
|
||||
case "Latein":
|
||||
return 0xFFBF00;
|
||||
case "Französisch":
|
||||
return 0xFF00E9;
|
||||
case "Informatik":
|
||||
return 0x000000;
|
||||
case "Englisch":
|
||||
return 0xFF0000;
|
||||
case "Kunst":
|
||||
return 0xFFFFFF;
|
||||
case "Deutsch":
|
||||
return 0x0055FF;
|
||||
case "Musik":
|
||||
return 0xFFD000;
|
||||
case "Sport":
|
||||
return 0x00FFE9;
|
||||
case "Philosophie":
|
||||
return 0x9800FF;
|
||||
case "Religion":
|
||||
return 0x632B00;
|
||||
case "Chemie":
|
||||
return 0xB600FF;
|
||||
case "Physik":
|
||||
return 0xFFE100;
|
||||
case "Erdkunde":
|
||||
return 0x00871F;
|
||||
case "Geschichte":
|
||||
return 0x844000;
|
||||
default:
|
||||
return 0xFFFFFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,7 +163,7 @@ public class StundenplanGUI extends JFrame implements ActionListener {
|
||||
*/
|
||||
public void removeAllLessons() {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int j = 0; j < 10; j++) {
|
||||
for (int j = 0; j < 12; j++) {
|
||||
removeLesson(i, j);
|
||||
}
|
||||
}
|
||||
@@ -235,7 +235,7 @@ public class StundenplanGUI extends JFrame implements ActionListener {
|
||||
c.fill = GridBagConstraints.NONE;
|
||||
c.weightx = 0.2;
|
||||
c.weighty = 0.5;
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (int i = 0; i < 12; i++) {
|
||||
c.gridy = i + 1;
|
||||
jpPlan.add(makeLabel((i + 1) + ". Stunde", fHeader), c);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user