Compare commits
41 Commits
Author | SHA1 | Date |
---|---|---|
Berat Kocak | 75f4b13683 | |
Berat Kocak | 0056bdea79 | |
Berat Kocak | 1c6d96fe39 | |
Berat Kocak | b11b2ae858 | |
Berat Kocak | aca14d1590 | |
Berat Kocak | 764af71698 | |
Berat Kocak | 1f2d4b206e | |
Berat Kocak | 50e138bc1f | |
Berat Kocak | 874397badc | |
Berat Kocak | 3dc5790cb7 | |
Berat Kocak | 12c332d77e | |
Berat Kocak | af5961609d | |
Berat Kocak | 5165365c17 | |
Berat Kocak | 462242c4e4 | |
Berat Kocak | 1bc6e0fe7b | |
Berat Kocak | eb3530f793 | |
Berat Kocak | 514303cad9 | |
Berat Kocak | 8b1904c138 | |
Berat Kocak | 560dca7110 | |
Berat Kocak | db2ee4f093 | |
Berat Kocak | 36d06efb2f | |
Berat Kocak | 68914473f9 | |
Berat Kocak | d7d4ca8318 | |
Berat Kocak | 8f36814b94 | |
Berat Kocak | 250df5fe99 | |
Berat Kocak | 3e70dacdc2 | |
Berat Kocak | bdb34ab86b | |
Berat Kocak | 3f4d6fb828 | |
Berat Kocak | ca43e912ac | |
Berat Kocak | c16835d93e | |
Berat | d63ddf4806 | |
Berat | 173c718940 | |
Berat | f13c38e510 | |
Berat | 39f7af08e7 | |
Berat | 82f37f745b | |
Berat | 9d72491ed8 | |
Berat | 8d368cb385 | |
Berat | 79730ba401 | |
Berat | c513feecca | |
Berat | 03d0a0f52e | |
Berat | 86c611ad15 |
|
@ -0,0 +1,2 @@
|
||||||
|
/.project
|
||||||
|
/.classpath
|
|
@ -1,8 +0,0 @@
|
||||||
|
|
||||||
public class Test {
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
System.out.println("XYZ");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -0,0 +1,743 @@
|
||||||
|
package domainBib;
|
||||||
|
|
||||||
|
import java.awt.Component;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import javax.swing.JLabel;
|
||||||
|
import guiBib.*;
|
||||||
|
|
||||||
|
public class Bibliothek {
|
||||||
|
static ArrayList<Buch> bücherListe = new ArrayList<>();
|
||||||
|
static ArrayList<CD> cdListe = new ArrayList<>();
|
||||||
|
static ArrayList<DVD> dvdListe = new ArrayList<>();
|
||||||
|
static ArrayList<Brettspiel> brettspielListe = new ArrayList<>();
|
||||||
|
static ArrayList<Videospiel> videospielListe = new ArrayList<>();
|
||||||
|
static ArrayList<Kunde> kundenListe = new ArrayList<>();
|
||||||
|
static ArrayList<Medium> katalog = new ArrayList<>();
|
||||||
|
//static ArrayList<Medium> zurzeitAusgeliehen = new ArrayList<>();
|
||||||
|
|
||||||
|
public static void makeEntries() {
|
||||||
|
Buch b1 = new Buch("Buch1", 2000, "Autor1", 10001);
|
||||||
|
Buch b2 = new Buch("Buch2", 2000, "Autor2",10002);
|
||||||
|
Buch b3 = new Buch("Buch3", 2000, "Autor3", 10003);
|
||||||
|
Buch b4 = new Buch("Buch4", 2000, "Autor4", 10004);
|
||||||
|
Buch b5 = new Buch("Buch5", 2000, "Autor5", 10005);
|
||||||
|
bücherListe.add(b1);
|
||||||
|
bücherListe.add(b2);
|
||||||
|
bücherListe.add(b3);
|
||||||
|
bücherListe.add(b4);
|
||||||
|
bücherListe.add(b5);
|
||||||
|
|
||||||
|
DVD d1 = new DVD("DVD1", 2000, "01.01.2020", 20001);
|
||||||
|
DVD d2 = new DVD("DVD2", 2000, "01.01.2020", 20002);
|
||||||
|
DVD d3 = new DVD("DVD3", 2000, "01.01.2020", 20003);
|
||||||
|
DVD d4 = new DVD("DVD4", 2000, "01.01.2020", 20004);
|
||||||
|
DVD d5 = new DVD("DVD5", 2000, "01.01.2020", 20005);
|
||||||
|
dvdListe.add(d1);
|
||||||
|
dvdListe.add(d2);
|
||||||
|
dvdListe.add(d3);
|
||||||
|
dvdListe.add(d4);
|
||||||
|
dvdListe.add(d5);
|
||||||
|
|
||||||
|
CD c1 = new CD("CD1", 2000, "01.01.2020", 30001);
|
||||||
|
CD c2 = new CD("CD2", 2000, "01.01.2020", 30002);
|
||||||
|
CD c3 = new CD("CD3", 2000, "01.01.2020", 30003);
|
||||||
|
CD c4 = new CD("CD4", 2000, "01.01.2020", 30004);
|
||||||
|
CD c5 = new CD("CD5", 2000, "01.01.2020", 30005);
|
||||||
|
cdListe.add(c1);
|
||||||
|
cdListe.add(c2);
|
||||||
|
cdListe.add(c3);
|
||||||
|
cdListe.add(c4);
|
||||||
|
cdListe.add(c5);
|
||||||
|
|
||||||
|
Brettspiel bs1 = new Brettspiel("Brettspiel1", 2000, "01.01.2020", 40001);
|
||||||
|
Brettspiel bs2 = new Brettspiel("Brettspiel2", 2000, "01.01.2020", 40002);
|
||||||
|
Brettspiel bs3 = new Brettspiel("Brettspiel3", 2000, "01.01.2020", 40003);
|
||||||
|
Brettspiel bs4 = new Brettspiel("Brettspiel4", 2000, "01.01.2020", 40004);
|
||||||
|
Brettspiel bs5 = new Brettspiel("Brettspiel5", 2000, "01.01.2020", 40005);
|
||||||
|
brettspielListe.add(bs1);
|
||||||
|
brettspielListe.add(bs2);
|
||||||
|
brettspielListe.add(bs3);
|
||||||
|
brettspielListe.add(bs4);
|
||||||
|
brettspielListe.add(bs5);
|
||||||
|
|
||||||
|
Videospiel v1 = new Videospiel("Videospiel1", 2000, "01.01.2020", 50001);
|
||||||
|
Videospiel v2 = new Videospiel("Videospiel2", 2000, "01.01.2020", 50002);
|
||||||
|
Videospiel v3 = new Videospiel("Videospiel3", 2000, "01.01.2020", 50003);
|
||||||
|
Videospiel v4 = new Videospiel("Videospiel4", 2000, "01.01.2020", 50004);
|
||||||
|
Videospiel v5 = new Videospiel("Videospiel5", 2000, "01.01.2020", 50005);
|
||||||
|
videospielListe.add(v1);
|
||||||
|
videospielListe.add(v2);
|
||||||
|
videospielListe.add(v3);
|
||||||
|
videospielListe.add(v4);
|
||||||
|
videospielListe.add(v5);
|
||||||
|
|
||||||
|
Kunde k1 = new Kunde(true, 1);
|
||||||
|
Kunde k2 = new Kunde(true, 2);
|
||||||
|
Kunde k3 = new Kunde(false, 3);
|
||||||
|
Kunde k4 = new Kunde(false, 4);
|
||||||
|
Kunde k5 = new Kunde(false, 5);
|
||||||
|
k1.addSchulden(5);
|
||||||
|
k2.addSchulden(5);
|
||||||
|
k3.addSchulden(10);
|
||||||
|
k4.addSchulden(10);
|
||||||
|
k5.addSchulden(10);
|
||||||
|
kundenListe.add(k1);
|
||||||
|
kundenListe.add(k2);
|
||||||
|
kundenListe.add(k3);
|
||||||
|
kundenListe.add(k4);
|
||||||
|
kundenListe.add(k5);
|
||||||
|
|
||||||
|
for(Buch b: bücherListe) {
|
||||||
|
katalog.add(b);
|
||||||
|
}
|
||||||
|
for(DVD d: dvdListe) {
|
||||||
|
katalog.add(d);
|
||||||
|
}
|
||||||
|
for(CD c: cdListe) {
|
||||||
|
katalog.add(c);
|
||||||
|
}
|
||||||
|
for(Brettspiel bs: brettspielListe) {
|
||||||
|
katalog.add(bs);
|
||||||
|
}
|
||||||
|
for(Videospiel vs: videospielListe) {
|
||||||
|
katalog.add(vs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Kunde validateLogin(int login) {
|
||||||
|
for(Kunde k: kundenListe) {
|
||||||
|
if(k.getKennnummer() == login) {
|
||||||
|
return k;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ArrayList<JLabel> buchAuflisten() {
|
||||||
|
ArrayList<JLabel> jlabelList = new ArrayList<>();
|
||||||
|
if(bücherListe.size() == 0) {
|
||||||
|
JLabel text = new JLabel("Keine Bücher mehr vorhanden.");
|
||||||
|
jlabelList.add(text);
|
||||||
|
return jlabelList;
|
||||||
|
}
|
||||||
|
for(Buch b: bücherListe) {
|
||||||
|
JLabel buch = new JLabel("Titel: " + b.getTitel()
|
||||||
|
+ ", Autor: " + b.getAutor()
|
||||||
|
+ ", Jahr: " + b.getJahr()
|
||||||
|
+ ", Kennnummer: " + b.getKennnummer());
|
||||||
|
jlabelList.add(buch);
|
||||||
|
}
|
||||||
|
return jlabelList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ArrayList<JLabel> dvdAuflisten() {
|
||||||
|
ArrayList<JLabel> jlabelList = new ArrayList<>();
|
||||||
|
if(dvdListe.size() == 0) {
|
||||||
|
JLabel text = new JLabel("Keine DVDs mehr vorhanden.");
|
||||||
|
jlabelList.add(text);
|
||||||
|
return jlabelList;
|
||||||
|
}
|
||||||
|
for(DVD d: dvdListe) {
|
||||||
|
JLabel dvd = new JLabel("Titel: " + d.getTitel()
|
||||||
|
+ ", Jahr: " + d.getJahr()
|
||||||
|
+ ", Kennnummer: " + d.getKennnummer());
|
||||||
|
jlabelList.add(dvd);
|
||||||
|
}
|
||||||
|
return jlabelList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ArrayList<JLabel> cdAuflisten() {
|
||||||
|
ArrayList<JLabel> jlabelList = new ArrayList<>();
|
||||||
|
if(cdListe.size() == 0) {
|
||||||
|
JLabel text = new JLabel("Keine CDs mehr vorhanden.");
|
||||||
|
jlabelList.add(text);
|
||||||
|
return jlabelList;
|
||||||
|
}
|
||||||
|
for(CD c: cdListe) {
|
||||||
|
JLabel cd = new JLabel("Titel: " + c.getTitel()
|
||||||
|
+ ", Jahr: " + c.getJahr()
|
||||||
|
+ ", Kennnummer: " + c.getKennnummer());
|
||||||
|
jlabelList.add(cd);
|
||||||
|
}
|
||||||
|
return jlabelList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ArrayList<JLabel> bsAuflisten() {
|
||||||
|
ArrayList<JLabel> jlabelList = new ArrayList<>();
|
||||||
|
if(brettspielListe.size() == 0) {
|
||||||
|
JLabel text = new JLabel("Keine Brettspiele mehr vorhanden.");
|
||||||
|
jlabelList.add(text);
|
||||||
|
return jlabelList;
|
||||||
|
}
|
||||||
|
for(Brettspiel bs: brettspielListe) {
|
||||||
|
JLabel bsp = new JLabel("Titel: " + bs.getTitel()
|
||||||
|
+ ", Jahr: " + bs.getJahr()
|
||||||
|
+ ", Kennnummer: " + bs.getKennnummer());
|
||||||
|
jlabelList.add(bsp);
|
||||||
|
}
|
||||||
|
return jlabelList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ArrayList<JLabel> vsAuflisten() {
|
||||||
|
ArrayList<JLabel> jlabelList = new ArrayList<>();
|
||||||
|
if(videospielListe.size() == 0) {
|
||||||
|
JLabel text = new JLabel("Keine Videospiele mehr vorhanden.");
|
||||||
|
jlabelList.add(text);
|
||||||
|
return jlabelList;
|
||||||
|
}
|
||||||
|
for(Videospiel v: videospielListe) {
|
||||||
|
JLabel vsp = new JLabel("Titel: " + v.getTitel()
|
||||||
|
+ ", Jahr: " + v.getJahr()
|
||||||
|
+ ", Kennnummer: " + v.getKennnummer());
|
||||||
|
jlabelList.add(vsp);
|
||||||
|
}
|
||||||
|
return jlabelList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ArrayList<JLabel> ausgelieheneListe(Kunde k) {
|
||||||
|
ArrayList<JLabel> jlabelList = new ArrayList<>();
|
||||||
|
ArrayList<Medium> ausgelieheneListe = k.returnAusgelieheneMedien();
|
||||||
|
if(ausgelieheneListe.size() == 0) {
|
||||||
|
JLabel text = new JLabel("Nichts ausgeliehen.");
|
||||||
|
jlabelList.add(text);
|
||||||
|
return jlabelList;
|
||||||
|
}
|
||||||
|
for(Medium m: ausgelieheneListe) {
|
||||||
|
if(m.getAutor() != null) {
|
||||||
|
JLabel med = new JLabel("Titel: " + m.getTitel()
|
||||||
|
+ ", Autor: " + m.getAutor()
|
||||||
|
+ ", Jahr: " + m.getJahr()
|
||||||
|
+ ", Kennnummer: " + m.getKennnummer()
|
||||||
|
+ ", ausgeliehen am: " + m.getAusleihdatum()
|
||||||
|
+ ", Verlängerungen: " + m.getVerlängerungen());
|
||||||
|
jlabelList.add(med);
|
||||||
|
}
|
||||||
|
if(m.getAutor() == null) {
|
||||||
|
JLabel med = new JLabel("Titel: " + m.getTitel()
|
||||||
|
+ ", Jahr: " + m.getJahr()
|
||||||
|
+ ", Kennnummer: " +m.getKennnummer()
|
||||||
|
+ ", ausgeliehen am: " + m.getAusleihdatum()
|
||||||
|
+ ", Verlängerungen: " + m.getVerlängerungen());
|
||||||
|
jlabelList.add(med);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return jlabelList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ausleihe(int kennnummer, String datum, Kunde k) {
|
||||||
|
for(Medium m: katalog) {
|
||||||
|
if(m.getKennnummer() == kennnummer) {
|
||||||
|
String text = m.getClass().toString();
|
||||||
|
int lastDotIndex = text.lastIndexOf(".");
|
||||||
|
String substring = text.substring(lastDotIndex + 1);
|
||||||
|
switch (substring) {
|
||||||
|
case "Buch":
|
||||||
|
Buch b = (Buch) m;
|
||||||
|
b.setAusleihdatum(datum);
|
||||||
|
bücherListe.remove(b);
|
||||||
|
k.addToList(b);
|
||||||
|
break;
|
||||||
|
case "DVD":
|
||||||
|
DVD d = (DVD) m;
|
||||||
|
d.setAusleihdatum(datum);
|
||||||
|
dvdListe.remove(d);
|
||||||
|
k.addToList(d);
|
||||||
|
break;
|
||||||
|
case "CD":
|
||||||
|
CD c = (CD) m;
|
||||||
|
c.setAusleihdatum(datum);
|
||||||
|
cdListe.remove(c);
|
||||||
|
k.addToList(c);
|
||||||
|
break;
|
||||||
|
case "Brettspiel":
|
||||||
|
Brettspiel bs = (Brettspiel) m;
|
||||||
|
bs.setAusleihdatum(datum);
|
||||||
|
brettspielListe.remove(bs);
|
||||||
|
k.addToList(bs);
|
||||||
|
break;
|
||||||
|
case "Videospiel":
|
||||||
|
Videospiel vs = (Videospiel) m;
|
||||||
|
vs.setAusleihdatum(datum);
|
||||||
|
videospielListe.remove(vs);
|
||||||
|
k.addToList(vs);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void rückgabe(int kennnummer, String rückgabeDatum, Kunde k) {
|
||||||
|
for(Medium m: katalog) {
|
||||||
|
if(m.getKennnummer() == kennnummer) {
|
||||||
|
String text = m.getClass().toString();
|
||||||
|
int lastDotIndex = text.lastIndexOf(".");
|
||||||
|
String substring = text.substring(lastDotIndex + 1);
|
||||||
|
switch (substring) {
|
||||||
|
case "Buch":
|
||||||
|
Buch b = (Buch) m;
|
||||||
|
double kostenBuch = berechneGebühren(b, kennnummer, rückgabeDatum);
|
||||||
|
String titelBuch = b.getTitel();
|
||||||
|
if(kostenBuch > 0) {
|
||||||
|
k.removeFromList(m);
|
||||||
|
BibliothekGUI.zahlungsFenster(kostenBuch, titelBuch, kennnummer, k);
|
||||||
|
k.addSchulden(kostenBuch);
|
||||||
|
bücherListe.add(b);
|
||||||
|
} else if(kostenBuch == 0){
|
||||||
|
bücherListe.add(b);
|
||||||
|
k.removeFromList(m);
|
||||||
|
BibliothekGUI.noMoneyOwed();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "DVD":
|
||||||
|
DVD d = (DVD) m;
|
||||||
|
double kostenDVD = berechneGebühren(d, kennnummer, rückgabeDatum);
|
||||||
|
String titelDVD = d.getTitel();
|
||||||
|
k.removeFromList(m);
|
||||||
|
if(kostenDVD>0) {BibliothekGUI.zahlungsFenster(kostenDVD, titelDVD, kennnummer, k);
|
||||||
|
k.addSchulden(kostenDVD);
|
||||||
|
dvdListe.add(d);
|
||||||
|
} else {
|
||||||
|
dvdListe.add(d);
|
||||||
|
k.removeFromList(m);
|
||||||
|
BibliothekGUI.noMoneyOwed();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "CD":
|
||||||
|
CD c = (CD) m;
|
||||||
|
double kostenCD = berechneGebühren(c, kennnummer, rückgabeDatum);
|
||||||
|
String titelCD = c.getTitel();
|
||||||
|
k.removeFromList(m);
|
||||||
|
if(kostenCD>0) {BibliothekGUI.zahlungsFenster(kostenCD, titelCD, kennnummer, k);
|
||||||
|
k.addSchulden(kostenCD);
|
||||||
|
cdListe.add(c);
|
||||||
|
} else {
|
||||||
|
cdListe.add(c);
|
||||||
|
k.removeFromList(m);
|
||||||
|
BibliothekGUI.noMoneyOwed();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "Brettspiel":
|
||||||
|
Brettspiel bs = (Brettspiel) m;
|
||||||
|
double kostenBS = berechneGebühren(bs, kennnummer, rückgabeDatum);
|
||||||
|
String titelBS = bs.getTitel();
|
||||||
|
k.removeFromList(m);
|
||||||
|
if(kostenBS>0) {BibliothekGUI.zahlungsFenster(kostenBS, titelBS, kennnummer, k);
|
||||||
|
k.addSchulden(kostenBS);
|
||||||
|
brettspielListe.add(bs);
|
||||||
|
} else {
|
||||||
|
brettspielListe.add(bs);
|
||||||
|
k.removeFromList(m);
|
||||||
|
BibliothekGUI.noMoneyOwed();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "Videospiel":
|
||||||
|
Videospiel vs = (Videospiel) m;
|
||||||
|
double kostenVS = berechneGebühren(vs, kennnummer, rückgabeDatum);
|
||||||
|
String titelVS = vs.getTitel();
|
||||||
|
k.removeFromList(m);
|
||||||
|
if(kostenVS>0) {BibliothekGUI.zahlungsFenster(kostenVS, titelVS, kennnummer, k);
|
||||||
|
k.addSchulden(kostenVS);
|
||||||
|
videospielListe.add(vs);
|
||||||
|
} else {
|
||||||
|
videospielListe.add(vs);
|
||||||
|
k.removeFromList(m);
|
||||||
|
BibliothekGUI.noMoneyOwed();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static double berechneGebühren(Buch b, int kennnummer, String rückgabeDatum) {
|
||||||
|
String ausleihDatum = b.getAusleihdatum();
|
||||||
|
double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
|
||||||
|
double kosten = 0;
|
||||||
|
if(tageAusgeliehen <= 28) {
|
||||||
|
return kosten = 0;
|
||||||
|
}
|
||||||
|
int dayCounter = 0;
|
||||||
|
while(tageAusgeliehen > 28) {
|
||||||
|
if(dayCounter >=8) {
|
||||||
|
kosten += 2;
|
||||||
|
dayCounter++;
|
||||||
|
tageAusgeliehen--;
|
||||||
|
}else if (dayCounter <= 7){
|
||||||
|
kosten += 1;
|
||||||
|
dayCounter++;
|
||||||
|
tageAusgeliehen--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return kosten;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static double berechneGebühren(DVD d, int kennnummer, String rückgabeDatum) {
|
||||||
|
String ausleihDatum = d.getAusleihdatum();
|
||||||
|
double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
|
||||||
|
double kosten = 0;
|
||||||
|
if(tageAusgeliehen <= 7) {
|
||||||
|
return kosten = 0;
|
||||||
|
}
|
||||||
|
int dayCounter = 0;
|
||||||
|
while(tageAusgeliehen >= 8) {
|
||||||
|
if(dayCounter >=8) {
|
||||||
|
kosten += 2;
|
||||||
|
dayCounter++;
|
||||||
|
tageAusgeliehen--;
|
||||||
|
}else if (dayCounter <= 7){
|
||||||
|
kosten += 1;
|
||||||
|
dayCounter++;
|
||||||
|
tageAusgeliehen--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return kosten;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static double berechneGebühren(CD c, int kennnummer, String rückgabeDatum) {
|
||||||
|
String ausleihDatum = c.getAusleihdatum();
|
||||||
|
double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
|
||||||
|
double kosten = 0;
|
||||||
|
if(tageAusgeliehen <= 14) {
|
||||||
|
return kosten = 0;
|
||||||
|
}
|
||||||
|
int dayCounter = 0;
|
||||||
|
while(tageAusgeliehen >= 15) {
|
||||||
|
if(dayCounter >=8) {
|
||||||
|
kosten += 2;
|
||||||
|
dayCounter++;
|
||||||
|
tageAusgeliehen--;
|
||||||
|
}else if (dayCounter <= 7){
|
||||||
|
kosten += 1;
|
||||||
|
dayCounter++;
|
||||||
|
tageAusgeliehen--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return kosten;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static double berechneGebühren(Brettspiel bs, int kennnummer, String rückgabeDatum) {
|
||||||
|
String ausleihDatum = bs.getAusleihdatum();
|
||||||
|
double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
|
||||||
|
double kosten = 0;
|
||||||
|
if(tageAusgeliehen <= 14) {
|
||||||
|
return kosten = 0;
|
||||||
|
}
|
||||||
|
int dayCounter = 0;
|
||||||
|
while(tageAusgeliehen >= 15) {
|
||||||
|
if(dayCounter >=8) {
|
||||||
|
kosten += 2;
|
||||||
|
dayCounter++;
|
||||||
|
tageAusgeliehen--;
|
||||||
|
}else if (dayCounter <= 7){
|
||||||
|
kosten += 1;
|
||||||
|
dayCounter++;
|
||||||
|
tageAusgeliehen--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return kosten;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static double berechneGebühren(Videospiel vs, int kennnummer, String rückgabeDatum) {
|
||||||
|
String ausleihDatum = vs.getAusleihdatum();
|
||||||
|
double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
|
||||||
|
double kosten = 0;
|
||||||
|
if(tageAusgeliehen <= 28) {
|
||||||
|
return kosten = 0;
|
||||||
|
}
|
||||||
|
int dayCounter = 0;
|
||||||
|
while(tageAusgeliehen >= 29) {
|
||||||
|
if(dayCounter >=8) {
|
||||||
|
kosten += 2;
|
||||||
|
dayCounter++;
|
||||||
|
tageAusgeliehen--;
|
||||||
|
}else if (dayCounter <= 7){
|
||||||
|
kosten += 1;
|
||||||
|
dayCounter++;
|
||||||
|
tageAusgeliehen--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return kosten;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean zahlungRegistrieren(int zahlung, double kosten) {
|
||||||
|
boolean isTrue = false;
|
||||||
|
if(kosten - zahlung <= 0) {
|
||||||
|
isTrue = true;
|
||||||
|
} else {
|
||||||
|
isTrue = false;
|
||||||
|
}
|
||||||
|
return isTrue;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static double findDifference(String ausleihDatum, String rückgabeDatum) {
|
||||||
|
LocalDate ausgeliehenTag = LocalDate.parse(ausleihDatum, DateTimeFormatter.ofPattern("dd.MM.yyyy"));
|
||||||
|
LocalDate rückgabeTag = LocalDate.parse(rückgabeDatum, DateTimeFormatter.ofPattern("dd.MM.yyyy"));
|
||||||
|
double differenzInTagen = ChronoUnit.DAYS.between(ausgeliehenTag, rückgabeTag);
|
||||||
|
return differenzInTagen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int bücherLänge() {
|
||||||
|
return bücherListe.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int dvdLänge() {
|
||||||
|
return dvdListe.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int cdLänge() {
|
||||||
|
return cdListe.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int bsLänge() {
|
||||||
|
return brettspielListe.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int vsLänge() {
|
||||||
|
return videospielListe.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getUserListLength() {
|
||||||
|
return kundenListe.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ArrayList<JLabel> nutzerAuflisten() {
|
||||||
|
ArrayList<JLabel> jlabelList = new ArrayList<>();
|
||||||
|
if(kundenListe.size() == 0) {
|
||||||
|
JLabel text = new JLabel("Keine Nutzer registriert.");
|
||||||
|
jlabelList.add(text);
|
||||||
|
return jlabelList;
|
||||||
|
}
|
||||||
|
for(Kunde k: kundenListe) {
|
||||||
|
JLabel cd = new JLabel("Kennnummer: " + k.getKennnummer()
|
||||||
|
+ ", Student: " + k.istStudent()
|
||||||
|
+ ", Schulden: " + k.getSchulden());
|
||||||
|
jlabelList.add(cd);
|
||||||
|
}
|
||||||
|
return jlabelList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getNewKennnummer() {
|
||||||
|
int newKennnummer = 0;
|
||||||
|
for(Kunde k: kundenListe) {
|
||||||
|
int nummer = k.getKennnummer();
|
||||||
|
if(nummer > newKennnummer) {
|
||||||
|
newKennnummer = nummer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
newKennnummer += 1;
|
||||||
|
return newKennnummer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void addCustomer(Kunde k) {
|
||||||
|
kundenListe.add(k);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean verlängerungMöglich(int kennnummer, Kunde k) {
|
||||||
|
ArrayList<Medium> ausgeliehenListe = k.returnAusgelieheneMedien();
|
||||||
|
for(Medium m: ausgeliehenListe) {
|
||||||
|
if(m.getKennnummer() == kennnummer) {
|
||||||
|
|
||||||
|
if(m.getVerlängerungen() > 0) {
|
||||||
|
m.setVerlängerung();
|
||||||
|
datumVerlängern(m, k);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void datumVerlängern(Medium m, Kunde k) {
|
||||||
|
String text = m.getClass().toString();
|
||||||
|
int lastDotIndex = text.lastIndexOf(".");
|
||||||
|
String substring = text.substring(lastDotIndex + 1);
|
||||||
|
String ausleihDatum = m.getAusleihdatum();
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
|
||||||
|
LocalDate ausgeliehenTag = LocalDate.parse(ausleihDatum, formatter);
|
||||||
|
LocalDate neuerTag = ausgeliehenTag.plusDays(28);
|
||||||
|
String neuesAusleihDatum = neuerTag.format(formatter);
|
||||||
|
m.setAusleihdatum(neuesAusleihDatum);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void changeOwedMenu2(String kennnummerStr, int amount) {
|
||||||
|
int kennnummer = Integer.parseInt(kennnummerStr);
|
||||||
|
for(Kunde k: kundenListe) {
|
||||||
|
if(k.getKennnummer() == kennnummer) {
|
||||||
|
k.setSchulden(amount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Kunde findKunde(int kennnummer) {
|
||||||
|
for(Kunde k: kundenListe) {
|
||||||
|
ArrayList<Medium> ausgelieheneMedienVonKunde = k.returnAusgelieheneMedien();
|
||||||
|
for(Medium m: ausgelieheneMedienVonKunde) {
|
||||||
|
if(m.getKennnummer() == kennnummer) {
|
||||||
|
return k;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void rückgabe2(int kennnummer, String rückgabeDatum, Kunde k) {
|
||||||
|
for(Medium m: katalog) {
|
||||||
|
if(m.getKennnummer() == kennnummer) {
|
||||||
|
String text = m.getClass().toString();
|
||||||
|
int lastDotIndex = text.lastIndexOf(".");
|
||||||
|
String substring = text.substring(lastDotIndex + 1);
|
||||||
|
switch (substring) {
|
||||||
|
case "Buch":
|
||||||
|
Buch b = (Buch) m;
|
||||||
|
double kostenBuch = berechneGebühren(b, kennnummer, rückgabeDatum);
|
||||||
|
String titelBuch = b.getTitel();
|
||||||
|
if(kostenBuch > 0) {
|
||||||
|
BibliothekGUI.zahlungsFenster2(kostenBuch, titelBuch, kennnummer, k);
|
||||||
|
k.addSchulden(kostenBuch);
|
||||||
|
bücherListe.add(b);
|
||||||
|
k.removeFromList(m);
|
||||||
|
} else if(kostenBuch == 0){
|
||||||
|
bücherListe.add(b);
|
||||||
|
k.removeFromList(m);
|
||||||
|
BibliothekGUI.noMoneyOwed();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "DVD":
|
||||||
|
DVD d = (DVD) m;
|
||||||
|
double kostenDVD = berechneGebühren(d, kennnummer, rückgabeDatum);
|
||||||
|
String titelDVD = d.getTitel();
|
||||||
|
if(kostenDVD>0) {BibliothekGUI.zahlungsFenster2(kostenDVD, titelDVD, kennnummer, k);
|
||||||
|
k.addSchulden(kostenDVD);
|
||||||
|
dvdListe.add(d);
|
||||||
|
k.removeFromList(m);
|
||||||
|
} else {
|
||||||
|
dvdListe.add(d);
|
||||||
|
k.removeFromList(m);
|
||||||
|
BibliothekGUI.noMoneyOwed();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "CD":
|
||||||
|
CD c = (CD) m;
|
||||||
|
double kostenCD = berechneGebühren(c, kennnummer, rückgabeDatum);
|
||||||
|
String titelCD = c.getTitel();
|
||||||
|
if(kostenCD>0) {BibliothekGUI.zahlungsFenster2(kostenCD, titelCD, kennnummer, k);
|
||||||
|
k.addSchulden(kostenCD);
|
||||||
|
cdListe.add(c);
|
||||||
|
k.removeFromList(m);
|
||||||
|
} else {
|
||||||
|
cdListe.add(c);
|
||||||
|
k.removeFromList(m);
|
||||||
|
BibliothekGUI.noMoneyOwed();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "Brettspiel":
|
||||||
|
Brettspiel bs = (Brettspiel) m;
|
||||||
|
double kostenBS = berechneGebühren(bs, kennnummer, rückgabeDatum);
|
||||||
|
String titelBS = bs.getTitel();
|
||||||
|
if(kostenBS>0) {BibliothekGUI.zahlungsFenster2(kostenBS, titelBS, kennnummer, k);
|
||||||
|
k.addSchulden(kostenBS);
|
||||||
|
brettspielListe.add(bs);
|
||||||
|
k.removeFromList(m);
|
||||||
|
} else {
|
||||||
|
brettspielListe.add(bs);
|
||||||
|
k.removeFromList(m);
|
||||||
|
BibliothekGUI.noMoneyOwed();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "Videospiel":
|
||||||
|
Videospiel vs = (Videospiel) m;
|
||||||
|
double kostenVS = berechneGebühren(vs, kennnummer, rückgabeDatum);
|
||||||
|
String titelVS = vs.getTitel();
|
||||||
|
if(kostenVS>0) {BibliothekGUI.zahlungsFenster2(kostenVS, titelVS, kennnummer, k);
|
||||||
|
k.addSchulden(kostenVS);
|
||||||
|
videospielListe.add(vs);
|
||||||
|
k.removeFromList(m);
|
||||||
|
} else {
|
||||||
|
videospielListe.add(vs);
|
||||||
|
k.removeFromList(m);
|
||||||
|
BibliothekGUI.noMoneyOwed();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ArrayList<JLabel> findMatchesFiltered(String searchTerm) {
|
||||||
|
ArrayList<JLabel> matches = new ArrayList<>();
|
||||||
|
for(Buch b: bücherListe) {
|
||||||
|
String titel = b.getTitel();
|
||||||
|
String autor = b.getAutor();
|
||||||
|
if(autor.contains(searchTerm) || titel.contains(searchTerm)) {
|
||||||
|
JLabel j = new JLabel("Buch namens: " + titel + " von " + b.getAutor() + " mit der Kennnummer: " + b.getKennnummer());
|
||||||
|
matches.add(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(CD c: cdListe) {
|
||||||
|
String titel = c.getTitel();
|
||||||
|
if(titel.contains(searchTerm)) {
|
||||||
|
JLabel j = new JLabel("CD namens: " + titel + " mit der Kennnummer: " + c.getKennnummer());
|
||||||
|
matches.add(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(DVD d: dvdListe) {
|
||||||
|
String titel = d.getTitel();
|
||||||
|
if(titel.contains(searchTerm)) {
|
||||||
|
JLabel j = new JLabel("DVD namens: " + titel + " mit der Kennnummer: " + d.getKennnummer());
|
||||||
|
matches.add(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(Brettspiel bp: brettspielListe) {
|
||||||
|
String titel = bp.getTitel();
|
||||||
|
if(titel.contains(searchTerm)) {
|
||||||
|
JLabel j = new JLabel("Brettspiel namens: " + titel + " mit der Kennnummer: " + bp.getKennnummer());
|
||||||
|
matches.add(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(Videospiel vs: videospielListe) {
|
||||||
|
String titel = vs.getTitel();
|
||||||
|
if(titel.contains(searchTerm)) {
|
||||||
|
JLabel j = new JLabel("Videospiel namens: " + titel + " mit der Kennnnummer: " + vs.getKennnummer());
|
||||||
|
matches.add(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return matches;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ArrayList<JLabel> findMatchesUnfiltered(String searchTerm) {
|
||||||
|
ArrayList<JLabel> matches = new ArrayList<>();
|
||||||
|
for(Medium m: katalog) {
|
||||||
|
String titel = m.getTitel();
|
||||||
|
if(titel.contains(searchTerm)) {
|
||||||
|
String text = m.getClass().toString();
|
||||||
|
int lastDotIndex = text.lastIndexOf(".");
|
||||||
|
String substring = text.substring(lastDotIndex + 1);
|
||||||
|
int kennnummer = m.getKennnummer();
|
||||||
|
JLabel j = new JLabel(substring + " namens: " + titel + " mit der Kennnummer: " + kennnummer);
|
||||||
|
matches.add(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return matches;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
package domainBib;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class Kunde {
|
||||||
|
private int kennnummer;
|
||||||
|
private boolean istStudent;
|
||||||
|
private double schulden;
|
||||||
|
private ArrayList<Medium> ausgelieheneMedien = new ArrayList<>();
|
||||||
|
|
||||||
|
public Kunde(boolean istStudent, int kennnummer) {
|
||||||
|
this.istStudent = istStudent;
|
||||||
|
this.kennnummer = kennnummer;
|
||||||
|
this.schulden = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getKennnummer() {
|
||||||
|
return kennnummer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSchulden(double a) {
|
||||||
|
schulden = a;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addSchulden(double b) {
|
||||||
|
schulden += b;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getSchulden(){
|
||||||
|
return schulden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addToList(Medium m) {
|
||||||
|
ausgelieheneMedien.add(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean istStudent() {
|
||||||
|
return istStudent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<Medium> returnAusgelieheneMedien(){
|
||||||
|
return ausgelieheneMedien;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int ausgelieheneMedienLänge() {
|
||||||
|
return ausgelieheneMedien.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeFromList(Medium m) {
|
||||||
|
ausgelieheneMedien.remove(m);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,321 @@
|
||||||
|
package domainBib;
|
||||||
|
|
||||||
|
abstract class Medium {
|
||||||
|
private String titel;
|
||||||
|
private int erscheinungsjahr;
|
||||||
|
private String fälligkeitsDatum;
|
||||||
|
private int kennnummer;
|
||||||
|
private String autor;
|
||||||
|
private String ausleihDatum;
|
||||||
|
private int verlängerungen;
|
||||||
|
|
||||||
|
|
||||||
|
abstract public String getTitel();
|
||||||
|
abstract public int getJahr();
|
||||||
|
abstract public String getAusleihdatum();
|
||||||
|
abstract public void setAusleihdatum(String a);
|
||||||
|
abstract public int getKennnummer();
|
||||||
|
abstract public int getVerlängerungen();
|
||||||
|
abstract public void setVerlängerung();
|
||||||
|
public String getAutor(){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Buch extends Medium{
|
||||||
|
private String titel;
|
||||||
|
private int erscheinungsjahr;
|
||||||
|
private String autor;
|
||||||
|
private String fälligkeitsDatum;
|
||||||
|
private int kennnummer;
|
||||||
|
private String ausleihDatum;
|
||||||
|
private int verlängerungen;
|
||||||
|
|
||||||
|
public Buch(String titel, int erscheinungsjahr, String autor, int kennnummer) {
|
||||||
|
this.titel = titel;
|
||||||
|
this.erscheinungsjahr = erscheinungsjahr;
|
||||||
|
this.autor = autor;
|
||||||
|
this.fälligkeitsDatum = fälligkeitsDatum;
|
||||||
|
this.kennnummer = kennnummer;
|
||||||
|
this.verlängerungen = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitel() {
|
||||||
|
return titel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getVerlängerungen() {
|
||||||
|
return verlängerungen;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int getJahr() {
|
||||||
|
return erscheinungsjahr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAutor() {
|
||||||
|
return autor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFälligkeitsDatum(String datum) {
|
||||||
|
this.fälligkeitsDatum = datum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFälligkeitsDatum() {
|
||||||
|
return this.fälligkeitsDatum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getKennnummer() {
|
||||||
|
return kennnummer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAusleihdatum() {
|
||||||
|
return ausleihDatum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVerlängerung() {
|
||||||
|
verlängerungen--;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAusleihdatum(String datum) {
|
||||||
|
this.ausleihDatum = datum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DVD extends Medium{
|
||||||
|
private String titel;
|
||||||
|
private int erscheinungsjahr;
|
||||||
|
private String fälligkeitsDatum;
|
||||||
|
private int kennnummer;
|
||||||
|
private String autor;
|
||||||
|
private String ausleihDatum;
|
||||||
|
private int verlängerungen;
|
||||||
|
|
||||||
|
public DVD(String titel, int erscheinungsjahr, String fälligkeitsDatum, int kennnummer) {
|
||||||
|
this.titel = titel;
|
||||||
|
this.erscheinungsjahr = erscheinungsjahr;
|
||||||
|
this.fälligkeitsDatum = fälligkeitsDatum;
|
||||||
|
this.kennnummer = kennnummer;
|
||||||
|
this.autor = null;
|
||||||
|
this.verlängerungen = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitel() {
|
||||||
|
return titel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getJahr() {
|
||||||
|
return erscheinungsjahr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getVerlängerungen() {
|
||||||
|
return verlängerungen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAusleihdatum(String datum) {
|
||||||
|
this.ausleihDatum = datum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVerlängerung() {
|
||||||
|
verlängerungen =- 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAutor() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDatum() {
|
||||||
|
return fälligkeitsDatum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getKennnummer() {
|
||||||
|
return kennnummer;
|
||||||
|
}
|
||||||
|
public void setFälligkeitsDatum(String datum) {
|
||||||
|
this.fälligkeitsDatum = datum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFälligkeitsDatum() {
|
||||||
|
return this.fälligkeitsDatum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAusleihdatum() {
|
||||||
|
return ausleihDatum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CD extends Medium{
|
||||||
|
private String titel;
|
||||||
|
private int erscheinungsjahr;
|
||||||
|
private String fälligkeitsDatum;
|
||||||
|
private int kennnummer;
|
||||||
|
private String autor;
|
||||||
|
private String ausleihDatum;
|
||||||
|
private int verlängerungen;
|
||||||
|
|
||||||
|
public CD(String titel, int erscheinungsjahr, String fälligkeitsDatum, int kennnummer) {
|
||||||
|
this.titel = titel;
|
||||||
|
this.erscheinungsjahr = erscheinungsjahr;
|
||||||
|
this.fälligkeitsDatum = fälligkeitsDatum;
|
||||||
|
this.kennnummer = kennnummer;
|
||||||
|
this.autor = null;
|
||||||
|
this.verlängerungen = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
public void setVerlängerung() {
|
||||||
|
verlängerungen =- 1;
|
||||||
|
}
|
||||||
|
public void setAusleihdatum(String datum) {
|
||||||
|
this.ausleihDatum = datum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitel() {
|
||||||
|
return titel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getJahr() {
|
||||||
|
return erscheinungsjahr;
|
||||||
|
}
|
||||||
|
public String getAutor() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
public int getVerlängerungen() {
|
||||||
|
return verlängerungen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDatum() {
|
||||||
|
return fälligkeitsDatum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getKennnummer() {
|
||||||
|
return kennnummer;
|
||||||
|
}
|
||||||
|
public void setFälligkeitsDatum(String datum) {
|
||||||
|
this.fälligkeitsDatum = datum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFälligkeitsDatum() {
|
||||||
|
return this.fälligkeitsDatum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAusleihdatum() {
|
||||||
|
return ausleihDatum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Brettspiel extends Medium{
|
||||||
|
private String titel;
|
||||||
|
private int erscheinungsjahr;
|
||||||
|
private String fälligkeitsDatum;
|
||||||
|
private int kennnummer;
|
||||||
|
private String autor;
|
||||||
|
private String ausleihDatum;
|
||||||
|
private int verlängerungen;
|
||||||
|
|
||||||
|
public Brettspiel(String titel, int erscheinungsjahr, String fälligkeitsDatum, int kennnummer) {
|
||||||
|
this.titel = titel;
|
||||||
|
this.erscheinungsjahr = erscheinungsjahr;
|
||||||
|
this.fälligkeitsDatum = fälligkeitsDatum;
|
||||||
|
this.kennnummer = kennnummer;
|
||||||
|
this.autor = null;
|
||||||
|
this.verlängerungen = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitel() {
|
||||||
|
return titel;
|
||||||
|
}
|
||||||
|
public void setVerlängerung() {
|
||||||
|
verlängerungen =- 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getJahr() {
|
||||||
|
return erscheinungsjahr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAutor() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDatum() {
|
||||||
|
return fälligkeitsDatum;
|
||||||
|
}
|
||||||
|
public int getVerlängerungen() {
|
||||||
|
return verlängerungen;
|
||||||
|
}
|
||||||
|
public int getKennnummer() {
|
||||||
|
return kennnummer;
|
||||||
|
}
|
||||||
|
public void setFälligkeitsDatum(String datum) {
|
||||||
|
this.fälligkeitsDatum = datum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFälligkeitsDatum() {
|
||||||
|
return this.fälligkeitsDatum;
|
||||||
|
}
|
||||||
|
public void setAusleihdatum(String datum) {
|
||||||
|
this.ausleihDatum = datum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAusleihdatum() {
|
||||||
|
return ausleihDatum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Videospiel extends Medium{
|
||||||
|
private String titel;
|
||||||
|
private int erscheinungsjahr;
|
||||||
|
private String fälligkeitsDatum;
|
||||||
|
private int kennnummer;
|
||||||
|
private String autor;
|
||||||
|
private String ausleihDatum;
|
||||||
|
private int verlängerungen;
|
||||||
|
|
||||||
|
public Videospiel(String titel, int erscheinungsjahr, String fälligkeitsDatum, int kennnummer) {
|
||||||
|
this.titel = titel;
|
||||||
|
this.erscheinungsjahr = erscheinungsjahr;
|
||||||
|
this.fälligkeitsDatum = fälligkeitsDatum;
|
||||||
|
this.kennnummer = kennnummer;
|
||||||
|
this.autor = null;
|
||||||
|
this.verlängerungen = 1;
|
||||||
|
}
|
||||||
|
public void setAusleihdatum(String datum) {
|
||||||
|
this.ausleihDatum = datum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitel() {
|
||||||
|
return titel;
|
||||||
|
}
|
||||||
|
public void setVerlängerung() {
|
||||||
|
verlängerungen =- 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getJahr() {
|
||||||
|
return erscheinungsjahr;
|
||||||
|
}
|
||||||
|
public int getVerlängerungen() {
|
||||||
|
return verlängerungen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAutor() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDatum() {
|
||||||
|
return fälligkeitsDatum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getKennnummer() {
|
||||||
|
return kennnummer;
|
||||||
|
}
|
||||||
|
public void setFälligkeitsDatum(String datum) {
|
||||||
|
this.fälligkeitsDatum = datum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFälligkeitsDatum() {
|
||||||
|
return this.fälligkeitsDatum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAusleihdatum() {
|
||||||
|
return ausleihDatum;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,746 @@
|
||||||
|
package guiBib;
|
||||||
|
|
||||||
|
import domainBib.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class BibliothekGUI extends JFrame implements ActionListener{
|
||||||
|
private static CardLayout cl = new CardLayout();
|
||||||
|
private static JPanel mainPanel = new JPanel(cl);
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
new BibliothekGUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
public BibliothekGUI() {
|
||||||
|
Bibliothek.makeEntries();
|
||||||
|
|
||||||
|
JPanel dateGrid = new JPanel(new GridLayout(1,4,10,10));
|
||||||
|
JLabel dateEntry = new JLabel("Datum eingeben: ");
|
||||||
|
String[] datumArray = {""};
|
||||||
|
JTextField dateInput = new JTextField(20);
|
||||||
|
JButton dateButton = new JButton("OK");
|
||||||
|
dateGrid.add(dateEntry);
|
||||||
|
dateGrid.add(dateInput);
|
||||||
|
dateGrid.add(dateButton);
|
||||||
|
JPanel loginPanel = new JPanel(new BorderLayout());
|
||||||
|
dateButton.addActionListener(e -> {
|
||||||
|
if(datumArray[0] != "") {
|
||||||
|
dateGrid.remove(dateGrid.getComponentCount() -1);
|
||||||
|
String newDate1 = dateInput.getText().toString();
|
||||||
|
datumArray[0] = newDate1;
|
||||||
|
JLabel dateState1 = new JLabel("Datum: " + datumArray[0]);
|
||||||
|
dateGrid.add(dateState1);
|
||||||
|
dateGrid.revalidate();
|
||||||
|
} else {
|
||||||
|
String newDate = dateInput.getText().toString();
|
||||||
|
datumArray[0] = newDate;
|
||||||
|
JLabel dateState = new JLabel("Datum: " + datumArray[0]);
|
||||||
|
dateGrid.add(dateState);
|
||||||
|
dateGrid.revalidate();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
loginPanel.add(dateGrid, BorderLayout.NORTH);
|
||||||
|
|
||||||
|
JLabel text1 = new JLabel("Login mit Kennnummer: ");
|
||||||
|
JPanel loginGrid = new JPanel(new BorderLayout());
|
||||||
|
loginGrid.add(text1, BorderLayout.NORTH);
|
||||||
|
JTextField field1 = new JTextField(20);
|
||||||
|
loginGrid.add(field1);
|
||||||
|
loginPanel.add(loginGrid, BorderLayout.CENTER);
|
||||||
|
JButton b0 = new JButton("Registrieren");
|
||||||
|
b0.addActionListener(e -> { nutzerAnlegen();});
|
||||||
|
JButton b3 = new JButton("Ohne Anmeldung fortfahren");
|
||||||
|
b3.addActionListener(e -> {browseMedia(datumArray[0]);});
|
||||||
|
JPanel buttonGrid = new JPanel(new GridLayout(1,2,10,10));
|
||||||
|
buttonGrid.add(b0);
|
||||||
|
buttonGrid.add(b3);
|
||||||
|
loginGrid.add(buttonGrid, BorderLayout.SOUTH);
|
||||||
|
JPanel bp = new JPanel(new GridLayout(1,2,10,10));
|
||||||
|
JButton b1 = new JButton("Abbrechen");
|
||||||
|
b1.addActionListener(e -> dispose());
|
||||||
|
JButton b2 = new JButton("OK");
|
||||||
|
b2.addActionListener(e -> {
|
||||||
|
String loginStr = field1.getText();
|
||||||
|
Integer login = Integer.parseInt(loginStr);
|
||||||
|
if(login == 1) {openAdmin();}else {
|
||||||
|
Kunde k = Bibliothek.validateLogin(login);
|
||||||
|
String text = k.getClass().toString();
|
||||||
|
int lastDotIndex = text.lastIndexOf(".");
|
||||||
|
String substring = text.substring(lastDotIndex + 1);
|
||||||
|
if(substring.equals("Kunde")) {openMainMenu(k, datumArray[0]);}
|
||||||
|
}});
|
||||||
|
bp.add(b1);
|
||||||
|
bp.add(b2);
|
||||||
|
loginPanel.add(bp, BorderLayout.SOUTH);
|
||||||
|
add(mainPanel);
|
||||||
|
setVisible(true);
|
||||||
|
setSize(1200, 700);
|
||||||
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
|
mainPanel.add(loginPanel, "loginPanel");
|
||||||
|
cl.show(mainPanel, "loginPanel");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void openMainMenu(Kunde k, String datum) {
|
||||||
|
JPanel mediumPanel = new JPanel(new GridLayout(7, 1, 10, 10));
|
||||||
|
|
||||||
|
JPanel dateGrid = new JPanel(new GridLayout(1,4,10,10));
|
||||||
|
JLabel dateEntry = new JLabel("Datum eingeben: ");
|
||||||
|
String[] datumArray = {datum};
|
||||||
|
JTextField dateInput = new JTextField(20);
|
||||||
|
JButton dateButton = new JButton("OK");
|
||||||
|
dateGrid.add(dateEntry);
|
||||||
|
dateGrid.add(dateInput);
|
||||||
|
dateGrid.add(dateButton);
|
||||||
|
JLabel dateState1 = new JLabel("Datum: " + datumArray[0]);
|
||||||
|
dateGrid.add(dateState1);
|
||||||
|
dateButton.addActionListener(e -> {
|
||||||
|
String newDate = dateInput.getText().toString();
|
||||||
|
datumArray[0] = newDate;
|
||||||
|
JLabel dateState = new JLabel("Datum: " + datumArray[0]);
|
||||||
|
dateGrid.remove(dateState1);
|
||||||
|
dateGrid.add(dateState);
|
||||||
|
dateGrid.revalidate();
|
||||||
|
});
|
||||||
|
mediumPanel.add(dateGrid, BorderLayout.NORTH);
|
||||||
|
|
||||||
|
JButton b0 = new JButton("Medien durchsuchen");
|
||||||
|
b0.addActionListener(e -> { medienDurchsuchenMenu(k);});
|
||||||
|
JButton b1 = new JButton("Ausleihe");
|
||||||
|
b1.addActionListener(e -> ausleihenMenü(k, datumArray[0]));
|
||||||
|
JButton b2 = new JButton("Rückgabe");
|
||||||
|
b2.addActionListener(e -> rückgabeMenü(k, datumArray[0]));
|
||||||
|
JButton b3 = new JButton("Meine Ausgeliehenen Medien");
|
||||||
|
b3.addActionListener(e -> myBooks(k));
|
||||||
|
JButton b4 = new JButton("Verlängern");
|
||||||
|
b4.addActionListener(e -> verlängern(k, datumArray[0]));
|
||||||
|
JButton b5= new JButton("Ausloggen");
|
||||||
|
b5.addActionListener(e -> cl.show(mainPanel, "loginPanel"));
|
||||||
|
mediumPanel.add(b0);
|
||||||
|
mediumPanel.add(b1);
|
||||||
|
mediumPanel.add(b2);
|
||||||
|
mediumPanel.add(b3);
|
||||||
|
mediumPanel.add(b4);
|
||||||
|
mediumPanel.add(b5);
|
||||||
|
mainPanel.add(mediumPanel, "mediumPanel");
|
||||||
|
cl.show(mainPanel, "mediumPanel");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void browseMedia(String datum) {
|
||||||
|
JPanel browsePanel = new JPanel(new GridLayout(7, 1, 10, 10));
|
||||||
|
JButton b1 = new JButton("Bücher");
|
||||||
|
Kunde k = null;
|
||||||
|
b1.addActionListener(e -> bookMenu(k));
|
||||||
|
JButton b2 = new JButton("DVDs");
|
||||||
|
b2.addActionListener(e -> dvdMenu(k));
|
||||||
|
JButton b3 = new JButton("CDs");
|
||||||
|
b3.addActionListener(e -> cdMenu(k));
|
||||||
|
JButton b4 = new JButton("Brettspiele");
|
||||||
|
b4.addActionListener(e -> bsMenu(k));
|
||||||
|
JButton b5 = new JButton("Videospiele");
|
||||||
|
b5.addActionListener(e -> vsMenu(k));
|
||||||
|
JButton b6 = new JButton("Rückgabe");
|
||||||
|
b6.addActionListener(e -> { rückgabeOhneUserID(datum);});
|
||||||
|
JButton b7 = new JButton("Zurück");
|
||||||
|
b7.addActionListener(e -> cl.show(mainPanel, "loginPanel"));
|
||||||
|
browsePanel.add(b1);
|
||||||
|
browsePanel.add(b2);
|
||||||
|
browsePanel.add(b3);
|
||||||
|
browsePanel.add(b4);
|
||||||
|
browsePanel.add(b5);
|
||||||
|
browsePanel.add(b6);
|
||||||
|
browsePanel.add(b7);
|
||||||
|
mainPanel.add(browsePanel, "browsePanel");
|
||||||
|
cl.show(mainPanel, "browsePanel");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void rückgabeOhneUserID(String datum) {
|
||||||
|
JPanel rückgabeOhneIdMenü = new JPanel(new BorderLayout());
|
||||||
|
//NORTH
|
||||||
|
JPanel dateGrid = new JPanel(new GridLayout(1,4,10,10));
|
||||||
|
JLabel dateEntry = new JLabel("Datum eingeben: ");
|
||||||
|
String[] datumArray = {datum};
|
||||||
|
JTextField dateInput = new JTextField(20);
|
||||||
|
JButton dateButton = new JButton("OK");
|
||||||
|
dateGrid.add(dateEntry);
|
||||||
|
dateGrid.add(dateInput);
|
||||||
|
dateGrid.add(dateButton);
|
||||||
|
JLabel dateState1 = new JLabel("Datum: " + datumArray[0]);
|
||||||
|
dateGrid.add(dateState1);
|
||||||
|
dateButton.addActionListener(e -> {
|
||||||
|
String newDate = dateInput.getText().toString();
|
||||||
|
datumArray[0] = newDate;
|
||||||
|
JLabel dateState = new JLabel("Datum: " + datumArray[0]);
|
||||||
|
dateGrid.remove(dateState1);
|
||||||
|
dateGrid.add(dateState);
|
||||||
|
dateGrid.revalidate();
|
||||||
|
});
|
||||||
|
rückgabeOhneIdMenü.add(dateGrid, BorderLayout.NORTH);
|
||||||
|
//CENTER
|
||||||
|
JPanel inputMenu = new JPanel(new GridLayout(2, 1, 10, 10));
|
||||||
|
JLabel text1 = new JLabel("Zu ausleihende Kennnummer des Mediums eingeben:");
|
||||||
|
JTextField inputField1 = new JTextField(20);
|
||||||
|
inputMenu.add(text1);
|
||||||
|
inputMenu.add(inputField1);
|
||||||
|
rückgabeOhneIdMenü.add(inputMenu, BorderLayout.CENTER);
|
||||||
|
//SOUTH
|
||||||
|
JPanel buttonGrid = new JPanel(new GridLayout(1, 2, 10,10));
|
||||||
|
JButton b1 = new JButton("Abbrechen");
|
||||||
|
b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel"));
|
||||||
|
JButton b2 = new JButton("OK");
|
||||||
|
buttonGrid.add(b1);
|
||||||
|
buttonGrid.add(b2);
|
||||||
|
rückgabeOhneIdMenü.add(buttonGrid, BorderLayout.SOUTH);
|
||||||
|
b2.addActionListener(e -> {
|
||||||
|
int kennnummer = Integer.parseInt(inputField1.getText());
|
||||||
|
Kunde k = Bibliothek.findKunde(kennnummer);
|
||||||
|
Bibliothek.rückgabe2(kennnummer, datumArray[0], k);
|
||||||
|
});
|
||||||
|
mainPanel.add(rückgabeOhneIdMenü, "Rückgabe1");
|
||||||
|
cl.show(mainPanel, "Rückgabe1");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void nutzerAnlegen() {
|
||||||
|
JPanel registerMenu = new JPanel(new BorderLayout());
|
||||||
|
int newKennnummer = Bibliothek.getNewKennnummer();
|
||||||
|
JPanel registerPanel = new JPanel(new GridLayout(3,1,10,10));
|
||||||
|
JLabel text0 = new JLabel("Ihre Kennnummmer wird " + newKennnummer + " sein.");
|
||||||
|
JLabel text1 = new JLabel("Die Mitgliedsgebühren betragen 10€ jährlich, für Studenten 5€.");
|
||||||
|
JCheckBox studentOrNot = new JCheckBox("Sind Sie Student? Falls ja bitte anklicken.");
|
||||||
|
registerPanel.add(text0);
|
||||||
|
registerPanel.add(text1);
|
||||||
|
registerPanel.add(studentOrNot);
|
||||||
|
registerMenu.add(registerPanel, BorderLayout.CENTER);
|
||||||
|
final boolean[] isStudent = {false};
|
||||||
|
studentOrNot.addActionListener(e -> isStudent[0] = studentOrNot.isSelected());
|
||||||
|
JPanel bg = new JPanel(new GridLayout(1,2,10,10));
|
||||||
|
JButton b2 = new JButton("OK");
|
||||||
|
b2.addActionListener(e -> {
|
||||||
|
Kunde k = new Kunde(isStudent[0], newKennnummer);
|
||||||
|
if(isStudent[0] == true) {
|
||||||
|
int amount = 5;
|
||||||
|
k.setSchulden(amount);
|
||||||
|
} else {
|
||||||
|
int amount = 10;
|
||||||
|
k.setSchulden(amount);
|
||||||
|
}
|
||||||
|
Bibliothek.addCustomer(k);
|
||||||
|
cl.show(mainPanel, "loginPanel");
|
||||||
|
});
|
||||||
|
JButton b1 = new JButton("Abbrechen");
|
||||||
|
b1.addActionListener(e -> cl.show(mainPanel, "loginPanel"));
|
||||||
|
bg.add(b1);
|
||||||
|
bg.add(b2);
|
||||||
|
registerMenu.add(bg, BorderLayout.SOUTH);
|
||||||
|
mainPanel.add(registerMenu, "registerMenu");
|
||||||
|
cl.show(mainPanel, "registerMenu");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void openAdmin() {
|
||||||
|
JPanel adminPanel = new JPanel(new BorderLayout());
|
||||||
|
JPanel adminGrid = new JPanel(new GridLayout(2, 1, 10, 10));
|
||||||
|
JLabel text1 = new JLabel("Admin-Bildschirm");
|
||||||
|
adminPanel.add(text1, BorderLayout.NORTH);
|
||||||
|
JButton b0 = new JButton("Ausloggen");
|
||||||
|
b0.addActionListener(e -> cl.show(mainPanel, "loginPanel"));
|
||||||
|
adminPanel.add(b0, BorderLayout.SOUTH);
|
||||||
|
JButton b1 = new JButton("Liste aller Kunden ansehen");
|
||||||
|
b1.addActionListener(e -> userListMenu());
|
||||||
|
JButton b2 = new JButton("Gebühren überschreiben");
|
||||||
|
b2.addActionListener(e -> changeOwedMenu());
|
||||||
|
adminGrid.add(b1);
|
||||||
|
adminGrid.add(b2);
|
||||||
|
adminPanel.add(adminGrid, BorderLayout.CENTER);
|
||||||
|
mainPanel.add(adminPanel, "adminMenu");
|
||||||
|
cl.show(mainPanel, "adminMenu");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void userListMenu() {
|
||||||
|
int i = Bibliothek.getUserListLength();
|
||||||
|
JPanel userListPanel = new JPanel(new GridLayout(i+1, 2, 10, 10));
|
||||||
|
ArrayList<JLabel> jlabelList = Bibliothek.nutzerAuflisten();
|
||||||
|
for(JLabel j: jlabelList) {
|
||||||
|
userListPanel.add(j);
|
||||||
|
}
|
||||||
|
JButton b1 = new JButton("OK");
|
||||||
|
b1.addActionListener(e -> cl.show(mainPanel, "adminMenu"));
|
||||||
|
userListPanel.add(b1, BorderLayout.SOUTH);
|
||||||
|
mainPanel.add(userListPanel, "userList");
|
||||||
|
cl.show(mainPanel, "userList");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void changeOwedMenu() {
|
||||||
|
JPanel changeOwedMenu = new JPanel(new BorderLayout());
|
||||||
|
int i = Bibliothek.getUserListLength();
|
||||||
|
JPanel userListPanel = new JPanel(new GridLayout(i+5, 2, 10, 10));
|
||||||
|
JLabel text1 = new JLabel("Alle Nutzer:");
|
||||||
|
changeOwedMenu.add(text1, BorderLayout.NORTH);
|
||||||
|
ArrayList<JLabel> jlabelList = Bibliothek.nutzerAuflisten();
|
||||||
|
for(JLabel j: jlabelList) {
|
||||||
|
userListPanel.add(j);
|
||||||
|
}
|
||||||
|
JLabel text0 = new JLabel("Geben Sie die Kennnumer des Nutzers ein: ");
|
||||||
|
userListPanel.add(text0);
|
||||||
|
JTextField inputField1 = new JTextField(20);
|
||||||
|
userListPanel.add(inputField1);
|
||||||
|
JLabel text2 = new JLabel("Geben Sie die Menge ein:");
|
||||||
|
userListPanel.add(text2);
|
||||||
|
JTextField inputField2 = new JTextField(20);
|
||||||
|
userListPanel.add(inputField2);
|
||||||
|
changeOwedMenu.add(userListPanel,BorderLayout.CENTER);
|
||||||
|
JPanel bg = new JPanel(new GridLayout(1,2,10,10));
|
||||||
|
JButton b1 = new JButton("Abbrechen");
|
||||||
|
b1.addActionListener(e -> cl.show(mainPanel, "adminMenu"));
|
||||||
|
JButton b2 = new JButton("OK");
|
||||||
|
b2.addActionListener(e -> {
|
||||||
|
String kennnummer = inputField1.getText().toString();
|
||||||
|
String amountStr = inputField2.getText().toString();
|
||||||
|
int amount = Integer.parseInt(amountStr);
|
||||||
|
if(kennnummer == "") {
|
||||||
|
cl.show(mainPanel, "adminMenu");
|
||||||
|
} else {
|
||||||
|
Bibliothek.changeOwedMenu2(kennnummer, amount);
|
||||||
|
cl.show(mainPanel, "adminMenu");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
bg.add(b1);
|
||||||
|
bg.add(b2);
|
||||||
|
changeOwedMenu.add(bg, BorderLayout.SOUTH);
|
||||||
|
mainPanel.add(changeOwedMenu, "changeOwed");
|
||||||
|
cl.show(mainPanel, "changeOwed");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void medienDurchsuchenMenu(Kunde k) {
|
||||||
|
JPanel suchenPanel = new JPanel(new GridLayout(7,1,10,10));
|
||||||
|
JButton b0 = new JButton("Stichwortsuche");
|
||||||
|
b0.addActionListener(e -> searchMenu(k));
|
||||||
|
JButton b1 = new JButton("Bücher");
|
||||||
|
b1.addActionListener(e -> bookMenu(k));
|
||||||
|
JButton b2 = new JButton("DVDs");
|
||||||
|
b2.addActionListener(e -> dvdMenu(k));
|
||||||
|
JButton b3 = new JButton("CDs");
|
||||||
|
b3.addActionListener(e -> cdMenu(k));
|
||||||
|
JButton b4 = new JButton("Brettspiele");
|
||||||
|
b4.addActionListener(e -> bsMenu(k));
|
||||||
|
JButton b5 = new JButton("Videospiele");
|
||||||
|
b5.addActionListener(e -> vsMenu(k));
|
||||||
|
JButton b6 = new JButton("Zurück");
|
||||||
|
b6.addActionListener(e -> cl.show(mainPanel, "mediumPanel"));
|
||||||
|
suchenPanel.add(b0);
|
||||||
|
suchenPanel.add(b1);
|
||||||
|
suchenPanel.add(b2);
|
||||||
|
suchenPanel.add(b3);
|
||||||
|
suchenPanel.add(b4);
|
||||||
|
suchenPanel.add(b5);
|
||||||
|
suchenPanel.add(b6);
|
||||||
|
mainPanel.add(suchenPanel, "suchenMenu");
|
||||||
|
cl.show(mainPanel, "suchenMenu");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void searchMenu(Kunde k) {
|
||||||
|
JPanel mainSearch = new JPanel(new BorderLayout());
|
||||||
|
//NORTH: Search bar
|
||||||
|
JPanel enterSearch = new JPanel(new GridLayout(1,3,10,10));
|
||||||
|
JLabel text0 = new JLabel("Geben Sie einen Suchbegriff ein:");
|
||||||
|
JTextField enterSearchTerm = new JTextField(20);
|
||||||
|
//Hilfe von ChatGPT, da ich nicht wusste wie ich eine Checkbox hinzufüge und abhöre, ob
|
||||||
|
//sie gedrückt ist oder nicht box0.isSelected();)
|
||||||
|
JCheckBox box0 = new JCheckBox("Nur ausleihbare Medien anzeigen");
|
||||||
|
enterSearch.add(text0);
|
||||||
|
enterSearch.add(enterSearchTerm);
|
||||||
|
enterSearch.add(box0);
|
||||||
|
mainSearch.add(enterSearch, BorderLayout.NORTH);
|
||||||
|
//CENTER: Matched media
|
||||||
|
mainSearch.revalidate();
|
||||||
|
int[] doThis = {0};
|
||||||
|
box0.addActionListener(e -> {
|
||||||
|
if(box0.isSelected() == true) {
|
||||||
|
String searchTerm = enterSearchTerm.getText().toString();
|
||||||
|
ArrayList<JLabel> matchedMedia = Bibliothek.findMatchesFiltered(searchTerm);
|
||||||
|
int i = matchedMedia.size();
|
||||||
|
if(i == 0) {
|
||||||
|
JLabel text1 = new JLabel("Nichts passendes zu dem Suchbegriff " + searchTerm + " gefunden.");
|
||||||
|
mainSearch.revalidate();
|
||||||
|
mainSearch.add(text1, BorderLayout.CENTER);
|
||||||
|
mainSearch.revalidate();
|
||||||
|
System.out.println("UNFIL");
|
||||||
|
} else if (i > 0){
|
||||||
|
JPanel ergebnisPanel = new JPanel(new GridLayout(i, 1, 10,10));
|
||||||
|
for(JLabel j: matchedMedia) {
|
||||||
|
ergebnisPanel.add(j);
|
||||||
|
}
|
||||||
|
mainSearch.revalidate();
|
||||||
|
mainSearch.add(ergebnisPanel, BorderLayout.CENTER);
|
||||||
|
mainSearch.revalidate();
|
||||||
|
}
|
||||||
|
mainSearch.revalidate();
|
||||||
|
doThis[0] = 0;
|
||||||
|
}
|
||||||
|
else if(box0.isSelected() == false){
|
||||||
|
String searchTerm = enterSearchTerm.getText().toString();
|
||||||
|
ArrayList<JLabel> matchedMedia = Bibliothek.findMatchesUnfiltered(searchTerm);
|
||||||
|
int i = matchedMedia.size();
|
||||||
|
if(i == 0) {
|
||||||
|
JLabel text1 = new JLabel("Nichts passendes zu dem Suchbegriff " + searchTerm + " gefunden.");
|
||||||
|
mainSearch.revalidate();
|
||||||
|
mainSearch.add(text1, BorderLayout.CENTER);
|
||||||
|
mainSearch.revalidate();
|
||||||
|
System.out.println("FIL");
|
||||||
|
} else if (i > 0){
|
||||||
|
JPanel ergebnisPanel = new JPanel(new GridLayout(i, 1, 10,10));
|
||||||
|
for(JLabel j: matchedMedia) {
|
||||||
|
ergebnisPanel.add(j);
|
||||||
|
}
|
||||||
|
mainSearch.revalidate();
|
||||||
|
mainSearch.add(ergebnisPanel, BorderLayout.CENTER);
|
||||||
|
mainSearch.revalidate();
|
||||||
|
}
|
||||||
|
mainSearch.revalidate();
|
||||||
|
doThis[0] = 0;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
mainSearch.revalidate();
|
||||||
|
//SOUTH: OK Button to return
|
||||||
|
JButton b1 = new JButton("OK");
|
||||||
|
b1.addActionListener(e -> cl.show(mainPanel, "suchenMenu"));
|
||||||
|
mainSearch.add(b1, BorderLayout.SOUTH);
|
||||||
|
|
||||||
|
mainPanel.add(mainSearch, "Stichwort");
|
||||||
|
cl.show(mainPanel, "Stichwort");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void verlängern(Kunde k, String datumArray) {
|
||||||
|
|
||||||
|
JPanel verlängerungPanel = new JPanel(new BorderLayout());
|
||||||
|
JLabel text0 = new JLabel("Geben Sie die Kennnumer des Mediums ein, dessen Rückgabezeit sie verlängern möchten.");
|
||||||
|
JTextField inputField = new JTextField(20);
|
||||||
|
int i = k.ausgelieheneMedienLänge();
|
||||||
|
JPanel info = new JPanel(new GridLayout(i+2, 1, 10, 10));
|
||||||
|
JLabel text1 = new JLabel("Ihre Ausgeliehene Medien:");
|
||||||
|
verlängerungPanel.add(text0, BorderLayout.NORTH);
|
||||||
|
ArrayList<JLabel> jlabelList = Bibliothek.ausgelieheneListe(k);
|
||||||
|
info.add(text1);
|
||||||
|
for(JLabel j: jlabelList) {
|
||||||
|
info.add(j, BorderLayout.CENTER);
|
||||||
|
}
|
||||||
|
info.add(inputField);
|
||||||
|
verlängerungPanel.add(info, BorderLayout.CENTER);
|
||||||
|
JPanel bg = new JPanel(new GridLayout(1,2,10,10));
|
||||||
|
JButton b1 = new JButton("OK");
|
||||||
|
b1.addActionListener(e -> {
|
||||||
|
if(i>0) {
|
||||||
|
int kennnummer = Integer.parseInt(inputField.getText());
|
||||||
|
boolean verlängerungMöglich = Bibliothek.verlängerungMöglich(kennnummer, k);
|
||||||
|
if(verlängerungMöglich == true){
|
||||||
|
verlängerung1();
|
||||||
|
} else {
|
||||||
|
verlängerung2();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
cl.show(mainPanel, "mediumPanel");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
JButton b2 = new JButton("Abbrechen");
|
||||||
|
b2.addActionListener(e -> {
|
||||||
|
cl.show(mainPanel, "mediumPanel");
|
||||||
|
});
|
||||||
|
bg.add(b2);
|
||||||
|
bg.add(b1);
|
||||||
|
if(i == 0) {
|
||||||
|
verlängerungPanel.remove(inputField);
|
||||||
|
}
|
||||||
|
verlängerungPanel.add(bg, BorderLayout.SOUTH);
|
||||||
|
mainPanel.add(verlängerungPanel, "Verlängerung0");
|
||||||
|
cl.show(mainPanel, "Verlängerung0");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void verlängerung1() {
|
||||||
|
JPanel v1 = new JPanel(new BorderLayout());
|
||||||
|
JLabel text1 = new JLabel("Verlängerung erfolgreich.");
|
||||||
|
v1.add(text1, BorderLayout.CENTER);
|
||||||
|
JButton b = new JButton("OK");
|
||||||
|
b.addActionListener(e -> {
|
||||||
|
cl.show(mainPanel, "mediumPanel");
|
||||||
|
mainPanel.remove(v1);
|
||||||
|
mainPanel.revalidate();
|
||||||
|
mainPanel.repaint();
|
||||||
|
});
|
||||||
|
v1.add(b, BorderLayout.SOUTH);
|
||||||
|
mainPanel.add(v1, "Verlängerung1");
|
||||||
|
cl.show(mainPanel, "Verlängerung1");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void verlängerung2() {
|
||||||
|
JPanel v2 = new JPanel(new BorderLayout());
|
||||||
|
JLabel text1 = new JLabel("Verlängerung fehlgeschlagen.");
|
||||||
|
v2.add(text1, BorderLayout.CENTER);
|
||||||
|
JButton b = new JButton("OK");
|
||||||
|
b.addActionListener(e -> {
|
||||||
|
cl.show(mainPanel, "mediumPanel");
|
||||||
|
mainPanel.remove(v2);
|
||||||
|
mainPanel.revalidate();
|
||||||
|
mainPanel.repaint();
|
||||||
|
// mainPanel.remove(v2);
|
||||||
|
});
|
||||||
|
v2.add(b, BorderLayout.SOUTH);
|
||||||
|
mainPanel.add(v2, "Verlängerung2");
|
||||||
|
cl.show(mainPanel, "Verlängerung2");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private static void ausleihenMenü(Kunde k, String datum) {
|
||||||
|
JPanel ausleihMenü = new JPanel(new BorderLayout());
|
||||||
|
//NORTH
|
||||||
|
JPanel dateGrid = new JPanel(new GridLayout(1,4,10,10));
|
||||||
|
JLabel dateEntry = new JLabel("Datum eingeben: ");
|
||||||
|
String[] datumArray = {datum};
|
||||||
|
JTextField dateInput = new JTextField(20);
|
||||||
|
JButton dateButton = new JButton("OK");
|
||||||
|
dateGrid.add(dateEntry);
|
||||||
|
dateGrid.add(dateInput);
|
||||||
|
dateGrid.add(dateButton);
|
||||||
|
JLabel dateState1 = new JLabel("Datum: " + datumArray[0]);
|
||||||
|
dateGrid.add(dateState1);
|
||||||
|
dateButton.addActionListener(e -> {
|
||||||
|
String newDate = dateInput.getText().toString();
|
||||||
|
datumArray[0] = newDate;
|
||||||
|
JLabel dateState = new JLabel("Datum: " + datumArray[0]);
|
||||||
|
dateGrid.remove(dateState1);
|
||||||
|
dateGrid.add(dateState);
|
||||||
|
dateGrid.revalidate();
|
||||||
|
});
|
||||||
|
ausleihMenü.add(dateGrid, BorderLayout.NORTH);
|
||||||
|
//CENTER
|
||||||
|
JPanel inputMenu = new JPanel(new GridLayout(2, 1, 10, 10));
|
||||||
|
JLabel text1 = new JLabel("Zu ausleihende Kennnummer des Mediums eingeben:");
|
||||||
|
JTextField inputField1 = new JTextField(20);
|
||||||
|
inputMenu.add(text1);
|
||||||
|
inputMenu.add(inputField1);
|
||||||
|
ausleihMenü.add(inputMenu, BorderLayout.CENTER);
|
||||||
|
//SOUTH
|
||||||
|
JPanel buttonGrid = new JPanel(new GridLayout(1, 2, 10,10));
|
||||||
|
JButton b1 = new JButton("Abbrechen");
|
||||||
|
b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel"));
|
||||||
|
JButton b2 = new JButton("OK");
|
||||||
|
buttonGrid.add(b1);
|
||||||
|
buttonGrid.add(b2);
|
||||||
|
ausleihMenü.add(buttonGrid, BorderLayout.SOUTH);
|
||||||
|
b2.addActionListener(e -> {
|
||||||
|
int kennnummer = Integer.parseInt(inputField1.getText());
|
||||||
|
Bibliothek.ausleihe(kennnummer, datumArray[0], k);
|
||||||
|
cl.show(mainPanel, "mediumPanel");
|
||||||
|
});
|
||||||
|
mainPanel.add(ausleihMenü, "Ausleihen");
|
||||||
|
cl.show(mainPanel, "Ausleihen");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void rückgabeMenü(Kunde k, String datum) {
|
||||||
|
JPanel rückgabeMenü = new JPanel(new BorderLayout());
|
||||||
|
//NORTH
|
||||||
|
JPanel dateGrid = new JPanel(new GridLayout(1,4,10,10));
|
||||||
|
JLabel dateEntry = new JLabel("Datum eingeben: ");
|
||||||
|
String[] datumArray = {datum};
|
||||||
|
JTextField dateInput = new JTextField(20);
|
||||||
|
JButton dateButton = new JButton("OK");
|
||||||
|
dateGrid.add(dateEntry);
|
||||||
|
dateGrid.add(dateInput);
|
||||||
|
dateGrid.add(dateButton);
|
||||||
|
JLabel dateState1 = new JLabel("Datum: " + datumArray[0]);
|
||||||
|
dateGrid.add(dateState1);
|
||||||
|
dateButton.addActionListener(e -> {
|
||||||
|
String newDate = dateInput.getText().toString();
|
||||||
|
datumArray[0] = newDate;
|
||||||
|
JLabel dateState = new JLabel("Datum: " + datumArray[0]);
|
||||||
|
dateGrid.remove(dateState1);
|
||||||
|
dateGrid.add(dateState);
|
||||||
|
dateGrid.revalidate();
|
||||||
|
});
|
||||||
|
rückgabeMenü.add(dateGrid, BorderLayout.NORTH);
|
||||||
|
//CENTER
|
||||||
|
JPanel inputMenu = new JPanel(new GridLayout(2, 1, 10, 10));
|
||||||
|
JLabel text1 = new JLabel("Zu ausleihende Kennnummer des Mediums eingeben:");
|
||||||
|
JTextField inputField1 = new JTextField(20);
|
||||||
|
inputMenu.add(text1);
|
||||||
|
inputMenu.add(inputField1);
|
||||||
|
rückgabeMenü.add(inputMenu, BorderLayout.CENTER);
|
||||||
|
//SOUTH
|
||||||
|
JPanel buttonGrid = new JPanel(new GridLayout(1, 2, 10,10));
|
||||||
|
JButton b1 = new JButton("Abbrechen");
|
||||||
|
b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel"));
|
||||||
|
JButton b2 = new JButton("OK");
|
||||||
|
buttonGrid.add(b1);
|
||||||
|
buttonGrid.add(b2);
|
||||||
|
rückgabeMenü.add(buttonGrid, BorderLayout.SOUTH);
|
||||||
|
b2.addActionListener(e -> {
|
||||||
|
int kennnummer = Integer.parseInt(inputField1.getText());
|
||||||
|
Bibliothek.rückgabe(kennnummer, datumArray[0], k);
|
||||||
|
});
|
||||||
|
mainPanel.add(rückgabeMenü, "Rückgabe");
|
||||||
|
cl.show(mainPanel, "Rückgabe");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void bookMenu(Kunde k) {
|
||||||
|
int i = Bibliothek.bücherLänge();
|
||||||
|
JPanel buchMenü = new JPanel(new GridLayout(i+2, 2, 10, 10));
|
||||||
|
JLabel text0 = new JLabel("Ausleihe für 4 Wochen, bis zu 3 Mal verlängerbar.");
|
||||||
|
buchMenü.add(text0);
|
||||||
|
ArrayList<JLabel> jlabelList = Bibliothek.buchAuflisten();
|
||||||
|
for(JLabel j: jlabelList) {
|
||||||
|
buchMenü.add(j);
|
||||||
|
}
|
||||||
|
JButton b1 = new JButton("OK");
|
||||||
|
b1.addActionListener(e -> {
|
||||||
|
if(k == null) {
|
||||||
|
cl.show(mainPanel, "browsePanel");
|
||||||
|
} else {
|
||||||
|
cl.show(mainPanel, "suchenMenu");}
|
||||||
|
});
|
||||||
|
buchMenü.add(b1, BorderLayout.SOUTH);
|
||||||
|
mainPanel.add(buchMenü, "Bücher");
|
||||||
|
cl.show(mainPanel, "Bücher");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void dvdMenu(Kunde k) {
|
||||||
|
int i = Bibliothek.dvdLänge();
|
||||||
|
JPanel dvdMenü = new JPanel(new GridLayout(i+2, 2, 10, 10));
|
||||||
|
JLabel text0 = new JLabel("Ausleihe für 1 Woche, keine Verlängerung.");
|
||||||
|
dvdMenü.add(text0);
|
||||||
|
ArrayList<JLabel> jlabelList = Bibliothek.dvdAuflisten();
|
||||||
|
for(JLabel j: jlabelList) {
|
||||||
|
dvdMenü.add(j);
|
||||||
|
}
|
||||||
|
JButton b1 = new JButton("OK");
|
||||||
|
b1.addActionListener(e -> {
|
||||||
|
if(k == null) {
|
||||||
|
cl.show(mainPanel, "browsePanel");
|
||||||
|
} else {
|
||||||
|
cl.show(mainPanel, "suchenMenu");}
|
||||||
|
});
|
||||||
|
dvdMenü.add(b1, BorderLayout.SOUTH);
|
||||||
|
mainPanel.add(dvdMenü, "DVDs");
|
||||||
|
cl.show(mainPanel, "DVDs");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void cdMenu(Kunde k) {
|
||||||
|
int i = Bibliothek.cdLänge();
|
||||||
|
JPanel cdMenü = new JPanel(new GridLayout(i+2, 2, 10, 10));
|
||||||
|
JLabel text0 = new JLabel("Ausleihe für 2 Wochen, keine Verlängerung.");
|
||||||
|
cdMenü.add(text0);
|
||||||
|
ArrayList<JLabel> jlabelList = Bibliothek.cdAuflisten();
|
||||||
|
for(JLabel j: jlabelList) {
|
||||||
|
cdMenü.add(j);
|
||||||
|
}
|
||||||
|
JButton b1 = new JButton("OK");
|
||||||
|
b1.addActionListener(e -> {
|
||||||
|
if(k == null) {
|
||||||
|
cl.show(mainPanel, "browsePanel");
|
||||||
|
} else {
|
||||||
|
cl.show(mainPanel, "suchenMenu");}
|
||||||
|
}); cdMenü.add(b1, BorderLayout.SOUTH);
|
||||||
|
mainPanel.add(cdMenü, "CDs");
|
||||||
|
cl.show(mainPanel, "CDs");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void bsMenu(Kunde k) {
|
||||||
|
int i = Bibliothek.bsLänge();
|
||||||
|
JPanel bsMenü = new JPanel(new GridLayout(i+2, 2, 10, 10));
|
||||||
|
JLabel text0 = new JLabel("Ausleihe für 2 Wochen, keine Verlängerung.");
|
||||||
|
bsMenü.add(text0);
|
||||||
|
ArrayList<JLabel> jlabelList = Bibliothek.bsAuflisten();
|
||||||
|
for(JLabel j: jlabelList) {
|
||||||
|
bsMenü.add(j);
|
||||||
|
}
|
||||||
|
JButton b1 = new JButton("OK");
|
||||||
|
b1.addActionListener(e -> {
|
||||||
|
if(k == null) {
|
||||||
|
cl.show(mainPanel, "browsePanel");
|
||||||
|
} else {
|
||||||
|
cl.show(mainPanel, "suchenMenu");}
|
||||||
|
}); bsMenü.add(b1, BorderLayout.SOUTH);
|
||||||
|
mainPanel.add(bsMenü, "Brettspiele");
|
||||||
|
cl.show(mainPanel, "Brettspiele");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void vsMenu(Kunde k) {
|
||||||
|
int i = Bibliothek.vsLänge();
|
||||||
|
JPanel vsMenü = new JPanel(new GridLayout(i+2, 2, 10, 10));
|
||||||
|
JLabel text0 = new JLabel("Ausleihe für 4 Wochen, einmalige Verlängerung möglich.");
|
||||||
|
vsMenü.add(text0);
|
||||||
|
ArrayList<JLabel> jlabelList = Bibliothek.vsAuflisten();
|
||||||
|
for(JLabel j: jlabelList) {
|
||||||
|
vsMenü.add(j);
|
||||||
|
}
|
||||||
|
JButton b1 = new JButton("OK");
|
||||||
|
b1.addActionListener(e -> {
|
||||||
|
if(k == null) {
|
||||||
|
cl.show(mainPanel, "browsePanel");
|
||||||
|
} else {
|
||||||
|
cl.show(mainPanel, "suchenMenu");}
|
||||||
|
}); vsMenü.add(b1, BorderLayout.SOUTH);
|
||||||
|
mainPanel.add(vsMenü, "Videospiele");
|
||||||
|
cl.show(mainPanel, "Videospiele");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void myBooks(Kunde k) {
|
||||||
|
int i = k.ausgelieheneMedienLänge();
|
||||||
|
JPanel myBookMenu = new JPanel(new BorderLayout());
|
||||||
|
JPanel info = new JPanel(new GridLayout(i, 1, 10, 10));
|
||||||
|
JLabel text1 = new JLabel("Ihre ausgeliehenen Medien:");
|
||||||
|
myBookMenu.add(text1, BorderLayout.NORTH);
|
||||||
|
ArrayList<JLabel> jlabelList = Bibliothek.ausgelieheneListe(k);
|
||||||
|
for(JLabel j: jlabelList) {
|
||||||
|
info.add(j);
|
||||||
|
}
|
||||||
|
JButton b1 = new JButton("OK");
|
||||||
|
b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel"));
|
||||||
|
myBookMenu.add(info, BorderLayout.CENTER);
|
||||||
|
myBookMenu.add(b1, BorderLayout.SOUTH);
|
||||||
|
mainPanel.add(myBookMenu, "AusgelieheneMedien");
|
||||||
|
cl.show(mainPanel, "AusgelieheneMedien");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void zahlungsFenster(double kosten, String titel, int kennnummer, Kunde k) {
|
||||||
|
JPanel zahlungPanel = new JPanel(new BorderLayout());
|
||||||
|
//CENTER
|
||||||
|
JLabel text1 = new JLabel("Sie schulden für das Buch " + titel + " mit der Kennnummer " + kennnummer + " " + kosten + "€. Bitte zahlen Sie die Gebühren an der Kasse.");
|
||||||
|
zahlungPanel.add(text1, BorderLayout.CENTER);
|
||||||
|
//SOUTH
|
||||||
|
JButton b1 = new JButton("OK");
|
||||||
|
zahlungPanel.add(b1, BorderLayout.SOUTH);
|
||||||
|
b1.addActionListener(e -> {
|
||||||
|
myBooks(k);
|
||||||
|
});
|
||||||
|
mainPanel.add(zahlungPanel,"Zahlung");
|
||||||
|
cl.show(mainPanel, "Zahlung");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void noMoneyOwed() {
|
||||||
|
cl.show(mainPanel, "mediumPanel");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void zahlungsFenster2(double kosten, String titel, int kennnummer, Kunde k) {
|
||||||
|
JPanel zahlungPanel = new JPanel(new BorderLayout());
|
||||||
|
//CENTER
|
||||||
|
JLabel text1 = new JLabel("Sie schulden für das Buch " + titel + " mit der Kennnummer " + kennnummer + " " + kosten + "€. Bitte zahlen Sie die Gebühren an der Kasse.");
|
||||||
|
zahlungPanel.add(text1, BorderLayout.CENTER);
|
||||||
|
//SOUTH
|
||||||
|
JButton b1 = new JButton("OK");
|
||||||
|
zahlungPanel.add(b1, BorderLayout.SOUTH);
|
||||||
|
b1.addActionListener(e -> {
|
||||||
|
cl.show(mainPanel, "browsePanel");
|
||||||
|
});
|
||||||
|
mainPanel.add(zahlungPanel,"Zahlung2");
|
||||||
|
cl.show(mainPanel, "Zahlung2");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 46975a289a6313a2d2a9346ca60a34a1f97e92df
|
|
@ -0,0 +1,50 @@
|
||||||
|
Antworten:
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
°°°°Preisermäßigung für Studenten bei Preisen:
|
||||||
|
Schüler 50% Rabatt bei Jahresrabatt, nicht bei Überzug der Ausleihdauer
|
||||||
|
|
||||||
|
°°°°Zahlungsvalidierung: zahlPanel nach Rückgabe wegmachen, schulden werden aufaddiert, admin loggt sich ein um zu clearen
|
||||||
|
Außerdem: "Meine Schulden abbezahlen" wegmachen
|
||||||
|
|
||||||
|
°°°°Bei Rückgabe: keine Anmeldung notwendig, sondern nur ID des Mediums eingeben.
|
||||||
|
|
||||||
|
°°°°Bei Verlängerung: Nur als angemeldeter Nutzer
|
||||||
|
|
||||||
|
°°°°Kann es ein Buch mehrmals geben?
|
||||||
|
Ja, jedes mal aber eine eigene ID mit eigener Buch-Instanz
|
||||||
|
|
||||||
|
°°°°Bei Rückgabe ohne Anmeldung:
|
||||||
|
Zugriff auf meine ausgeliehenen Medien nach der Rückgabe soll nicht möglich sein
|
||||||
|
(Als Übung trotzdem hinzufügen, neue myBooks methode schreiben, die ohne Anmeldung funktioniert)
|
||||||
|
|
||||||
|
°°°°Bei Ausleihen: Zur Liste von ALLEN ausgeliehen Medien (von Allen Kunden) hinzufpgen, soll für Admin ersichtlich sein. Auch: Nutzer-ID sehen.
|
||||||
|
--> Neue Ausleihe Klasse mit Parameter Medium-ID, Kunde-ID, Datum, Verlängerungen
|
||||||
|
--> Neue Ausleihe zum Zeitpunkt der Ausleihe erstellen mit Medium-ID, Kunde-ID, Datum, Verlängerungen
|
||||||
|
--> Bei Verlängerungen auch in der Ausleihe Klasse verändern
|
||||||
|
--> ODER: Zu jedem Medium eine neue Variable USER-ID, sodass das Buch weiss bei wem es ist
|
||||||
|
--> Maybe boolean(istAusgeliehen) für alle Medien
|
||||||
|
|
||||||
|
°°°°(Bücher, CD, DVD, Brettspiel, Videospiel) Panel für Nutzer:
|
||||||
|
Auch ausgeliehene Instanzen anzeigen, zeigen bis wann es ausgeliehen ist (mit Verlänerungen)
|
||||||
|
|
||||||
|
°°°°Uhrzeit als Systemuhrzeit umsetzen:
|
||||||
|
"Um die Jahresgebühren und Ausleihfristen zu simulieren, soll es über das UI möglich sein, das Datum,
|
||||||
|
mit dem das System arbeiten soll, zu ändern."
|
||||||
|
-->Nicht
|
||||||
|
|
||||||
|
°°°°Verlängerung nach Rückgabedatum:
|
||||||
|
--> Nicht möglich!
|
||||||
|
|
||||||
|
°°°°Neue Bücher über UI:
|
||||||
|
--> Nicht notwendig!
|
||||||
|
|
||||||
|
°°°°Stichwortsuche:
|
||||||
|
Nutzer gibt "des Lebens ein"
|
||||||
|
Ausgabe: "XYZ des Lebens, Buch, Kennnummer abc1"
|
||||||
|
"Spiel des Lebens, Brettspiiel, Kennnummer abc2"
|
||||||
|
...
|
||||||
|
|
||||||
|
°°°°Filter in der Medienliste:
|
||||||
|
Alles war da ist, alles was ausgeliehen ist bis[Datum], nach Medienart filtern etc.
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
prompt:
|
||||||
|
habe einen error in eclipse, nämlioch git rejected - non fast forward
|
||||||
|
|
||||||
|
antwort:
|
||||||
|
Der Fehler "Git rejected - non-fast-forward" bedeutet, dass dein lokales Repository versucht, Änderungen zu pushen, die mit dem aktuellen Stand des Remote-Branches nicht kompatibel sind. Dies passiert häufig, wenn der Remote-Branch Änderungen enthält, die du lokal nicht hast. Git erlaubt standardmäßig keine "non-fast-forward"-Pushes, um zu verhindern, dass Änderungen überschrieben werden.
|
||||||
|
|
||||||
|
Schritte zur Behebung
|
||||||
|
Pull die neuesten Änderungen aus dem Remote-Branch:
|
||||||
|
|
||||||
|
php
|
||||||
|
Code kopieren
|
||||||
|
git pull origin <branch-name>
|
||||||
|
Dies zieht die neuesten Änderungen vom Remote-Repository in dein lokales Repository.
|
||||||
|
|
||||||
|
Behebe mögliche Merge-Konflikte: Falls es Konflikte gibt, zeigt Git an, welche Dateien betroffen sind. Bearbeite diese Dateien, löse die Konflikte, und führe dann einen Commit aus:
|
||||||
|
|
||||||
|
sql
|
||||||
|
Code kopieren
|
||||||
|
git add <konflikt-dateien>
|
||||||
|
git commit -m "Konflikte gelöst"
|
||||||
|
Push die Änderungen erneut: Nachdem du den lokalen Branch mit dem Remote-Branch synchronisiert hast, kannst du erneut pushen:
|
||||||
|
|
||||||
|
perl
|
||||||
|
Code kopieren
|
||||||
|
git push origin <branch-name>
|
||||||
|
Alternativen und zusätzliche Optionen
|
||||||
|
Force Push (nur verwenden, wenn du sicher bist, dass du den Remote-Branch überschreiben möchtest):
|
||||||
|
|
||||||
|
css
|
||||||
|
Code kopieren
|
||||||
|
git push --force origin <branch-name>
|
||||||
|
⚠️ Achtung: Ein Force Push kann Änderungen anderer Entwickler überschreiben und sollte mit Vorsicht verwendet werden.
|
||||||
|
|
||||||
|
Rebase verwenden (für eine sauberere Historie): Wenn du deine Änderungen vor die aktuellen Remote-Änderungen setzen möchtest:
|
||||||
|
|
||||||
|
php
|
||||||
|
Code kopieren
|
||||||
|
git fetch origin
|
||||||
|
git rebase origin/<branch-name>
|
||||||
|
Danach kannst du die Änderungen pushen:
|
||||||
|
|
||||||
|
perl
|
||||||
|
Code kopieren
|
||||||
|
git push origin <branch-name>
|
||||||
|
In Eclipse:
|
||||||
|
Falls du Git über Eclipse nutzt, kannst du folgendes tun:
|
||||||
|
|
||||||
|
Pull durchführen:
|
||||||
|
|
||||||
|
Klicke mit der rechten Maustaste auf dein Projekt.
|
||||||
|
Wähle Team > Pull.
|
||||||
|
Konflikte lösen:
|
||||||
|
|
||||||
|
Falls Konflikte auftreten, werden diese in der "Git Staging"-Ansicht angezeigt. Bearbeite die Konflikte und committe die Änderungen.
|
||||||
|
Push erneut versuchen:
|
||||||
|
|
||||||
|
Gehe zu Team > Push to Upstream.
|
||||||
|
Falls es immer noch Probleme gibt, überprüfe, ob du die korrekten Branches verwendest.
|
|
@ -0,0 +1,20 @@
|
||||||
|
prompt:
|
||||||
|
wie kann ich in localdate in java 28 tage hinzufügen
|
||||||
|
|
||||||
|
antwort:
|
||||||
|
In Java kannst du zur LocalDate-Klasse 28 Tage hinzufügen, indem du die Methode .plusDays(28) verwendest. Hier ist ein Beispiel:
|
||||||
|
|
||||||
|
java
|
||||||
|
Code kopieren
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
LocalDate heutigesDatum = LocalDate.now();
|
||||||
|
LocalDate neuesDatum = heutigesDatum.plusDays(28);
|
||||||
|
|
||||||
|
System.out.println("Heutiges Datum: " + heutigesDatum);
|
||||||
|
System.out.println("Datum in 28 Tagen: " + neuesDatum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
In diesem Beispiel wird das heutige Datum um 28 Tage verschoben, und das Ergebnis wird in neuesDatum gespeichert.
|
|
@ -0,0 +1,14 @@
|
||||||
|
prompt:
|
||||||
|
how to get the last part of the string fjwaifa.fwwafaw.buch
|
||||||
|
|
||||||
|
antwort:
|
||||||
|
To get the last part of the string "fjwaifa.fwwafaw.buch" in many programming languages, you can split the string by the dot (".") and access the last element.
|
||||||
|
|
||||||
|
java
|
||||||
|
Code kopieren
|
||||||
|
String string = "fjwaifa.fwwafaw.buch";
|
||||||
|
String[] parts = string.split("\\.");
|
||||||
|
String lastPart = parts[parts.length - 1];
|
||||||
|
System.out.println(lastPart); // Output: buch
|
||||||
|
|
||||||
|
The code splits the string into parts at each "." and retrieves the last element, which is "buch".
|
|
@ -0,0 +1,45 @@
|
||||||
|
prompt:
|
||||||
|
how can i add a checkbox to java swing
|
||||||
|
|
||||||
|
antwort:
|
||||||
|
In Java Swing, you can add a checkbox using the JCheckBox class. Here’s a basic example:
|
||||||
|
|
||||||
|
java
|
||||||
|
Code kopieren
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.event.*;
|
||||||
|
|
||||||
|
public class CheckboxExample {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
JFrame frame = new JFrame("Checkbox Example");
|
||||||
|
frame.setSize(300, 200);
|
||||||
|
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
|
frame.setLayout(null);
|
||||||
|
|
||||||
|
// Create a checkbox
|
||||||
|
JCheckBox checkbox = new JCheckBox("Accept Terms and Conditions");
|
||||||
|
checkbox.setBounds(50, 50, 200, 30);
|
||||||
|
|
||||||
|
// Add an action listener to respond to checkbox state changes
|
||||||
|
checkbox.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
if (checkbox.isSelected()) {
|
||||||
|
System.out.println("Checkbox selected");
|
||||||
|
} else {
|
||||||
|
System.out.println("Checkbox deselected");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add checkbox to the frame
|
||||||
|
frame.add(checkbox);
|
||||||
|
|
||||||
|
frame.setVisible(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Explanation:
|
||||||
|
JCheckBox Creation: JCheckBox checkbox = new JCheckBox("Label") creates a checkbox with a label.
|
||||||
|
Positioning: checkbox.setBounds(x, y, width, height) positions the checkbox in the frame.
|
||||||
|
Action Listener: To respond to state changes, we add an ActionListener which checks if the checkbox is selected using checkbox.isSelected().
|
||||||
|
Add to Frame: The checkbox is added to the frame using frame.add(checkbox).
|
||||||
|
This code opens a simple window with a checkbox, and selecting or deselecting it prints a message to the console.
|
|
@ -0,0 +1,18 @@
|
||||||
|
-Trennung in domain und gui Package
|
||||||
|
-abstrakte Methode Medium anlegen
|
||||||
|
-Unterklassen Buch, CD etc. anlegen die von Medium erben
|
||||||
|
-Kunde-Klasse anlegen
|
||||||
|
-ArrayLists für Medien und Nutzer anlegen
|
||||||
|
-Nutzer im Code anlegen
|
||||||
|
-login Panel in GUI anlegen
|
||||||
|
-Methode für den login in main Klasse schreiben
|
||||||
|
-Feature einbauen, das alle Medien auflistet
|
||||||
|
-Feature einbauen, das Ausleihe und Rückgabe ermöglicht
|
||||||
|
-Feature zum Sehen der ausgeliehenen Medien hinzufügen
|
||||||
|
-Ausleihe und Rückgabe um Datumseingabe erweitern, Gebühren berechnen feature hinzufügen
|
||||||
|
-Admin fenster hinzufügen
|
||||||
|
-Registrierung neuer Nutzer als Feature hinzufügen
|
||||||
|
-Verlängerung von Medien ermöglichen
|
||||||
|
-Liste aller Nutzer als Admin feature hinzufügen
|
||||||
|
-Gebühren von Nutzern überschreiben als Admin feature hinzufügen
|
||||||
|
-JUnit Tests schreiben
|
Loading…
Reference in New Issue