forked from IF-LK-2020/stundenplan
Stunden der Lehrer eingefügt
This commit is contained in:
parent
23fb54ff2d
commit
b3f34b4994
|
@ -1,11 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-15">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="module" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry kind="src" path="src"/>
|
<classpathentry kind="src" path="src"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||||
<classpathentry kind="lib" path="+libs/sqlite-jdbc-3.36.0.3.jar"/>
|
<classpathentry kind="lib" path="+libs/sqlite-jdbc-3.36.0.3.jar"/>
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=15
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
org.eclipse.jdt.core.compiler.compliance=15
|
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
|
@ -10,5 +10,5 @@ org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
||||||
org.eclipse.jdt.core.compiler.release=enabled
|
org.eclipse.jdt.core.compiler.release=disabled
|
||||||
org.eclipse.jdt.core.compiler.source=15
|
org.eclipse.jdt.core.compiler.source=1.8
|
||||||
|
|
|
@ -3,98 +3,151 @@ import java.awt.*;
|
||||||
|
|
||||||
public class Stundenplan implements SelectionListener {
|
public class Stundenplan implements SelectionListener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main-Methode um das Programm (außerhalb von BlueJ) zu starten.
|
* Main-Methode um das Programm (außerhalb von BlueJ) zu starten.
|
||||||
*
|
*
|
||||||
* @param args
|
* @param args
|
||||||
*/
|
*/
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
// Setzen des "Look & Feel" des Programms
|
// Setzen des "Look & Feel" des Programms
|
||||||
try {
|
try {
|
||||||
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Programm starten
|
// Programm starten
|
||||||
new Stundenplan();
|
new Stundenplan();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Instanz des GUI des Programms
|
// Instanz des GUI des Programms
|
||||||
private StundenplanGUI gui;
|
private StundenplanGUI gui;
|
||||||
|
|
||||||
// Instanz der Datenbankverbindung
|
// Instanz der Datenbankverbindung
|
||||||
private DatabaseConnector dbc;
|
private DatabaseConnector dbc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Konstruktor des Hauptprogramms
|
* Konstruktor des Hauptprogramms
|
||||||
*/
|
*/
|
||||||
public Stundenplan() {
|
public Stundenplan() {
|
||||||
// Erstellen des GUIs
|
// Erstellen des GUIs
|
||||||
gui = new StundenplanGUI();
|
gui = new StundenplanGUI();
|
||||||
|
|
||||||
// Aufbau der Datenbankverbindung
|
// Aufbau der Datenbankverbindung
|
||||||
dbc = new DatabaseConnector("", 0, "stundenplan.db", "", "");
|
dbc = new DatabaseConnector("", 0, "stundenplan.db", "", "");
|
||||||
QueryResult r;
|
QueryResult r;
|
||||||
|
|
||||||
// Lehrer abfragen und ein Auswahlfeld erstellen, dass in der
|
// Lehrer abfragen und ein Auswahlfeld erstellen, dass in der
|
||||||
// GUI angezeigt wird, um den angezeigten Stundenplan anzupassen
|
// GUI angezeigt wird, um den angezeigten Stundenplan anzupassen
|
||||||
dbc.executeStatement("SELECT kuerzel FROM lehrer");
|
dbc.executeStatement("SELECT kuerzel FROM lehrer");
|
||||||
r = dbc.getCurrentQueryResult();
|
r = dbc.getCurrentQueryResult();
|
||||||
String[] teachers = new String[r.getRowCount()];
|
String[] teachers = new String[r.getRowCount()];
|
||||||
for (int i = 0; i < r.getRowCount(); i++) {
|
for (int i = 0; i < r.getRowCount(); i++) {
|
||||||
teachers[i] = r.getData()[i][0];
|
teachers[i] = r.getData()[i][0];
|
||||||
}
|
}
|
||||||
gui.addFilter("Lehrer", teachers);
|
gui.addFilter("Lehrer", teachers);
|
||||||
|
// Das gleiche für die klassen
|
||||||
|
dbc.executeStatement("SELECT bezeichner FROM klassen");
|
||||||
|
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);
|
||||||
|
// 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);
|
||||||
|
}
|
||||||
|
|
||||||
// GUI anzeigen und Verhalten bei Interaktion festlegen
|
/**
|
||||||
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
* Methode um auf Änderungen in der GUi zu reagieren. Sobald der nutzer die
|
||||||
gui.addSelectionListener(this); // GUI ruft Methode selectionChanged auf, wenn sich eine Auswahlbox ändert.
|
* Auswahl ändert, wird diese Methode aufgerufen. Der erste Parameter ist der
|
||||||
gui.setLocationRelativeTo(null);
|
* Name der Auswahlliste, die sich geändert hat (erster Parameter von
|
||||||
gui.setVisible(true);
|
* {@link StundenplanGUI#addFilter(String, String[])} oben) und der zweite ist
|
||||||
}
|
* der neue Wert der Auswahl.
|
||||||
|
*
|
||||||
|
* @param pList Name der Auswahlliste
|
||||||
|
* @param pNewValue Neuer Wert der Auswahl
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void selectionChanged(String pList, String pNewValue) {
|
||||||
|
if (pList == "Lehrer") {
|
||||||
|
// Zuerst alle bisherigen Stunden aus der GUI entfernen
|
||||||
|
gui.removeAllLessons();
|
||||||
|
|
||||||
/**
|
// Neue Daten aus der Datenbank abfragen.
|
||||||
* Methode um auf Änderungen in der GUi zu reagieren. Sobald der nutzer die
|
dbc.executeStatement(
|
||||||
* Auswahl ändert, wird diese Methode aufgerufen. Der erste Parameter ist der
|
"SELECT Fach,Raum,Klassen_bezeichner,Tag,Stunde FROM Unterrichtsstunden LEFT OUTER JOIN sind_in_Unterrichtsstunden "
|
||||||
* Name der Auswahlliste, die sich geändert hat (erster Parameter von
|
+ "WHERE sind_in_Unterrichtsstunden.Stunden_ID = Unterrichtsstunden.StundenId AND Unterrichtsstunden.Lehrer_Kürzel LIKE \""
|
||||||
* {@link StundenplanGUI#addFilter(String, String[])} oben) und der zweite ist
|
+ pNewValue + "\"");
|
||||||
* der neue Wert der Auswahl.
|
QueryResult r = dbc.getCurrentQueryResult();
|
||||||
*
|
|
||||||
* @param pList Name der Auswahlliste
|
|
||||||
* @param pNewValue Neuer Wert der Auswahl
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void selectionChanged(String pList, String pNewValue) {
|
|
||||||
if (pList == "Lehrer") {
|
|
||||||
// Zuerst alle bisherigen Stunden aus der GUI entfernen
|
|
||||||
gui.removeAllLessons();
|
|
||||||
|
|
||||||
// Neue Daten aus der Datenbank abfragen.
|
// Falls es ein Ergebnis gibt ...
|
||||||
// Hier gefakte Daten, die Struktur der Datenbank ist nicht vorgegeben.
|
if (r != null) {
|
||||||
dbc.executeStatement("SELECT 0,'Q2','405',kuerzel,0,0,'Informatik',-16711936 FROM lehrer WHERE kuerzel = '" + pNewValue + "'");
|
String[][] data = r.getData();
|
||||||
QueryResult r = dbc.getCurrentQueryResult();
|
|
||||||
|
|
||||||
// Falls es ein Ergebnis gibt ...
|
// Neue Stunden in die GUI schreiben
|
||||||
if (r != null) {
|
for (int i = 0; i < data.length; i++) {
|
||||||
String[][] data = r.getData();
|
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 " + data[i][1], // Untertitel
|
||||||
|
data[i][2], // Beschreibungstext
|
||||||
|
pNewValue, // Fußzeile
|
||||||
|
new Color(-16711936) // Farbe (Objekt der Klasse Color)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Neue Stunden in die GUI schreiben
|
// GUI-Fenster neu zeichnen, um neue Elemente anzuzeigen.
|
||||||
for (int i = 0; i < data.length; i++) {
|
gui.revalidate();
|
||||||
gui.addLesson(
|
gui.repaint();
|
||||||
Integer.parseInt(data[i][4]), // Spalte im Plan (0=Montag, ... ,4=Freitag)
|
}
|
||||||
Integer.parseInt(data[i][5]), // Zeile im Plan (0=1. Stunde, ... ,9=10. Stunde)
|
} else if (pList == "Klassen") {
|
||||||
data[i][6], // Titel
|
// Zuerst alle bisherigen Stunden aus der GUI entfernen
|
||||||
"Raum " + data[i][2], // Untertitel
|
gui.removeAllLessons();
|
||||||
data[i][1], // Beschreibungstext
|
|
||||||
data[i][3], // Fußzeile
|
|
||||||
new Color(Integer.parseInt(data[i][7])) // Farbe (Objekt der Klasse Color)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// GUI-Fenster neu zeichnen, um neue Elemente anzuzeigen.
|
// Neue Daten aus der Datenbank abfragen.
|
||||||
gui.revalidate();
|
dbc.executeStatement("");
|
||||||
gui.repaint();
|
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 " + data[i][1], // Untertitel
|
||||||
|
data[i][2], // Beschreibungstext
|
||||||
|
pNewValue, // Fußzeile
|
||||||
|
new Color(-16711936) // Farbe (Objekt der Klasse Color)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// GUI-Fenster neu zeichnen, um neue Elemente anzuzeigen.
|
||||||
|
gui.revalidate();
|
||||||
|
gui.repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int bestimmeSpalte(String pTag) {
|
||||||
|
switch (pTag) {
|
||||||
|
case "Montag":
|
||||||
|
return 0;
|
||||||
|
case "Dienstag":
|
||||||
|
return 1;
|
||||||
|
case "Mittwoch":
|
||||||
|
return 2;
|
||||||
|
case "Donnerstag":
|
||||||
|
return 3;
|
||||||
|
case "Freitag":
|
||||||
|
return 4;
|
||||||
|
default:
|
||||||
|
return 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue