From 56ffec8a54add49eaf2362b08f7e4dbe9c994d30 Mon Sep 17 00:00:00 2001 From: Maximilian Date: Thu, 13 Jun 2024 11:36:10 +0200 Subject: [PATCH] Initial commit --- .vscode/launch.json | 22 +++ .vscode/settings.json | 15 ++ bin/controllers/FlightController.class | Bin 0 -> 952 bytes bin/controllers/PilotController.class | Bin 0 -> 925 bytes bin/models/Flight.class | Bin 0 -> 3177 bytes bin/models/Flights.class | Bin 0 -> 892 bytes bin/models/Pilot.class | Bin 0 -> 2960 bytes bin/models/Pilots.class | Bin 0 -> 883 bytes bin/program/Main.class | Bin 0 -> 668 bytes bin/resources/icons/add_flight_icon.png | Bin 0 -> 14686 bytes bin/resources/icons/edit_pilot_icon.png | Bin 0 -> 11069 bytes bin/resources/icons/help_icon.png | Bin 0 -> 15201 bytes bin/resources/icons/manage_pilot_icon.png | Bin 0 -> 4928 bytes bin/resources/icons/view_logbook_icon.png | Bin 0 -> 12330 bytes bin/resources/icons/view_pilot_icon.png | Bin 0 -> 14251 bytes bin/utils/XMLHelper.class | Bin 0 -> 1699 bytes bin/views/AddFlightScreen.class | Bin 0 -> 11187 bytes bin/views/FlightView.class | Bin 0 -> 2577 bytes bin/views/HelpScreen.class | Bin 0 -> 2748 bytes bin/views/HomeScreen.class | Bin 0 -> 6431 bytes bin/views/ManagePilotProfileScreen.class | Bin 0 -> 10819 bytes bin/views/PilotView.class | Bin 0 -> 5352 bytes bin/views/ViewLogbookScreen.class | Bin 0 -> 5305 bytes flights.xml | 190 +++++++++++++++++++++ pilots.xml | 55 ++++++ src/controllers/FlightController.java | 28 ++++ src/controllers/PilotController.java | 26 +++ src/models/Flight.java | 121 +++++++++++++ src/models/Flights.java | 25 +++ src/models/Pilot.java | 85 ++++++++++ src/models/Pilots.java | 25 +++ src/program/Main.java | 17 ++ src/resources/icons/add_flight_icon.png | Bin 0 -> 14686 bytes src/resources/icons/edit_pilot_icon.png | Bin 0 -> 11069 bytes src/resources/icons/help_icon.png | Bin 0 -> 15201 bytes src/resources/icons/manage_pilot_icon.png | Bin 0 -> 4928 bytes src/resources/icons/view_logbook_icon.png | Bin 0 -> 12330 bytes src/resources/icons/view_pilot_icon.png | Bin 0 -> 14251 bytes src/utils/XMLHelper.java | 30 ++++ src/views/AddFlightScreen.java | 183 ++++++++++++++++++++ src/views/FlightView.java | 27 +++ src/views/HelpScreen.java | 42 +++++ src/views/HomeScreen.java | 79 +++++++++ src/views/ManagePilotProfileScreen.java | 196 ++++++++++++++++++++++ src/views/PilotView.java | 83 +++++++++ src/views/ViewLogbookScreen.java | 93 ++++++++++ 46 files changed, 1342 insertions(+) create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 bin/controllers/FlightController.class create mode 100644 bin/controllers/PilotController.class create mode 100644 bin/models/Flight.class create mode 100644 bin/models/Flights.class create mode 100644 bin/models/Pilot.class create mode 100644 bin/models/Pilots.class create mode 100644 bin/program/Main.class create mode 100644 bin/resources/icons/add_flight_icon.png create mode 100644 bin/resources/icons/edit_pilot_icon.png create mode 100644 bin/resources/icons/help_icon.png create mode 100644 bin/resources/icons/manage_pilot_icon.png create mode 100644 bin/resources/icons/view_logbook_icon.png create mode 100644 bin/resources/icons/view_pilot_icon.png create mode 100644 bin/utils/XMLHelper.class create mode 100644 bin/views/AddFlightScreen.class create mode 100644 bin/views/FlightView.class create mode 100644 bin/views/HelpScreen.class create mode 100644 bin/views/HomeScreen.class create mode 100644 bin/views/ManagePilotProfileScreen.class create mode 100644 bin/views/PilotView.class create mode 100644 bin/views/ViewLogbookScreen.class create mode 100644 flights.xml create mode 100644 pilots.xml create mode 100644 src/controllers/FlightController.java create mode 100644 src/controllers/PilotController.java create mode 100644 src/models/Flight.java create mode 100644 src/models/Flights.java create mode 100644 src/models/Pilot.java create mode 100644 src/models/Pilots.java create mode 100644 src/program/Main.java create mode 100644 src/resources/icons/add_flight_icon.png create mode 100644 src/resources/icons/edit_pilot_icon.png create mode 100644 src/resources/icons/help_icon.png create mode 100644 src/resources/icons/manage_pilot_icon.png create mode 100644 src/resources/icons/view_logbook_icon.png create mode 100644 src/resources/icons/view_pilot_icon.png create mode 100644 src/utils/XMLHelper.java create mode 100644 src/views/AddFlightScreen.java create mode 100644 src/views/FlightView.java create mode 100644 src/views/HelpScreen.java create mode 100644 src/views/HomeScreen.java create mode 100644 src/views/ManagePilotProfileScreen.java create mode 100644 src/views/PilotView.java create mode 100644 src/views/ViewLogbookScreen.java diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..297fd39 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,22 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "java", + "name": "Current File", + "request": "launch", + "mainClass": "${file}" + }, + { + "type": "java", + "name": "Main", + "request": "launch", + "vmArgs": "--module-path C:/Sources/javafx-sdk-22.0.1/lib --add-modules javafx.controls,javafx.fxml", + "mainClass": "program.Main", + "projectName": "Pegasus_606a3a68" + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a5f7a57 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,15 @@ +{ + "java.project.sourcePaths": ["src"], + "java.project.outputPath": "bin", + "java.project.referencedLibraries": [ + "lib/**/*.jar", + "c:\\Sources\\javafx-sdk-22.0.1\\lib\\javafx.base.jar", + "c:\\Sources\\javafx-sdk-22.0.1\\lib\\javafx.controls.jar", + "c:\\Sources\\javafx-sdk-22.0.1\\lib\\javafx.fxml.jar", + "c:\\Sources\\javafx-sdk-22.0.1\\lib\\javafx.graphics.jar", + "c:\\Sources\\javafx-sdk-22.0.1\\lib\\javafx.media.jar", + "c:\\Sources\\javafx-sdk-22.0.1\\lib\\javafx.swing.jar", + "c:\\Sources\\javafx-sdk-22.0.1\\lib\\javafx.web.jar", + "c:\\Sources\\javafx-sdk-22.0.1\\lib\\javafx-swt.jar" + ] +} diff --git a/bin/controllers/FlightController.class b/bin/controllers/FlightController.class new file mode 100644 index 0000000000000000000000000000000000000000..520767cd9e16eb1d0f9d5465776b83582d65cf9c GIT binary patch literal 952 zcmaJ}X(E{T z;1BRe8PCivRaas*nY~}j(OG=5h?Gze zxO*O42Hh~2jJj|7=V}lO6vxw{3I!@XYuo^j1PYg0eGsVj%>O3t(`Ihzg`Vj6rNC}8 zgZsC-<&*1#DjxDEOSo7T$TwTQ3w9(?#FDY95+yjM5j|0_=i|PL-Ua5c!E|5O-?Gi28lL0 z0&7D(y9k4i=_OSh=#Yb{W*1}D;JuyBqk%frW~{aB6FD?WsYqlfZP6pO6MB)ehYX^85swwmbh+xcR}o88xKe$C~0nGx_)MTz%g{!c=U;} v9P!{yO$&9)B(3eFOagmsKEXd{wW*WDuOuA%*^V}-wD|{*T<{!NwWq%Tr_a73 literal 0 HcmV?d00001 diff --git a/bin/controllers/PilotController.class b/bin/controllers/PilotController.class new file mode 100644 index 0000000000000000000000000000000000000000..ee8b6508674afa74cc43db90b6b4fa1cbeff77fe GIT binary patch literal 925 zcmaJYt`0UF0}z4tq7&!(^7>>z{gE8#3`HIve{JpR|>X* z5B>mulz3(m(l!BE*!^zjoNvzTpTEC;131Egi=4oAKZ&z6i6WJbJ0EnEWXJP@3rAq> zEW8LiQ5X+9?|Wyep9!ptl7Wf@N`Vb#xI+QwLaQ$VmB4&wgbzhN(9B ztmtH)^;lph_|JK{rW~uxx^NPXNVU-ju8)73r8*uSHoHFV;l7J)j^8vuVh42rmlRX9 z6I+t%G6#{vTSB!)b9u_>JeGKZU9xh1%IZ(f2Vtg+uRflm>7qdw795vop)IgJ(Btzc z{A!Q%R%M}%XhLP-3XJ3aX);Os>YX+Y))sz*17iYq>3W{OPL2;R!A86SejRo^_|dht-2&G6t`Y!_I~?~QQNk)}tUQ{+uz^ixB(O5VMn)({fxD>B zWRC12fYrZ2i*aK+(`$VecDjIhb_| s?0`IGMQP*Wj7i`rm!INaaoWsD;ww{*XNw!vskC*2N6vZniOk`}KYQ}DH~;_u literal 0 HcmV?d00001 diff --git a/bin/models/Flight.class b/bin/models/Flight.class new file mode 100644 index 0000000000000000000000000000000000000000..d950f4ae436333a0fd87694d4f8fd57cb716aae4 GIT binary patch literal 3177 zcmbW4-%}e^6vxj(e!`}dND6`0Qne*4l(c}f3I>r#O$ks9O_f&b5|*%Kv&&>Rc7|8~ z7+;)GXPP?WgO5J=7y0D)J$E-`vus{uhQ0Uho_p@+e((1lhQI&)<4+>mpn9AJBuX`` zBh9e$TZUdgapDw_=;|x=2Q_b~W<9@m_)4qcZA_vu@m9C;6|JeOhJLOd8XAIaF|2A$ zTer-orJ_XAW2D`*OxsaSr>Yt)Es6#CN0KOdq&lsJM47V4=jaVBU$$zhQB)mmRiap< zWjk6^qO=89=! zBpS@kRwasTLcAdwq-mM1(+wsA|vAL=W&7ha}GUA-*Hb?h}kJW$7 zh01bSivRbfSn90kZuj7Fn%QcSB$|;)rWE&PWx7Hm+?$i>s@uCO)2Q3a%anF|_hovA z#yDPF{dXy zK`IKvwx*lY0(knoRo7nYn$5R1RdLkX>5h6P?ogbLdJ2_WAy5=5R;yXlwsfvd!){Sq z;7UWcV7@{8MroKPDNYIWlc-4pG=yKcUG(8~(ZcDXh0jF`mx~r27cCqvTKHSEaJOjT zZM5Uaje3CRyBIB@mC#0&-|6OWBJ38PyeuJI1lQ#~^kg@P-lq>R;sm$x%J zfS2E~coETK`S_1Ofr|viM2{s*h#rf`M^WG+0bRJqLJlMM$F%CHkVosv_=fKMil71D z5t8xCnNSJWfbL3IKs3u86Y_PXa1UV)aPuO=H8<*Fi!pDD5|GxtTz-&T5F{T8@+tn_ zhJfUPAWHyQ?gPRKvjU%mf+#@{KDf)K+6)I#f*`8^S?dGB2h1SFP>}f`$a*Nq=iwmp zL6A*=6#Ia%zZhgI6l5U?@+cJKQ8>s#5M&!5&BI3>v)=m!FZ^cR z3k7*h+uq~??hoIfm@B zDU_5T$a8?a=mWx+n?at?mtHPE$a3&#UWS5vMU_h+sD8^qkQzXa`hak4VUR2|>l_V_ zT}4)ciqu0vo>JAD+@r`!5abjfMjw!8C~ds(*P&*87*xax1^Fi2tiIar7Bm|mP9G4i ztPFB+0m8mxMaJNf<-aJ!&0Bi@6GhYCGuNQ6(7yI@jd^AA5Ha{?Vss-;H6+q79H8U> E08m-pYXATM literal 0 HcmV?d00001 diff --git a/bin/models/Flights.class b/bin/models/Flights.class new file mode 100644 index 0000000000000000000000000000000000000000..2f55ca3fa9075095d828c57f8da3530af4f309f9 GIT binary patch literal 892 zcmZXRZ*S627{$*m&`M#nQU!EQ$MglmWc>gvBxu5`MolnezPw=VE-7HzVlqFKCR>)w zWFKH3%J|&d%D=woztiWO^Xt=xzjyZl1~@UGG1TVEuYMT2!%zg5No=6VV9)pu?uL93 zxF07of0`K38J;LrEZvbG2_A}{d=mN$#<$c-Hcw5g5)rzdh?5>ec_e}bPgW5Pw)bA2 zdpp&=KF#arVj+?~L!omzW+=WVI1>d}Ra8(l@R-5blnkPXU&$sDHmov;u?ho^7%WdL z{12=7#E(9wn00SC<>8nUI$>vGF}W161m7Wv3B>8_(e@j1z7Paml*k5i@zk%~xO+Te`jV7Rc6@MT%(#T7>>*1eMRHQ6mHF?z+B7g<#vB7JktMGw_W3vQ4uZ= z#g`4!a90#`r86a><{6nJx-hBY3dR$-u3*%|_Pnmzwm6fnlemV-J}8)0F^mzpnpH7| z5d}j9!_;?bCkMK{=f^8muntAFBp5@+FWBsMj}1q`U?H3f;@wZTWB;F>Oi4oAQlVl% zt}-eH{ndhsAq+6oN4mS?WnwIyX_usdQ#ZI00U^Vaq{M1HVM&@d9wzu^J2HV2G>d-I z&ohNac2jkzaDM08HalgNUYc5?0e@3U(%)*`jntBs;}t~RDFKqOQ za@hyz$2V9_;9DlSSwXURRIDM-ile213!(OVFPC}2!u0E&ZAG)D2j-wzzibKeY=#>q z#g^Mtv4w2~6DOjgvndaSyKlJ1_4Z`dZAIj_y&~FoBFm=NwfuG_ThXf7hx&#g$3)T_ zFH7><3A$!kuH)L`^s(+9TV*GSrzj@yJ^Qvf77X)^RnfD)oKLHEUlp8zP6AB)&9-nveP9AVa`;?s$|CZkfg2nMUA%e_ z=io}9m+L-ON(@O}oEYAk^TNAxT6lL3HrmOGieZ!&$6M%mm}`zm{!Y;1sizNI*WTf( z_5s(Pzr#o8m})L(e)oiK@Hd5S{tokZgrg}%q)~j#9hG8~z$cjFUCQ4K
OJfnH? z3+I^E7SEB^Zl81OKfF!zgF&rs!uAn%5LfAM64UgXp*QJS^VI{-@>vE&(r9vw^5f-7 z21bT)5w`=bEbr2)NBaZwzi|;`tidSD&FRob^)x+%xqr|JR0avi|@ zCVIdVes#xL_oE(a?o!m5R@9Y9)aA=jy`~GJt`Rlg0oCvCFzQ%<`gJ2i>p>t?7W~x0 zpIC`uzco)A=*Pp554BObD%OKMeHW=X(?M~IirXC&Hv+|njS^fAW>HEuC9gCu?L8g= ztufsR#WdCE&_Y8gTsv*;T?`$rw|5sFGt)8b;0f5aNnpZ4M%aNWTL*vaS{vISH?(JWCrGiO2SCx#ZaI*Qq!3%<{9VqHeMe^ z>&3%kj@w6Srix>MTL17&p#FwrE^6@FXrb+3TOe3oMQ{^4eWz(GZ<6mX;YD#ab8^K25oRr)uy%IsHqKiKCoYCIY|EWHz6oBZb%T-15b zZSuTD<+Ygu{J||cgJ1AJ-J<&g!8bGgfaeY;V0IF*>5<)^OLN`H?s;&kzI8*r%O&kh8iw&Sw z>JQ*YAG=XJk(?w!Y{KmPz6;){!tK+rRJY-AdqN}aiI1lE4ZD|vYx%3d$g zkt}qcg@=>1Ky_bdx;PLhH@7+h&QX4$e3an@sGurPZ|O{ZAEf8XoXPV<3Cy(eNG2U= zwB3&nouaGz0=3p_2YUjQej!aEu-I&ko$w%5VcY87R>#GAfyR|qzx&}yo~m|al*)WG zFl!Ce?P@;2g0x^suQ38gl? z_2H2-&3sGS7-fuU%*7&>$n$7w86Q~R!$+))E9^3k>^)$00`~a~wBhh?UR&H?pVs0h IY6+j80oOc$i2wiq literal 0 HcmV?d00001 diff --git a/bin/resources/icons/add_flight_icon.png b/bin/resources/icons/add_flight_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b07165d28a113f946f6fe66588e4649abc5909ac GIT binary patch literal 14686 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 literal 0 HcmV?d00001 diff --git a/bin/resources/icons/edit_pilot_icon.png b/bin/resources/icons/edit_pilot_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4f1c58d33ffe80b9951cbadae81cecad1f3d78bd GIT binary patch literal 11069 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 H+|B<3wnL|q literal 0 HcmV?d00001 diff --git a/bin/resources/icons/help_icon.png b/bin/resources/icons/help_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1dc79db6ce2332fdc7ee57d08e360b66832871d0 GIT binary patch literal 15201 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 S{h;<(0Ds9$zw)B%z5fF=gB5rH literal 0 HcmV?d00001 diff --git a/bin/resources/icons/manage_pilot_icon.png b/bin/resources/icons/manage_pilot_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3cfe1955b042d32ee3a771e8c3553cbaf01daf67 GIT binary patch literal 4928 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 GkN*qWgJduO literal 0 HcmV?d00001 diff --git a/bin/resources/icons/view_logbook_icon.png b/bin/resources/icons/view_logbook_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ef5f13d85afd7c8d066b6015414c80166f5150de GIT binary patch literal 12330 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 literal 0 HcmV?d00001 diff --git a/bin/resources/icons/view_pilot_icon.png b/bin/resources/icons/view_pilot_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1ec354df1d3940e61310854fc198d891e2cd1e37 GIT binary patch literal 14251 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 bwF89f`jws6dC)8HM>_~>WNBETkH7VQ9VtKX literal 0 HcmV?d00001 diff --git a/bin/utils/XMLHelper.class b/bin/utils/XMLHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..9f1fd64517b6c260ffe7b0dfcd47582089bcb9d5 GIT binary patch literal 1699 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 literal 0 HcmV?d00001 diff --git a/bin/views/FlightView.class b/bin/views/FlightView.class new file mode 100644 index 0000000000000000000000000000000000000000..a8b88b92b5444cc81fe7c39036ed9fd0e9710c8c GIT binary patch literal 2577 zcmaJ@+g}t_9RJRO%(4uE1A=HNh8l>vWjAw;LI_0{uplh$;$a!sk=YsAIg4WV?0(N~ zYW3_xz0`x{KJ@9if2BX5x9oe)EZZzlFTb-pWjXZDZ3%fA5_#P=o=23nU~=R%ks z@!a{moaS#6^^~3$OCs$Fe?C1ibKc2G0}V%9-<1Of>U#U84b%?>vrYn1U<>(4W>6n0>ziEabUH91?j3q1ys z^Nt)AvQ#k8+1nQdkZ!?A>sC?YWK!6TyG`t=EltO_(2G9iuq3>aGcjjiPdtZcP?<{9 zcv?2+-EUzZ_Ve0;Sa5~{KPTjASLXREl){&6b4{?7g4WikDok6r2lpCiWI1CccD=~q zt<+O{vw?o)aleHJl!rx+!I?R)G#?bDjYOn9WZ_|@ZLVrBIWE<8k@|>*N0honsr`kL zKPSV;pguBq%;G*DWoKwGH5H8LB^|c8n8T{<$JMlk*J+H(?3jh)80D7f;Fm<+%L;$C zx%V!2M96@9(y_89+GeyO&osev^@?>A@Hp4ibHZKOAXq3ZX4WD$CaH0pVx8-lpN-kC^QKfn z3<=MhV?{upRC;l6Z$J6uk?YeUG@Wf?i8L;C4n5g<~!Hh|P2~AuxuzSsf*6X>6Zw+k!e^Vkg8W47JQ|tI5gVa#pPEwOxny0~Y!`@$z{E0sj zNRcWvXwXDzMFu>Z$q{U5A*HjipTQE8{rEFl?T(w+!n6M-w*QJp%^<-#)%j^R>r9q`@}UQ?Wb;FgMGS;XJU#oWjv=@Rb!p5 z@gOS#-?JpSt*o?<{2|tOj1^9^MhC5s{N!JTjqlKgANY+|{pg5luJnV|<9WQmj+~=z z8xnuviixh<6eLU-CLepAT_!)U1_Wm4oTFg^v%3G+_^Y0LPya0t$>TR*@4tlw1HWU( z*xr3N@giBiAJ=dHsWPwEncLc>llg4n--k|qW_%Pq0IBOqWqYKaMmrun<#deVJPX83AKK=4`3 z(3~p*4#(R8`W6KE$ISwh;KN=SB4h!+c;CVv2-q(pfS`bIS~J*ebtT8Fc{Qh#vq;*^ ztNMa!Y5aL>(eIQso4dzoh(OEXHTz6BA-1$4JHHqX|bQH!Y(j$v;ICk6a7rB_P|vx=&1 zGhOL+u(P;zM*Ru-97a+HF`Y(`lSQ#R8a zrl=GpWqV4-X-=7FGl#Rl*Lq}}#S;Sd(%NJ}bG$?J#}_$=aRJBLayV9X9McG)pNuV5 ztq1q>%MyAK3n3xka-z7N$f^0|l4VwnLLzVKrZudbxpeWu(5 zjc2?(uNk9xM>7opC$^Q}W*cWbb0-sg2d86}jrq{h9p^g;KCT<4U4 zgaVdiEb|8Fx69@l^&y?NBmu`8^m@Kq8W#1oP??%EFEs%t+anv@h&MuBGh+_Pvb#Oj zt2#pZS99h%W!?&Fk|tpSZbZ$^zbPk*OjlQO1-0iqdD|w?D*~@L+zN6#>Bi2;A!T|a zN5VSZ;Rg`nckjtK$jK3i#OG{(9A8j{Q}r~K1pMtK*Rs` z0y_8~1G@9kJ;{Tvd+2G3);s7|>aWxH+;7nkAVc(Br_sEGGkBZE@lASr8*$u0pG(FSFU>77B;10I6(S*mk6^$gs(NXqLVJB= zYXlZ-BJ(EU9aItM?BIgfI*4(?@Pi0%Vm-^Ft>Z=w@9qQ~Bp@iTol^*JpF$Y#;{$r{ h!-s_FAon-vm!HQiTDy&J@GZWh6)wZ?aTh-#_8%T?+)4ld literal 0 HcmV?d00001 diff --git a/bin/views/HomeScreen.class b/bin/views/HomeScreen.class new file mode 100644 index 0000000000000000000000000000000000000000..f2c85988f09eea749561a2dd3455de4bff85c7d4 GIT binary patch literal 6431 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 MiNn(&erLJ)XHShy9smFU literal 0 HcmV?d00001 diff --git a/bin/views/PilotView.class b/bin/views/PilotView.class new file mode 100644 index 0000000000000000000000000000000000000000..e2271b0d1908f4e69fac07a9ac254385510d42ae GIT binary patch literal 5352 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 literal 0 HcmV?d00001 diff --git a/bin/views/ViewLogbookScreen.class b/bin/views/ViewLogbookScreen.class new file mode 100644 index 0000000000000000000000000000000000000000..f3bca7e925c2ba7b04f14c40215f604c4ce95721 GIT binary patch literal 5305 zcmbtY33Oal8UF5MGH)_@$)ss0eWk@NDQz0kp-`!03N%SObeSwPF=YyhFEcNbA#dJ` zZ{DO$wJxa0;&B73)&&<3^@uD7C!r~|iXtK^h%2t3aRC%jaX|$C`|ixkn`WBBIn6nl zx%d9}-{OV`z$V*zo>{vyb%i(Qn7ZKgHl`galGWfg9lomo2YGp`} z8LHN{4Ay|5UPd(n4B>dj(0cOOAIuXQa47J00COu;3*6+{iA)F3H!eU~Uw=;S!a#?qLyQYt6mW(AhgD&f)nu=Lw zmH-TA31x&O`fV#?q@yj4eqQ55B`hN?vZNkSj0tWbEXAv2EXN9lP+GH#$E4HRA_Xo$ zB%aCH(ORs+Y6;Cm#4)@Jk#QEs_nE^Xti?JBEey+x_D`C+PM*n_2JyVCYj!826=yRn zG>3AUHO>v!VOi<~=fn^#YUHq(MJj4VZuOGwbtyPvN?6ZuX370Y&Cuw!VOypiaa_Y= zDTFqh!~MI#wch+hTLvYZH>*`{E?JT?pEZJbH3i{T)y`)_I2W5ZkJm7qR>?y|vYlal zMM;yIu1ESTlU#03461rwi>XQ5v?x|K6N8jsZ~-=PE*Hz#LK%aFInC}OMDKlyKsVHd zHC0_7Qj??6mcbypC?&e{Ia{-W*hcGYaeWCxO~=r%o==;W9mEdWsphcTKrhV7gpA2 zPT(y(Io`@^@#StYcJhi}pzy50+wl$wS5sgY@za`_)og1b(r4ymyc6#twY#?U3~bv? zMlI3sULvg~@NOB`;yQ{z(yD{Xp235GM0V9G!{7?tz_92kJw?<@{do-xEY@!TM_nv zIY!F4B8fs)G&sNe85y7DcWdZw7uiX(xEpSj@i}ho;6QKRmGNz{0eXstx8 zqBmLw16!I)_B)K*WqcWT2wvT)mChJc4qp*5*MJi4qPMCny!v?z1-4u#_yo3GecV}v za3?0Y!=@OPoWP_{wMfzG;a8$yyhbr$KLiy#LM69 zCw242PYh9(mbaA?W2M$|g(F17b@t}+;D}yCv^SOnP0qGl)FqdCEgm(M&^DCNPU84V zINRpI5w<=NOUO??OH*Ds?J5`fl;~_V^Ax>~>akOiX9tzMv}T<;p-$7(HPvtk)zSQs z9PL)einBpbSF=MYwfP*1JGT^x$5lMK&dW??M8cmb_r(OUo!&k%{Dklfp5>)1$XCzF zSjg)JqjKbi=UieGp8aOtN@}qT?-CaAG%g#doJN$mk>GaDw$!n1%^opRxe)%17bN_L zvYgjhF;ZlVadT9Q#2r28qB<%dnyBDJ+|NL@GA(0fE0M zF^y&jOQUYL;lv}XpmDc~UQL?m_{>YIDq2&#(Ps_qVs!4K@6ftQ`fvRT>h7YQ4`KSO zcQ6;j4~6b7Ap-!5#BD49?^t>B#Hmuq^2il5{q01bpuVMzO;cEO982S^4p7rKsdE5t5CFwrz>rdXFNS^CBQ^o=M)Gcg-c5~n6Y_3qy&KuPsS}%N=!r&S z5@YT4O8vSccq33iei{=A|9yBaw-s=W5}wBOi6*>f67MbG14_8@ zLj`#t)Dd*D%`_(Oz*aU$BXSZkHik>sL7IuL#ZGo3;_Ox$fNw_+JBnU*KQ3htV>f#Y z{p@iJuqSDa(yEU1xd}hR?zjNiBapjzG<(zTloN?uxapnBIE9W0vIsfR&IfFX< ziTKO#y@)0WOFJd3YVh%DE9wZkND5w?C@`N%@VJ@8Ukdo^Y=Pp12iWN;OkuY$h4DB1 so#0jY2i@`EdHmC1#_&HndztxI74y?cBmFj6%_LR>h0!lCRPJm34~HW6SO5S3 literal 0 HcmV?d00001 diff --git a/flights.xml b/flights.xml new file mode 100644 index 0000000..f17462e --- /dev/null +++ b/flights.xml @@ -0,0 +1,190 @@ + + + + + + + + 2.0 + + + ea + + + 2 + + + 2 + + + 1 + + + 2 + + + aed + + + + + asd + + + asd + + + + asd + + + ss + + + ddas + + + + sad + + + + asd + + + asd + + + eee + + + + + + + + + + 2.0 + + + asd + + + 11:00 + + + 12:00 + + + 2 + + + asd + + + asd + + + + + asd + + + asd + + + + asd + + + ss + + + ddas + + + + sad + + + + asd + + + asd + + + eee + + + + + + + + + + 123.0 + + + sad + + + 123 + + + 123 + + + 123 + + + 123 + + + asd + + + true + + + + + asd + + + asd + + + + asd + + + ss + + + ddas + + + + sad + + + + asd + + + asd + + + eee + + + + + + + + + diff --git a/pilots.xml b/pilots.xml new file mode 100644 index 0000000..71cd69f --- /dev/null +++ b/pilots.xml @@ -0,0 +1,55 @@ + + + + + + + + asd + + + 23 + + + asd + + + + + + + asd + + + asd + + + + asd + + + ss + + + ddas + + + + sad + + + + asd + + + asd + + + eee + + + + + + + diff --git a/src/controllers/FlightController.java b/src/controllers/FlightController.java new file mode 100644 index 0000000..47fd6d4 --- /dev/null +++ b/src/controllers/FlightController.java @@ -0,0 +1,28 @@ +package controllers; + +import java.time.LocalDate; + +import models.Flight; +import views.FlightView; + +public class FlightController { + private Flight model; + private FlightView view; + + public FlightController(Flight model, FlightView view) { + this.model = model; + this.view = view; + } + + public void setFlightDatum(LocalDate datum) { + model.setDatum(datum); + } + + public LocalDate getFlightDatum() { + return model.getDatum(); + } + + public void updateView() { + view.displayFlightDetails(model); + } +} diff --git a/src/controllers/PilotController.java b/src/controllers/PilotController.java new file mode 100644 index 0000000..6db6a12 --- /dev/null +++ b/src/controllers/PilotController.java @@ -0,0 +1,26 @@ +package controllers; + +import models.Pilot; +import views.PilotView; + +public class PilotController { + private Pilot model; + private PilotView view; + + public PilotController(Pilot model, PilotView view) { + this.model = model; + this.view = view; + } + + public void setPilotName(String name) { + model.setName(name); + } + + public String getPilotName() { + return model.getName(); + } + + public void updateView() { + view.displayPilotDetails(model); + } +} diff --git a/src/models/Flight.java b/src/models/Flight.java new file mode 100644 index 0000000..ec52679 --- /dev/null +++ b/src/models/Flight.java @@ -0,0 +1,121 @@ +package models; + +import java.io.Serializable; +import java.time.LocalDate; + +public class Flight implements Serializable { + private static final long serialVersionUID = 1L; + + private LocalDate datum; + private String muster; + private String abflugort; + private String abflugzeit; + private String ankunftszeit; + private double tToF; // Flugdauer in Stunden + private int anzahlLandungen; + private Pilot pilot; + private boolean isNachtflug; + private String kommentar; + + public Flight() { + } + + public Flight(LocalDate datum, String muster, String abflugort, String abflugzeit, String ankunftszeit, double tToF, + int anzahlLandungen, Pilot pilot, boolean isNachtflug, String kommentar) { + this.datum = datum; + this.muster = muster; + this.abflugort = abflugort; + this.abflugzeit = abflugzeit; + this.ankunftszeit = ankunftszeit; + this.tToF = tToF; + this.anzahlLandungen = anzahlLandungen; + this.pilot = pilot; + this.isNachtflug = isNachtflug; + this.kommentar = kommentar; + } + + // Getter und Setter für alle Felder + public LocalDate getDatum() { + return datum; + } + + public void setDatum(LocalDate datum) { + this.datum = datum; + } + + public String getMuster() { + return muster; + } + + public void setMuster(String muster) { + this.muster = muster; + } + + public String getAbflugort() { + return abflugort; + } + + public void setAbflugort(String abflugort) { + this.abflugort = abflugort; + } + + public String getAbflugzeit() { + return abflugzeit; + } + + public void setAbflugzeit(String abflugzeit) { + this.abflugzeit = abflugzeit; + } + + public String getAnkunftszeit() { + return ankunftszeit; + } + + public void setAnkunftszeit(String ankunftszeit) { + this.ankunftszeit = ankunftszeit; + } + + public double getTToF() { + return tToF; + } + + public void setTToF(double tToF) { + this.tToF = tToF; + } + + public int getAnzahlLandungen() { + return anzahlLandungen; + } + + public void setAnzahlLandungen(int anzahlLandungen) { + this.anzahlLandungen = anzahlLandungen; + } + + public Pilot getPilot() { + return pilot; + } + + public void setPilot(Pilot pilot) { + this.pilot = pilot; + } + + public boolean isNachtflug() { + return isNachtflug; + } + + public void setNachtflug(boolean nachtflug) { + isNachtflug = nachtflug; + } + + public String getKommentar() { + return kommentar; + } + + public void setKommentar(String kommentar) { + this.kommentar = kommentar; + } + + public String getPilotInformationen() { + return pilot != null ? pilot.getInformationen() : "Kein Pilot zugewiesen"; + } +} diff --git a/src/models/Flights.java b/src/models/Flights.java new file mode 100644 index 0000000..9b5a722 --- /dev/null +++ b/src/models/Flights.java @@ -0,0 +1,25 @@ +package models; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +public class Flights implements Serializable { + private List flights; + + public Flights() { + this.flights = new ArrayList<>(); + } + + public Flights(List flights) { + this.flights = flights; + } + + public List getFlights() { + return flights; + } + + public void setFlights(List flights) { + this.flights = flights; + } +} diff --git a/src/models/Pilot.java b/src/models/Pilot.java new file mode 100644 index 0000000..e7f2221 --- /dev/null +++ b/src/models/Pilot.java @@ -0,0 +1,85 @@ +package models; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +public class Pilot implements Serializable { + private static final long serialVersionUID = 1L; + + private String name; + private String adresse; + private String kontaktinformationen; + private List lizenzen; + private List zertifikate; + + public Pilot() { + this.lizenzen = new ArrayList<>(); + this.zertifikate = new ArrayList<>(); + } + + public Pilot(String name, String adresse, String kontaktinformationen) { + this.name = name; + this.adresse = adresse; + this.kontaktinformationen = kontaktinformationen; + this.lizenzen = new ArrayList<>(); + this.zertifikate = new ArrayList<>(); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getAdresse() { + return adresse; + } + + public void setAdresse(String adresse) { + this.adresse = adresse; + } + + public String getKontaktinformationen() { + return kontaktinformationen; + } + + public void setKontaktinformationen(String kontaktinformationen) { + this.kontaktinformationen = kontaktinformationen; + } + + public List getLizenzen() { + return lizenzen; + } + + public void setLizenzen(List lizenzen) { + this.lizenzen = lizenzen; + } + + public List getZertifikate() { + return zertifikate; + } + + public void setZertifikate(List zertifikate) { + this.zertifikate = zertifikate; + } + + public void addLizenz(String lizenz) { + this.lizenzen.add(lizenz); + } + + public void addZertifikat(String zertifikat) { + this.zertifikate.add(zertifikat); + } + + public String getInformationen() { + return "Name: " + name + ", Adresse: " + adresse + ", Kontaktinformationen: " + kontaktinformationen; + } + + @Override + public String toString() { + return name; + } +} diff --git a/src/models/Pilots.java b/src/models/Pilots.java new file mode 100644 index 0000000..88c3ef6 --- /dev/null +++ b/src/models/Pilots.java @@ -0,0 +1,25 @@ +package models; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +public class Pilots implements Serializable { + private List pilots; + + public Pilots() { + this.pilots = new ArrayList<>(); + } + + public Pilots(List pilots) { + this.pilots = pilots; + } + + public List getPilots() { + return pilots; + } + + public void setPilots(List pilots) { + this.pilots = pilots; + } +} diff --git a/src/program/Main.java b/src/program/Main.java new file mode 100644 index 0000000..1045456 --- /dev/null +++ b/src/program/Main.java @@ -0,0 +1,17 @@ +package program; + +import javafx.application.Application; +import javafx.stage.Stage; +import views.HomeScreen; + +public class Main extends Application { + @Override + public void start(Stage primaryStage) { + HomeScreen homeScreen = new HomeScreen(primaryStage); + homeScreen.display(); + } + + public static void main(String[] args) { + launch(args); + } +} diff --git a/src/resources/icons/add_flight_icon.png b/src/resources/icons/add_flight_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b07165d28a113f946f6fe66588e4649abc5909ac GIT binary patch literal 14686 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 literal 0 HcmV?d00001 diff --git a/src/resources/icons/edit_pilot_icon.png b/src/resources/icons/edit_pilot_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4f1c58d33ffe80b9951cbadae81cecad1f3d78bd GIT binary patch literal 11069 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 H+|B<3wnL|q literal 0 HcmV?d00001 diff --git a/src/resources/icons/help_icon.png b/src/resources/icons/help_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1dc79db6ce2332fdc7ee57d08e360b66832871d0 GIT binary patch literal 15201 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 S{h;<(0Ds9$zw)B%z5fF=gB5rH literal 0 HcmV?d00001 diff --git a/src/resources/icons/manage_pilot_icon.png b/src/resources/icons/manage_pilot_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3cfe1955b042d32ee3a771e8c3553cbaf01daf67 GIT binary patch literal 4928 zcmeHLX;72N*6xHwU=&nzSOoQsFGOWggQ6?}7rYV_;tC@mqCg^oK-dBkmN1IQRYc!7 z>?Ald>Zk|^8Ug`{8}J$eC<7+!!V8EbAmJkzS@MON@6Ww;t8RTi=Etp?A6?ybPWS1q zbIx;?PCx8%V404w4gg>o(beTB09e%$3$!#<)BnW%{#7+;N4TDh0zmiW;=nY7{}!ks z8b$B_KKfWVIhuARG6>LUH0$87kf?w&5kc1Bk(B&#M`Hk13W+Xzj>i>9dxD!TcGBoY~|H;U@@TvlZiZCk3l;u>fkT(~;lvQ-lZRyGu zJNiV$7JgV)Hk!tC+=!^bju9h$bex?nB85$us0UF_${X~XEQGww>~hdN=(M{`46$o^ zxx0`%L|ym14WV}uD{#Q4KbE+bXXD`!=?3#W3g5~VN8u^BfQ{~RP$mk0H^Lkq)g?B& z%I;cDcz~El6CsJ&WoNSK{mlPVMUc2B!IF zHazDw%$8isUzZKVQ(<1uM+DLEVJBRx-KI+x zNgh8AMDEE2iV1v% z(6Cfz)n|_@np@muT@|?J^>MygrRoboaum#BV)Krf8?n_x4B?2ZlVCS zCVIS)-Kt+=UL}1M-_uHm9qo{(6*w$EW42I|F>&4b7P^|~;Vx6#U{G@>EE`QHChZiY z#?e1`U+*)nJ`2Jgr%@Emu^rk2Orl>FiuuLB`(p~xkA;>u(GyFFva;u6>it?$k}Nzo z>g<;|xFU9#|NQ|oyA8+z{K(UVb6KTUK(xURo+fE}LGhlx2W?&+ITDM-w+%vjYheX~j>>L0JEXlOqeCD+bdlY>~Ibh3^Juu8zTu(RX%WA_(D4UoOu1l>1Vf z$#$C&ADblQm#L@Us`CfFKz)s(i?j5>O-cC@4zXD%N>ssV=KGL6z>?IxCf>hpyTFPZ z%HajhwW*!1?mQ3PNCl#cUn}8)n$Giv(gtRN&7eG6nVz->Q#^3%TH=A3pQp24xFy*H z%osh_D*N$$P{KZm8cuNV!dUbcH7W8G6|3$mat8oFdyYY%a*IkdP#cO0|!VEIVU>C`xI3~0_SLc z1#@c>2}l}+ge9*8Pi8+#w6_X1R4}yB2Azp#0A*3Cc-Mp)05+k@qeq0|s;VqJf zWnz6st~!vG|KN`cN6(T#$Ht((b4{k z@ZY14C&_Ykk=s4U?u;DLZBu#iu0yy$1@GOc3>p!#)VubBtuIQ=?4lOA&lb7&p!hBc zajP&z3&iG@{uy@v<4G+AgcPgj^~f_Z6L8W(dO5VY@3DmNMSw=$^14=jKvj6!aDT%Gr)AopL~^sl_||A<=a z?Y7ggptxi~v<1N7OGU$`nxXnd?WRjYr^eJcRY%l!M@H~%GmXmJ8J;xbGT}qb(5PRu z7-)zZ$L=geGs*?{eTuEx=BJ^yOk3DCsiul-zw z>2eI_+hV*4=lHhH&i?sp_5+A*SSHkmO`QFC;KFz=+N;KK7!cJRQRn9r`k#i6EeSO! z5(b~VexE1(8PnCh5$o@(;Y4kX#pD&(p5slk!3~q_q4dK%g4600jffDFLR2PMm{e4A zPvx7k-{fc+o+ts!JX&%Brh-DO&z8z`V!qw$WNk zoolyY%bde4^v;-7s(X~ul61xR>C~xwl;Y{Lj6WRbmKA{hHaHPOTwB(8UgSC<5Mk$! z!fB5<#*EsD55#8$j~jYtN;t;09ZY;I&hgfexMRjgRXx*1+D0?G z6KKA-hA=MRkw;VH>4lGjQbmZ>72!;jQQf|^ZmRY*(>K^1(2;%21p6_Q5H{yso(MY& z&rv$W+v-*sXkt&X;K@EkGR=2+YTRBpu(|-CC<9V<#^7!^pi>NXhKtY7tt>twYDhM^MArKk58<3 z>Yb^tKQZ|*x!Y|^bG3tXn%4W?yz2cIGpwYVM~ScggHLr7==+*+=@TNU0wk<1>1l zcwKCSBgY3sABAU|3VzRsi-jwjSg*{Ng9F17s6|zugRtM(W{M$IYFmZvZ|rtLmQ-{% zWBI+4H=#^Yq)?I`s)LC@leQvt^|V8P{u;-0v_?kAq(CP3!CYhFHo-Bh^c?CFCt)Y4#Y)FpMk)y!jv)DlTw55~TF!)$liTd}_QcnO9( zz4j*B4b8Ar`&Y7CWG9N5%17%#Y{R^&twl1MSX%rno~6L6EW3%-cz0?wf1GQHkjU|K z5C}+skWExs-|7P`EdIB4IYYVg4d#k;Bnl(4P5ucrqE1eiOs?h|wz$gbp$4H!(q-Oe zLEHSo4{{ey1~44?6$(EnYgF~(qQeH}@#F;5`BDg|SGd3pkfNP?VtK!70s*loPbmC^ zI$t4y4(bF{dPvs2cwlhB8ul;k*=hW!JGENO3KjN41h;v1Xm8Ybo@XdaPG z&D_CaZLH6jKm3rkP>UB#xj(xxl#4Tv&e5rkGl2nf>pDZC6k7LsBUQg&fVkhorDU)F GkN*qWgJduO literal 0 HcmV?d00001 diff --git a/src/resources/icons/view_logbook_icon.png b/src/resources/icons/view_logbook_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ef5f13d85afd7c8d066b6015414c80166f5150de GIT binary patch literal 12330 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 literal 0 HcmV?d00001 diff --git a/src/resources/icons/view_pilot_icon.png b/src/resources/icons/view_pilot_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1ec354df1d3940e61310854fc198d891e2cd1e37 GIT binary patch literal 14251 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 bwF89f`jws6dC)8HM>_~>WNBETkH7VQ9VtKX literal 0 HcmV?d00001 diff --git a/src/utils/XMLHelper.java b/src/utils/XMLHelper.java new file mode 100644 index 0000000..0d92428 --- /dev/null +++ b/src/utils/XMLHelper.java @@ -0,0 +1,30 @@ +package utils; + +import java.beans.XMLDecoder; +import java.beans.XMLEncoder; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; + +public class XMLHelper { + + public static void saveToXML(Object data, String filename) { + try (XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(filename)))) { + encoder.writeObject(data); + encoder.flush(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static Object loadFromXML(String filename) { + try (XMLDecoder decoder = new XMLDecoder(new BufferedInputStream(new FileInputStream(filename)))) { + return decoder.readObject(); + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } +} diff --git a/src/views/AddFlightScreen.java b/src/views/AddFlightScreen.java new file mode 100644 index 0000000..95f44b6 --- /dev/null +++ b/src/views/AddFlightScreen.java @@ -0,0 +1,183 @@ +package views; + +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.control.*; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; +import models.Flight; +import models.Flights; +import models.Pilot; +import models.Pilots; +import utils.XMLHelper; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +public class AddFlightScreen { + private Stage stage; + + public AddFlightScreen(Stage stage) { + this.stage = stage; + } + + public void display() { + Label label = new Label("Flugdaten eingeben:"); + label.setStyle("-fx-font-size: 18px; -fx-font-weight: bold;"); + DatePicker datumField = new DatePicker(); + TextField musterField = new TextField(); + TextField abflugortField = new TextField(); + TextField abflugzeitField = new TextField(); + TextField ankunftszeitField = new TextField(); + TextField tToFField = new TextField(); + TextField anzahlLandungenField = new TextField(); + CheckBox nachtflugBox = new CheckBox("Nachtflug"); + TextField kommentarField = new TextField(); + + datumField.setPromptText("YYYY-MM-DD"); + musterField.setPromptText("Muster"); + abflugortField.setPromptText("Abflugort"); + abflugzeitField.setPromptText("HH:MM"); + ankunftszeitField.setPromptText("HH:MM"); + tToFField.setPromptText("Flugdauer (Stunden)"); + anzahlLandungenField.setPromptText("Anzahl der Landungen"); + kommentarField.setPromptText("Kommentar"); + + // Nur numerische Eingaben für Flugdauer und Anzahl der Landungen zulassen + tToFField.textProperty().addListener((observable, oldValue, newValue) -> { + if (!newValue.matches("\\d*\\.?\\d*")) { + tToFField.setText(oldValue); + } + }); + + anzahlLandungenField.textProperty().addListener((observable, oldValue, newValue) -> { + if (!newValue.matches("\\d*")) { + anzahlLandungenField.setText(oldValue); + } + }); + + // Laden der Piloten für die Auswahlbox + Pilots pilotsData = (Pilots) XMLHelper.loadFromXML("pilots.xml"); + List pilotList = pilotsData != null ? pilotsData.getPilots() : new ArrayList<>(); + ObservableList pilots = FXCollections.observableArrayList(pilotList); + + ComboBox pilotComboBox = new ComboBox<>(pilots); + pilotComboBox.setPromptText("Pilot auswählen"); + + Button submitBtn = new Button("Hinzufügen"); + submitBtn.setStyle("-fx-background-color: #431EB9; -fx-text-fill: #FFFFFF;"); + submitBtn.setOnAction( + e -> handleAddFlight(datumField, musterField, abflugortField, abflugzeitField, ankunftszeitField, + tToFField, anzahlLandungenField, nachtflugBox.isSelected(), kommentarField, pilotComboBox)); + + Button backButton = new Button("Zurück"); + backButton.setOnAction(e -> new HomeScreen(stage).display()); + + VBox vbox = new VBox(10, label, datumField, musterField, abflugortField, abflugzeitField, ankunftszeitField, + tToFField, anzahlLandungenField, nachtflugBox, kommentarField, pilotComboBox, submitBtn); + vbox.setAlignment(Pos.CENTER); + vbox.setPadding(new Insets(20)); + vbox.setStyle("-fx-background-color: #E6F2FF;"); + + BorderPane borderPane = new BorderPane(); + borderPane.setTop(backButton); + borderPane.setCenter(vbox); + BorderPane.setAlignment(backButton, Pos.TOP_LEFT); + BorderPane.setMargin(backButton, new Insets(10)); + + Scene scene = new Scene(borderPane, 600, 700); + + stage.setScene(scene); + stage.show(); + } + + private void handleAddFlight(DatePicker datumField, TextField musterField, TextField abflugortField, + TextField abflugzeitField, + TextField ankunftszeitField, TextField tToFField, TextField anzahlLandungenField, boolean isNachtflug, + TextField kommentarField, ComboBox pilotComboBox) { + clearFieldStyles(datumField, musterField, abflugortField, abflugzeitField, ankunftszeitField, tToFField, + anzahlLandungenField, pilotComboBox); + + try { + if (datumField.getValue() == null) { + setErrorStyle(datumField); + throw new IllegalArgumentException("Datum ist erforderlich."); + } + if (musterField.getText().isEmpty()) { + setErrorStyle(musterField); + throw new IllegalArgumentException("Muster ist erforderlich."); + } + if (abflugortField.getText().isEmpty()) { + setErrorStyle(abflugortField); + throw new IllegalArgumentException("Abflugort ist erforderlich."); + } + if (abflugzeitField.getText().isEmpty()) { + setErrorStyle(abflugzeitField); + throw new IllegalArgumentException("Abflugzeit ist erforderlich."); + } + if (ankunftszeitField.getText().isEmpty()) { + setErrorStyle(ankunftszeitField); + throw new IllegalArgumentException("Ankunftszeit ist erforderlich."); + } + if (tToFField.getText().isEmpty()) { + setErrorStyle(tToFField); + throw new IllegalArgumentException("Flugdauer ist erforderlich."); + } + if (anzahlLandungenField.getText().isEmpty()) { + setErrorStyle(anzahlLandungenField); + throw new IllegalArgumentException("Anzahl der Landungen ist erforderlich."); + } + if (pilotComboBox.getValue() == null) { + setErrorStyle(pilotComboBox); + throw new IllegalArgumentException("Pilot ist erforderlich."); + } + + double flightDuration = Double.parseDouble(tToFField.getText()); + int landings = Integer.parseInt(anzahlLandungenField.getText()); + + Flight newFlight = new Flight(datumField.getValue(), musterField.getText(), abflugortField.getText(), + abflugzeitField.getText(), ankunftszeitField.getText(), flightDuration, landings, + pilotComboBox.getValue(), isNachtflug, kommentarField.getText()); + + Flights flights = (Flights) XMLHelper.loadFromXML("flights.xml"); + if (flights == null) { + flights = new Flights(new ArrayList<>()); + } + flights.getFlights().add(newFlight); + XMLHelper.saveToXML(flights, "flights.xml"); + + new HomeScreen(stage).display(); + } catch (NumberFormatException e) { + showAlert("Ungültige Eingabe", + "Bitte stellen Sie sicher, dass die Flugdauer und die Anzahl der Landungen numerisch sind."); + } catch (IllegalArgumentException e) { + showAlert("Fehlende Eingabe", e.getMessage()); + } catch (Exception e) { + showAlert("Fehler", "Es ist ein Fehler beim Speichern des Flugs aufgetreten."); + e.printStackTrace(); + } + } + + private void setErrorStyle(Control field) { + field.setStyle("-fx-border-color: red;"); + } + + private void clearFieldStyles(Control... fields) { + for (Control field : fields) { + field.setStyle(null); + } + } + + private void showAlert(String title, String message) { + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle(title); + alert.setHeaderText(null); + alert.setContentText(message); + alert.showAndWait(); + } +} diff --git a/src/views/FlightView.java b/src/views/FlightView.java new file mode 100644 index 0000000..17b645e --- /dev/null +++ b/src/views/FlightView.java @@ -0,0 +1,27 @@ +package views; + +import models.Flight; + +import java.util.List; + +public class FlightView { + public void displayFlightDetails(Flight flight) { + System.out.println("Flight Details: "); + System.out.println("Datum: " + flight.getDatum()); + System.out.println("Muster: " + flight.getMuster()); + System.out.println("Abflugort: " + flight.getAbflugort()); + System.out.println("Abflugzeit: " + flight.getAbflugzeit()); + System.out.println("Ankunftszeit: " + flight.getAnkunftszeit()); + System.out.println("Flugdauer: " + flight.getTToF()); + System.out.println("Anzahl der Landungen: " + flight.getAnzahlLandungen()); + System.out.println("Pilotinformationen: " + flight.getPilotInformationen()); + System.out.println("Nachtflug: " + (flight.isNachtflug() ? "Ja" : "Nein")); + System.out.println("Kommentar: " + flight.getKommentar()); + } + + public void displayAllFlights(List flights) { + for (Flight flight : flights) { + displayFlightDetails(flight); + } + } +} diff --git a/src/views/HelpScreen.java b/src/views/HelpScreen.java new file mode 100644 index 0000000..bad6795 --- /dev/null +++ b/src/views/HelpScreen.java @@ -0,0 +1,42 @@ +package views; + +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.TextArea; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; + +public class HelpScreen { + private Stage stage; + + public HelpScreen(Stage stage) { + this.stage = stage; + } + + public void display() { + Label label = new Label("Hilfe"); + TextArea helpText = new TextArea(); + helpText.setText("Flug erfassen: Hier können Sie einen neuen Flug hinzufügen.\n" + + "Logbuch einsehen: Hier können Sie das Fluglogbuch einsehen.\n" + + "Pilotenprofil verwalten: Hier können Sie Ihr Pilotenprofil verwalten.\n" + + "Hilfe: Zeigt diese Hilfeseite an."); + helpText.setEditable(false); + + Button backBtn = new Button("Zurück"); + backBtn.setStyle("-fx-background-color: #431EB9; -fx-text-fill: #FFFFFF;"); + backBtn.setOnAction(e -> new HomeScreen(stage).display()); + + VBox vbox = new VBox(10, label, helpText, backBtn); + vbox.setAlignment(Pos.CENTER); + vbox.setPadding(new Insets(20)); + vbox.setStyle("-fx-background-color: #FFFFFF;"); + + Scene scene = new Scene(vbox, 400, 300); + + stage.setScene(scene); + stage.show(); + } +} diff --git a/src/views/HomeScreen.java b/src/views/HomeScreen.java new file mode 100644 index 0000000..301c09e --- /dev/null +++ b/src/views/HomeScreen.java @@ -0,0 +1,79 @@ +package views; + +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.control.Alert; +import javafx.scene.control.Button; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; +import models.Pilots; +import utils.XMLHelper; + +public class HomeScreen { + private Stage stage; + + public HomeScreen(Stage stage) { + this.stage = stage; + } + + public void display() { + Button btn1 = createButton("Flug erfassen", "/resources/icons/add_flight_icon.png"); + Button btn2 = createButton("Logbuch einsehen", "/resources/icons/view_logbook_icon.png"); + Button btn3 = createButton("Pilotenprofil verwalten", "/resources/icons/manage_pilot_icon.png"); + Button helpBtn = createButton("Hilfe", "/resources/icons/help_icon.png"); + Button pilotsBtn = createButton("Alle Piloten anzeigen", "/resources/icons/view_pilot_icon.png"); + Button editPilotsBtn = createButton("Pilot bearbeiten", "/resources/icons/edit_pilot_icon.png"); + + btn1.setOnAction(e -> new AddFlightScreen(stage).display()); + btn2.setOnAction(e -> new ViewLogbookScreen(stage).display()); + btn3.setOnAction(e -> new ManagePilotProfileScreen(stage).display()); + helpBtn.setOnAction(e -> new HelpScreen(stage).display()); + pilotsBtn.setOnAction(e -> new PilotView(stage).displayAllPilots()); + editPilotsBtn.setOnAction(e -> { + Pilots pilots = (Pilots) XMLHelper.loadFromXML("pilots.xml"); + if (pilots != null && !pilots.getPilots().isEmpty()) { + new ManagePilotProfileScreen(stage).displayEditSelection(pilots); // Aufruf mit Pilotenliste + } else { + showAlert("Keine Piloten", "Es sind keine Piloten zum Bearbeiten verfügbar."); + } + }); + + VBox vbox = new VBox(20, btn1, btn2, btn3, helpBtn, pilotsBtn, editPilotsBtn); + vbox.setAlignment(Pos.CENTER); + vbox.setPadding(new Insets(30)); + vbox.setStyle("-fx-background-color: #E6F2FF;"); + + Scene scene = new Scene(vbox, 600, 400); + scene.getStylesheets().add(getClass().getResource("/resources/style.css").toExternalForm()); + + stage.setScene(scene); + stage.setTitle("Fluglogbuch"); + stage.show(); + } + + private Button createButton(String text, String iconPath) { + Image icon = new Image(getClass().getResourceAsStream(iconPath)); + if (icon.isError()) { + System.out.println("Fehler beim Laden des Icons: " + iconPath); + } + ImageView iconView = new ImageView(icon); + iconView.setFitHeight(20); + iconView.setFitWidth(20); + + Button button = new Button(text, iconView); + button.setStyle("-fx-background-color: #431EB9; -fx-text-fill: #FFFFFF;"); + button.setPrefSize(250, 50); + return button; + } + + private void showAlert(String title, String message) { + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setTitle(title); + alert.setHeaderText(null); + alert.setContentText(message); + alert.showAndWait(); + } +} diff --git a/src/views/ManagePilotProfileScreen.java b/src/views/ManagePilotProfileScreen.java new file mode 100644 index 0000000..215083e --- /dev/null +++ b/src/views/ManagePilotProfileScreen.java @@ -0,0 +1,196 @@ +package views; + +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.control.*; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; +import models.Pilot; +import models.Pilots; +import utils.XMLHelper; + +import java.util.ArrayList; + +public class ManagePilotProfileScreen { + private Stage stage; + + public ManagePilotProfileScreen(Stage stage) { + this.stage = stage; + } + + public void display() { + display(null); + } + + public void displayEditSelection(Pilots pilots) { + Label label = new Label("Wählen Sie einen Piloten zum Bearbeiten aus:"); + ComboBox pilotComboBox = new ComboBox<>(); + pilotComboBox.getItems().addAll(pilots.getPilots()); + pilotComboBox.setPromptText("Pilot auswählen"); + + Button selectBtn = new Button("Auswählen"); + selectBtn.setOnAction(e -> { + Pilot selectedPilot = pilotComboBox.getValue(); + if (selectedPilot != null) { + display(selectedPilot); + } else { + showAlert("Keine Auswahl", "Bitte wählen Sie einen Piloten aus der Liste aus."); + } + }); + + Button backButton = new Button("Zurück"); + backButton.setOnAction(e -> new HomeScreen(stage).display()); + + VBox vbox = new VBox(10, label, pilotComboBox, selectBtn); + vbox.setAlignment(Pos.CENTER); + vbox.setPadding(new Insets(20)); + vbox.setStyle("-fx-background-color: #FFFFFF;"); + + BorderPane borderPane = new BorderPane(); + borderPane.setTop(backButton); + borderPane.setCenter(vbox); + BorderPane.setAlignment(backButton, Pos.TOP_LEFT); + BorderPane.setMargin(backButton, new Insets(10)); + + Scene scene = new Scene(borderPane, 400, 300); + + stage.setScene(scene); + stage.show(); + } + + public void display(Pilot pilot) { + Label label = new Label(pilot == null ? "Pilotendaten eingeben:" : "Pilotendaten bearbeiten:"); + TextField nameField = new TextField(pilot != null ? pilot.getName() : ""); + TextField adresseField = new TextField(pilot != null ? pilot.getAdresse() : ""); + TextField kontaktinformationenField = new TextField(pilot != null ? pilot.getKontaktinformationen() : ""); + TextField lizenzField = new TextField(); + TextField zertifikatField = new TextField(); + + nameField.setPromptText("Name"); + adresseField.setPromptText("Adresse"); + kontaktinformationenField.setPromptText("Kontaktinformationen"); + lizenzField.setPromptText("Neue Lizenz"); + zertifikatField.setPromptText("Neues Zertifikat"); + + ListView lizenzListView = new ListView<>(); + ListView zertifikatListView = new ListView<>(); + + if (pilot != null) { + lizenzListView.getItems().addAll(pilot.getLizenzen()); + zertifikatListView.getItems().addAll(pilot.getZertifikate()); + } + + Button addLizenzBtn = new Button("Lizenz hinzufügen"); + addLizenzBtn.setOnAction(e -> { + if (!lizenzField.getText().isEmpty()) { + lizenzListView.getItems().add(lizenzField.getText()); + lizenzField.clear(); + } + }); + + Button addZertifikatBtn = new Button("Zertifikat hinzufügen"); + addZertifikatBtn.setOnAction(e -> { + if (!zertifikatField.getText().isEmpty()) { + zertifikatListView.getItems().add(zertifikatField.getText()); + zertifikatField.clear(); + } + }); + + Button submitBtn = new Button(pilot == null ? "Hinzufügen" : "Speichern"); + submitBtn.setStyle("-fx-background-color: #431EB9; -fx-text-fill: #FFFFFF;"); + submitBtn.setOnAction(e -> handleSaveProfile(pilot, nameField, adresseField, kontaktinformationenField, + lizenzListView, zertifikatListView)); + + Button viewPilotsBtn = new Button("Alle Piloten anzeigen"); + viewPilotsBtn.setOnAction(e -> new PilotView(stage).displayAllPilots()); + + Button backButton = new Button("Zurück"); + backButton.setOnAction(e -> new HomeScreen(stage).display()); + + VBox vbox = new VBox(10, label, nameField, adresseField, kontaktinformationenField, lizenzField, addLizenzBtn, + lizenzListView, zertifikatField, addZertifikatBtn, zertifikatListView, submitBtn, viewPilotsBtn); + vbox.setAlignment(Pos.CENTER); + vbox.setPadding(new Insets(20)); + vbox.setStyle("-fx-background-color: #FFFFFF;"); + + BorderPane borderPane = new BorderPane(); + borderPane.setTop(backButton); + borderPane.setCenter(vbox); + BorderPane.setAlignment(backButton, Pos.TOP_LEFT); + BorderPane.setMargin(backButton, new Insets(10)); + + Scene scene = new Scene(borderPane, 400, 600); + + stage.setScene(scene); + stage.show(); + } + + private void handleSaveProfile(Pilot pilot, TextField nameField, TextField adresseField, + TextField kontaktinformationenField, ListView lizenzListView, ListView zertifikatListView) { + clearFieldStyles(nameField, adresseField, kontaktinformationenField); + + try { + if (nameField.getText().isEmpty()) { + setErrorStyle(nameField); + throw new IllegalArgumentException("Name ist erforderlich."); + } + if (adresseField.getText().isEmpty()) { + setErrorStyle(adresseField); + throw new IllegalArgumentException("Adresse ist erforderlich."); + } + if (kontaktinformationenField.getText().isEmpty()) { + setErrorStyle(kontaktinformationenField); + throw new IllegalArgumentException("Kontaktinformationen sind erforderlich."); + } + + if (pilot == null) { + pilot = new Pilot(nameField.getText(), adresseField.getText(), kontaktinformationenField.getText()); + } else { + pilot.setName(nameField.getText()); + pilot.setAdresse(adresseField.getText()); + pilot.setKontaktinformationen(kontaktinformationenField.getText()); + } + + pilot.setLizenzen(new ArrayList<>(lizenzListView.getItems())); + pilot.setZertifikate(new ArrayList<>(zertifikatListView.getItems())); + + Pilots pilots = (Pilots) XMLHelper.loadFromXML("pilots.xml"); + if (pilots == null) { + pilots = new Pilots(new ArrayList<>()); + } + + if (!pilots.getPilots().contains(pilot)) { + pilots.getPilots().add(pilot); + } + + XMLHelper.saveToXML(pilots, "pilots.xml"); + + new HomeScreen(stage).display(); + } catch (IllegalArgumentException e) { + showAlert("Fehlende Eingabe", e.getMessage()); + } catch (Exception e) { + showAlert("Fehler", "Es ist ein Fehler beim Speichern des Piloten aufgetreten."); + } + } + + private void setErrorStyle(Control field) { + field.setStyle("-fx-border-color: red;"); + } + + private void clearFieldStyles(Control... fields) { + for (Control field : fields) { + field.setStyle(null); + } + } + + private void showAlert(String title, String message) { + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle(title); + alert.setHeaderText(null); + alert.setContentText(message); + alert.showAndWait(); + } +} diff --git a/src/views/PilotView.java b/src/views/PilotView.java new file mode 100644 index 0000000..e105958 --- /dev/null +++ b/src/views/PilotView.java @@ -0,0 +1,83 @@ +package views; + +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; +import models.Pilot; +import models.Pilots; +import utils.XMLHelper; + +import java.util.List; + +public class PilotView { + private Stage stage; + + public PilotView(Stage stage) { + this.stage = stage; + } + + public void displayPilotDetails(Pilot pilot) { + Label nameLabel = new Label("Name: " + pilot.getName()); + Label adresseLabel = new Label("Adresse: " + pilot.getAdresse()); + Label kontaktLabel = new Label("Kontaktinformationen: " + pilot.getKontaktinformationen()); + Label lizenzenLabel = new Label("Lizenzen: " + String.join(", ", pilot.getLizenzen())); + Label zertifikateLabel = new Label("Zertifikate: " + String.join(", ", pilot.getZertifikate())); + + VBox vbox = new VBox(10, nameLabel, adresseLabel, kontaktLabel, lizenzenLabel, zertifikateLabel); + vbox.setAlignment(Pos.CENTER); + vbox.setPadding(new Insets(20)); + vbox.setStyle("-fx-background-color: #FFFFFF;"); + + Button backButton = new Button("Zurück"); + backButton.setOnAction(e -> new HomeScreen(stage).display()); + + BorderPane borderPane = new BorderPane(); + borderPane.setTop(backButton); + borderPane.setCenter(vbox); + BorderPane.setAlignment(backButton, Pos.TOP_LEFT); + BorderPane.setMargin(backButton, new Insets(10)); + + Scene scene = new Scene(borderPane, 400, 300); + stage.setScene(scene); + stage.setTitle("Pilot Details"); + stage.show(); + } + + public void displayAllPilots() { + Pilots pilotsData = (Pilots) XMLHelper.loadFromXML("pilots.xml"); + List pilots = pilotsData != null ? pilotsData.getPilots() : List.of(); + + VBox vbox = new VBox(10); + vbox.setAlignment(Pos.CENTER); + vbox.setPadding(new Insets(20)); + vbox.setStyle("-fx-background-color: #FFFFFF;"); + + for (Pilot pilot : pilots) { + Label nameLabel = new Label("Name: " + pilot.getName()); + vbox.getChildren().add(nameLabel); + + Button detailButton = new Button("Details anzeigen"); + detailButton.setOnAction(e -> displayPilotDetails(pilot)); + vbox.getChildren().add(detailButton); + } + + Button backButton = new Button("Zurück"); + backButton.setOnAction(e -> new HomeScreen(stage).display()); + + BorderPane borderPane = new BorderPane(); + borderPane.setTop(backButton); + borderPane.setCenter(vbox); + BorderPane.setAlignment(backButton, Pos.TOP_LEFT); + BorderPane.setMargin(backButton, new Insets(10)); + + Scene scene = new Scene(borderPane, 400, 300); + stage.setScene(scene); + stage.setTitle("Alle Piloten"); + stage.show(); + } +} diff --git a/src/views/ViewLogbookScreen.java b/src/views/ViewLogbookScreen.java new file mode 100644 index 0000000..fe0600d --- /dev/null +++ b/src/views/ViewLogbookScreen.java @@ -0,0 +1,93 @@ +package views; + +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; +import javafx.scene.control.cell.PropertyValueFactory; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; +import models.Flight; +import models.Flights; +import utils.XMLHelper; + +import java.util.List; + +public class ViewLogbookScreen { + private Stage stage; + + public ViewLogbookScreen(Stage stage) { + this.stage = stage; + } + + public void display() { + Flights flightsData = (Flights) XMLHelper.loadFromXML("flights.xml"); + List flightList = flightsData != null ? flightsData.getFlights() : List.of(); + + ObservableList flights = FXCollections.observableArrayList(flightList); + + TableView tableView = new TableView<>(flights); + + TableColumn dateColumn = new TableColumn<>("Datum"); + dateColumn.setCellValueFactory(new PropertyValueFactory<>("datum")); + + TableColumn modelColumn = new TableColumn<>("Muster"); + modelColumn.setCellValueFactory(new PropertyValueFactory<>("muster")); + + TableColumn departureColumn = new TableColumn<>("Abflugort"); + departureColumn.setCellValueFactory(new PropertyValueFactory<>("abflugort")); + + TableColumn departureTimeColumn = new TableColumn<>("Abflugzeit"); + departureTimeColumn.setCellValueFactory(new PropertyValueFactory<>("abflugzeit")); + + TableColumn arrivalTimeColumn = new TableColumn<>("Ankunftszeit"); + arrivalTimeColumn.setCellValueFactory(new PropertyValueFactory<>("ankunftszeit")); + + TableColumn durationColumn = new TableColumn<>("Flugdauer"); + durationColumn.setCellValueFactory(new PropertyValueFactory<>("tToF")); + + TableColumn landingsColumn = new TableColumn<>("Anzahl der Landungen"); + landingsColumn.setCellValueFactory(new PropertyValueFactory<>("anzahlLandungen")); + + TableColumn nightFlightColumn = new TableColumn<>("Nachtflug"); + nightFlightColumn.setCellValueFactory(new PropertyValueFactory<>("isNachtflug")); + + TableColumn commentColumn = new TableColumn<>("Kommentar"); + commentColumn.setCellValueFactory(new PropertyValueFactory<>("kommentar")); + + tableView.getColumns().add(dateColumn); + tableView.getColumns().add(modelColumn); + tableView.getColumns().add(departureColumn); + tableView.getColumns().add(departureTimeColumn); + tableView.getColumns().add(arrivalTimeColumn); + tableView.getColumns().add(durationColumn); + tableView.getColumns().add(landingsColumn); + tableView.getColumns().add(nightFlightColumn); + tableView.getColumns().add(commentColumn); + + Button backButton = new Button("Zurück"); + backButton.setOnAction(e -> new HomeScreen(stage).display()); + + VBox vbox = new VBox(tableView); + vbox.setAlignment(Pos.CENTER); + vbox.setPadding(new Insets(20)); + vbox.setStyle("-fx-background-color: #FFFFFF;"); + + BorderPane borderPane = new BorderPane(); + borderPane.setTop(backButton); + borderPane.setCenter(vbox); + BorderPane.setAlignment(backButton, Pos.TOP_LEFT); + BorderPane.setMargin(backButton, new Insets(10)); + + Scene scene = new Scene(borderPane, 800, 600); + + stage.setScene(scene); + stage.setTitle("Fluglogbuch einsehen"); + stage.show(); + } +}