From 52c65276f40abd0341df6f20846f7a2bbeb1e32f Mon Sep 17 00:00:00 2001 From: taylor-noel <61843554+taylor-noel@users.noreply.github.com> Date: Sat, 18 Apr 2020 17:10:25 -0600 Subject: [PATCH 1/2] admin and bug fix added admin and fixed some other bugs --- .../src/client/controller/ClientPort.class | Bin 7781 -> 7781 bytes .../src/client/controller/ClientPort.java | 72 +-- .../src/client/controller/Controller.class | Bin 3995 -> 4658 bytes .../src/client/controller/Controller.java | 37 +- .../src/client/model/Model.class | Bin 1975 -> 2057 bytes .../src/client/model/Model.java | 12 +- .../src/client/view/MyGUI.class | Bin 14161 -> 19717 bytes .../src/client/view/MyGUI.java | 482 +++++++++++++----- .../server/controller/RegistrationApp.class | Bin 5214 -> 5214 bytes .../server/controller/RegistrationApp.java | 1 + .../src/server/controller/ServerApp.class | Bin 8025 -> 8025 bytes .../src/server/controller/ServerApp.java | 3 +- .../src/server/model/.gitignore | 1 + .../src/server/model/DBManager.class | Bin 4371 -> 4424 bytes .../src/server/model/DBManager.java | 3 +- 15 files changed, 397 insertions(+), 214 deletions(-) create mode 100644 Student Registration System/src/server/model/.gitignore diff --git a/Student Registration System/src/client/controller/ClientPort.class b/Student Registration System/src/client/controller/ClientPort.class index 198b08a7b0e8ed7ef215971dd62484edf5a68f0c..bf1e909cc244af1a97985375fd4789837f9c9823 100644 GIT binary patch delta 367 zcmWO0!Ap|?7{~GN&mbI5+N<@dO+m1C_|lRb9wY}wcvv7LW;zTs=}@5tqIlTq5Os@z z@E#ll!D#a!h{l^JK}6|65c&fW1QAI*2;#|;J;&d}mk-ZT`Y65jr_L)9@+WD2(Z_GAw-{ubA$EAqZs=T(DZyW2?9swL zZ5-fp$N>LLJ7$6tCOIX~Sx|5r!m%3>>o183T6BdrUBy>51B#MWEfc!Nr0U7b4GXR> z?-q^nNT{8pZj;g-%Q|_c6tC39th#xxo^Y=rDL-TCLsR=rePrsOsY8tF3F8{Je1s`I z<&DO|yG;+|P1CB^bZCYy&2dljrsjC5JTrQ054_`}J_L(5HzNx~72v2CWaEz`C0k`% amEc=E=d4n#HEQ(LuA%+89`-gTs{RA0tx;+K delta 367 zcmWO2+be?s7{~G7Pts;9+u|KYIrJ{mnnRSdBB7}zZD=HiTsTZ>?Se*1E;Y)V$l*fy z1Jt`BxgZzHg-azxsYM$Xa%w4gE}y4Q-=3bNH|agPv8j(R;|W$Iq2L9rNWq6R{CGt_ z-Vnk&Ch)0!*fQ!L%p|PLhQb_pX+S%T@G%zwn$XKUjMJuD^DT6;92QoflqxD&1sAK) zLk~i%!5HfhW+N8Zq{S7xK3rfF-yyzJe3y8?_-^q5@j>x@;s?YJ>2bwHbsB{X!^v5= z89_ax!sal_c}y{eD3`FpW&PgnrfW^A>r&m2>ZVk;rMiPb?qY;{!uK)511$1TuPth$ zs-uhvczBEko}!s&Qa#5cFA(9S9B_qIUTa&$C&pWO#htw3K?^y8#%GyQGNrYIBWC@A Tf!{FkN46Qc^H*;vac2Dkq0&?c diff --git a/Student Registration System/src/client/controller/ClientPort.java b/Student Registration System/src/client/controller/ClientPort.java index a035a2d..b5ec1ce 100644 --- a/Student Registration System/src/client/controller/ClientPort.java +++ b/Student Registration System/src/client/controller/ClientPort.java @@ -142,78 +142,7 @@ void communicate() ////////////////////////////////////////////////////////////INTERACTION WITH GUI STARTS HERE//////////////////////////////////////////////// //IF creating new packages or getting errors from them check out the PackageType enum to see what the data contains - - /** - * (DEPRECATED) - DELETE EVENTUALLY - * We most likely won't need this class anymore but I left it in case - * - * Deals with the given package - * @param pac - *//* - private void dealWithPackage(Package pac) - { - switch(pac.getType()) - { - - //Just prints a message if received, mostly for testing purposes (Could be used for errors with a pop up window?); - case MESSAGE: - System.out.println(pac.getData()); - break; - //Get the result from trying to login - case LOGINRESULT: - - //pac.getData() is a Boolean, true if login success (correct username/password) and false if incorrect - //When correct username and password inputed the student is automatically selected - - System.out.println("Result from trying to login: " + pac.getData()); - - break; - - //Get a new schedule - case SCHEDULE: - - CourseLite[] schedule = (CourseLite[])pac.getData(); - - //pac data is a array of courseLite objects, the courseLite objects will only have one offering which is the one the student is registered in - //To access the offerings data/info just use functions getOfferingTotalSpots(0), getOfferingSecNum(0), etc (Check out courseLite class for details) - - //TESTING - if (schedule == null) - System.out.println("Schedule empty"); - else - System.out.println("Schedule length is: " + schedule.length); - - break; - - case CATALOGUE: - - CourseLite[] catalogue = (CourseLite[])pac.getData(); - - //Pac data contains a array of course lite objects, the courseLite object contains all the info about the course including a list of all the offerings - //Check out the courseLite class to find all the getters - - //TESTING - if (catalogue == null) - System.out.println("Catalogue is empty"); - else - System.out.println("Catalogue contains " + catalogue.length + " courses"); - - - break; - - case COURSE: - - //Pac data is a single courseLite object, contains all the info about the course and its offerings - //Check out courseLite class for the getters - - //TESTING - - break; - - } - }*/ - /** * Sends a request for the catalog to be sent */ @@ -314,6 +243,7 @@ public String attemptLogin(int id, String password) throws Exception } + /** * Sends a message to the server to remove a certain course from student * @param courseName diff --git a/Student Registration System/src/client/controller/Controller.class b/Student Registration System/src/client/controller/Controller.class index 1cacc659f6eb9857962b076d2ecf4c0dc3b4c932..aa8f4db11ca6af29d8d8d292aed87d86f1c375cd 100644 GIT binary patch literal 4658 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 o>tOJ}a)H+);Nd9vT3hg2uOaXL0nIp=Y5)KL literal 1975 zcmah}Yg5xu5IvViTViarK=H|2NXsKW@I@7sDq5|e6szc`P%an^4b!IlDnICqR7Yq0 z0sbh*-6XW3?UWC_H@Us%?Af!s`TOtJ9{>w@A4Zozyl9!Sic?SpVmY%USF3wl zvbg0)vOSnuTcBOMG`}?xAEil&(5s2%N_!*@+r8_F_ zVv)LvQ*ztDZIvw3-(&jwR1|Wy1IYv)sCdY}L>$|T(9U@7JhHd7AbwQU{ij~eM9ane zzU@?4^NNb6+z4FUqej>;KFgASBZ(~A|C}9cqdXl!jvUmPYE{Kr3zbdt8nzdD<)5{;(mzcxsfqO z1JO-iEdJ4?(F&dpcPEXsD|CZC1+<=~H=TAtdvEFoqTlGD3ukBzd51Vl&wQ21;^?QH zW(k9|GWZ3B>7qTBnmI%wHPc$5;4;yJcv(6V2rxq1Zf}liB}27 zK_`D>Vl(v}i5jl_g!TjT@oP2Q@J?>mkgj3rE8Po*5ROamCLb8AC}7*YM;gp0PPE zd~>|hm+cLj2*jAJC-@4l{REfDPOfT*tGeDOrsAGXQ!zD{!7F5_UdRv+0dWXy;Em4} dOm@B5>6w6#MzRIGZ39j;gY~xHcWyB@{{u9Hlb8Si diff --git a/Student Registration System/src/client/model/Model.java b/Student Registration System/src/client/model/Model.java index adffd39..9fcb1ed 100644 --- a/Student Registration System/src/client/model/Model.java +++ b/Student Registration System/src/client/model/Model.java @@ -6,13 +6,17 @@ public class Model { CourseLite selectedCourse; - int selectedOffering; + int selectedOffering = 1; CourseLite[] catalogue; public void setSelectedCourse(CourseLite c){ - selectedCourse = c; - selectedOffering = c.getOfferingSecNumber(0); + selectedCourse = c; + } + + public void setSelectedOffering(int num) { + selectedOffering = num; + //System.out.println("Course offering is: " + selectedOffering + " with " + selectedCourse.getOfferingTotalSpots(selectedOffering-1) + " spots"); } public String getSelectedCourseName(){ @@ -32,7 +36,7 @@ public int getSecNumber() { } public String getSelectedCourseSpots() { - return selectedCourse.getOfferingTakenSpots(selectedOffering) + "/" + selectedCourse.getOfferingTotalSpots(selectedOffering); + return selectedCourse.getOfferingTakenSpots(selectedOffering-1) + "/" + selectedCourse.getOfferingTotalSpots(selectedOffering-1); } public void setCatalogue(CourseLite[] catalogue) { diff --git a/Student Registration System/src/client/view/MyGUI.class b/Student Registration System/src/client/view/MyGUI.class index 89c0b5289a1d1b3c8bcb69cd0af6a4f7af1f510b..0734a6089fbc77641bf8b235509f8af53f98bbf9 100644 GIT binary patch literal 19717 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 C0*8M9 literal 14161 zcmd5?d3;pW^*`rjX5M7-*b){;L4tyYEQC$a1TY~4P0c2OKoplr@{$ZpX5!2Qj9pwx z)vDEMrHidvtx8*M-C%;Cs9mU4yIZxkYTde8>)KkY((k$V&6}AJp#8Of{P<|*zI*RG z_uO;7XS?@3`r)oUM6}R2$0UPkLRTbgN0XJC!uICMrlFJ8G??UJI&wp3Q>f?M%Fw_- zB-|BBhGWsn+Dx0tw>cc`j%{X|*yv16BtyM+Wt;r1X7Wa2z2Ru~aF-p$u>8fal}HYD zV_o&k6bNJH9&98L^oP8)IFeNP8$AmS?Balk5v8 zn2ORYWTcICJ^dk()Z~)W)kZ2Kp=dAU7!OB#t7o?du-efU&7>LNFcKP!c0m}PP`p>@ zjq(O022I2vq$wq?V6s#*yFH&usobP8rtzXWXT70B((bpYg62Q~5Fpbe%}zL0*$Q5g z;K&a3SNmx$)7UzNnqp`>p0v9IG@lllv;Z6_in*^?bQ~>$CI*B`1UsFi85^-tla6Pa zdN3UYXfaiZG9a|cC8Nkv_Qtf-q6t*!rxU^F^1*PV8-gr`OnPk@t+mKYK0nn#P>q7o z0M*k;Car|(_D8ZsCkyZXgq>U+PDX5#K9V&r18LDxqeV^B%v2B?5PNaZJhf!DtA_pX z8K4Ggl^vZ57-!U_=Cy|6Fp%mMEA+0~EHcS2>#VV;UDiq4klKZ8ZJkB=ddg`Qoi0gghA^Q1O1_m zcB3*olYq{{(sCTR-vIT}6q7bWea@6#JJxR}<3p7VQHVIB`mstE(FcG`sUU3tI{?yVp6rN@JWld(5FO8cCt1S?v3_C zn~=@^yn-wkHR%#yAV+eJqpEBSb=na>eHzQHiH0}X@kBT|R2=Imt_wwap@slmOqYwW z7Mb)Jh+|YD%LkLm7{Go7P4UxbA=NhURNSC?uCeHI%0va`_PNPIXke>FpQkTit9_wp zw>Y-Bqgq@V+x8}jBK7k3Wc5NEQn-S?WYKl>W!MBLw?u2Z#4zBBT_KF}+U#~eT@T}| zm5@*ft!*{ws|Ntp$#C)kx{;>%YC05d0Gt~M0=bcHvuGQA9V_?R$+|vx0az2$tc*2w z#Uc?~F_frm=}g%1P2#W{!--_IN#8_d%n@TVf;ev=uWx|(gQ|o zBZxk^-o2%B1D39yeVTCkNrB64*l|)k418c(rU_*~IVgbVGoA3rG;Q>WTGN>6RZ$gh zbSm8=V2mCrMT*tFng%UFKRp1uXw&hzxM77!4`%X#T$ThYE5mjK0bq~7>N{{Kt)WC> zb1dHNr|&UQAsMt+kn{tlD@Fs*=v#0JSO4F}mBm!Mj&~H4`RRuc%t^80<)N;Pg^2Q7 zMZ1q%^dtH)0wB~jB2Kv~!yc2d0Vnq;fQk?oohLKgy*v`@f`3Cx@c;ybyJa^_#fRDo z)0hEAcn%f!*`Z~n$2G+1E(42k|cMU=i)e4g>TOO%X5pdyD=+f5dV<;Yg$|HW*LXfYwp2P3K}n z3`$;yi}TZ;!PZ(k(gmmQr@!Cd)=6Reox5naCpmc{JIH1Ts03D}X?80(#rJu2~t2 z_lJ`1Ymi_#Ixv`QSOFNTmhcR$#~nZ9_$ng|4+>G~Xdrb_hOi?k6m>9)8Ce6Pu82tH zlp?tsK>rwIpj{iALIX~nH5O@xgDR;W;jI`2LxD<#6R2d9bllLYD&kDXjz)LXBF(XS&5q^prs_!SN*nNsFuFrSC}{pe z^T_d0Qb6)YEUxAy(rUDLB_APpY__PZ`;6`cxp-!`Jo2 z!dB)lJGMiGrl!$SFEzn84ROV zu(70{KZ^BRl6`hu9zKqvi~1KeR`wR z2skuyoU=YZlI*7uB3AEiwfOUlnrXs*I)!Yo;vorq$>QrIYWN2orTFDUV_3q{Ui{v$;2Kt#&IZ-%ja zDM~|vCZDZxv;Ccry**yI$P#=&H6@lG*8NeRS8#n0~&DefK-A<}l9 z#j_K_WT6Kv-Xk6+U&uHve4I|k+$>hkT&CpncldiIe-}PNT%iD29n3Ywx)I=$Ll%FZ z_d>I^t*wm>b+xM-TAI&lYFSa+2;b>KKj#gguAU#U_=o%`BrnI8X$J{8xndm=k=k zk!aH7Hx3kB)y`G<#ji_neVyO7_#OV64oWJxx?lyMvK2DoPy?ocx8Jq+AEFsa`?Nq4 zIE3VX;`oT)&pw{g3UCe~#jNW2LyPx`4Hw8MU~RN}Z77@s>~TGyOEnx+r(t>!J`e-C zu-k(>Lqvk49LF3mrnquJOff}~*bIu$^!f*c52oj91*sRTv>p=b(W~BLs!P*3@IICt zd;`m{P)(Z3DBOrj{|yqW4?+SQ!yXPnM7^Jr)Cy;7{)c3p;;35a`XizK&hF66xj0O4 zEk>Wd=(9g{K&Xyo-J_`ehck5MWt#JuhFp>(1e!jE`maul(jwWPA3;AGlPw<46EX}f z$TSybn#al1BP@PUg>gq5xItL^AM&1^!yk&X=@y^FCuewAoN3}pC9RVagtM6z-zJ>p zJDkmfrUGq9{k!ayVKKLWx&u`1R1RZe$j_4T&_I)&?2C0L0!FD(ZW?8j4ok9M+_QDMx1x4;2^x{K*?EeDNA=S@vq9~&oTHpXHb2M4q&bAX!#<(wB+ z04?UMaD$TTaxKpZW&Y5yxL6PNtSV#>RXxVYqX4@>N_RVcdBJfHKu`H zYo@Q=GK$q2YchSOTgD9a?rE96vn}H&)pu5=&$f(Ns;?V;2;B|Qs2#71$bm(|G&bOD zeLqNyrdZQ}pH_wBfiZv}s!?DXC@|)Y8r!o{f|(MpS0D3ffGW|!g_`=st(p48<(T>{aDH*wtDbSytA24%ieE#n7x6n46mc<(zmxFPfPNf! zQ&H(KO)i~a+`oekE1kgQJLvGc)k{Vj5cwS7?&|~RW=}4N6r+g|_ z>j5!HdviYx+NnnlN;9|sXsg14A1IrTb z@&y`$U}Y0DusLg~8O~CE3SxY`S_-$kdMTdoKQgqR7y11k8 z(qX!+X*XQ~KCW!8D7-2~S67toqHBp#^hKw?$`kYyegz{z4~A}VhHk_wH&uCq-idT` zif##dQ*^8M0s2NqUPW66-e|jzZZ~Lc(5qIvyDUZb=;3l1_Bz8^dt9!-dp9) z(A|Q4UINHmN@etET+&}b%jh#GRIY?VuBHyUhC;X(90Io&(iiB9^d%*iWy*N2bL4`< zc}FhO=;L%RZHGi>p=Sp+mAn3R;Da z$OH?@epC&WgM84sj~;_QE1*YHsTnH9Qf6C+H(1ct;R^=RD$UV!MY=Zw=1odXH$${v zgQ9PNZQTlx-$qB{LbQ~=372v^RpYX&j=lv&d>a;bCk@a&Q1rb}^magD2UMP->y_$u z(Zlor7~MlZqX+3l`X2omJ9?A$(g(QI%f~fZ89mOm^kcQ^7Ol=SICz-@j)`1JKY{vT zZhS2L6j02==OW`l^FDy1ncktFV`VRRd6j-aPXJ;=So4<{HNnfB^dv@cEsR|}h0%QQ zbP+v`z5r$o(XYU50r*-+&!A;t6&(3G5PJqx#{y#4rXlw0EQpm)q-SAV4jKe$&#OlT zJh4j+J-9d3vx8oM7kk0MV+ItWDH(8K@e<(oN|m=X=pCltDPaCdP~uCY1h6Z7RX|_@ z1h3`b!yoh){#Azj7<$9Shfia|Czt>Ry#R)G0OeV@eNz_6Ph&d}3}|c%kPF`)roUAc zq!|zt{#~OmSP=B=qJOBBf`QDY06I_5a#j&Ta{LR>kAXBA)#l!pb;pPVGPB0WEY}UW z{op|5-f*kA5iU~1kV6X)UUJ! z^@0J6`tVVP$$3Dg3Ep014_bb3bUQfN4lKV(H?t2^0(icPP2jr#{9Vj`!7}JBfR$~> z$7TUYND>9TLIGAVA&l*hTY^1t?_ zK#G?qLl;v}IvoZN7KG*xr&68<-5iOp(Wc{TvSMoC8MKa%qH}l_oyW(}MeuZ&aS0C2 zXVVQ_O2b@%FC^yDV?2+3j@02LUJNuGkE`tyfW|5g@DeWP6L~qjspLA^m#%Q}ccP2G zxvnoQaee6o$CtLazI2`IOV4wC=~ma5-r)Mu@3_A7G1r&An(?Jl^=ga(;dv_fuPjS( z;ZB~s$Wx9+l^2gw(V7Ymuw)XfKE>0KSr+k8NG-R~;Z>fBBA%JzW46&)wBbwmSUlYg z{1Q@+Ib5!Os~{`w4OC{xYbYPrNaJuHRK)9O3U|;^d>TGmT#qjh&!8$kla|0b>bXlv zYZYvY;2(4fjTX;=B}wYM60zqAwbn{Ve>>L52c>zi77spsn9B2c0c>Y3Zf6(rap+ru zbrKr)a3G0OfEq+2X&giFxxgv0ZXq;+UeKbK!uy;{exVC&-26hR>l@ z>(CnG(DKZO+U@{xo%d>T=Vp-`s3hQiWr%^RBMNqEfi(y7Sd`tNxUjozeAuwJKZnq=UJxEuBS4rC*!*`IEp_LEn zA5&F80O5NhE`*S_Ayl?tKN9NF0Zy;*8LTb_IE{>bw1`ZT5F7WH)N68$NjI9fpCuG) zhFm~7XulV*mO`#pYyY#2WqWBs-qLMUQZ{wI?z{Fjl;sL!UsNvY%WzSioqYXWTMV9B zw&$jOPv^-Kh-g=I47et~ll*)aIJ}!C@I7=S-%GQ2I~>;z1c1BYhIT4>7VE_wdHU%D z{uC&Wq{ASUC!mxk5q_V7A9|Xm z;i_#G|AuDsv%vgw)Wpxj7d=O3^UD2CfD?c&$yA^s~p z$8XRZ{1(2zdmFy!9i-XsD&_W|e1r5|d-)L1mxweANxq!57&M!n<*ylXaMwinhGFCZ z4!fw)@EC%}2wi9R3=>+sgw8koX!+=7>NfJxGLh^T7;>QJSHM_^S(+LGxXnyI(4$avi?dR_735ZxhD4djRyG$F8IEVf)y6X8MAfP> z>WmetRd1YZG^o}`j3%R5wOWi-Mw@D_Hr5*JRI9^SZ=9i8XBr`+Q?ah6 T-3S{SjeZImQGUi4p!|OUwHNL7 diff --git a/Student Registration System/src/client/view/MyGUI.java b/Student Registration System/src/client/view/MyGUI.java index c42f1db..778d412 100644 --- a/Student Registration System/src/client/view/MyGUI.java +++ b/Student Registration System/src/client/view/MyGUI.java @@ -1,4 +1,5 @@ package client.view; +import java.util.ArrayList; import java.util.Optional; import java.util.ResourceBundle.Control; @@ -10,6 +11,7 @@ // JAVAFX IMPORTS import javafx.application.Application; +import javafx.beans.value.ChangeListener; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.geometry.Insets; @@ -43,10 +45,11 @@ * searched for one course and the information is displayed, is you try searching for another * it just writes the label on top of the first one rather than replacing it. * Main things that need to be added are: - * 1. Sending the student information to the server and checking whether or not it is valid - * 2. once you confirm they are a student, reading their information about their schedule and name - * 3. adding/removing new courses to their schedule once the button enroll/unenroll is clicked then updating the courseList to display - * 4. adding information to the course catalogue + * + * + * ADMIN + * 3. allow admin to create a new courses (# of offerings, spots per offering, prerequisites) // EVERYTHING WORKING EXCEPT ADDING PREREQS + * * @author Taylor * */ @@ -116,6 +119,7 @@ public void start(Stage primaryStage) { private VBox makeLayout() { VBox layout = new VBox(); layout.setPadding(new Insets(10,10,10,10)); + layout.setSpacing(15); return layout; } /** @@ -213,58 +217,68 @@ private VBox studentLogin() { */ private VBox studentMenu() { VBox layout = makeLayout(); - layout.setSpacing(15); - HBox title = new HBox(); - title.setSpacing(220); - HBox panels = new HBox(); - panels.setSpacing(200); - VBox leftPanel = new VBox(); - leftPanel.setSpacing(10); - rightPanel = new VBox(); - rightPanel.setSpacing(10); - panels.getChildren().addAll(leftPanel, rightPanel); + HBox title = setTitle(); + HBox panels = setPanels(setLeftPanel(), setRightPanel()); - //Schedule List - ListView courseList = new ListView<>(); - fillCourses(courseList); - - //Welcome label - Label welcome = new Label("Welcome"); // Later, add name of student here - - //Log Out Button - Button logoutButton = new Button(); - logoutButton.setText("Log Out"); - logoutButton.setOnAction(e -> window.setScene(login)); + //Adding all the components to the layout + layout.getChildren().addAll(title, panels); - //Browse Catalogue Button - Button browse = new Button(); - browse.setText("Browse Catalogue"); - browse.setOnAction(e -> browseCatalogue()); - title.getChildren().addAll(welcome, browse, logoutButton); - title.setAlignment(Pos.CENTER); - - //View Courses search - Label courseLabel = new Label("View Course"); // later, add name of student here + return layout; - HBox searchPanel = new HBox(); - searchPanel.setSpacing(10); - TextField searchTag = new TextField("search for a course"); - Button search = new Button(); - search.setText("Search"); - search.setOnAction(e -> courseDisplay(searchTag, leftPanel)); - searchPanel.getChildren().addAll(searchTag, search); - leftPanel.getChildren().addAll(courseLabel, searchPanel); - - //Schedule Display - Label schedule = new Label("Your Schedule"); - rightPanel.getChildren().addAll(schedule, courseList); + } + + /** + * Shows the course display of a certain course + * @param courseName Name of the course + */ + private VBox courseDisplay(TextField courseName, int num) { + VBox layout = makeLayout(); + HBox title = setTitle(); + + VBox leftPanel = setLeftPanel(); + + HBox panels = setPanels(leftPanel, setRightPanel()); + + String input = courseName.getText(); + control.selectCourse(splitCName(input), splitCNumber(input)); + + HBox courseInfo = new HBox(); + courseInfo.setSpacing(10); + + //Lecture Drop-Down + ChoiceBox lectures = new ChoiceBox<>(); + for(int i = 0; i < control.getSelectedCourseOfferings();) + lectures.getItems().add("Lecture " + (++i)); + + lectures.setValue("Lecture " + num); // default value + + //Listen for selection changes + lectures.getSelectionModel().selectedItemProperty().addListener((v, oldValue, newValue) -> changeOffering(newValue, courseName)); + + //Course Name Label + Label course = new Label(control.getSelectedCourseName()); + + courseInfo.getChildren().addAll(course, lectures); + + //Spots Available + Label spots = new Label("Spots: " + control.getSelectedCourseSpots()); + + HBox buttons = new HBox(); + buttons.setSpacing(15); + + //Enroll/Unenroll + Button enroll = new Button(); + enroll.setText("Enroll/Unenroll"); + enroll.setOnAction(e -> changeCourseEnrollment()); + + buttons.getChildren().add(enroll); + + leftPanel.getChildren().addAll(courseInfo, spots, buttons); - //Adding all the components to the layout layout.getChildren().addAll(title, panels); return layout; - } @@ -281,15 +295,7 @@ private VBox adminLogin() { centrePanel.setSpacing(10); centrePanel.setAlignment(Pos.CENTER); - //Student Id Block - HBox idBlock = new HBox(); - idBlock.setSpacing(10); - idBlock.setAlignment(Pos.CENTER); - Label idLabel = new Label("Username"); - TextField idText = new TextField(); - idBlock.getChildren().addAll(idLabel,idText); - - //Student Password Block + // Password Block HBox passwordBlock = new HBox(); passwordBlock.setSpacing(10); passwordBlock.setAlignment(Pos.CENTER); @@ -304,7 +310,7 @@ private VBox adminLogin() { Button loginButton = new Button(); loginButton.setText("Login"); loginButton.setOnAction(e -> { - loginStudent(idText, passwordText, loginResponse); + loginAdmin(passwordText, loginResponse); //!! MAKE FUNCTION }); //Go Back Button @@ -313,13 +319,59 @@ private VBox adminLogin() { goBack1.setOnAction(e -> window.setScene(login)); topPanel.getChildren().add(goBack1); - centrePanel.getChildren().addAll(idBlock, passwordBlock, loginButton, loginResponse); + centrePanel.getChildren().addAll(passwordBlock, loginButton, loginResponse); //Adding all the components to the layout layout.getChildren().addAll(topPanel, centrePanel); return layout; } + + /** + * ADMIN main menu + */ + private VBox adminMenu() { + VBox layout = makeLayout(); + + HBox title = new HBox(); + title.setSpacing(450); + + //Welcome label + Label welcome = new Label("Welcome, " + control.getStudentName()); + + //Log Out Button + Button logoutButton = new Button(); + logoutButton.setText("Log Out"); + logoutButton.setOnAction(e -> window.setScene(login)); + + title.getChildren().addAll(welcome, logoutButton); + + HBox panels = new HBox(); + panels.setSpacing(200); + panels.setPadding(new Insets(0,50,0,50)); + VBox left = new VBox(); + left.setAlignment(Pos.CENTER); + VBox right = new VBox(); + panels.getChildren().addAll(left, right); + + //Course Catalogue Label + Label catalogue = new Label(); + catalogue.setText("Course Catalogue"); + right.getChildren().addAll(catalogue, buildTable()); + + //Add a new course + Button newCourse = new Button("Add New Course"); + newCourse.setOnAction(e -> addCourseWindow()); + + left.getChildren().addAll(newCourse); + + //Adding all the components to the layout + layout.getChildren().addAll(title, panels); + + return layout; + + } + @@ -327,8 +379,87 @@ private VBox adminLogin() { /////////// END OF GRID PANES ////////////////////////////////// - - + /** + * add the welcome, logout button and browse button to the top panel + */ + private HBox setTitle() { + HBox title = new HBox(); + title.setSpacing(200); + + //Welcome label + Label welcome = new Label("Welcome, " + control.getStudentName()); + + //Log Out Button + Button logoutButton = new Button(); + logoutButton.setText("Log Out"); + logoutButton.setOnAction(e -> window.setScene(login)); + + //Browse Catalogue Button + Button browse = new Button(); + browse.setText("Browse Catalogue"); + browse.setOnAction(e -> browseCatalogue()); + title.getChildren().addAll(welcome, browse, logoutButton); + title.setAlignment(Pos.CENTER); + + return title; + } + /** + * add the course search to the left panel + * @return + */ + private VBox setLeftPanel() { + VBox leftPanel = new VBox(); + leftPanel.setSpacing(10); + + //View Courses search + Label courseLabel = new Label("View Course"); // later, add name of student here + + HBox searchPanel = new HBox(); + searchPanel.setSpacing(10); + TextField searchTag = new TextField("search for a course"); + Button search = new Button(); + search.setText("Search"); + search.setOnAction(e -> activateSearch(searchTag)); + searchPanel.getChildren().addAll(searchTag, search); + leftPanel.getChildren().addAll(courseLabel, searchPanel); + + return leftPanel; + } + /** + * add the schedule to the right panel + * @return + */ + private VBox setRightPanel() { + VBox rightPanel = new VBox(); + rightPanel.setSpacing(10); + + //Schedule List + ListView courseList = new ListView<>(); + fillCourses(courseList); + courseList.setMaxWidth(150); + courseList.setMaxHeight(142); + + + //Schedule Display + Label schedule = new Label("Your Schedule"); + rightPanel.getChildren().addAll(schedule, courseList); + + return rightPanel; + } + /** + * add the left and right panel to the centre panel + * @param leftPanel + * @param rightPanel + * @return + */ + private HBox setPanels(VBox leftPanel, VBox rightPanel) { + HBox panels = new HBox(); + panels.setPadding(new Insets(10,10,10,10)); + panels.setSpacing(200); + panels.getChildren().addAll(leftPanel, rightPanel); + + return panels; + } /** @@ -353,7 +484,9 @@ private void loginStudent(TextField inputID, TextField inputPass, Label response responseLabel.setText(e.getMessage()); } } - + /** + * change the window to the student menu + */ public void setStudentMenu() { window.setScene(new Scene (studentMenu(), width, height)); } @@ -377,72 +510,21 @@ private int splitCNumber(String courseName) { } /** - * Shows the course display of a certain course - * @param courseName Name of the course + * Splits course offering from string + * @param courseName + * @return course number */ - private void courseDisplay(TextField courseName, VBox leftPanel) { - - String input = courseName.getText(); - control.selectCourse(splitCName(input), splitCNumber(input)); - - HBox courseInfo = new HBox(); - courseInfo.setSpacing(10); - - //Lecture Drop-Down - ChoiceBox lectures = new ChoiceBox<>(); - for(int i = 0; i < control.getSelectedCourseOfferings();) - lectures.getItems().add("Lecture " + (++i)); - - lectures.setValue("Lecture 1"); // default value - - //Course Name Label - Label course = new Label(control.getSelectedCourseName()); - - courseInfo.getChildren().addAll(course, lectures); - - //Spots Available - Label spots = new Label("Spots: " + control.getSelectedCourseSpots()); - - //Course Pre-Requisites - Label preReqs = new Label("Pre-Requisites: "); - - //Other Available - Label other = new Label("Other: "); - - HBox buttons = new HBox(); - buttons.setSpacing(15); - - //Enroll/Unenroll - Button enroll = new Button(); - enroll.setText("Enroll/Unenroll"); - enroll.setOnAction(e -> changeCourseEnrollment()); - - //Search new Course - Button searchNew = new Button(); - searchNew.setText("Search New Course"); - searchNew.setOnAction(e -> window.setScene(new Scene(studentMenu(), width, height))); - - buttons.getChildren().addAll(enroll, searchNew); - - leftPanel.getChildren().addAll(courseInfo, spots, preReqs, buttons); - } - - private Boolean checkUnenrollment() { - CourseLite [] courses = control.getSchedule(); - if(courses != null) { - for(int i = 0; i < courses.length; i++) { - if(courses[i] == control.getSelectedCourse()) { - control.unenroll(); - System.out.println("UNENROLLED"); - return true; - } - }} - return false; + private int splitCOffering(String courseName) { + return Integer.parseInt(courseName.split(" ")[3]); } - + + /** + * Checks to see if the student is enrolled and unenrolls is they are, otherwise enrolls them in the course. + */ private void changeCourseEnrollment() { - Boolean check = checkUnenrollment(); - if(check == false) + if(control.checkEnrolment()) + control.unenroll(); + else control.enroll(); window.setScene(new Scene (studentMenu(), width, height)); } @@ -455,9 +537,25 @@ private void fillCourses(ListView courseList){ CourseLite [] courses = control.getSchedule(); if(courses != null) { for(int i = 0; i < courses.length; i++) { - courseList.getItems().add(courses[i].getName() + " " + courses[i].getNumber()); + courseList.getItems().add(courses[i].getName() + " " + courses[i].getNumber() + " Section: " + courses[i].getEnrolledSectionNumber()); } } + courseList.getSelectionModel().selectedItemProperty().addListener((v, oldValue, newValue) -> changeView(newValue)); + } + + /** + * based on clicking a course in your schedule, change the left side of the screen to display the information + * @param value + */ + private void changeView(String value) { + String courseName = splitCName(value); + int courseNum = splitCNumber(value); + TextField course = new TextField(); + course.setText(courseName + " " + courseNum); + int num = splitCOffering(value); + control.setOffering(num); + + window.setScene(new Scene(courseDisplay(course, num), width, height)); } @@ -473,12 +571,26 @@ public void browseCatalogue() { VBox layout = new VBox(); + layout.getChildren().addAll(buildTable()); + + Scene scene = new Scene(layout); + catalogue.setScene(scene); + catalogue.showAndWait(); + + + } + /** + * build the course catalogue table + * @return + */ + private TableView buildTable(){ ObservableList courses = FXCollections.observableArrayList(); if(control.getCatalogue() != null) { for(CourseLite c: control.getCatalogue()) { courses.add(c); } } + TableView table; TableColumn nameCol = new TableColumn<>("Course"); @@ -493,15 +605,125 @@ public void browseCatalogue() { table = new TableView<>(); table.setItems(courses); table.getColumns().addAll(nameCol, numberCol, offeringsCol); + return table; + } + /** + * Change the offering based on lecture drop down + * !! NEEDS TO BE FIXED + * @param offering + * @param courseName + */ + private void changeOffering(String offering, TextField courseName) { + int num = splitCNumber(offering); + control.setOffering(num); + + window.setScene(new Scene(courseDisplay(courseName, num), width, height)); + } + + /** + * Log an admin in based on if the password is correct + * @param inputPass Password inputted by user + * @param responseLabel + */ + private void loginAdmin(TextField inputPass, Label responseLabel) { + try { + String password = inputPass.getText(); + inputPass.clear(); + control.login(0, password); + System.out.println("Passed control"); + + }catch(NumberFormatException e) { + responseLabel.setText("Invalid username entered! Please enter a student ID!"); + }catch(Exception e) { + // Sets the response label to an appropriate message based on issue + // Note: incomplete + responseLabel.setText(e.getMessage()); + } - layout.getChildren().addAll(table); + } + /** + * change the window to the administration menu + */ + public void setAdminMenu() { + window.setScene(new Scene(adminMenu(), width, height)); + } + + /** + * From admin, add course to the catalogue. + * asks user for # of offerings, spots per offering, prerequisites + * @return + */ + private void addCourseWindow() { + Stage newCourse = new Stage(); + + newCourse.initModality((Modality.APPLICATION_MODAL)); + newCourse.setTitle("Add New Course"); + + VBox layout = new VBox(); + layout.setPadding(new Insets(10,10,10,10)); + layout.setSpacing(10); + layout.setAlignment(Pos.CENTER); + + //Course name + HBox codeBlock = new HBox(); + codeBlock.setSpacing(10); + Label codeLabel = new Label("Course Code"); + TextField codeText = new TextField(); + codeBlock.getChildren().addAll(codeLabel, codeText); + + //number of offerings + HBox offeringsBlock = new HBox(); + offeringsBlock.setSpacing(10); + Label offeringsLabel = new Label("Number of Offerings"); + TextField offeringsText = new TextField(); + offeringsBlock.getChildren().addAll(offeringsLabel, offeringsText); + + //number of spots per offering + HBox spotsBlock = new HBox(); + spotsBlock.setSpacing(10); + Label spotsLabel = new Label("Number of Spots"); + TextField spotsText = new TextField(); + spotsBlock.getChildren().addAll(spotsLabel, spotsText); + + + HBox first = new HBox(); + first.setSpacing(10); + first.setAlignment(Pos.CENTER); + first.getChildren().add(codeBlock); + + HBox second = new HBox(); + second.setSpacing(10); + second.setAlignment(Pos.CENTER); + second.getChildren().addAll(offeringsBlock, spotsBlock); + + Button commit = new Button("Commit"); + commit.setOnAction(e -> addCourse(codeText, offeringsText, spotsText, newCourse)); + + + layout.getChildren().addAll(first, second, commit); Scene scene = new Scene(layout); - catalogue.setScene(scene); - catalogue.showAndWait(); + newCourse.setScene(scene); + newCourse.showAndWait(); + } + /** + * commit the new course to the catalogue + */ + private void addCourse(TextField course, TextField offering, TextField spot, Stage win) { + control.makeCourse(splitCName(course.getText()), splitCNumber(course.getText()), Integer.parseInt(offering.getText()), Integer.parseInt(spot.getText())); + window.setScene(new Scene(adminMenu(), width, height)); + win.close(); } - + + /** + * change the screen based on searching for a new course + * @param searchTag + */ + public void activateSearch(TextField searchTag) { + control.setOffering(1); + window.setScene(new Scene(courseDisplay(searchTag, 1), width, height)); + } } diff --git a/Student Registration System/src/server/controller/RegistrationApp.class b/Student Registration System/src/server/controller/RegistrationApp.class index 0f1863b50e708a0b038204f4237b2e134cf67786..8f6c517fef3a689f3cede4cb6f884fdec1442b82 100644 GIT binary patch delta 41 scmcboaZh7|t%%|q23Cf*3}Orn3_J{sK$49?oIwIeGcvpYl1vOQ0m6L;IRF3v delta 41 scmcboaZh7|t%%}l23CeQ3}Orn3_J{sK$49?oIwIeGcvpYl1vOQ0m45AHvj+t diff --git a/Student Registration System/src/server/controller/RegistrationApp.java b/Student Registration System/src/server/controller/RegistrationApp.java index 30f9da3..c2b0cd9 100644 --- a/Student Registration System/src/server/controller/RegistrationApp.java +++ b/Student Registration System/src/server/controller/RegistrationApp.java @@ -226,6 +226,7 @@ public String validateStudent(int id, String password) throws Exception{ } } } + /** * Removes the selected student diff --git a/Student Registration System/src/server/controller/ServerApp.class b/Student Registration System/src/server/controller/ServerApp.class index 3598e8ce3d5b02c07d1c951a91df8bcf5f58c846..561b74c0268de285819c4598fee23bf2281185d4 100644 GIT binary patch delta 383 zcmWNNO-Pe*0LFih6b$On)>zZ+6-FSqikhZ^(wpJLmE2pSYZ;l-O4ggb-=5j4<3^ssgCBxMrX@BZ=L`-mzrczQ@m1+*UFRE8{VqGk~Vq2Ty{F- zU&Y57jeMYsk3{)IH|yLt(rG?3$A;~59r(96$2Jx}XyYegcDT+i3HC@)BFitk*?s8$ zgNsAz`O8g?i13dNj!Bx>ah+yL6?U|`Y&me~JOMcg$xVwq#8ktGYPqL6yVp~)F5uNg zTFs$r3J_M1ghHfrg{-a`lgl2h`D#TBr-Np78pbUyo9l7)kW?>Y>a*kCegAE$bO%cV p+|VHH8X}^ESqz(=yQU{;Cw(hbX)5)AGkVBbWeI9>Ib=1Q`VY7BUXcI* diff --git a/Student Registration System/src/server/controller/ServerApp.java b/Student Registration System/src/server/controller/ServerApp.java index 36e6d45..44b90c9 100644 --- a/Student Registration System/src/server/controller/ServerApp.java +++ b/Student Registration System/src/server/controller/ServerApp.java @@ -109,8 +109,7 @@ private void dealWithPackage(Package pac) //Check if valid and return the result sendLoginResult(l); break; - - + //Add a course to the student case ADDCOURSE: System.out.println("Client " + clientNumber + ": Received Add Course"); diff --git a/Student Registration System/src/server/model/.gitignore b/Student Registration System/src/server/model/.gitignore new file mode 100644 index 0000000..ca44b08 --- /dev/null +++ b/Student Registration System/src/server/model/.gitignore @@ -0,0 +1 @@ +/Admin.class diff --git a/Student Registration System/src/server/model/DBManager.class b/Student Registration System/src/server/model/DBManager.class index db875ffc00d92661f3bf07daf1b999b8853d7b12..a8bb5b635684e914b15b1cad339175097e187fe1 100644 GIT binary patch literal 4424 zcma)8eQ;D)760AMCi_?(kUU62_*|&eWRnoSq?G_|zJQd?LfJHJQnh{AeMuf{cEj7Z zlwfHs#j4b5u`Lz+s)|yrR_Mp3ZEUq#+lpAV%=oY4Kh7}Yzm79HWBlFs-fniu(&=RK z_TF>OJ@?$-`JHp`<^R3$7Jx1IFaV!GUB#xr~%Xn zEG`pr5Y<>T4+2Y6RH90b>Qu}_RRBvVEQ!_IPQfyPg&m1;ZkVwx-8R!H1uMAo<_#Ny zsK+X~ zVZ-Xzhm!RupoL(UKv8Ic-c2HVn{55 z*o03>A6o?~8+&^tj?K7L#iy~2Y$A?%OMy^hDHLuzd3}4+fP(E#Xt7-iNFskKGz5TS0rVO!ahA$7+U>=UT!PN(!_f`XSD6&w&y?l6XpgsG27n-3J+#Un?u=BO#> zJ_Yx1K4c^lI_J-{D!7;PzI0~H(O*;WIr{7wC2MSHFrz@{wnN5nHknRQ^7K0j$h!Ic z`eZU~g`#OAS%Ip9-3mtOs5cbL9uinaL}U8+MAC54%k-zcqmpWC$^zU)awXHFS%V0( zf%F`W8xyizG65v>_2^VbK_g2cr6P?99@?}GmRH)694Y2zuP1Mx4-0kx++Ulm?Yve+ z7DtG4$~ek~wIuJMsHe3DaTLb_m=su1CZUDsReT-~viLHFZpFt6Vu5g3>Xs#ky008b%Gfl!2X-F(b~pmQ3w!D(9fU)c{V=LrJ&?jL||T3gQu*lvVLXfvwjiCEqVU z(!VUDdVER6m+=+$Ifm*ji|XU-5~VnL7}cp`wWmfRbzPQ};ob%6!(bjoIP?>U^+ zlg!uhV&uBUbSq{Y&KjvWnKC4^dRoOd@Dxcpre~r~0@>Hu04w4;lewzg2?}{(AqtcK zy#hXYSJjnT=TV?Go)%bHsx8e6T`h>&di+qIKH>FNHRIGkcW1wmvFG7?_m``NmPDBJINdjLOT+nv2>UBo)GW-?(|3NFyAS8AbTT2B~> zZJ{8}<0mq`KfUgf@G{|ECO=d0bG%6IXUt>F8KLWy3ooj;gqPR~^oa>0#e!cU$##SN zSsdr_ii%ey4HTQT?l#>iydJ=7`RXk_k%~8DV1WsF$Yd(W+w_+zdY~$JOQ0s-E{aYg z@M{%gFcthpU|o-8vHe&Mot+*Z%D7j2CS;~Uap$c-@(7;Edw`U752hgK^Eb3?axq33H+Grwa$Z=t za@R|gv4((D@CD}MA72}s1)Q0}Io}+Gd606pW2pQtpoQt^fVS`y7KW!$JvasJRV>5W4%4Blr!2nkfOSfgHmy11mv3+Eyx7CP>;x)zF@_5D5 zj~PWrbZS@5J+zzKPrMAyYD2Jy#3W!(K)>57LjH&>eEXyXq7>aHV30L@I~zZT<_$HTYl0 zVKzY2N1L6h%HaWj4#&4uHdMX~bsCSfHdIdG(G`^w=MZYvWPRMoq{=msb#^0@fNLUa z;sz!seWEpo$Fz73r_Q2I2GFdLy`DKkks&`RaBgOo>@5`zWrs*0U=L5-OM*s7x<0fb zimkYlxE;V=#7NzKQuiL*$8QQl$lzW)$k_?pkJHd`2E)8bM@Z!{yhsG!rmsH`J&EuE zDEwaW5SF8-@eHx`;WF1f%ijiO<(oLmcpBN)&f#0cdv9TsDvVASM&G8#9jKb2ppvaN zfTOY%TfhwKCNBw~-jS_cyLN`HJ1=$(8NhcKsN0{XnQYnDqc7pR(>On<{dfw`%fim# zg&cm7!^=73!Z}Rm^>4a*rn5-TcKNFdQ2S`4z0C!e=zTkB)=eN>s8=~{*<$@?So1cu zN2q^*b$XPbA9LUexsep$ih6MM5XRr)9l|9KKM%ftqdR~@3OD&3-t`XhB-MVZ!yZqg z7f|1tXK7zc4(~004wWqzDRXG>4NKa-%x)tdD+(%H2rA6nJOM&B#lN8S&Dwm^N4PO$f(nCt<$Xi>~himbB!fix4&<_(uwy(5}rgRCCUB uin~2d=uR=BC!DC9#>bf4o3EDO%2mZ)g}jIz7F2WaXKwDpU;Ym@3qZO6 literal 4371 zcma)9Yj6|S75=U)dl#{Qwb&*Oj|dWo{K6%nB*B=(FTlYz200MBZOB?$#kgS)$Gla;ib%>otShTQ`GE(R4q1r}+T4^2T( zU~w6j1E|KLc@U`4P>Cuzs?#tJRRW9ptfV=R86P$6A!9Vbfb_mp)JW_$Y)j5_LccR+ zr3G#&jjMnr1FN=8Beum(jdvT4(P^YkGq81Q z04s32MBxs`7WR&H6B}`CD;aO=ZP=|~jlj|}R(9;$XG*02RwFEJGze6Nd$~ngZPL(; z7G}Qb_UW)VUZE|ZhS~YwI>zFNWC7X)f^7z))FrwmaH-yL*6`$p(zhh{d zihDR3+%_ChaUVyKhq}51L{u`ejQ<3*W}lTvgbr z;6L>@6+FSe?ykGn2hffliNY3vaIwpIBcLj2Pz(As)mfoM9K~gq|8JGs`huQAa<3#p-AR{z^%+i z#2BAQm|oJ-L#Z4rWcbRmdF>*n6RCK{WMbJPdJad;3CBt$(+bA&CFioOup-mHU&8?; z7_{Y>w&A2~NzLMt=*`L7<|By-1u0hFZ29I_H5>%D`jh5i_N1D;g`&3A7J!383NixA zO498GSnyuM7jc+1pEeCUI#v)1G?vSALs_oLl6XwRm+-hiecW_PiQhRHF{5lJvOs#v z8Yq;Af+uL9#NAzHoDG&x5!wKb;LDPRM+G+Akd%B&EazaszAV9ZJf-0{o)%b0S99A2 zjBz%nQXF&K4&bXeq2OyJSA(~v;Tb$DuppXBI_%#)2Qx;3d|6tIT-TUkN6dp6GZ`gQ zMr2l>*YI_GgCrd@(gSV+*}BQ%im1V4t|%8lAup_JVez+Dz$dSxx>D^t3S5nnIm=5| zOY=fg3nGpYJ z2iY-+D7*f6n}Q#(+s|I69%7vtD-kno6+fg^&z*EAkuqXtY-1>Zv-q)0?@w-MjJZsB z4fKMBpWAQR-Gz*`zNK~wRLKrr7filPztm4+Bh74HeG?y+sQAKRs~ zd$okp-YuRES;h zG1YDu9fb=b9l&K=kuiRJ1Niw{NjA9%y^NY$Ecqr_Sh(reN|dpZfK>32<>L<@6r3sU zOy!)g^kmw9-e~!CKk^QYcIKmmhh{?&+mMGH7w%x zTd@$gP$G@d1nMaP$4jw{$9fJdm&b^I(kUPR4o_pnupSEH`V?06HBDpnus?{8rf_E# zjqbEEh<|(2#y7CIDT}px+&y;%#p$9wqPd*X`k<&SQo^ZH!^P98V9Badn3f((SFaRX z%=z|zUEL5A6~%jsk7anp(@*Kez12Ol2IW}7Rd7@eE)sYjWRjAE9|#h5ooQH%Ce-lh zU55^?4l-TCOwvB;WVm`9%kdJgk8`*UuaZM=VHN&>+wm9Nfxlu6{((F3AB07K53qVP ziZGhQIzGMHu~uwHs~EyMmjHEMa&rV&Ao{QoZ6tz_70R!qz-pI;z%{yCJB{{X{eHbe z@0>!n%yB`uRqvfEd{FP3E9}>I%oPsmyXFcb`a^StyY+|X3WxR2%@uxLe`Kz3uWsn0 zIp=39WG$-$*nnExgGSto`*9zJ2!=&Co*)=6u{m78X1vRlKjVR->bX{^9`-E4xsP`I zgf8xacg-zo;A%y?L@EnwqyIdz_5QcPoBcOvA82x`DvPu~i^+|Z^_3q&o5qor`pPLh zxvX;H3_?x1tdE9ca?Y-kdsJkuE1Lv`%CC}3S<}7}<^eifyFH+{x;O|1VF3-6- zq7EEo^&DekdWucyDD&}jkyDKYryB7gGsoK!0k*7@Ij3~^X5m^vTjn-E{H zJ~y~EIq&+$0GlgR2bChd=!fOo}k> diff --git a/Student Registration System/src/server/model/DBManager.java b/Student Registration System/src/server/model/DBManager.java index 2485958..2c448b9 100644 --- a/Student Registration System/src/server/model/DBManager.java +++ b/Student Registration System/src/server/model/DBManager.java @@ -11,6 +11,7 @@ public class DBManager { public DBManager () { courseList = new ArrayList(); studentList = new ArrayList(); + studentList.add(new Student("Administration", 0, "300")); } public ArrayList readFromDataBase() { @@ -138,5 +139,5 @@ public void printAllStudents() { System.out.println(s); } } - + } From 3c966f0ca0ce8ff25528d6cf92262d9010f1ffdf Mon Sep 17 00:00:00 2001 From: taylor-noel <61843554+taylor-noel@users.noreply.github.com> Date: Sun, 19 Apr 2020 22:37:45 -0600 Subject: [PATCH 2/2] added css added css and made changes to the window --- Student Registration System/bin/.gitignore | 3 + .../src/client/view/MyGUI.class | Bin 19717 -> 20517 bytes .../src/client/view/MyGUI.java | 132 +++++++++++------- Student Registration System/src/dinos.css | 27 ++++ 4 files changed, 112 insertions(+), 50 deletions(-) create mode 100644 Student Registration System/src/dinos.css diff --git a/Student Registration System/bin/.gitignore b/Student Registration System/bin/.gitignore index 9e3c0d2..468b6b5 100644 --- a/Student Registration System/bin/.gitignore +++ b/Student Registration System/bin/.gitignore @@ -15,3 +15,6 @@ /MyGUI.class /client/ /server/ +/dino.css +/styler/ +/dinos.css diff --git a/Student Registration System/src/client/view/MyGUI.class b/Student Registration System/src/client/view/MyGUI.class index 0734a6089fbc77641bf8b235509f8af53f98bbf9..18e714a6316f4d32ded2aa5a2c5ee0ee3f2c58a6 100644 GIT binary patch literal 20517 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 QSkE{Ld&aBjo+>K(KdyB`-v9sr literal 19717 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 C0*8M9 diff --git a/Student Registration System/src/client/view/MyGUI.java b/Student Registration System/src/client/view/MyGUI.java index 778d412..3d23e0d 100644 --- a/Student Registration System/src/client/view/MyGUI.java +++ b/Student Registration System/src/client/view/MyGUI.java @@ -22,6 +22,7 @@ import javafx.scene.control.ComboBox; import javafx.scene.control.Label; import javafx.scene.control.ListView; +import javafx.scene.control.PasswordField; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.TextField; @@ -60,9 +61,8 @@ public class MyGUI extends Application{ Stage window; Scene login, studentScene, adminScene, studentMenu; - int width = 700; - int height = 300; - VBox rightPanel; + int width = 1200; + int height = 800; @@ -92,17 +92,13 @@ public void start(Stage primaryStage) { //Layout 1 - Main window where user chooses between // Student and Admin login = new Scene(optionScene(), width, height); + login.getStylesheets().add("dinos.css"); //Layout 2 - Main Login window for Students where they // are prompted to input their id and password studentScene = new Scene(studentLogin(), width, height); + studentScene.getStylesheets().add("dinos.css"); - //Layout 3 - Admin's main window (INCOMPLETE) - adminScene = new Scene(adminLogin(), width, height); - - //Layout 4 - Student's main window with course search, - // their schedule, and where they can enroll in courses - //studentMenu = new Scene(studentMenu(), width, height); window.setScene(login); window.show(); @@ -134,7 +130,8 @@ private VBox optionScene() { //University of Calgary Title Label title = new Label("University of Calgary"); - + title.setId("bold-label"); + //Student Button Button student = new Button(); student.setText("Sign In"); @@ -143,7 +140,7 @@ private VBox optionScene() { //Admin Button Button admin = new Button(); admin.setText("Admin"); - admin.setOnAction(e -> window.setScene(adminScene)); + admin.setOnAction(e -> adminScene()); //HBox for the buttons so they are on the same line HBox buttons = new HBox(); @@ -164,10 +161,10 @@ private VBox optionScene() { */ private VBox studentLogin() { VBox layout = makeLayout(); - layout.setSpacing(50); HBox topPanel = new HBox(); VBox centrePanel = new VBox(); centrePanel.setSpacing(10); + centrePanel.setMinHeight(height); centrePanel.setAlignment(Pos.CENTER); //Student Id Block @@ -176,6 +173,7 @@ private VBox studentLogin() { idBlock.setAlignment(Pos.CENTER); Label idLabel = new Label("Student ID"); TextField idText = new TextField(); + idText.setId("text-input"); idBlock.getChildren().addAll(idLabel,idText); //Student Password Block @@ -183,7 +181,8 @@ private VBox studentLogin() { passwordBlock.setSpacing(10); passwordBlock.setAlignment(Pos.CENTER); Label passwordLabel = new Label("Password"); - TextField passwordText = new TextField(); + PasswordField passwordText = new PasswordField(); + passwordText.setId("text-input"); passwordBlock.getChildren().addAll(passwordLabel, passwordText); //Login Response Label @@ -244,13 +243,15 @@ private VBox courseDisplay(TextField courseName, int num) { control.selectCourse(splitCName(input), splitCNumber(input)); HBox courseInfo = new HBox(); + courseInfo.setAlignment(Pos.CENTER); courseInfo.setSpacing(10); //Lecture Drop-Down ChoiceBox lectures = new ChoiceBox<>(); - for(int i = 0; i < control.getSelectedCourseOfferings();) + for(int i = 0; i < control.getSelectedCourseOfferings();) { lectures.getItems().add("Lecture " + (++i)); - + } + lectures.setValue("Lecture " + num); // default value //Listen for selection changes @@ -264,17 +265,13 @@ private VBox courseDisplay(TextField courseName, int num) { //Spots Available Label spots = new Label("Spots: " + control.getSelectedCourseSpots()); - HBox buttons = new HBox(); - buttons.setSpacing(15); - //Enroll/Unenroll Button enroll = new Button(); enroll.setText("Enroll/Unenroll"); + enroll.setAlignment(Pos.CENTER); enroll.setOnAction(e -> changeCourseEnrollment()); - buttons.getChildren().add(enroll); - - leftPanel.getChildren().addAll(courseInfo, spots, buttons); + leftPanel.getChildren().addAll(courseInfo, spots, enroll); layout.getChildren().addAll(title, panels); @@ -292,6 +289,7 @@ private VBox adminLogin() { layout.setSpacing(50); HBox topPanel = new HBox(); VBox centrePanel = new VBox(); + centrePanel.setMinHeight(height - 100); centrePanel.setSpacing(10); centrePanel.setAlignment(Pos.CENTER); @@ -300,7 +298,7 @@ private VBox adminLogin() { passwordBlock.setSpacing(10); passwordBlock.setAlignment(Pos.CENTER); Label passwordLabel = new Label("Password"); - TextField passwordText = new TextField(); + PasswordField passwordText = new PasswordField(); passwordBlock.getChildren().addAll(passwordLabel, passwordText); //Login Response Label @@ -334,7 +332,7 @@ private VBox adminMenu() { VBox layout = makeLayout(); HBox title = new HBox(); - title.setSpacing(450); + title.setSpacing(width*3/5); //Welcome label Label welcome = new Label("Welcome, " + control.getStudentName()); @@ -346,14 +344,11 @@ private VBox adminMenu() { title.getChildren().addAll(welcome, logoutButton); - HBox panels = new HBox(); - panels.setSpacing(200); - panels.setPadding(new Insets(0,50,0,50)); - VBox left = new VBox(); - left.setAlignment(Pos.CENTER); - VBox right = new VBox(); - panels.getChildren().addAll(left, right); + VBox left = panelSetUp(); + VBox right = panelSetUp(); + HBox panels = new HBox(left, right); + //Course Catalogue Label Label catalogue = new Label(); catalogue.setText("Course Catalogue"); @@ -408,36 +403,47 @@ private HBox setTitle() { * @return */ private VBox setLeftPanel() { - VBox leftPanel = new VBox(); - leftPanel.setSpacing(10); + VBox leftPanel = panelSetUp(); //View Courses search - Label courseLabel = new Label("View Course"); // later, add name of student here + Label courseLabel = new Label("View Course"); HBox searchPanel = new HBox(); + searchPanel.setAlignment(Pos.CENTER); searchPanel.setSpacing(10); TextField searchTag = new TextField("search for a course"); - Button search = new Button(); - search.setText("Search"); + Button search = new Button("Search"); search.setOnAction(e -> activateSearch(searchTag)); searchPanel.getChildren().addAll(searchTag, search); leftPanel.getChildren().addAll(courseLabel, searchPanel); return leftPanel; } + /** + * Set up that can be used for panels, such as the left and right ones in the courseDisplay + * @return + */ + private VBox panelSetUp() { + VBox panel = new VBox(); + panel.setSpacing(10); + panel.setMinWidth(width/2); + panel.setPadding(new Insets(20,20,20,20)); + panel.setAlignment(Pos.TOP_CENTER); + return panel; + } + /** * add the schedule to the right panel * @return */ private VBox setRightPanel() { - VBox rightPanel = new VBox(); - rightPanel.setSpacing(10); + VBox rightPanel = panelSetUp(); //Schedule List ListView courseList = new ListView<>(); fillCourses(courseList); - courseList.setMaxWidth(150); - courseList.setMaxHeight(142); + courseList.setMaxWidth(width/2 - 100); + courseList.setMaxHeight(250); //Schedule Display @@ -455,7 +461,6 @@ private VBox setRightPanel() { private HBox setPanels(VBox leftPanel, VBox rightPanel) { HBox panels = new HBox(); panels.setPadding(new Insets(10,10,10,10)); - panels.setSpacing(200); panels.getChildren().addAll(leftPanel, rightPanel); return panels; @@ -488,7 +493,8 @@ private void loginStudent(TextField inputID, TextField inputPass, Label response * change the window to the student menu */ public void setStudentMenu() { - window.setScene(new Scene (studentMenu(), width, height)); + Scene scene = new Scene(studentMenu(), width, height); + styleAndSwitch(scene); } /** @@ -526,7 +532,8 @@ private void changeCourseEnrollment() { control.unenroll(); else control.enroll(); - window.setScene(new Scene (studentMenu(), width, height)); + Scene scene = new Scene (studentMenu(), width, height); + styleAndSwitch(scene); } /** * Gets the student's schedule from the controller and then fills a ListView in order @@ -555,7 +562,8 @@ private void changeView(String value) { int num = splitCOffering(value); control.setOffering(num); - window.setScene(new Scene(courseDisplay(course, num), width, height)); + Scene scene = new Scene(courseDisplay(course, num), width, height); + styleAndSwitch(scene); } @@ -574,10 +582,10 @@ public void browseCatalogue() { layout.getChildren().addAll(buildTable()); Scene scene = new Scene(layout); + scene.getStylesheets().add("dinos.css"); catalogue.setScene(scene); catalogue.showAndWait(); - } /** * build the course catalogue table @@ -602,8 +610,12 @@ private TableView buildTable(){ TableColumn offeringsCol = new TableColumn<>("Number of Offerings"); offeringsCol.setCellValueFactory(new PropertyValueFactory<>("offeringCount")); - table = new TableView<>(); - table.setItems(courses); + + table = new TableView<>(courses); + table.setMinWidth(width/2 - 100); + table.setMinHeight(height - 200); + numberCol.setMinWidth(table.getMinWidth()/2); + offeringsCol.setMinWidth(table.getMinWidth()/2); table.getColumns().addAll(nameCol, numberCol, offeringsCol); return table; } @@ -617,7 +629,8 @@ private void changeOffering(String offering, TextField courseName) { int num = splitCNumber(offering); control.setOffering(num); - window.setScene(new Scene(courseDisplay(courseName, num), width, height)); + Scene scene = new Scene(courseDisplay(courseName, num), width, height); + styleAndSwitch(scene); } /** @@ -645,7 +658,8 @@ private void loginAdmin(TextField inputPass, Label responseLabel) { * change the window to the administration menu */ public void setAdminMenu() { - window.setScene(new Scene(adminMenu(), width, height)); + Scene scene = new Scene(adminMenu(), width, height); + styleAndSwitch(scene); } /** @@ -703,6 +717,7 @@ private void addCourseWindow() { layout.getChildren().addAll(first, second, commit); Scene scene = new Scene(layout); + scene.getStylesheets().add("dinos.css"); newCourse.setScene(scene); newCourse.showAndWait(); @@ -712,7 +727,7 @@ private void addCourseWindow() { */ private void addCourse(TextField course, TextField offering, TextField spot, Stage win) { control.makeCourse(splitCName(course.getText()), splitCNumber(course.getText()), Integer.parseInt(offering.getText()), Integer.parseInt(spot.getText())); - window.setScene(new Scene(adminMenu(), width, height)); + setAdminMenu(); win.close(); } @@ -723,7 +738,24 @@ private void addCourse(TextField course, TextField offering, TextField spot, Sta */ public void activateSearch(TextField searchTag) { control.setOffering(1); - window.setScene(new Scene(courseDisplay(searchTag, 1), width, height)); + Scene scene = new Scene(courseDisplay(searchTag, 1), width, height); + styleAndSwitch(scene); + + } + /** + * make whichever scene passed adopt the style from dinos.css + * @param scene + */ + public void styleAndSwitch(Scene scene) { + scene.getStylesheets().add("dinos.css"); + window.setScene(scene); + } + /** + * switch to admin login + */ + public void adminScene() { + Scene scene = new Scene(adminLogin(), width, height); + styleAndSwitch(scene); } } diff --git a/Student Registration System/src/dinos.css b/Student Registration System/src/dinos.css new file mode 100644 index 0000000..6b7acfb --- /dev/null +++ b/Student Registration System/src/dinos.css @@ -0,0 +1,27 @@ +.root{ + -fx-background-color: #383838; + -fx-font-size: 15pt; +} +.label{ + -fx-text-fill: #E8E8E8; +} +.button{ + -fx-background-color: linear-gradient(#DC9656, #AB4642); + -fx-text-fill: #FFFFFF; + -fx-background-radius: 4; +} +.choice-box>.label,{ + -fx-text-fill: #000000; +} +.table-view .column-header .label { + -fx-text-fill: black; +} + +#bold-label{ + -fx-font-size: 20pt; + -fx-font-weight: bold; +} +#text-input{ + -fx-font-size: 12pt; + -fx-text-fill: #000000; +} \ No newline at end of file