From f35a2c588f0a4da2bce92f2112f1914d07b23ec2 Mon Sep 17 00:00:00 2001 From: Cyebukayire Date: Mon, 3 May 2021 15:37:00 +0200 Subject: [PATCH 01/17] Pagination --- .../spiral_desktop_version/Pagination$1.class | Bin 586 -> 586 bytes .../spiral_desktop_version/Pagination$2.class | Bin 506 -> 506 bytes .../Pagination$ButtonActionListener.class | Bin 1772 -> 1767 bytes .../spiral_desktop_version/Pagination.class | Bin 4430 -> 2463 bytes .../TablePagination$1.class | Bin 0 -> 606 bytes .../TablePagination$2.class | Bin 0 -> 526 bytes ...TablePagination$ButtonActionListener.class | Bin 0 -> 1797 bytes .../TablePagination.class | Bin 0 -> 4465 bytes src/Pagination.java | 67 +------ src/TablePagination.java | 188 ++++++++++++++++++ 10 files changed, 190 insertions(+), 65 deletions(-) create mode 100644 out/production/spiral_desktop_version/TablePagination$1.class create mode 100644 out/production/spiral_desktop_version/TablePagination$2.class create mode 100644 out/production/spiral_desktop_version/TablePagination$ButtonActionListener.class create mode 100644 out/production/spiral_desktop_version/TablePagination.class create mode 100644 src/TablePagination.java diff --git a/out/production/spiral_desktop_version/Pagination$1.class b/out/production/spiral_desktop_version/Pagination$1.class index 75b893df38d9df1832a3c1759bb0d6f1297657ca..8443f97ea3a9ef8275b57e1b0768b2290b40b052 100644 GIT binary patch delta 23 fcmX@ba*Acc0Y=93$p;y2ShE;d7_uibF?j$0VPyuy delta 23 fcmX@ba*Acc0Y=7UlMgc5u&!iaVOTYpiOB;1Xov@a diff --git a/out/production/spiral_desktop_version/Pagination$2.class b/out/production/spiral_desktop_version/Pagination$2.class index 82506ef8369a9732493e5a7c287d6d992eb74672..53289a1a8f043c3a05efb92dd1b210fce62d5ae7 100644 GIT binary patch delta 23 ecmeyx{EK-*H6vsBlXfgyb fm@jai#~1dB0y( zS!I!`?6OEzcFAT)g{o|_%O*b{e;_{~Stgb5b`SPU3Kr*_d;8vVzw@2P@Y}yX{{mnb zUuXy+tRSKzikLwBk+EhxO;^?}dnG+RYuIK{Aa>reEq6p9oaoJKP|>15)6ps~XtTzO zWgD*L*aACB&lh8^tzd^hN0Y;`s_QzoiZ+4hgjKG%8g#VFx8nl46IppUT{QT1&Mgzd zaBp5kr+_+JHrFhtT2Zk_Kpa=GmugVOKB^Nc_EQb1I3N(2F`v3BdT3=0-~VA9FX4zl zXT@|gj_sPZJ6bl439DE%3p|&&Enj&>VArJ6<2pUd5?BvIF(tZ$j$Vmw7jKU)$v894 z>Z)NERHPW5f2CB1=iO4#FQC^y&`S^Drki(&{CM*YgE-N=!+1^-bb}w8q19hFEzstF zDKbiLQ^8q*gF!lu_+k--F(7xp<+x&2A5eZbRm#zxJ2Sgj?Ih1y?&;pr(jdT#QzI$qHL_1Dy|Sv z0CnE1xU3Bg<7k)Ss*WtK3G8KtE}P3nwdiJwPQ|=lGRyVCj3lP~$_>l%oz-ze7DNj# zTrU|g_u3?c#2CLvEGZx@Fa$G|md|@27b=<*SpT?V( zU2xX760jYO%_lq>$8k@`ec51G=9rl z73)FKRPeAF-JpgQiS99q3RZR4a0K=>wr5Uu{eo*1E!Q$D0sTEYHhtOlHU&F(k09!4_qa`*K+sD&`bfMSy>q+H#UWO1h(jBQfWaU}S>oyhwV-ZEZa^e!P=4ehgeR2p2zaeb zsr!defy)&UY&i%O>9B=cbDPi?<2yI7E9+Suw61y9Zdx;*)kW)E#52348THH;q#5(f z7p19q=0Rzysc;R4`lRTWqC4Wrs3&8dR6MClnTo$$!_mGt!#LU>@1yLF#0R8`#*axA ziw{br#D}C(e$`;Lp`?p|8R2Z?Ll$m1DHk{3mC+0rt>~`3pj~K zIK>2?#u{h#n>dU2aRHxV1Yh#TSGa_4Fp6(6hVMCVf52sIU=qLL3Vz2F{-DP{aTR|f zD?%KOZI}`JF((cqClZ(!1Dtdxkr(GV!!o!frm-k)@O4=!cl~OpSBfUCph^rZOEH3V zS|R?<4&f=SFnUEVUZ)kokT`&6w4%5uI`9Uq7^a0vn2u+!TJf0f(PaQParKC0}a}&6(8aw?uYR)WeA@zak3G^OyvrHBtGM6 RpSM!+Ii2UZmVYb0`VS}WF%tj) literal 4430 zcmb7IX?zrC9eyTzO*R8bmH-VR4U}rKNl1aTwSWzfNJv;h%0lQuJ%(hG3~XkW-PwfJ z+S{I3?U9yRTWuAzUTsyfwOh2_TI+4Ss@9MC%@6jY$Mc_=Fj>rp1b)2NJn#Siy#MQc zm)HLD^0xqN#oywnLMVo?h6thx636sO{bWaB%CyEh`UiE($SR0#GcD7(Rzaw_Whf36 z)iK01)X0YTpgv|=x?|dwg6a|7(GTcHvxcCSXjm$cCAkZbosJbloq{@1(~;GwB< zOGSdRcA5Et(=?z@7%CblE~Q_Xu22w3=j^TM^b@?eMgTO!_L+i)>J6=mQ^%S@*dq8zfr|HQ8HmV<0{rG(9)JYb=21LBP1BZ zyA;$1Li;R-D)Vt%j%Kl4i-K@-U&~MotrfVPww*O}D~=@E1-C(Phg*hJT)|PlJ#MMk zM9cQrJaZ>)z26qwtGJ4b=^_{3LsC1l`tWfTTNJ2!=nBV0Y!dJrl_YRU;47)FOy6?YU^b6lT3X;u7<}v3yOLF?X zzPJv3%IWAaCk(5=(1;_2eIjm<6q@^Jr#O1CUqc!P6s#*4&S2gcHS&35Bt4wBvssCu zA=8)=kEhL>3za zM}*o9l{&iZiJWa2mgDMB@c|7V#D{1~ePl#z60n(roNqCPqYTIj?K_K(W77*16merd z4jrRHVobquU-X>pAO#gBolh%Gns$*ve_VmGQN;wiO)6}5n^l}(*QugF=MESrnJPt& zB#A`+l!lXHqy`$P+h+J$&JMk^LaJNE)};kdHfHYH<9O^l`EwD(aIIFzo&AA2f2@I=g6^mCSSt? z3TnMCS*a1CHinNWxODJBty%9`+2fot3p}vo>nVI(4E+fTXif!a*ULH{*6;`(Wd_sB zl{*=xb9`=0(tI722#Sc|v5V7bSKcjWrztbgcEBh|4#zQ#QE8sk@F^)Fm(a*P#;9J* zI^9{jVC>5odAGJoJq=0oX$_wdFIE$|FQ=a<(n-^JR>NoUIR#4t-%4y>9MP7en>2z; z^en9%5L&-6jx(ZR8qaC?BEICA;E-vJ*i*B{o6iK52-k|!_=<+FO63pdShhsw3mRUO z+>eo;q_eDjUBfrzByp|{nFW&>AHz%~t4(p76IS2E%Q2KSyn^!zR?W?&v{cK3j+r$b z(_rA&nAW6y+(_w;kq?gV=F!M`)kg6b&*^oH%Oa-MUBbrR-rnJ0y1r zvHoJ%88<0hn;S6HHEd^#6PDap{8(}4c(>YC>X9pvVLV?6W%fIwgrD8QapB%|wQ_U3 z;1)yAm5r5{pn?$?adVcnqY~p~0KcoV2})>=xw6skdGomQ&3?}dC@fjVPV$NlOOM-A zy$AdFeN+PZ|ERj*O$|#eW6G~89^LQ+V~r)bdG1Bwo5gj2o*$#t;%U2>A2wKp#2Z0C zZV)Ha!~@Kfy@vQl?B8cGe7i}lAQo?!FT=5xSyIKv4VdMmjVN1r>|D)WVZS6FC*Uhq6 z5aqgA9t$yYUG-u}$9?dENZ0t_g^|{L^nyq)Sq$l=iy>XRDAIL{Azi;1(uu{8UbZOG z4L*8@#DBNM|NCa+KOV%tmn?hB=*_gXme4oQUPdZYU-e2o9xGvB2G_NRW^k~K>oe^o z9NrR6Hil>L{zF0eSjVa(g<}m8p*PSKdJEe_|HO{a+vo}X7ro&qcDtpe(<>i-X;~Bc z2fl~zL*brH_yK;1D(-B?kMLuJxKG7T@EXD_LHs4fmUXNu%Xu}c(*82^Ok%hMBjt|9 zIpPVpc8sF|ca-I5OV}M+GK{#xoD5lq2+hlob%;YphH5L%IoT$SoOrS^?6wiNjk;~j zZB=Po6F1J_!)=LM*tREbW7`-`+#y{gahG(_#NE=x68B1{Chlj~TE?jiYw&|Jc&Kg8 zm?pol-bl{Dgsg)Jc?T0R4<_oINwQVklWcR_cDMCBmTZi8v#8g_yiS!a@a9>x(3@k3 zV;l`I>D6OgIgU7Ceeu z@g#1;v$!44@yiRi6D8bD-`|5@5cMYR!{2c~-o^t;6;3I&e9NxJL&`cltTf{hWdq-& zS7KV(#`k469#{HtTDcBSxDj=O7Y%+y#g*OoDPCu+G$_~NXB<`WcW)@Wh@Z z&G^YO)JzFarCOO2PmATBNtSVjOP`;?7kJBlIawcSs#pFsgXfckd@ZnZlJbG4*glO~ zJcE_A&}u$q*WxVN_=da!&tnU%)y3!It3Q=Ip{3BIO)GIoIAC!OAfX6KBokFi>z{(2P$Rkn?Ria3+2 zZ2SV<6zvK}*9I=J#4(%!P{lI;@xXY?(UEsJ7jmWF@c)wC0|2hz;kpo5dGwqKIQJF2 eW2%Q$#?4_3?>T#@;R6~)rN;9D0b|OXc|8CKIe$d} literal 0 HcmV?d00001 diff --git a/out/production/spiral_desktop_version/TablePagination$2.class b/out/production/spiral_desktop_version/TablePagination$2.class new file mode 100644 index 0000000000000000000000000000000000000000..57cbe8f832b0a90e4a87b89df86e2b564b91edcd GIT binary patch literal 526 zcmZWm%T5A85Uhcf#dVdZ_%h9$Q-m$ho z)6SIZ`Jq(9D-n(SfsJkKke3OU)S*&+aOPIKQ9!(At;dk#~r6^CgIw8}UqgSx!q+Fm=mw^`)>9l_cD4|Rd!}_ndk;H&8g*n&i mrvs))+j1L45IrL~+O@pF&PKTsCjt~lauzFBE?E63))sou_Vo0eKHYPs|N8gcdjK|GPa=b?h6w}5kYgw{ z`GzajdB^d%a->&U>MJF^d+l&hcLF6m;WOmamJ^h&F`TF$Ibi3ZV^Txjz!VIInQgwy zt1kCC)khoKqOIugqT@O0EIfA( zYO>qq-X=q#T&W*sXei(DI`$+AIHlpVfipNeLZPuo6?7@H>=WLp_^2bR>vT@hX~Da; zNsT#g;6q$sIMd}jq9(mIS5F%xB{{jMO%T}tjKRit*vh!LF&u{_d)7>>uV2Rb&#)kHxJ#oIfp zyq9p#H)P*$i)F{91cf6HZz1d+gT5vLwITzhp-$|N1d&XZq*Q_Od2dyyEx8#?=kO?x zbv)MaBvgHahQQ&Aa=cx+BdYPkiXXxz;_e_oQ|XLHNK%0#YbqQJKV!kg7r7WWNA-c-N*6O-*M7k}S z!V6RwP$z1uG}_lNOB$=-32viFG+X3-hUa(zfmiUrqr!?Y<%7Z`YWS84I)-iB$1;`l yfH0?_|ASc#b5qez#{^c$oxwxuPx$?wz!CL&jSe>{8DNq>+<8i#XO#98&ix0a!_}Ao literal 0 HcmV?d00001 diff --git a/out/production/spiral_desktop_version/TablePagination.class b/out/production/spiral_desktop_version/TablePagination.class new file mode 100644 index 0000000000000000000000000000000000000000..3b83d63bee992ea4e50808d44d885273fe679977 GIT binary patch literal 4465 zcmb7IX?zrC9eyTz%w!lyvIJ-lX`ob-O+pH!tpzMckdUy1l!efRdJM@V8Q9E(-PwfJ z+EaUCwMSZNZM9XyYpu8Ss#-tlH$T{q9?ySf!e-NaNZ`kN&GY{M&-=gL zcX{={FMS)p7W`dD6(TC424aXSNE|oE%~S393ELTN@98rgE2|*B)pl&}S_P4&=6)R- zs#WL)7RiR1gXXcU)n^Xdj_KL1qo8`w^h|$Mpo|jcn$(o` za#W}xp+Mhl=ki`-uQ_UIsHeD;d2za2K`cGy<~$9T5P4anJJgu5%v@f>O3wSOVaqdf zwn_P`6f8ZODr?w(?6@`HZBenhLUFLHp^=jJn%>Bb8rF)EQQI5Quug%IcHD_$u9+Jo zK^5;(P*)b(?RZp~({VYP#DL8TqD|e+{VG~2a64T$YnhIYB-#YGUT{a6`!!s_QI9*~ zXxK>e?s9qN4jTM`D-O_b6&KS5F20APc4p0i6B;%v(Du?Fo{!in0_Y|U^iS;Yi0yH> zo%T+TS=L}<&N79#hMknuBjR_7q?|iJmAkpOkJMD`neF+|e_iMizIzoUn~u(5&N-Ik z^!q|_?dF8nzRMo9oIFEAM+*BzTpuYkb<<8dx^Tci8V41u&0Ahy&Kk0EIcqRIkaM$H ziL8Fxnh=kt?VBtGE1CkAR><8F2C^jjxnSq>ZQN=L^WQF#f1`!MY7P&Wf5zJZs=f_;O%}!?rW%PE4C|E<02rd{a*1s|LO%7eRE4RZL_) zZ{P(f1u98OcFWo~4180LqjRm_&f6>iDyHV3wo%7D(S~g5{|A* zkGKomE8UYaB#rHTPi)kUz0ueDFs%jTdlZhni(wS&tX*v^2 zEK6tNi52OLnrKL;YL{KWJ2DZ1-bv7<0$L-W%Lppr@{Cr*y9q5JnTZt9nkFE`whMNH zU^j)>co`cFu(1$(rC_fX>@^`aR>p>M;~{p7VBag)Z6UU{z6=fp%cb$GOh-YHzy7Ma4K z60Xm*6>(&9G}#cH!ut=G%g0()9Vr~Ek%+vGZIL&zJ@PN?h`fbek^iA98pj^Lv~&dJ zBP=beBmczr@dGH_vk^bUk5I*(P53c>f(Z9%_$gjRlqHD2v)HnZRb@G^W>q>+f|*GS z6k(f&X)*(W3GGra%(37Fo!gG$dN+Ty8Z;1MB z%x~j9oXs>{?1VonZ}r zUB6Ri?}D*>bGrv8+a_)5DRAUpi_fRldkN| zb7-bFhoNHx^|0yH<6Jp`4rH+nqv(NyLpX^e$niHr9)s|RC}0fZ{5yf0`4GQ@?LB;1 zKY&~C2yVp_xDC(Xc09{3&*M%MaTk4mH-1Uf8@Lz$zA@N0Iy~-2)D1y2gb}4Hd+;;7##pIWuEozes^YKW4*Y_n z2%nwJ)b|=As6$zeUvU(}Hf1S(%~2dZiiY2Cr1EV4!EZUzXo25NM;^{lg50dzOPI_g z9xLMUy-Aw!QzdAbBA!gOFejc8%Rikg;VhTFFoiGjmi Date: Mon, 3 May 2021 17:41:54 +0200 Subject: [PATCH 02/17] Pagination --- .../spiral_desktop_version/CustomBorder.class | Bin 810 -> 810 bytes .../IconTextComponentHelper.class | Bin 0 -> 2017 bytes .../IconTextField.class | Bin 0 -> 1334 bytes .../spiral_desktop_version/Landing.class | Bin 4057 -> 4057 bytes .../spiral_desktop_version/Pagination$1.class | Bin 586 -> 586 bytes .../spiral_desktop_version/Pagination$2.class | Bin 506 -> 506 bytes .../Pagination$ButtonActionListener.class | Bin 1767 -> 1643 bytes .../Pagination$RoundedBorder.class | Bin 0 -> 1083 bytes .../spiral_desktop_version/Pagination.class | Bin 2463 -> 2908 bytes .../RoundedBorder.class | Bin 976 -> 976 bytes .../images/search-icon.png | Bin 0 -> 434 bytes .../spiral_desktop_version/images/search.svg | 3 + .../spiral_desktop_version/pages/Signup.class | Bin 0 -> 4189 bytes src/Pagination.java | 83 +++++++++++------- 14 files changed, 56 insertions(+), 30 deletions(-) create mode 100644 out/production/spiral_desktop_version/IconTextComponentHelper.class create mode 100644 out/production/spiral_desktop_version/IconTextField.class create mode 100644 out/production/spiral_desktop_version/Pagination$RoundedBorder.class create mode 100644 out/production/spiral_desktop_version/images/search-icon.png create mode 100644 out/production/spiral_desktop_version/images/search.svg create mode 100644 out/production/spiral_desktop_version/pages/Signup.class diff --git a/out/production/spiral_desktop_version/CustomBorder.class b/out/production/spiral_desktop_version/CustomBorder.class index 44578e768ba79d923a1ee55250053ad780bb054a..0c447f7d79de6cb07f90ec54dfba6a52cd249ba2 100644 GIT binary patch delta 35 rcmZ3*wu)_oClh1OWG|*%!F~o_h6xP93=~N diff --git a/out/production/spiral_desktop_version/IconTextComponentHelper.class b/out/production/spiral_desktop_version/IconTextComponentHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..50c879a25067d4e2a8724e43791feb2d30e37ef4 GIT binary patch literal 2017 zcmah~Yi}Dx6g}fdwzjuv^Jqd`k|t0RzvzZH)TPjxCf(vZz`+Fyv>SVIw%EJYdPCb! z`~iLgF9{()NCldZ@Dh9hi64cycXqwbqNuero|!vy&pr1scmMhK=idR8VWbg5TtPxb z5<>#VZyFyOTHCN&+S=w#v*8I0owIDqJ1-E=g%0+fYw7QrdUhq_!^9KQpLlV7D#s3eSy&k z2FuDBoWiVvITerKQGuz0zC@@A91FeB?VjoN1Qv1GM#FR5 zI|3sO*EBryQm5

8EQhr_=9#sb&M`RlJ0k1;%{@8N+S6*$27i`_p$gl8zf+iV8objB8RteXCsDmsBiand&x_3e4P(OTJDq)GKSN*K6w+D*7tv9<4Zb z&ogYVZnU?}I6dNo!09N+VULTU5*4RuQk_&S+g#o5Y?|(dvDqfcXw_*L?YiMwybpv4 zZ_A=$oT_pLBQMo|<7INB(SP<-Lyo=9B@-5`z{G*N32TIjq%DH%7wO2Lkb=6Vifsvu z4dkIR`Cs#l#s@1#H(;4@>{>s@)T=s%+p_3M4*8iQit?OY5I7MH6AQ~SE=-45)tqg& zVJ=x5618gBP3lx<_)%e&vKpgUCy~WvKs6EIvwFEg+laVtuNScReB=IU~ zRB81d-DjL^;U|bfaR*AFxQnAZ7%LR+VQdGJ-_vOfEA&4>dcY@0;8UdV88yYv$<`NG zm1hzKYgnfp;o&v1CTK;iGq9!6%#tJ_Pu``44?84yVO9#4X)$0hYqA`N^E1>aE5{T4-hC+*GBIfrKhZ^$r| zLdzx8ag}VpDKSKmrnj&hkolP4n9L$ajA>;5MuyjuUtuQB`+Yn`E&4`0zK7>l3dPbM zUJPRC6Uxdw+$E=epg8@AaqM6oyU?%~5}T(ezfI&gvWp?HMO-79Pb`7hc$QAz!Mg#o zCA!V`)66DY*u{lG{)Q#zU&!XKg#6oqyro0*G*!ejVa2#%1ej-O$9YpZ!ZgNq@yY;| Xzt_MY^!fesKnm3WQQ$hA#&F|5m58;|hPZ|V#}RZe3_dcS zn7jGLj%9D;m)FFuw`hr4m7!zSvMq0pA)d{ZHFPozEma&_dMr3wb;lOAcVE=%!c9U$ zQsTN8rn1E_&?E1F+KwsY$~wA{($K@vi#~?#7FT7~wgN80NU?R*4iByhvWm3KnPEs| zmvUuk7~~kjFhiMX8H5q?s1)4&|snG>nqJfq?v-0?XSywTg8>;6FXM>hSwTFEXfy<`cP%R>_boIoobUELyS#UNr40J?$CU7fjH=WAqs?TIuQ0 zu7mdU9nhMm(*hE-1Nw|6nDGkQL)z#sz@L#ZhV!(h5U2GmIqnnU9WKy`2SK=qOLUUJ zi~_EZpG??qj5cXGg!qA?_DRx5pEwvqDI&$=GOiFaCLgO}mz3CH<2m>n^n~fs^px_( zLz+L)~f1&MeAM!7R;CIr$sk PA=VlO4u;yvd--JmQC<=d diff --git a/out/production/spiral_desktop_version/Pagination$1.class b/out/production/spiral_desktop_version/Pagination$1.class index 8443f97ea3a9ef8275b57e1b0768b2290b40b052..cdc8f2c872ddf908307ca25500ea718539daab31 100644 GIT binary patch delta 23 fcmX@ba*Acc0Y=7#$p;y2SeqGG7+NMXF?j$0WI6{A delta 23 fcmX@ba*Acc0Y=93$p;y2ShE;d7_uibF?j$0VPyuy diff --git a/out/production/spiral_desktop_version/Pagination$2.class b/out/production/spiral_desktop_version/Pagination$2.class index 53289a1a8f043c3a05efb92dd1b210fce62d5ae7..9d86bd7d486d0966f18a0d6b23e7cb692d1d2c9d 100644 GIT binary patch delta 23 fcmeyx{EK-*H6!DM$u*4Dtdkg+875EO!)ONpXU7M= delta 23 ecmeyx{EK-*H6vsB7;X13XYU6!1Q33u1{;d;WsDm6frwMk6E? zHd>kZ6Ra)#3x+r>VzBt$%)IZ-%$rZwmny$C8_xg|II7CG%%x__`bAkkJw7SvVXMJ1 z*={BxVTz%fiAo6lXJQf}405r2RK|8jP=fs^sLL+Kwd;a#Sn^C zlYeDf){7&__O1m#JFpBPT8VJs@^@C9G(7#~jT&6V2lSZ@cz_zL4?(SjOpSQo4V?EFHMKw| zA2hXKCs$1^Z0CH-1&@}CVMv7Iv~L2vn1mMwVSp|OB84y=AGaOq?cIM4^H`wk81-ea zgyjO6OVJ<|!Z*Ak#uP=7;J^xT99FSr$277OC2Gsj+r&0i8vS!fV~3bs?BfugA0-=2 AYXATM delta 614 zcmY+AOHUI~7>1wI>E&c-X*rD|Ate*ACdLDD^;#4`p@@JAUg~ARq8f~02%s@;y73>( z$`wo3XzYT8D_8ytRwVEjjPdIXL(-Yd`QGpSF6VvcID43L|NPtk1>EHIp1Z5M3Uj`< z<9lz`x3+h@&9%4nps8jX#faV9s()PfKWv8u&5$B{QjkV(L^IsZjA};PnK8|HJ2S4i zqR2;kHtL_ETQ%2C$@gpSiIxmEeoQ51lzI?+aRxeV78Oi65^ z)|`^}4%4kE;f|!ok?3D)l3V;v(eBd&O-j}bG%0^2{f$*?q#WU@HG?s(SaUhX!?s~Y z;^e$FV=+Ew%|wi|)?5v-vnO{tv=k4CTF8mEPP)iblJg=(CO9KHyIB-HHTgSrscg_6 zI`bmUr_Ow4xLXrTDc*69Sur&yOY`WzlrmiC2p>(7s?Z7MxgW*_*$!F;m*iXJsbog# O2^M%J%yVAwik|A%!s$Mh1Pae&Te&h+p1X16^(KW#ex3)$>aGuQB1 zvU@CjrSC(f5q1>At~CBvX^m8ECyax{r3q}78l&8Iz0;oOI&N4iC(787SkV$#Nc4%b zz?2GN*2A8B(`SNwfL8(&J*nJbJb~>?BPE0vovXziX27<<{3Ui;&bZzQqzB3lJAA>8 zquL!#fc4z#`z>cr=`Kwtjo8*T3XC5(LAdV)p^1BRPV54?y6ZarZdV3@qaW|D8NpQ! zQwp3Su9O}qj-WFoKPcTB#le1>VfPWE&ppJVzX(Q%v%alq0a{KXM}5!Z2pc7YAt z9P)2PccP6C|8T5D968!GcbucZEo=^v?_u%}6t>p$Mm}xW`HW%f-1Pd2xukae)q)i* zF}|*QKgNynDh%@?7fL8c-UU?HVcoL=Zd1~oE?|pNI+E^C%Fw>eTMAX&jm{n1=V>v+ JaqQp$tltYO&^iDB literal 0 HcmV?d00001 diff --git a/out/production/spiral_desktop_version/Pagination.class b/out/production/spiral_desktop_version/Pagination.class index d052069c7ab93485ce072217e747813ae8c91c2b..5eab5f22a018463d3223e9dc63202fb33c521b0b 100644 GIT binary patch literal 2908 zcmZuzYj+dZ72Vg8JYqbFZGi!i)B!>gTYeEuZYnG<27O1vO$saP3=Woj-*w_>R#12AFwiP~6AEn|Bcj-s zH|clM_vpUAb1IHiRNNBBYEE0@Sj%Z!9P1cKZ*Q-hztzCc(5|qmX!&W^@h!*S<5}jA zozGi2g=oidiP*q;0~(S^-o{%(aeH@Ntc zyR8PcVLL;hJ2AoZ)HstJx>|vs;};rs8rX$?g`1b1rro^j5rXM_$>POBd?m`@L%*PM zkAZt}A0rJMc-D;PmK?&ivc^rQ9o~PBfk8pBInd9RiWLy!*sEadch~#wdQ!kzALMq( zz<$ZCV7@0S3`x7Qv!;`aW4KXR;AyjkX)gs z5xYn(Se}k?ObXP88Fj}Z{kNm^g0WK_QBe zVo>m7WDhB0O~ zg!m|=Y7k*A3$8;{`a5f>wX~_B@Y8NGeu>9f2i&bR1nFYcLJKRv z@mcCXu-^$ z6Pqs>coDw|YkJatgn`AF2qB}3-x~Ox+(>8aQ+Cmw&RZIOUmx8T9rF_1E4ZrRRRgc# zb%k}cxu2BYeZ;r(wr^WSg(lm%;GVNaNB}}#*Ka0Dj$_gbgJp#2WwJX3-?voet(AEj>1Fv@ zt}dP`xHPKR9%7e5S(`lT&h0-UJ70{E&MH6k|Ix-P)y zD9)!>eo^ppXyo_?S6ewN&MQ(2P^mJsZ@6f{n;b<2(D4>WBUHlMc!w)Sv}B-R92!kS z?OlYCN!+}^)*nbKDUAkF8>O*8T0?19G!T;_#=0V9+|n&Wj||CZFvgb0+mf+GY|KRX zTfn9=?viy^CeagVX zO8l>f&z9JQ*LhB8JFo~hlQ_SC;=xp78U7;TnFY*^bP>Lb0_&rxMO^0Augdr}Y5Yv8 zRn52JpJhCsqRLBEWK*;c%yGPkW;}{Dcnr6)iEqFY=q6^H@jU<9yg)-VfSvIh7L5XV1omLl3o9jTS3Ma(mXm#^bW)uH_51-qz@t2L$6gg@d>+>hYT o92@X8jai#~1dB0y( zS!I!`?6OEzcFAT)g{o|_%O*b{e;_{~Stgb5b`SPU3Kr*_d;8vVzw@2P@Y}yX{{mnb zUuXy+tRSKzikLwBk+EhxO;^?}dnG+RYuIK{Aa>reEq6p9oaoJKP|>15)6ps~XtTzO zWgD*L*aACB&lh8^tzd^hN0Y;`s_QzoiZ+4hgjKG%8g#VFx8nl46IppUT{QT1&Mgzd zaBp5kr+_+JHrFhtT2Zk_Kpa=GmugVOKB^Nc_EQb1I3N(2F`v3BdT3=0-~VA9FX4zl zXT@|gj_sPZJ6bl439DE%3p|&&Enj&>VArJ6<2pUd5?BvIF(tZ$j$Vmw7jKU)$v894 z>Z)NERHPW5f2CB1=iO4#FQC^y&`S^Drki(&{CM*YgE-N=!+1^-bb}w8q19hFEzstF zDKbiLQ^8q*gF!lu_+k--F(7xp<+x&2A5eZbRm#zxJ2Sgj?Ih1y?&;pr(jdT#QzI$qHL_1Dy|Sv z0CnE1xU3Bg<7k)Ss*WtK3G8KtE}P3nwdiJwPQ|=lGRyVCj3lP~$_>l%oz-ze7DNj# zTrU|g_u3?c#2CLvEGZx@Fa$G|md|@27b=<*SpT?V( zU2xX760jYO%_lq>$8k@`ec51G=9rl z73)FKRPeAF-JpgQiS99q3RZR4a0K=>wr5Uu{eo*1E!Q$D0sTEYHhtOlHU&F(k09!4_qa`*K+sD&`bfMSy>q+H#UWO1h(jBQfWaU}S>oyhwV-ZEZa^e!P=4ehgeR2p2zaeb zsr!defy)&UY&i%O>9B=cbDPi?<2yI7E9+Suw61y9Zdx;*)kW)E#52348THH;q#5(f z7p19q=0Rzysc;R4`lRTWqC4Wrs3&8dR6MClnTo$$!_mGt!#LU>@1yLF#0R8`#*axA ziw{br#D}C(e$`;Lp`?p|8R2Z?Ll$m1DHk{3mC+0rt>~`3pj~K zIK>2?#u{h#n>dU2aRHxV1Yh#TSGa_4Fp6(6hVMCVf52sIU=qLL3Vz2F{-DP{aTR|f zD?%KOZI}`JF((cqClZ(!1Dtdxkr(GV!!o!frm-k)@O4=!cl~OpSBfUCph^rZOEH3V zS|R?<4&f=SFnUEVUZ)kokT`&6w4%5uI`9Uq7^a0vn2u+!TJf0f(PaQParKC0}a}&6(8aw?uYR)WeA@zak3G^OyvrHBtGM6 RpSM!+Ii2UZmVYb0`VS}WF%tj) diff --git a/out/production/spiral_desktop_version/RoundedBorder.class b/out/production/spiral_desktop_version/RoundedBorder.class index 58c9cb6b18a75a7b66a6ae3a271970c59ca842bd..6c7b6c2d0e0fe9383cf2c809a942d1fe2e130fb6 100644 GIT binary patch delta 43 zcmcb>et~^MITL3+0}Dd~11Ce{et~^MITL3Q0}Dej11CetCl(E$^DS7c2 zPg)=zXHirFNA)7b99Vs7J9lE6-pt!zOhxc(7Xk1~}CmT4%qKN0URUND0d zjQ-C!g%1VDNAac8CV#@c9ONg0yyG5K@e?;PkeBf~?old?U<30huIZ)7dMN_Cn^xo; zUd3&BgnC>}IEx9qh|Ak7X)Q$VWU1{io?;b$@Heu1gZnsn$iE&Uw|n_-*CU8pFGU8^ c{&0nH0G3NV-jV3?3;+NC07*qoM6N<$f?)!{N&o-= literal 0 HcmV?d00001 diff --git a/out/production/spiral_desktop_version/images/search.svg b/out/production/spiral_desktop_version/images/search.svg new file mode 100644 index 0000000..dce8d75 --- /dev/null +++ b/out/production/spiral_desktop_version/images/search.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/out/production/spiral_desktop_version/pages/Signup.class b/out/production/spiral_desktop_version/pages/Signup.class new file mode 100644 index 0000000000000000000000000000000000000000..18dd8738e7dc2fe40eadace00b35bf4617c527f4 GIT binary patch literal 4189 zcmZ`-dvp|M75~j+*~v12?D8n3g{CdWB%}@D72AM>04WJepac>E6qwx|l7Y=mnB642 zS}3HY(p1pKf)+)wTAPYeARBB-i_}LS+SW&{R(zb}IiBM`dXD-Ro>RT|o84uW#KXzl zJNLWy{_b}l-?zg%pS=1yfExTU02zuOstzBrLjtu_+0 zF-IU5<8D9h(Qz+kNthslW5s25+;+%w>&k}pD=2Yp*tr!ENQsV5qm=SOV0A`xSG!|( zCt?yNc>skU0`jB$)@-dc5@tMrGAO+N`*hroN(q6Km5Q5UZB!0~l%UH{rDHDUx%;eR z)FkDDvcP%Juz+6fowu-h{_;5i6r)`h-UO~U_oV7AGad^d;r5lIBMHimPxz29Eq|=QYy3ol)^Du5mw;F3LhbHHy-O2Z}|%>)kWIE2TuEz3?N%ydhZ9r6s8 zi$mqpaD?>3h9@OY=y;M-qQyzd8R0xVrQ>tFN0o&do~GTd=rpW2uRWvV^CIPDR&qke z7g*bG#A1$_Olo+R{B1~@PB!mf((#-C>GlXu>G-k$VJ!{Mlg(Nqne3&cFwR$Xd`;MN zWrTiwUBYy4DjT!;`fYDO?6mQn+aj>jaWnO zSL}(JU0i{rA0K9NTWQ&q4Qp~Mghj1K*_>Ls*$r1*z`5Ix)(xkfyiXcq*^l36y$UOj z*Fdw~?L^Ibi?^1!aPQ~Z;%-W}Og{jo(337z;$%Lh1f}ywP&!xyrD+nBhD1?_3MNk?*L20xErCAY_T3b-+LP6=06O@ivL8;q_Dxk_^9L4z_ zz17g0M6{rM7*cr}{#S(R`}CYZs=z%^>B8193m?#%?keLK_$9slivCoR{F?sgSB&d& z++T?!m%iHa5$J893BxEF!ld#`m=yGF3d$d+aT~u#Y23l|0`5xVQ>0tgHjLRrs32j5 zq6DQALHUC;=J0E1{$(so<3ZA@X$vhL#*!h_(n9SBmbZoK)uNfhSeeEu7G1!aG}bW} z#B)KZqG(T1X&M`D0<_Rt3%OT<%GDf1i!jRoP#^@bne;XXrB8|`lZ(mhg5E=0MI`Io zNVW^b2rWcdv6K*9FcOH+OvMvgB(sf-al0_K$k<}zn8(=48dLHz`?5mu9CCsJ>>9#u zGTlw4yiZ(W;BJ(9BS)mxEAklEUCvOO+rZ&0POTRT1`+7|`d09g#Mg;e1|8}OhF z{9m+_WP4KBZuOv@924y;0_`+eoE8=*JZPsqXs1V`ouRUQV+d!-_N=hImO=YAOY+fP zbj$V~fi_6%gTmt99<)IZ+TdukOeW8f?K!rUOFVl!mygCxa=tA@?R;Sf7s=wHu-I6% ziBmt!f=usTW?qc!517lsP85CmsvGo(2>J@GU&)ON@xtY?+y=xbUlpp?NcCE7IEW9* z13~#%(cJ7X@##^U#*bTxGQZiwM?Adc;dguZJ`aD?!}ojm;~sv%!=Lov12}(f75JeC>5ecx}82bO0Za}rcaDU zERkAJD;ZcSB~d5wPrqleTzY}NA%;;ey-6Pq?_s6%XEaFvLL=RItK<;E@=UCjtI#Ab z!Wy{=Yh?ou%L%NL520D^$9nk;Hpqi$kzYfr{603y*U={b9h>AE*sK&{i!u$5DCO9y zEXFpa5!;n5Fq95Nl>LY*Pa>wAf~mZW9m-|2D{rGi`4E=!C+t-IiCxNn5m(2fQ=Nf? zS`J%Xh%WUZ>{grMsN0ZKcOj+rqFX(J9`!hS)#vF{d=Y!qi`b{Wf&J>cIG}!nN7cXJ zG4&rfsQw3se11Icn}ox@yKuxe8-2cNJmFhHKZJ9)pRab*?N@-`;G@iiT1`}3s3Xv5 m-hbYjD Date: Mon, 3 May 2021 21:06:12 +0200 Subject: [PATCH 03/17] Pagination --- .../CircleButton$1.class | Bin 0 -> 1195 bytes .../spiral_desktop_version/CircleButton.class | Bin 0 -> 2704 bytes .../spiral_desktop_version/Pagination$1.class | Bin 586 -> 586 bytes .../spiral_desktop_version/Pagination$2.class | Bin 506 -> 506 bytes .../Pagination$ButtonActionListener.class | Bin 1643 -> 1643 bytes .../Pagination$RoundedBorder.class | Bin 1083 -> 0 bytes .../spiral_desktop_version/Pagination.class | Bin 2908 -> 2624 bytes src/CircleButton.java | 107 ++++++++++++++++++ src/Pagination.java | 42 +------ 9 files changed, 111 insertions(+), 38 deletions(-) create mode 100644 out/production/spiral_desktop_version/CircleButton$1.class create mode 100644 out/production/spiral_desktop_version/CircleButton.class delete mode 100644 out/production/spiral_desktop_version/Pagination$RoundedBorder.class create mode 100644 src/CircleButton.java diff --git a/out/production/spiral_desktop_version/CircleButton$1.class b/out/production/spiral_desktop_version/CircleButton$1.class new file mode 100644 index 0000000000000000000000000000000000000000..55c72248e19562c9493385e992e6481d49620392 GIT binary patch literal 1195 zcmaKq?M@R>5Qg8=F0@@1SgJq~sZgr4MJf2LH6%hXHfhm_A;`a_J%N?7OLkAIx8h}( z2qymU0=y{W%we-GiMYwx^ELB6GjrzG?;k$_H1Ir!6w(lry1~Lp~S3vBu)`Eo+XOaozDLE>3C|kJA4ms`c zX27{jR4x~yx=R6V`duk7-f}&;-9I^y!F%VRM<@A~-*I}oPT=xBIyAVX0`?`H@>)Zn zSZQ5ZjRu2KCnP%iA0vU$9p!Y6+s$9skcT?}${y=Yb{C?1p zuUrm&B3aNC4vP}p@;W^~biKp2R7ZZ7AODHKWE6JK@eb=dDxiBEZFXCR>a`!zOIl6O zlfh=sp^}G~r>4tN{|VdXwxiV$jS<{|z!I(2={`lXSzA7XsC`G~EA3LK(0`b0Kz&f9 z|I~#QYFMTn*=sd=QF`aQk=8NN+NxCh2C;mOQ5x6IG4%y`J~7U4ljn2HGb61Tc^I^w zL7sYxx(f@KOYllDuY`M8Ax>R;iUnG(#^4rVISHHP)0Z(9sf-a0B%YY-VaEtN zLI|wI%6pM=AyQtvl5mm85)mq}Nq?Gj{}!$gQwlNVeoWb?B5?dgR_Bo@-WfDADq1p| r6?&99m1{M@DaM>)#4+%Ilv8+!M>HE0*JC`@C)0RFvq_a?Hhq5pf8^Hl literal 0 HcmV?d00001 diff --git a/out/production/spiral_desktop_version/CircleButton.class b/out/production/spiral_desktop_version/CircleButton.class new file mode 100644 index 0000000000000000000000000000000000000000..1e818619461e7bc4c7b821848c63e486cc9d4245 GIT binary patch literal 2704 zcmZ`)X?GM=5WSsQIvHL<5=fAcuqcwrBof*807(c5Oco6Uhzeh zL)-<$1;6mc59-l@Bj+fe{Y~oeR(EG+5S%&P{kp5(t^2C(tM}(Wzx@ti7ru|70wEn? zg$SY=mYg+ajrq>}oRyvIJk&kox=vO@bhnkY+%63b@uWC(+6K*|ZjN5N+QzC-i7Fj2 zg+)*rRF9QQ+2+FJs*E#}H-~4~m5x`4Pj)y8gt+6qbvvmbPvumo{^OQO61mHRXiXZit}? zEwbK~8tUT7aw8Wbp;jxb!Q+H8(&<5ApS1F>nUxi+2{K^Jxt->$nRPoKa0md_Dm;mG z8X6Y>1|8ROvL%?-N5eem7J$VS+K|vtIcd7bth76&Arx;L5TYFlPl>6Drhe0!oN{C6 z#M3%9C~U+gF1=K)LBpGwu~^VZd|<#w*rKo%+cYd9!oi#|J!PfxQs*|m(6Y>h&$}ez z4uzfAr9r2EpObYZg=N0-iGF*~rDLzcKJ2H1$DtgFyn^Y2CPgF>%M;>({0B5}^f>e= z^x}Ze;fOg;4oep}lnXP4gXq^Wpl}F>=~JX3_{G4B@}7)?#6D8sO!Yx@NM?r=h9#|` zj4`j{84dMC&|WKJX7em^3?mp7c^wJz>`7`&;h0oP^4x0~8Phd$F`U4-j^`Af#|un) z5o^+PGMyt1<-M_&bx%`$MmELGpvQapYwNATDNN`v6iy?xP-V$*k7GMjY524)d#AQk zM9<(=##A_iNy2ik1nx`9)aX0PralEr;jG|S*&;3K;DVIaR>*)Nsyt)a_VBD>3$FqG z{7KUa=Vem3J9+egpyU-?`4H(&?(aD)2(t=v9zr^2%n5?HT~N5_xy?;kt|@LWDZGqV zi0k&-xSsUtAMS`6s=dxu+U_l-LXPw13_75jtaR->|( zJi^9f!QW_pn_{g-ota$9?6V~Cb>&TXz3cJ@J!=`3CO^#CWeIs^X}cM^_z|@|@yk76o3Q~~@FqQ1`w{ULuJDbq z@iyKepH?z`7w>tT*$M)Necn4zlPI8-SNmP8-@W1o&Z~e#m-89e&e%IV^hWQ!CO}tw zdmmScrQriy3ospoJq~Te+stcw0lSm6v33r-3+QVvAbA&q6MODq(jysrFNTnWYI6FV1L3BX-w{E6rCpY>n9R zXy@ZDj<;O7eiM55Ho_rUYN%|f2cVKmwT{~0F>NZ&?`qbZIgKcv}`_Ib9Xo0|(b zM{nKtc8cD)|MQ+HVb4G0%`&_wF{B(j!^^`QN;$ShmWNr9tx>N&K8J=##13dQM0IpGV3tPQt_lY#5kDioMiiUe8b_ zlg!Q(Zo$GIZ17U!em_UWT;Io6xXBDgaL*H11tZ-Fa(#_b7X^fgvW{o#ReIf`8ouTz k>QzD^`Zt<1ExL|>vi^nl$l%3bHu*Pe0RZxt B2{Qly diff --git a/out/production/spiral_desktop_version/Pagination$RoundedBorder.class b/out/production/spiral_desktop_version/Pagination$RoundedBorder.class deleted file mode 100644 index 747dd7ceb7e31e80ac8ab16a5da346c4cccf908e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1083 zcmZ`&+iuf95IvhZapR`A%!s$Mh1Pae&Te&h+p1X16^(KW#ex3)$>aGuQB1 zvU@CjrSC(f5q1>At~CBvX^m8ECyax{r3q}78l&8Iz0;oOI&N4iC(787SkV$#Nc4%b zz?2GN*2A8B(`SNwfL8(&J*nJbJb~>?BPE0vovXziX27<<{3Ui;&bZzQqzB3lJAA>8 zquL!#fc4z#`z>cr=`Kwtjo8*T3XC5(LAdV)p^1BRPV54?y6ZarZdV3@qaW|D8NpQ! zQwp3Su9O}qj-WFoKPcTB#le1>VfPWE&ppJVzX(Q%v%alq0a{KXM}5!Z2pc7YAt z9P)2PccP6C|8T5D968!GcbucZEo=^v?_u%}6t>p$Mm}xW`HW%f-1Pd2xukae)q)i* zF}|*QKgNynDh%@?7fL8c-UU?HVcoL=Zd1~oE?|pNI+E^C%Fw>eTMAX&jm{n1=V>v+ JaqQp$tltYO&^iDB diff --git a/out/production/spiral_desktop_version/Pagination.class b/out/production/spiral_desktop_version/Pagination.class index 5eab5f22a018463d3223e9dc63202fb33c521b0b..1a74148a59007e9288a3245dae588b9a571ab316 100644 GIT binary patch literal 2624 zcmZuz*;89p82=rTkPvR61X`L}TiRj`VJk~F=mw!6B`lV$Y3p(!7kb-pFTJ^eT6e2h zw_5joUuS%>4?)e0Z_YTr`3LyslP^9x2%L}&x4@w0Bm((ToYHM;?H|ASUkEw>15GXyW8@hd5z!hqk^23KRFZ>G1B)?GLay5Nl~xhE~&hk%Dtu)*Q_yB=b5+{cMDWH;i=1Z>!3k}q#ygx zAcGGJcteByWlc3HXhw@b8I^`ri=fbbF1h?^=H|tIBDHR{pW*q?F5v00bT#2eD>|k5 z0|K=hV6*1#kb=WF!Vu_AnqcV)oXH)!Dr1F@dT~s_ahwpSSa%vR6Q)HRW)dlliDye7 zqjWxWOH_Ik^diDY9S4>+Z<#5B*i{#}$!g2|6`WGgFHx*?^k-Aa9Ej4^DIW$&g#ok9 zHtWa{tfCRp0R#GTpE-a`<+=r23buwYBc!#7oQ@qpZ!vy&_Y+9P*gOv(m z$ct%#U3rq$XDO3)7uA!bhGzLOg_s2W9ODl~^V-Bv=5|5BeYjtsN{z>hPYUcQz(ZRi z(OQc&91}rYkbR>nn87T$N;?AKf|E>q(KL9vyP>ccYnxuMOvSy~Z>bBK5A%#FAMb>g zwAn#^#AP4EaY?~tu!FY|;XZ9nO(pC|!c1zTi<*_|S$D`Gun#U7p{Za|R#CEebWy#M z(xe$nK@y}`1$T4pB(H`%L$lN|Z1#<2IUHYNaq@B1v)(D`A&!R>T*JdzET?rNZZ5A? zVIwSyH5@GCcvQh-^6qgjsAz0@q!mGDtHMu1-2L7G~@C@oV4|XZtGf7pj7m>clyYy-lfk~2i@#Nb(rA?H)>xp;wRz_%I?^~8^xQ^Q8YiWtK53~>TIzEw z^*J^M8Uy#Fak?omOxYY5r3|_Q_sYQ&7*AueF@vcX(?6TW`KE$-bHO~wsMnQb5NnGE z!i{M>I2~?sWV0iK?(E=^LmtnY*h}p8z|XM;_1MXmw1E#~C*=`@`Rp_zf+h^|Z5%}l zCi%K)*pDT&v4uNv9S3j&2ib6kScSuQ2S@P{j^PWQ{01j*8z=ESE&PN&{EAcfjc?2! z7{FgRjejvDT!@M?42#WtFly;R*7bO{cF5M%FDmdl-e7%egd1;iR>CO%##@}Z80DXM zn=?0K`JLY1C5`-eZ;c83=5i=@GJ|+5Ft>_}L*ddi^bCBlRV+js35y}&x)RPH#jWKu zu99+(gsa4@D*T+r<6){?&m$J5ePEn&0+pCXEzV*GVkGkg;uI$~8oDsY+~=Kaw$i_! z2)&OFc&?Tae@LWwK@+EsIZDDGp^oHrc?K(t;l_7(F7HtO!2=RBa;1Rw<@f}ja^Ho| iC`<4;AqV@(#g}k}SM`@%ZFg2ad`06auH|nfJNysnKx&x) literal 2908 zcmZuzYj+dZ72Vg8JYqbFZGi!i)B!>gTYeEuZYnG<27O1vO$saP3=Woj-*w_>R#12AFwiP~6AEn|Bcj-s zH|clM_vpUAb1IHiRNNBBYEE0@Sj%Z!9P1cKZ*Q-hztzCc(5|qmX!&W^@h!*S<5}jA zozGi2g=oidiP*q;0~(S^-o{%(aeH@Ntc zyR8PcVLL;hJ2AoZ)HstJx>|vs;};rs8rX$?g`1b1rro^j5rXM_$>POBd?m`@L%*PM zkAZt}A0rJMc-D;PmK?&ivc^rQ9o~PBfk8pBInd9RiWLy!*sEadch~#wdQ!kzALMq( zz<$ZCV7@0S3`x7Qv!;`aW4KXR;AyjkX)gs z5xYn(Se}k?ObXP88Fj}Z{kNm^g0WK_QBe zVo>m7WDhB0O~ zg!m|=Y7k*A3$8;{`a5f>wX~_B@Y8NGeu>9f2i&bR1nFYcLJKRv z@mcCXu-^$ z6Pqs>coDw|YkJatgn`AF2qB}3-x~Ox+(>8aQ+Cmw&RZIOUmx8T9rF_1E4ZrRRRgc# zb%k}cxu2BYeZ;r(wr^WSg(lm%;GVNaNB}}#*Ka0Dj$_gbgJp#2WwJX3-?voet(AEj>1Fv@ zt}dP`xHPKR9%7e5S(`lT&h0-UJ70{E&MH6k|Ix-P)y zD9)!>eo^ppXyo_?S6ewN&MQ(2P^mJsZ@6f{n;b<2(D4>WBUHlMc!w)Sv}B-R92!kS z?OlYCN!+}^)*nbKDUAkF8>O*8T0?19G!T;_#=0V9+|n&Wj||CZFvgb0+mf+GY|KRX zTfn9=?viy^CeagVX zO8l>f&z9JQ*LhB8JFo~hlQ_SC;=xp78U7;TnFY*^bP>Lb0_&rxMO^0Augdr}Y5Yv8 zRn52JpJhCsqRLBEWK*;c%yGPkW;}{Dcnr6)iEqFY=q6^H@jU<9yg)-VfSvIh7L5XV1omLl3o9jTS3Ma(mXm#^bW)uH_51-qz@t2L$6gg@d>+>hYT o92@X8 Date: Tue, 4 May 2021 07:14:23 +0200 Subject: [PATCH 04/17] Working on pagination --- .../spiral_desktop_version/CircleButton.class | Bin 2704 -> 2704 bytes src/CircleButton.java | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/out/production/spiral_desktop_version/CircleButton.class b/out/production/spiral_desktop_version/CircleButton.class index 1e818619461e7bc4c7b821848c63e486cc9d4245..674fbf8c6f1a7d8ef92167a612a5f2bc5e7cf470 100644 GIT binary patch delta 109 zcmbOrIzeO6De_3J|TtM1vw?finO*c@Xlo5)!xKVx{V=aIRh7vRk1mb HQ;87(oah?> delta 111 zcmbOrIze Date: Tue, 4 May 2021 10:47:47 +0200 Subject: [PATCH 05/17] pagination --- .../spiral_desktop_version/Pagination.class | Bin 2624 -> 2625 bytes src/Pagination.java | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/out/production/spiral_desktop_version/Pagination.class b/out/production/spiral_desktop_version/Pagination.class index 1a74148a59007e9288a3245dae588b9a571ab316..a854d3a8a94d5a6bec3271eb481c9713ca4a7415 100644 GIT binary patch delta 188 zcmW-bI}3qv9EG2s+Zzk&RT!+2g>oC*%B@^Kfz?+qS{N*f*DaIDWKcE}ix1!f*i051 zCGyX9&Z*~|bJS1zE}+>zXxKn}Mo?>;Tux)4J$oG@bcxaJ#DRQC2l`?lKyr}Y}CKl@ApdoIW;-$qH6#1WIf}xy4oT_<-po^6`Ge0H* VyjiHwOo#_dr7Y^qZSS#%yssUj8yZ$VdKy@1yzF!~Bc4T5Yj=y=&pCX+?hWYgdS z_y9JO#W=7i_{VlQ@SX1*t%J3-4fBD47bNUNjE-o|$Z!W;;`B(+C&`c$-=rCn!6C~p zIacIZ^T~z+e-zpC#fcJU%3P>$ql!z7Cw0+ih)Gidv?N5E2`KVyWU3ayCw^wk5iHSJ ZF#o`V%|A<3YDBs7qmr)9Tz5e;CNHY;C58Y1 diff --git a/src/Pagination.java b/src/Pagination.java index fa05134..80b8221 100644 --- a/src/Pagination.java +++ b/src/Pagination.java @@ -44,7 +44,7 @@ public void paginationBtn(){ page4.setContentAreaFilled(false); etc.setContentAreaFilled(false); etc.setBorderPainted(false);//Removing border - etc.setMargin(new Insets(0,0,0,0));//Set margin + etc.setMargin(new Insets(0,0,15,0));//Set margin etc.setFont(new Font("Arial", Font.PLAIN, 30));//Set font size etc.setForeground(Color.blue); From eaf1336ef50a9528c8d2c7bcfa04592c9ac6044d Mon Sep 17 00:00:00 2001 From: Cyebukayire Date: Fri, 7 May 2021 09:33:03 +0200 Subject: [PATCH 06/17] Working on table pagination --- .../Home/Loader$1.class | Bin 587 -> 587 bytes .../Home/Loader$2.class | Bin 974 -> 974 bytes .../Home/Loader$3.class | Bin 536 -> 536 bytes .../spiral_desktop_version/Home/Loader.class | Bin 2535 -> 2594 bytes .../Home/WaitLayerUI.class | Bin 3782 -> 3782 bytes .../spiral_desktop_version/Pagination$1.class | Bin 586 -> 586 bytes .../spiral_desktop_version/Pagination$2.class | Bin 506 -> 506 bytes .../Pagination$ButtonActionListener.class | Bin 1643 -> 1643 bytes .../spiral_desktop_version/Pagination.class | Bin 2625 -> 2625 bytes .../pages/RegisterLocationLevel.class | Bin 3804 -> 3804 bytes src/Pagination.java | 2 +- 11 files changed, 1 insertion(+), 1 deletion(-) diff --git a/out/production/spiral_desktop_version/Home/Loader$1.class b/out/production/spiral_desktop_version/Home/Loader$1.class index 92712a0b8e7a5626eccb993a0e0886bfef3a0158..ce98d10ba5a0c3e24013f17165833d758e817617 100644 GIT binary patch delta 13 VcmX@ja++ns4@SlblYcS>0RSn*1-JkJ delta 13 UcmX@ja++ns4@O3v$v+u`04LD}Q~&?~ diff --git a/out/production/spiral_desktop_version/Home/Loader$2.class b/out/production/spiral_desktop_version/Home/Loader$2.class index 904ef69bfb6fe0661b23e1c26c4dcc890c682263..1b94c53b01d8eab9fe07c1c1eb22dde936ca9ad4 100644 GIT binary patch delta 27 icmX@devW;EA~U1*WF_WkPCW)T27LxW27}3M%pL$;=mpOJ delta 27 icmX@devW;EA~U1TWF_WkPJIS81_K5`2E)m1%pL$<76sD) diff --git a/out/production/spiral_desktop_version/Home/Loader$3.class b/out/production/spiral_desktop_version/Home/Loader$3.class index c0853eec9cf7d3900e7b3ece32200e2f42d914da..1595ae5cde4511dbd4e0e4b4255f52064d5fc1e4 100644 GIT binary patch delta 23 ecmbQiGJ|D97bBy~R(A#t29L=X7(D<`{03kE delta 23 ecmbQiGJ|D97bBzVRu2Xa2G7YC7(D<{83tnj diff --git a/out/production/spiral_desktop_version/Home/Loader.class b/out/production/spiral_desktop_version/Home/Loader.class index d231b0a7d041352ee17bf6dd4cb848d7e54005c5..4a2ef8302541a38686158daba20c7aee8ff22444 100644 GIT binary patch delta 1261 zcmZvb+jCP@6vlriC%48Uv}p$>txOBO&^BqKEiI)L1X__oXysxt7STg#vrzB}WSfn${VKYlKzM`S`-3;Nu4p<|!)^`xjz#!_IeuT~w9R>gB@Sw=m;A@G=|bAfj9D3TNdccVc#c_( zklY=y@|IaxP{$&o_`kRNLoB0*c#)R^yln6auR1Hf-CFv_P2aCtyHrPp7{b)csv|wY zFY9Zdt%&EB(_fsmKu0mWWsNqM?lQf}@V$D8zC*Dx1Ih4qy*5%}hs*u3>+E(JtD1*m zewY1a63OUwCQ2Nc=>Cp%a`uR_JuZ(PSB}exXe|7Mi>Y>Amz1Dg=E}?`yQ8rZxnXY^ zJK0vZF(2`kC=B}|zPhcoE{hSL?($5;=kolw74a)hG1w#{9$^QKjMF5|-z1H0<^-FW zV+(m&rKs&(po5F@_g$ik_la_ae!gKFC7JFY802SRcwIPmRSUoyyeYdzuJIOcOL^4o zCEmd!tkbOWu9WVI@H@O$#4A({Li>T#@yupOx(JDNuohnY}bFm)2 a;7hSV*)PjjHi&MOnJ!-SoBziySMA>e92D6A delta 1138 zcmZ9K*;5=<7{z~gdbV_$NPr{`s9_6XnPfC1A%NK+5J)Bvqksc$O=w`qFhhn(2u6cj z7UPPoM&m;1i{*n4678`vRhIEhU-D%62l(K#uRd6QcPOpW?y5e0?|07m&RssQ_`Tfx z`LEmG1D&iaoAHKwkHzgpCtE#|%uQDxPA6yWoHJ2( zM}3HG77c7yY?!gn+cA3~7wgWXGFgScD?ZetD2@NO&}ni%O%~0xxOY`!WQU?mGcLsD z7n13zm}D4tQek3lsjq8&l!tWRU5d@px7?lc1zL71O8)ii&7^Z-_9{ZdPIkgh+a|5- z)0%e07OmOP-`_NB5~b7PVfMRsd^PQL9JDy3V+R(dlQ~D1yDYkC5$|~?*PF>YQ`yY9 z^n|W7=})i4QTp7SMzuQT4jPeQ+~NcSZrZ2`_j6Kre8jzB>@t6>QF}4PWEk=0U z{nKb`7_}H9D7!LepFR`jNky>RN#~rb-j1g=?-@mtd()_N&-%-^ja!^%LSagn;pBXB zJmrYCaa6BllBp2W7D@L@|JJHAlDIE3>%`(2d&0@q?=qQTR>w)Zzxns8IkzUTIh-M@ zr{>**fyS{6=Pb_Cr?^M#`_su>(oP+5Qud-rh6@&p|Fk~k%sF;$UQbKU=l<8K)#M_E z$r3Mwc+uh|UUq*B98#0FjNnho(7SUtw5jAWsH+6!g*)yap@yYZYCReYL=$B@jXV#Y zh!$u~ll_`9{D|NVS6|QW)jUU(LAXRe}PP5vuga*BFSyQYC}CXZby54ob&NN8OS-Q}kGEM~!Y@`8yd%Z|-W8c8 zf;HNELR-iC+>jaBU)se$39c`2F_Gu_@3^E_;^T^ZO+n}pJXy@5ZG_4Pd?*;^res^Q zsVg#zHj|0LJg?m1xb{&+AI;J_gO3D#e9R|By&>0NMuL7Sqe`h(2@ diff --git a/out/production/spiral_desktop_version/Home/WaitLayerUI.class b/out/production/spiral_desktop_version/Home/WaitLayerUI.class index cceb36b66538a4e9df5db5083a3d2acd09d9ab2c..5aa6f2be8b80a1ba239d7cf9242948c28d1c4f8e 100644 GIT binary patch delta 241 zcmWO1$t%PG0LAgolnFCtvLs7sBn}Qk3jY9yIVnm?O%Arm&e$(P~~knLOuWE)=^|=1Qe&)ovu+YIc|Xi1mi=gBuUo S+ITAeSwVnO=q;Oxcm4z6>o(;8 delta 241 zcmWO1%PNEc0LAg2GGWF{F3C_Lv9Lf2FJKn4Qk0Uy#x3Q3zb(i@Zs9A+hTJ8R$*CZ`LgcYhM&;;wdK!t<|UTOY21}(Pnmty4m3E_ z6vAzebvTh0=ys~#Svcf8sE%*eUxdV^d{^SGmAFyvR;4>N?lp$BtsaBVcwgixyzv~= QCDH|N3S|^|4;B(#|NE#n8~^|S diff --git a/out/production/spiral_desktop_version/Pagination$1.class b/out/production/spiral_desktop_version/Pagination$1.class index f940c7828a65aad4d9cae28832f167092d36f971..8cd3d76283f2484e33c4b3bdaa2fe9527a03066e 100644 GIT binary patch delta 23 fcmX@ba*Acc0Y=8y$p;y2SQ8jn7!oHlF?j$0U_%C` delta 23 fcmX@ba*Acc0Y=7{$p;y2SmPO37!oEkF?j$0U?v8m diff --git a/out/production/spiral_desktop_version/Pagination$2.class b/out/production/spiral_desktop_version/Pagination$2.class index 924792ab55132cb90f8f8b76171dc72a93c51076..01899f1392c581b2d2a56e98618b5cd21c97d921 100644 GIT binary patch delta 23 ecmeyx{EK-*H6vs0Q1}_Gg$-h|(0Ach7y#N3J diff --git a/out/production/spiral_desktop_version/Pagination.class b/out/production/spiral_desktop_version/Pagination.class index a854d3a8a94d5a6bec3271eb481c9713ca4a7415..9120253fcb106e023a0a001451c8153e2ac5f4ab 100644 GIT binary patch delta 202 zcmW;GsY*m~07miO1%;VgWZ;4Z5kzOieZd{vaM#gmaKI6aF2!OoPO(@l*JLsc2nNAs zo8kkQOum2*FedSj{X5?|jiiyhq`6v;Sg%A;my&*cCJmS~Xwi^W!?uk`jj9-PX56(2 zHB)X(yEWs^touMbSnwFAx+Tw+y;|{R&AW9UHhkIiZOe~czsgaIy(o_DM+Irr;UN3W oJrxf_PDPs|?W#H*>vj@CPXFce&cpddR?nAPFT?UGYvy;M1& delta 202 zcmWO0D@#Lh0EY430SDVDA{@{l11}T2D>!ec6TIP^o}i+F(Mz$Ij4Kw4<(N#SfnX49 zYb$;LlWAYT51>i*FK>F@_kCJPD|t`z^+B;AiD5-0qejeyTry_OxD69_O-fBUHtouc zJG1J6x>xpK-lGLi7Cl?>VpStF-&A~9*9;4vHhtOBw(ZA`KUM$sqAs;4j_pT14x&D3 q_MLw%9R{5v-A?p6)$h!J^B{2%jxQ|-fr{&_QK;o^0(qPL7OEW!jU~MR diff --git a/out/production/spiral_desktop_version/pages/RegisterLocationLevel.class b/out/production/spiral_desktop_version/pages/RegisterLocationLevel.class index 94a489656d2ae97e148a7087f3413fcd7807cdb7..c73b9c24d636885948510410c1dcf7a1cd40af7a 100644 GIT binary patch delta 164 zcmV~$t7?J)9LC|_`v<}DeHS3eZb1;|K+&P18y@h0N7x+m#6XjEVDSPbCack8TGh1V znoTdkBACSB^Bnz0|2pVQLY#TzN?0DA~s&lIzB|USeSIU}F(VRdF zs#;Rhics&=^+`i(n))Krj(hES&^Ij|XzQ0p{n0U(Cp)EUMfw&nu!x~`JVw?hwwSRc Qyrdg<>r6NyN#DHiA9VI4j{pDw diff --git a/src/Pagination.java b/src/Pagination.java index 80b8221..14ae61c 100644 --- a/src/Pagination.java +++ b/src/Pagination.java @@ -15,7 +15,7 @@ public void actionPerformed (ActionEvent e){ if(actionCommand.equals("Go to page 1")){ }else if(actionCommand.equals("Go to page 2")){ - + }else if(actionCommand.equals("Go to page 3")){ }else if(actionCommand.equals("Go to page 4")){ From 25dd8c5b4b2c83ec4bc8111b2cf7d041df89e89f Mon Sep 17 00:00:00 2001 From: Cyebukayire Date: Fri, 7 May 2021 09:53:44 +0200 Subject: [PATCH 07/17] Working on table pagination --- src/Pagination.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Pagination.java b/src/Pagination.java index 14ae61c..80b8221 100644 --- a/src/Pagination.java +++ b/src/Pagination.java @@ -15,7 +15,7 @@ public void actionPerformed (ActionEvent e){ if(actionCommand.equals("Go to page 1")){ }else if(actionCommand.equals("Go to page 2")){ - + }else if(actionCommand.equals("Go to page 3")){ }else if(actionCommand.equals("Go to page 4")){ From 844b524c9793a9fdb21f78c206acd16995f03eb9 Mon Sep 17 00:00:00 2001 From: Cyebukayire Date: Sat, 29 May 2021 07:45:16 +0200 Subject: [PATCH 08/17] pagination --- src/CircleButton.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CircleButton.java b/src/CircleButton.java index 117ad36..7675581 100644 --- a/src/CircleButton.java +++ b/src/CircleButton.java @@ -7,7 +7,7 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -public class CircleButton extends JButton{ +public class CircleButton extends JButton { private boolean mouseOver = false; private boolean mousePressed = false; From 03240b77bd0e461a7c5bed0103f6af66c88091f8 Mon Sep 17 00:00:00 2001 From: Cyebukayire Date: Sat, 29 May 2021 08:22:17 +0200 Subject: [PATCH 09/17] Table Pagination --- src/Employee.java | 38 ++++++++ src/ObjectTableModel.java | 41 ++++++++ src/PaginatedTableDecorator.java | 158 +++++++++++++++++++++++++++++++ src/PaginationDataProvider.java | 6 ++ src/PaginationExampleMain.java | 96 +++++++++++++++++++ 5 files changed, 339 insertions(+) create mode 100644 src/Employee.java create mode 100644 src/ObjectTableModel.java create mode 100644 src/PaginatedTableDecorator.java create mode 100644 src/PaginationDataProvider.java create mode 100644 src/PaginationExampleMain.java diff --git a/src/Employee.java b/src/Employee.java new file mode 100644 index 0000000..ac3722c --- /dev/null +++ b/src/Employee.java @@ -0,0 +1,38 @@ +public class Employee { + private long id; + private String name; + private String phoneNumber; + private String address; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } +} \ No newline at end of file diff --git a/src/ObjectTableModel.java b/src/ObjectTableModel.java new file mode 100644 index 0000000..dd48a23 --- /dev/null +++ b/src/ObjectTableModel.java @@ -0,0 +1,41 @@ + +import javax.swing.table.AbstractTableModel; +import java.util.ArrayList; +import java.util.List; + +public abstract class ObjectTableModel extends AbstractTableModel { + private List objectRows = new ArrayList<>(); + + public List getObjectRows() { + return objectRows; + } + + public void setObjectRows(List objectRows) { + this.objectRows = objectRows; + } + + @Override + public int getRowCount() { + return objectRows.size(); + } + + @Override + public Object getValueAt(int rowIndex, int columnIndex) { + T t = objectRows.get(rowIndex); + return getValueAt(t, columnIndex); + } + + @Override + public Class getColumnClass(int columnIndex) { + if (objectRows.isEmpty()) { + return Object.class; + } + Object valueAt = getValueAt(0, columnIndex); + return valueAt != null ? valueAt.getClass() : Object.class; + } + + public abstract Object getValueAt(T t, int columnIndex); + + @Override + public abstract String getColumnName(int column); +} \ No newline at end of file diff --git a/src/PaginatedTableDecorator.java b/src/PaginatedTableDecorator.java new file mode 100644 index 0000000..c236f2f --- /dev/null +++ b/src/PaginatedTableDecorator.java @@ -0,0 +1,158 @@ +import javax.swing.*; +import javax.swing.event.TableModelEvent; +import javax.swing.table.TableModel; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.util.Arrays; +import java.util.List; + +public class PaginatedTableDecorator { + private JTable table; + private PaginationDataProvider dataProvider; + private int[] pageSizes; + private JPanel contentPanel; + private int currentPageSize; + private int currentPage = 1; + private JPanel pageLinkPanel; + private ObjectTableModel objectTableModel; + private static final int MaxPagingCompToShow = 9; + private static final String Ellipses = "..."; + + private PaginatedTableDecorator(JTable table, PaginationDataProvider dataProvider, + int[] pageSizes, int defaultPageSize) { + this.table = table; + this.dataProvider = dataProvider; + this.pageSizes = pageSizes; + this.currentPageSize = defaultPageSize; + } + + public static PaginatedTableDecorator decorate(JTable table, + PaginationDataProvider dataProvider, + int[] pageSizes, int defaultPageSize) { + PaginatedTableDecorator decorator = new PaginatedTableDecorator<>(table, dataProvider, + pageSizes, defaultPageSize); + decorator.init(); + return decorator; + } + + public JPanel getContentPanel() { + return contentPanel; + } + + private void init() { + initDataModel(); + initPaginationComponents(); + initListeners(); + paginate(); + } + + private void initListeners() { + objectTableModel.addTableModelListener(this::refreshPageButtonPanel); + } + + private void initDataModel() { + TableModel model = table.getModel(); + if (!(model instanceof ObjectTableModel)) { + throw new IllegalArgumentException("TableModel must be a subclass of ObjectTableModel"); + } + objectTableModel = (ObjectTableModel) model; + } + + private void initPaginationComponents() { + contentPanel = new JPanel(new BorderLayout()); + JPanel paginationPanel = createPaginationPanel(); + contentPanel.add(paginationPanel, BorderLayout.NORTH); + contentPanel.add(new JScrollPane(table)); + } + + private JPanel createPaginationPanel() { + JPanel paginationPanel = new JPanel(); + pageLinkPanel = new JPanel(new GridLayout(1, MaxPagingCompToShow, 3, 3)); + paginationPanel.add(pageLinkPanel); + + if (pageSizes != null) { + JComboBox pageComboBox = new JComboBox<>( + Arrays.stream(pageSizes).boxed() + .toArray(Integer[]::new)); + pageComboBox.addActionListener((ActionEvent e) -> { + //to preserve current rows position + int currentPageStartRow = ((currentPage - 1) * currentPageSize) + 1; + currentPageSize = (Integer) pageComboBox.getSelectedItem(); + currentPage = ((currentPageStartRow - 1) / currentPageSize) + 1; + paginate(); + }); + paginationPanel.add(Box.createHorizontalStrut(15)); + paginationPanel.add(new JLabel("Page Size: ")); + paginationPanel.add(pageComboBox); + pageComboBox.setSelectedItem(currentPageSize); + } + return paginationPanel; + } + + private void refreshPageButtonPanel(TableModelEvent tme) { + pageLinkPanel.removeAll(); + int totalRows = dataProvider.getTotalRowCount(); + int pages = (int) Math.ceil((double) totalRows / currentPageSize); + ButtonGroup buttonGroup = new ButtonGroup(); + if (pages > MaxPagingCompToShow) { + addPageButton(pageLinkPanel, buttonGroup, 1); + if (currentPage > (pages - ((MaxPagingCompToShow + 1) / 2))) { + //case: 1 ... n->lastPage + pageLinkPanel.add(createEllipsesComponent()); + addPageButtonRange(pageLinkPanel, buttonGroup, pages - MaxPagingCompToShow + 3, pages); + } else if (currentPage <= (MaxPagingCompToShow + 1) / 2) { + //case: 1->n ...lastPage + addPageButtonRange(pageLinkPanel, buttonGroup, 2, MaxPagingCompToShow - 2); + pageLinkPanel.add(createEllipsesComponent()); + addPageButton(pageLinkPanel, buttonGroup, pages); + } else {//case: 1 .. x->n .. lastPage + pageLinkPanel.add(createEllipsesComponent());//first ellipses + //currentPage is approx mid point among total max-4 center links + int start = currentPage - (MaxPagingCompToShow - 4) / 2; + int end = start + MaxPagingCompToShow - 5; + addPageButtonRange(pageLinkPanel, buttonGroup, start, end); + pageLinkPanel.add(createEllipsesComponent());//last ellipsis + addPageButton(pageLinkPanel, buttonGroup, pages);//last page link + } + } else { + addPageButtonRange(pageLinkPanel, buttonGroup, 1, pages); + } + pageLinkPanel.getParent().validate(); + pageLinkPanel.getParent().repaint(); + } + + private Component createEllipsesComponent() { + return new JLabel(Ellipses, SwingConstants.CENTER); + } + + private void addPageButtonRange(JPanel parentPanel, ButtonGroup buttonGroup, int start, int end) { + for (; start <= end; start++) { + addPageButton(parentPanel, buttonGroup, start); + } + } + + private void addPageButton(JPanel parentPanel, ButtonGroup buttonGroup, int pageNumber) { + JToggleButton toggleButton = new JToggleButton(Integer.toString(pageNumber)); + toggleButton.setMargin(new Insets(1, 3, 1, 3)); + buttonGroup.add(toggleButton); + parentPanel.add(toggleButton); + if (pageNumber == currentPage) { + toggleButton.setSelected(true); + } + toggleButton.addActionListener(ae -> { + currentPage = Integer.parseInt(ae.getActionCommand()); + paginate(); + }); + } + + private void paginate() { + int startIndex = (currentPage - 1) * currentPageSize; + int endIndex = startIndex + currentPageSize; + if (endIndex > dataProvider.getTotalRowCount()) { + endIndex = dataProvider.getTotalRowCount(); + } + List rows = dataProvider.getRows(startIndex, endIndex); + objectTableModel.setObjectRows(rows); + objectTableModel.fireTableDataChanged(); + } +} \ No newline at end of file diff --git a/src/PaginationDataProvider.java b/src/PaginationDataProvider.java new file mode 100644 index 0000000..1739797 --- /dev/null +++ b/src/PaginationDataProvider.java @@ -0,0 +1,6 @@ +import java.util.List; + +public interface PaginationDataProvider { + int getTotalRowCount(); + List getRows(int startIndex, int endIndex); +} \ No newline at end of file diff --git a/src/PaginationExampleMain.java b/src/PaginationExampleMain.java new file mode 100644 index 0000000..b830257 --- /dev/null +++ b/src/PaginationExampleMain.java @@ -0,0 +1,96 @@ +/* +Author: Cyebukayire Peace +Description: +.Creating frame +. Generating and inserting data into the table +* */ +import javax.swing.*; +import javax.swing.table.TableModel; +import java.awt.*; +import java.util.ArrayList; +import java.util.List; + +public class PaginationExampleMain { + public static void main(String[] args) { + JFrame frame = createFrame(); + JTable table = new JTable(createObjectDataModel()); + table.setAutoCreateRowSorter(true); + PaginationDataProvider dataProvider = createDataProvider(); + PaginatedTableDecorator paginatedDecorator = PaginatedTableDecorator.decorate(table, + dataProvider, new int[]{5, 10, 20, 50, 75, 100}, 10); + frame.add(paginatedDecorator.getContentPanel()); + frame.setLocationRelativeTo(null); + frame.setVisible(true); + } + + private static TableModel createObjectDataModel() { + return new ObjectTableModel() { + @Override + public Object getValueAt(Employee employee, int columnIndex) { + switch (columnIndex) { + case 0: + return employee.getId(); + case 1: + return employee.getName(); + case 2: + return employee.getPhoneNumber(); + case 3: + return employee.getAddress(); + } + return null; + } + + @Override + public int getColumnCount() { + return 4; + } + @Override + public String getColumnName(int column) { + switch (column) { + case 0: + return "Id"; + case 1: + return "Name"; + case 2: + return "Phone"; + case 3: + return "Address"; + } + return null; + } + }; + } + + //Inserting data into the table + private static PaginationDataProvider createDataProvider() { + + final List list = new ArrayList<>(); + for (int i = 1; i <= 500; i++) { + Employee e = new Employee(); + e.setId(i); + e.setName("name" + i); + e.setPhoneNumber("phone" + i); + e.setAddress("address " + i); + list.add(e); + } + + return new PaginationDataProvider() { + @Override + public int getTotalRowCount() { + return list.size(); + } + + @Override + public List getRows(int startIndex, int endIndex) { + return list.subList(startIndex, endIndex); + } + }; + } + + private static JFrame createFrame() { + JFrame frame = new JFrame("JTable Pagination"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setSize(new Dimension(600, 300)); + return frame; + } +} \ No newline at end of file From 557dac500fbeed97b291761cc75a603b229593a4 Mon Sep 17 00:00:00 2001 From: Cyebukayire Date: Mon, 31 May 2021 20:03:29 +0200 Subject: [PATCH 10/17] Table pag --- JTablePagination.iml | 11 +++++++++++ .../spiral_desktop_version/Employee.class | Bin 0 -> 1086 bytes .../ObjectTableModel.class | Bin 0 -> 1840 bytes .../PaginatedTableDecorator.class | Bin 0 -> 8293 bytes .../spiral_desktop_version/Pagination$1.class | Bin 586 -> 586 bytes .../spiral_desktop_version/Pagination$2.class | Bin 506 -> 506 bytes .../Pagination$ButtonActionListener.class | Bin 1643 -> 1643 bytes .../spiral_desktop_version/Pagination.class | Bin 2625 -> 2625 bytes .../PaginationDataProvider.class | Bin 0 -> 298 bytes .../PaginationExampleMain$1.class | Bin 0 -> 1413 bytes .../PaginationExampleMain$2.class | Bin 0 -> 982 bytes .../PaginationExampleMain.class | Bin 0 -> 3033 bytes 12 files changed, 11 insertions(+) create mode 100644 JTablePagination.iml create mode 100644 out/production/spiral_desktop_version/Employee.class create mode 100644 out/production/spiral_desktop_version/ObjectTableModel.class create mode 100644 out/production/spiral_desktop_version/PaginatedTableDecorator.class create mode 100644 out/production/spiral_desktop_version/PaginationDataProvider.class create mode 100644 out/production/spiral_desktop_version/PaginationExampleMain$1.class create mode 100644 out/production/spiral_desktop_version/PaginationExampleMain$2.class create mode 100644 out/production/spiral_desktop_version/PaginationExampleMain.class diff --git a/JTablePagination.iml b/JTablePagination.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/JTablePagination.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/out/production/spiral_desktop_version/Employee.class b/out/production/spiral_desktop_version/Employee.class new file mode 100644 index 0000000000000000000000000000000000000000..eda7973325a79780657603530b6e47b752a4c24a GIT binary patch literal 1086 zcmZ{i?`qRv6vm%7O`A4Lw{Es`>gG1xW*Wg>KxH7JU@23W^n2QdE~9Nmnhm@tL19Di zgBRdMiO)$IgIP+*dvgB&&Uy3u&(B`~x^PTrC>hW#lu=P=T)H=IXX?%;osYvyZxkt1 zUi))DI#npy?LiGy)C`yw)?g`A-_5S3!57a{(EPE2>Pf)5g$*nfBdUi5){9HB>Tk!ZTzYY*6n&a;@bX}9mQGJx?(K+C@GmlEqN z@hKaF2B!RHFd6YC9mu3NQ_h3yaOA!BWukft{YrL*L+(T4Md>`baDHjB+E{XVvE;HS zYv5d{@O((EL#Zgs&JU>Xao7$|af9z8o>mfo$9NLkcCklGlB^{@=N86SIyGd;)xzYb z*k2}}qQr--oc%i(S!?;vq-h!TxWaaATNqR Vnt6~Tf*h{^kzY(e?D!7ae*x}@h<5-0 literal 0 HcmV?d00001 diff --git a/out/production/spiral_desktop_version/ObjectTableModel.class b/out/production/spiral_desktop_version/ObjectTableModel.class new file mode 100644 index 0000000000000000000000000000000000000000..ab662286cb7210c4f4f6aa577fe4ad35f83d112c GIT binary patch literal 1840 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 literal 0 HcmV?d00001 diff --git a/out/production/spiral_desktop_version/Pagination$1.class b/out/production/spiral_desktop_version/Pagination$1.class index 8cd3d76283f2484e33c4b3bdaa2fe9527a03066e..f940c7828a65aad4d9cae28832f167092d36f971 100644 GIT binary patch delta 23 fcmX@ba*Acc0Y=7{$p;y2SmPO37!oEkF?j$0U?v8m delta 23 fcmX@ba*Acc0Y=8y$p;y2SQ8jn7!oHlF?j$0U_%C` diff --git a/out/production/spiral_desktop_version/Pagination$2.class b/out/production/spiral_desktop_version/Pagination$2.class index 01899f1392c581b2d2a56e98618b5cd21c97d921..924792ab55132cb90f8f8b76171dc72a93c51076 100644 GIT binary patch delta 23 ecmeyx{EK-*H6vrrQ1}_Gg$-h|(0Ach7y#N3J delta 25 gcmaFO^O|SFJ62v122%zx21f=71}_HL$-h|(0Ae5p!2kdN diff --git a/out/production/spiral_desktop_version/Pagination.class b/out/production/spiral_desktop_version/Pagination.class index 9120253fcb106e023a0a001451c8153e2ac5f4ab..a854d3a8a94d5a6bec3271eb481c9713ca4a7415 100644 GIT binary patch delta 202 zcmWO0D@#Lh0EY430SDVDA{@{l11}T2D>!ec6TIP^o}i+F(Mz$Ij4Kw4<(N#SfnX49 zYb$;LlWAYT51>i*FK>F@_kCJPD|t`z^+B;AiD5-0qejeyTry_OxD69_O-fBUHtouc zJG1J6x>xpK-lGLi7Cl?>VpStF-&A~9*9;4vHhtOBw(ZA`KUM$sqAs;4j_pT14x&D3 q_MLw%9R{5v-A?p6)$h!J^B{2%jxQ|-fr{&_QK;o^0(qPL7OEW!jU~MR delta 202 zcmW;GsY*m~07miO1%;VgWZ;4Z5kzOieZd{vaM#gmaKI6aF2!OoPO(@l*JLsc2nNAs zo8kkQOum2*FedSj{X5?|jiiyhq`6v;Sg%A;my&*cCJmS~Xwi^W!?uk`jj9-PX56(2 zHB)X(yEWs^touMbSnwFAx+Tw+y;|{R&AW9UHhkIiZOe~czsgaIy(o_DM+Irr;UN3W oJrxf_PDPs|?W#H*>vj@CPXFce&cpddR?nAPFT?UGYvy;M1& diff --git a/out/production/spiral_desktop_version/PaginationDataProvider.class b/out/production/spiral_desktop_version/PaginationDataProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..f9e01a9ca4e7cfa67f6730adab0cd159878ca325 GIT binary patch literal 298 zcmZvX%?g505QWdR((I2G5kxPbo7`u#DFPu#$``oRMQ(@}^lIbzq{(XQ4~nt|)p`->#2AO@<$Z-c08J literal 0 HcmV?d00001 diff --git a/out/production/spiral_desktop_version/PaginationExampleMain$1.class b/out/production/spiral_desktop_version/PaginationExampleMain$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c8879555ecde86792387e65d2b40ad40261dd8ac GIT binary patch literal 1413 zcmZ`(T~iZT5Ir{pCXORw6hDB4ETRk_5)nUEVNr~@8!MnySiE17YZx77tjt95*+1cL zuzZLwy5)oAvp>r6^vn>0x>GgXH@EwCpL1?czJB}k8Nf3Bv5`Zcg}j4)3@8je+<9v1 z@ngN?n~ktxe1(A(FYw}3g+6y?+eQILEZ7c?!ci!!?>+a!SH>vxH%(k^Bv}t^4C1(j zAqOW=R2Y1!U+A*0gJ!uF22BO)h4$O#;S+_E?t_`y;qbEbIOSj%rtNYkym}JW)T}%*VT4q;RhGKkZqtV7ixJ|7fmov>y8H zy`UO2%)WxEDjeI2b^Y0fex4N<$tp=wC2R*o&nuR+?sh8uuzQF}radPkZJ;pi_S|7c z^w5zm`6F9ilOncTRA9XJ^RTV_fWJy&_Ey+#)y;j+XZFZ%1z3>Tp_uDI-47#<#DN>dnp^U{c`k@<;t<#MLE$c$q>CaO%(qdM%2rx z27zf+d>ut5LWvWT<7WkaOY#mtVUDXZy^@{Tk5KQq$YGvV!oVml(K=}Y7MKjKIdZge z_>Fv^^f$-e(gN2Li)3$t>uJ7HZE@}ctp9MVLw{1t88IUr)nTwNNf}{FV4OHha52fo zQ@BFRH~33Hl+s2S2)4v!EE0ySu3(8ku5xXmzhvd}c?PZ#O^R}!UJ`TGJFz|dF7@!s zb@|=EU)jmm^dj2AXv$AG%OjkH-z47)eBI(7o#I5N_-Chh{#R0q1iysyL?m=(2zZ|V zZbIsGTD?nZfw3j_JfM=}GqlDdw=zIi*;<<0vvXfi82f+=qF^tj-Yc`S!u@O~Su6NE Z@vFE^pT`~C#d@-H2lwf1cDYE;=R5s-6~X`j literal 0 HcmV?d00001 diff --git a/out/production/spiral_desktop_version/PaginationExampleMain$2.class b/out/production/spiral_desktop_version/PaginationExampleMain$2.class new file mode 100644 index 0000000000000000000000000000000000000000..37881a2ef96aaf6cae6487f05e10487096a67d17 GIT binary patch literal 982 zcmZ`%U2hUW6g>mT!m_qVTeKf4Dk@MdYK$*5eL;+vr4n0tA7DbK+0L5XS*-phA2iXJ z`rr@nM;Y%dBv68z%-*?Q=bn4-{Q3LqH-HA7W|2VBLdwAvq#3Sv`A90RrLS7&{Op4# zI$WyqGltBVdu30Cnj!C=@-eSRT6%StEDakOWG&bZa&X8WyFIQ(^|$>~F`$(6zEn~l zFeEG0UJff*wUBpk4F!gk%V-R#P<|G1XxoIYJJ>*x!3v|kDaWv0X}7D3BrM!uD9-r5 zEvA~@!Kk1Pe(A8@b718MZBF{Mvr$gt_o zid-5}gCTn)M>M`DAdLJ-=wn}V@16g#=|_r)TVx`QKnNxUHcApfvXH(;;0!?cL@^19TW-6AiN=NhMi*&ws$VDmc-WujQ24{X%aVO uW7yrry|}uAGTjnWhWDxG3D*aB7$a3sC7D7Ek5G>-H9R3{Q?{7{eg6QX)YQTN literal 0 HcmV?d00001 diff --git a/out/production/spiral_desktop_version/PaginationExampleMain.class b/out/production/spiral_desktop_version/PaginationExampleMain.class new file mode 100644 index 0000000000000000000000000000000000000000..434a398d7d8b9d2d5f63f5e810e1b62f0b2439f5 GIT binary patch literal 3033 zcmaJ@*;gA?9R4n(B%MwrP)bXwN|n}xVq>e-YPyI4S|AW?5SrFjr{orG94?ht64l3vQT zJZX8OhNTc)lO%tiLUDA3v0Fzs?yOB$DZlkbJ}=M}c$zRSc!`ufTeK}IPX?K<*;Gms zI_|<=W|(lN?Mc6ej>`hy^K#54I@ednRK;<(j(b$9G|G;fuF2eoac>#X>T>Mdt6{$? z^7{og`Sm^LnT14;;}{ER)AckQP}GCOy^keqFG!YP67}kFM8|{Z5m-k{0}L`08;p-P zvvpEBdeKLdv&M`hk_=$N^rpFTJ;U-`1{Py3%I%c(9M(SZOya1HV;B$!Q|XA`A)8CV z`i)oORCWYXN+7LcSP9%jfzfFKJ2E$WRyxh>U7tRx<6%Wtc=Y7+j&$7($YLyvM^xU% zDOrwNg{-`*@GWSsWc*|pCvJ%1J`EE%saon3aV&}ZNGgrV_;>`T1)72i?I^c^O4wsc zY(T9H9cM8qu$8X%%5%nC!AlivS7wTm#m~ekj0fW5VX*l9;o#R!uQ@9%mt+ljOet;C zOiGO9?ia*)9W!7ND@3#AlN7BipH*QxN%bj?5OzS?T*1-rDOyuySQs}PQw@{SX2_d1 znanK}9ak~wl2kYAPrTOHsR}?>Q%JhuOi{t6>yR12xnM%JR1K)od?eXZo(R;CgBc*8 z=c^{q)(Ri1<_<$E26I~GE2d1_3jdl(!D #X@lfkIoe#=AzQb!SqV+Bo7mnohxj$ zx@-6ZqtnWw0>b25WJx0P$TBK3PzNAaW^k*+r^RXZ}v(T8l?b3Ml>4oh#^&by5bcvr)F zct4B})WrBuptC#^Ol#hrk%^#Mf+5mxO!5d=5V%s=pe4pY=`q8~7o^*nw(Xg@VsdTS zRqRv=jxmkbVXv&rl}WHxMan1?vZg1K5q!+bwA9>+;0o^tMKzJQ{!Cy!PXaZ4Is~h8 zz_O&1Dj2RS-7vmnQLKsldI5#;wZJX^&q}L7^w`16LLKKZI1=a<8u*;$SAuV$cDt4! ze&nJK7N3d?9`-h$dcc4pp5WJdIB>b6g#RGlI=&~aBAi~v#@tmjE@9JfcW4o?&swfNlF5alS|+zH+LFmNME7NK;pk8%7m4OGQSB;jc_6gAjWV5!h)wJki`cW9 zU;C6h^}aj1XclNh2vI(p(1K=OLN?(cY(^Tboa$RJ&K>3MJ%LN`FvqVD=leV^(BVcN zCKs{50Jq`@p2Snst>mA^Gvs=fysfLW=T>RYlcuRVRw?9;5{i*!?9VOXz8@$jDj;ho zH!nTpQULu#iRI4Gi z8d0lESNBgiUWbWGLVW-4ugjRoF?vz-`Nj=b9f~!kMA2hDAKywTyhOsqRFR=w8CPMVMX6`=HdC z83k~PdLCttPSd+Ht7WG#S1Nld(l>mGH}MwV4V0bWW#w(ITNuqdwEvO+{KS8LiqA>e TM#_G^)o&tr;R}3)Z_xH16Kw?S literal 0 HcmV?d00001 From 9a26b711d3b789ada6ad5c2b17eb97efd5495860 Mon Sep 17 00:00:00 2001 From: Cyebukayire Date: Sun, 13 Jun 2021 15:50:51 +0200 Subject: [PATCH 11/17] bug fixing in pagination buttons --- spiral_desktop_version-main.iml | 1 + src/client/CircleButton.java | 106 ++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 src/client/CircleButton.java diff --git a/spiral_desktop_version-main.iml b/spiral_desktop_version-main.iml index fb578ef..1536cb3 100644 --- a/spiral_desktop_version-main.iml +++ b/spiral_desktop_version-main.iml @@ -8,5 +8,6 @@ + \ No newline at end of file diff --git a/src/client/CircleButton.java b/src/client/CircleButton.java new file mode 100644 index 0000000..1e74af3 --- /dev/null +++ b/src/client/CircleButton.java @@ -0,0 +1,106 @@ +package client; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.geom.Point2D; + +public class CircleButton extends JButton { + + private boolean mouseOver = false; + private boolean mousePressed = false; + + public CircleButton(String text){ + super(text); + setOpaque(false); + setFocusPainted(false); + setBorderPainted(false); + + MouseAdapter mouseListener = new MouseAdapter(){ + + @Override + public void mousePressed(MouseEvent me){ + if(contains(me.getX(), me.getY())){ + mousePressed = true; + repaint(); + } + } + + @Override + public void mouseReleased(MouseEvent me){ + mousePressed = false; + repaint(); + } + + @Override + public void mouseExited(MouseEvent me){ + mouseOver = false; + mousePressed = false; + repaint(); + } + + @Override + public void mouseMoved(MouseEvent me){ + mouseOver = contains(me.getX(), me.getY()); + repaint(); + } + }; + + addMouseListener(mouseListener); + addMouseMotionListener(mouseListener); + } + + private int getDiameter(){ + int diameter = Math.min(getWidth(), getHeight()); + return diameter; + } + + @Override + public Dimension getPreferredSize(){ + FontMetrics metrics = getGraphics().getFontMetrics(getFont()); + int minDiameter = 15 + Math.max(metrics.stringWidth(getText()), metrics.getHeight()); + return new Dimension(minDiameter, minDiameter); + } + + @Override + public boolean contains(int x, int y){ + int radius = getDiameter()/2; + return Point2D.distance(x, y, getWidth()/2, getHeight()/2) < radius; + } + + @Override + public void paintComponent(Graphics g){ + + int diameter = getDiameter(); + int radius = diameter/2; + + if(mousePressed){ + g.setColor(Color.blue); +// g.getText().setForeground(Color.white); + } + else{ + g.setColor(Color.lightGray); + } + g.fillOval(getWidth()/2 - radius, getHeight()/2 - radius, diameter, diameter); + + if(mouseOver){ + g.setColor(Color.BLUE); + } + else{ + g.setColor(Color.lightGray); + } + g.drawOval(getWidth()/2 - radius, getHeight()/2 - radius, diameter, diameter); + + if(mousePressed) + g.setColor(Color.white); + else + g.setColor(Color.BLACK); + + g.setFont(getFont()); + FontMetrics metrics = g.getFontMetrics(getFont()); + int stringWidth = metrics.stringWidth(getText()); + int stringHeight = metrics.getHeight(); + g.drawString(getText(), getWidth()/2 - stringWidth/2, getHeight()/2 + stringHeight/4); + } +} \ No newline at end of file From 602fa5c3ff117bd795e9cd4effc2aa574efe9203 Mon Sep 17 00:00:00 2001 From: Cyebukayire Date: Sun, 13 Jun 2021 17:38:14 +0200 Subject: [PATCH 12/17] adding titles to container --- src/client/result_list/ResultDetails.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/client/result_list/ResultDetails.java b/src/client/result_list/ResultDetails.java index 6d792b9..34ceb3f 100644 --- a/src/client/result_list/ResultDetails.java +++ b/src/client/result_list/ResultDetails.java @@ -153,26 +153,33 @@ public ResultDetails() { title.setSize(500, 30); title.setLocation(60, 40); title.setForeground(Color.decode("#0074DB")); - container.add(title); + JButton etc = new JButton("..."); + etc.setActionCommand("peace dfsd"); subTitle= new JLabel("http://www.ecosia.org >"); subTitle.setFont(new Font("Arial", Font.ITALIC, 14)); subTitle.setSize(500, 30); subTitle.setLocation(60, 68); subTitle.setForeground(Color.lightGray); - container.add(subTitle); description= new JLabel(); description.setText(convertToMultiline("Lorem Ipsum is simply dummy text of the printing and typesetting\nindustry. Lorem Ipsum has been the industry's standard dummy \n text ever since the 1500s, when an unknown printer took a galley\nof type and scrambled it to make a type specimen book. It has\nsurvived not only five centuries, but also the leap into electronic\ntypesetting, remaining essentially unchanged.")); description.setFont(new Font("Arial", Font.CENTER_BASELINE, 15)); description.setSize(700, 130); description.setLocation(60, 100); - container.add(description); lsubTitle= new JLabel("Related: Lorem Ipsum... Mto mto-Ish Kevin"); lsubTitle.setFont(new Font("Arial", Font.ITALIC, 14)); lsubTitle.setSize(500, 30); lsubTitle.setLocation(60, 220); + +// Adding a mouse listener + + +// Adding content to container + container.add(title); + container.add(subTitle); + container.add(description); container.add(lsubTitle); From 0a6a5a43b08cb1539ca0493659f3562762c94027 Mon Sep 17 00:00:00 2001 From: Cyebukayire Date: Sun, 13 Jun 2021 17:41:14 +0200 Subject: [PATCH 13/17] adding mouse listeners --- src/client/result_list/ResultDetails.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/client/result_list/ResultDetails.java b/src/client/result_list/ResultDetails.java index 34ceb3f..496ba61 100644 --- a/src/client/result_list/ResultDetails.java +++ b/src/client/result_list/ResultDetails.java @@ -2,6 +2,9 @@ import javax.swing.*; import java.awt.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; + import static javax.swing.WindowConstants.EXIT_ON_CLOSE; public class ResultDetails { private JFrame window; @@ -174,7 +177,13 @@ public ResultDetails() { lsubTitle.setLocation(60, 220); // Adding a mouse listener - + title.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + + } + }); // Adding content to container container.add(title); From 6ca3cd42ad770fcc6742e2ccb76b6627147a95e1 Mon Sep 17 00:00:00 2001 From: Cyebukayire Date: Sun, 13 Jun 2021 18:29:28 +0200 Subject: [PATCH 14/17] Listers are working --- src/client/resultDetails/ResultDetails.java | 16 +- src/client/result_list/ResultDetails.java | 413 ++++++++++---------- 2 files changed, 215 insertions(+), 214 deletions(-) diff --git a/src/client/resultDetails/ResultDetails.java b/src/client/resultDetails/ResultDetails.java index 40fd090..fe932d5 100644 --- a/src/client/resultDetails/ResultDetails.java +++ b/src/client/resultDetails/ResultDetails.java @@ -6,7 +6,7 @@ // class GridLayout extends JFrame public class ResultDetails extends JFrame { - ResultDetails() { + public ResultDetails() { // Creating Object P1 of JPanel class JPanel p1 = new JPanel(); // set the layout @@ -58,13 +58,13 @@ public class ResultDetails extends JFrame { final Font f = CommentField.getFont(); CommentField.setFont(new Font(f.getName(), f.getStyle(), 12)); - JButton sendComment=new JButton("SEND"); - sendComment.setBounds(300,50,100,55); - sendComment.setBackground(Color.decode("#C4C4C4")); - sendComment.setBorder(null); - sendComment.setFont(new Font("Nunito", Font.BOLD, 15)); - lastPanel.add(CommentField); - lastPanel.add(sendComment); + JButton sendComment=new JButton("SEND"); + sendComment.setBounds(300,50,100,55); + sendComment.setBackground(Color.decode("#C4C4C4")); + sendComment.setBorder(null); + sendComment.setFont(new Font("Nunito", Font.BOLD, 15)); + lastPanel.add(CommentField); + lastPanel.add(sendComment); p1.add(lastPanel); diff --git a/src/client/result_list/ResultDetails.java b/src/client/result_list/ResultDetails.java index 496ba61..5f042de 100644 --- a/src/client/result_list/ResultDetails.java +++ b/src/client/result_list/ResultDetails.java @@ -7,249 +7,250 @@ import static javax.swing.WindowConstants.EXIT_ON_CLOSE; public class ResultDetails { - private JFrame window; + private JFrame window; - private Container container; - private JLabel title; - private JLabel subTitle; - private JLabel description; - private JLabel lsubTitle; + private Container container; + private JLabel title; + private JLabel subTitle; + private JLabel description; + private JLabel lsubTitle; - private JLabel title2; - private JLabel subTitle2; - private JLabel description2; - private JLabel lsubTitle2; + private JLabel title2; + private JLabel subTitle2; + private JLabel description2; + private JLabel lsubTitle2; - private JLabel title3; - private JLabel subTitle3; - private JLabel description3; - private JLabel lsubTitle3; + private JLabel title3; + private JLabel subTitle3; + private JLabel description3; + private JLabel lsubTitle3; - public JFrame getWindow() { - return window; - } + public JFrame getWindow() { + return window; + } - public void setWindow(JFrame window) { - this.window = window; - } + public void setWindow(JFrame window) { + this.window = window; + } - public Container getContainer() { - return container; - } + public Container getContainer() { + return container; + } - public void setContainer(Container container) { - this.container = container; - } + public void setContainer(Container container) { + this.container = container; + } - public JLabel getTitle() { - return title; - } + public JLabel getTitle() { + return title; + } - public void setTitle(JLabel title) { - this.title = title; - } + public void setTitle(JLabel title) { + this.title = title; + } - public JLabel getSubTitle() { - return subTitle; - } + public JLabel getSubTitle() { + return subTitle; + } - public void setSubTitle(JLabel subTitle) { - this.subTitle = subTitle; - } + public void setSubTitle(JLabel subTitle) { + this.subTitle = subTitle; + } - public JLabel getDescription() { - return description; - } + public JLabel getDescription() { + return description; + } - public void setDescription(JLabel description) { - this.description = description; - } + public void setDescription(JLabel description) { + this.description = description; + } - public JLabel getLsubTitle() { - return lsubTitle; - } + public JLabel getLsubTitle() { + return lsubTitle; + } - public void setLsubTitle(JLabel lsubTitle) { - this.lsubTitle = lsubTitle; - } + public void setLsubTitle(JLabel lsubTitle) { + this.lsubTitle = lsubTitle; + } - public JLabel getTitle2() { - return title2; - } + public JLabel getTitle2() { + return title2; + } - public void setTitle2(JLabel title2) { - this.title2 = title2; - } + public void setTitle2(JLabel title2) { + this.title2 = title2; + } - public JLabel getSubTitle2() { - return subTitle2; - } + public JLabel getSubTitle2() { + return subTitle2; + } - public void setSubTitle2(JLabel subTitle2) { - this.subTitle2 = subTitle2; - } + public void setSubTitle2(JLabel subTitle2) { + this.subTitle2 = subTitle2; + } - public JLabel getDescription2() { - return description2; - } + public JLabel getDescription2() { + return description2; + } - public void setDescription2(JLabel description2) { - this.description2 = description2; - } + public void setDescription2(JLabel description2) { + this.description2 = description2; + } - public JLabel getLsubTitle2() { - return lsubTitle2; - } + public JLabel getLsubTitle2() { + return lsubTitle2; + } - public void setLsubTitle2(JLabel lsubTitle2) { - this.lsubTitle2 = lsubTitle2; - } + public void setLsubTitle2(JLabel lsubTitle2) { + this.lsubTitle2 = lsubTitle2; + } - public JLabel getTitle3() { - return title3; - } + public JLabel getTitle3() { + return title3; + } - public void setTitle3(JLabel title3) { - this.title3 = title3; - } + public void setTitle3(JLabel title3) { + this.title3 = title3; + } - public JLabel getSubTitle3() { - return subTitle3; - } + public JLabel getSubTitle3() { + return subTitle3; + } - public void setSubTitle3(JLabel subTitle3) { - this.subTitle3 = subTitle3; - } + public void setSubTitle3(JLabel subTitle3) { + this.subTitle3 = subTitle3; + } - public JLabel getDescription3() { - return description3; - } + public JLabel getDescription3() { + return description3; + } - public void setDescription3(JLabel description3) { - this.description3 = description3; - } + public void setDescription3(JLabel description3) { + this.description3 = description3; + } - public JLabel getLsubTitle3() { - return lsubTitle3; - } + public JLabel getLsubTitle3() { + return lsubTitle3; + } - public void setLsubTitle3(JLabel lsubTitle3) { - this.lsubTitle3 = lsubTitle3; - } + public void setLsubTitle3(JLabel lsubTitle3) { + this.lsubTitle3 = lsubTitle3; + } - public ResultDetails() { + public ResultDetails() { window= new JFrame(); - window.setTitle("Result Details"); - window.setBounds(300, 10, 800, 800); - window.setDefaultCloseOperation(EXIT_ON_CLOSE); - window.setResizable(true); - container = window.getContentPane(); - container.setBackground(Color.white); - container.setLayout(null); - - - title= new JLabel("Amakosi-Ish Kevin (Lyrics) "); - title.setFont(new Font("Arial", Font.BOLD, 23)); - title.setSize(500, 30); - title.setLocation(60, 40); - title.setForeground(Color.decode("#0074DB")); - JButton etc = new JButton("..."); - etc.setActionCommand("peace dfsd"); - - subTitle= new JLabel("http://www.ecosia.org >"); - subTitle.setFont(new Font("Arial", Font.ITALIC, 14)); - subTitle.setSize(500, 30); - subTitle.setLocation(60, 68); - subTitle.setForeground(Color.lightGray); - - description= new JLabel(); - description.setText(convertToMultiline("Lorem Ipsum is simply dummy text of the printing and typesetting\nindustry. Lorem Ipsum has been the industry's standard dummy \n text ever since the 1500s, when an unknown printer took a galley\nof type and scrambled it to make a type specimen book. It has\nsurvived not only five centuries, but also the leap into electronic\ntypesetting, remaining essentially unchanged.")); - description.setFont(new Font("Arial", Font.CENTER_BASELINE, 15)); - description.setSize(700, 130); - description.setLocation(60, 100); - - lsubTitle= new JLabel("Related: Lorem Ipsum... Mto mto-Ish Kevin"); - lsubTitle.setFont(new Font("Arial", Font.ITALIC, 14)); - lsubTitle.setSize(500, 30); - lsubTitle.setLocation(60, 220); + window.setTitle("Result Details"); + window.setBounds(300, 10, 800, 800); + window.setDefaultCloseOperation(EXIT_ON_CLOSE); + window.setResizable(true); + container = window.getContentPane(); + container.setBackground(Color.white); + container.setLayout(null); + + + title= new JLabel("Amakosi-Ish Kevin (Lyrics) "); + title.setFont(new Font("Arial", Font.BOLD, 23)); + title.setSize(500, 30); + title.setLocation(60, 40); + title.setForeground(Color.decode("#0074DB")); + JButton etc = new JButton("..."); + etc.setActionCommand("peace dfsd"); + + subTitle= new JLabel("http://www.ecosia.org >"); + subTitle.setFont(new Font("Arial", Font.ITALIC, 14)); + subTitle.setSize(500, 30); + subTitle.setLocation(60, 68); + subTitle.setForeground(Color.lightGray); + + description= new JLabel(); + description.setText(convertToMultiline("Lorem Ipsum is simply dummy text of the printing and typesetting\nindustry. Lorem Ipsum has been the industry's standard dummy \n text ever since the 1500s, when an unknown printer took a galley\nof type and scrambled it to make a type specimen book. It has\nsurvived not only five centuries, but also the leap into electronic\ntypesetting, remaining essentially unchanged.")); + description.setFont(new Font("Arial", Font.CENTER_BASELINE, 15)); + description.setSize(700, 130); + description.setLocation(60, 100); + + lsubTitle= new JLabel("Related: Lorem Ipsum... Mto mto-Ish Kevin"); + lsubTitle.setFont(new Font("Arial", Font.ITALIC, 14)); + lsubTitle.setSize(500, 30); + lsubTitle.setLocation(60, 220); // Adding a mouse listener - title.addMouseListener(new MouseAdapter() - { - public void mouseClicked(MouseEvent e) - { - - } - }); - -// Adding content to container - container.add(title); - container.add(subTitle); - container.add(description); - container.add(lsubTitle); - - - //Second Div - - title2= new JLabel("Amakosi-Ish Kevin (Lyrics) "); - title2.setFont(new Font("Arial", Font.BOLD, 23)); - title2.setSize(500, 30); - title2.setLocation(60, 280); - title2.setForeground(Color.decode("#0074DB")); - container.add(title2); - - - subTitle2= new JLabel("http://www.ecosia.org >"); - subTitle2.setFont(new Font("Arial", Font.ITALIC, 14)); - subTitle2.setSize(500, 30); - subTitle2.setLocation(60, 308); - subTitle2.setForeground(Color.lightGray); - container.add(subTitle2); - - description2= new JLabel(); - description2.setText(convertToMultiline("Lorem Ipsum is simply dummy text of the printing and typesetting\nindustry. Lorem Ipsum has been the industry's standard dummy \n text ever since the 1500s, when an unknown printer took a galley\nof type and scrambled it to make a type specimen book. It has\nsurvived not only five centuries, but also the leap into electronic\ntypesetting, remaining essentially unchanged.")); - description2.setFont(new Font("Arial", Font.CENTER_BASELINE, 15)); - description2.setSize(700, 130); - description2.setLocation(60, 340); - container.add(description2); - - lsubTitle2= new JLabel("Related: Lorem Ipsum... Mto mto-Ish Kevin"); - lsubTitle2.setFont(new Font("Arial", Font.ITALIC, 14)); - lsubTitle2.setSize(500, 30); - lsubTitle2.setLocation(60, 460); - container.add(lsubTitle2); - - - title3= new JLabel("Amakosi-Ish Kevin (Lyrics) "); - title3.setFont(new Font("Arial", Font.BOLD, 23)); - title3.setSize(500, 30); - title3.setLocation(60, 520); - title3.setForeground(Color.decode("#0074DB")); - container.add(title3); - - - subTitle3= new JLabel("http://www.ecosia.org >"); - subTitle3.setFont(new Font("Arial", Font.ITALIC, 14)); - subTitle3.setSize(500, 30); - subTitle3.setLocation(60, 548); - subTitle3.setForeground(Color.lightGray); - container.add(subTitle3); - - description3= new JLabel(); - description3.setText(convertToMultiline("Lorem Ipsum is simply dummy text of the printing and typesetting\nindustry. Lorem Ipsum has been the industry's standard dummy \n text ever since the 1500s, when an unknown printer took a galley\nof type and scrambled it to make a type specimen book. It has\nsurvived not only five centuries, but also the leap into electronic\ntypesetting, remaining essentially unchanged.")); - description3.setFont(new Font("Arial", Font.CENTER_BASELINE, 15)); - description3.setSize(700, 130); - description3.setLocation(60, 580); - container.add(description3); - window.setVisible(false); - -} - public static String convertToMultiline(String orig) + title.addMouseListener(new MouseAdapter() { - return "" + orig.replaceAll("\n", "
"); - } -} + public void mouseClicked(MouseEvent e) + { + new client.resultDetails.ResultDetails(); + window.setVisible(false); + window.dispose(); + } + }); +// Adding content to container + container.add(title); + container.add(subTitle); + container.add(description); + container.add(lsubTitle); + + + //Second Div + + title2= new JLabel("Amakosi-Ish Kevin (Lyrics) "); + title2.setFont(new Font("Arial", Font.BOLD, 23)); + title2.setSize(500, 30); + title2.setLocation(60, 280); + title2.setForeground(Color.decode("#0074DB")); + container.add(title2); + + + subTitle2= new JLabel("http://www.ecosia.org >"); + subTitle2.setFont(new Font("Arial", Font.ITALIC, 14)); + subTitle2.setSize(500, 30); + subTitle2.setLocation(60, 308); + subTitle2.setForeground(Color.lightGray); + container.add(subTitle2); + + description2= new JLabel(); + description2.setText(convertToMultiline("Lorem Ipsum is simply dummy text of the printing and typesetting\nindustry. Lorem Ipsum has been the industry's standard dummy \n text ever since the 1500s, when an unknown printer took a galley\nof type and scrambled it to make a type specimen book. It has\nsurvived not only five centuries, but also the leap into electronic\ntypesetting, remaining essentially unchanged.")); + description2.setFont(new Font("Arial", Font.CENTER_BASELINE, 15)); + description2.setSize(700, 130); + description2.setLocation(60, 340); + container.add(description2); + + lsubTitle2= new JLabel("Related: Lorem Ipsum... Mto mto-Ish Kevin"); + lsubTitle2.setFont(new Font("Arial", Font.ITALIC, 14)); + lsubTitle2.setSize(500, 30); + lsubTitle2.setLocation(60, 460); + container.add(lsubTitle2); + + + title3= new JLabel("Amakosi-Ish Kevin (Lyrics) "); + title3.setFont(new Font("Arial", Font.BOLD, 23)); + title3.setSize(500, 30); + title3.setLocation(60, 520); + title3.setForeground(Color.decode("#0074DB")); + container.add(title3); + + + subTitle3= new JLabel("http://www.ecosia.org >"); + subTitle3.setFont(new Font("Arial", Font.ITALIC, 14)); + subTitle3.setSize(500, 30); + subTitle3.setLocation(60, 548); + subTitle3.setForeground(Color.lightGray); + container.add(subTitle3); + + description3= new JLabel(); + description3.setText(convertToMultiline("Lorem Ipsum is simply dummy text of the printing and typesetting\nindustry. Lorem Ipsum has been the industry's standard dummy \n text ever since the 1500s, when an unknown printer took a galley\nof type and scrambled it to make a type specimen book. It has\nsurvived not only five centuries, but also the leap into electronic\ntypesetting, remaining essentially unchanged.")); + description3.setFont(new Font("Arial", Font.CENTER_BASELINE, 15)); + description3.setSize(700, 130); + description3.setLocation(60, 580); + container.add(description3); + window.setVisible(false); + + } + public static String convertToMultiline(String orig) + { + return "" + orig.replaceAll("\n", "
"); + } +} \ No newline at end of file From d6f53e34d41b3f036c3dcabbd320eb0b1332997c Mon Sep 17 00:00:00 2001 From: Cyebukayire Date: Sun, 13 Jun 2021 19:10:03 +0200 Subject: [PATCH 15/17] Listers are working --- src/client/result_list/ResultDetails.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/client/result_list/ResultDetails.java b/src/client/result_list/ResultDetails.java index 5f042de..a0f25db 100644 --- a/src/client/result_list/ResultDetails.java +++ b/src/client/result_list/ResultDetails.java @@ -182,8 +182,7 @@ public ResultDetails() { public void mouseClicked(MouseEvent e) { new client.resultDetails.ResultDetails(); - window.setVisible(false); - window.dispose(); +// mainPanel.setVisible(true); } }); From b545776bcd7a3b84657749c3fc71d5a1b8bd5b15 Mon Sep 17 00:00:00 2001 From: Cyebukayire Date: Sun, 13 Jun 2021 19:28:44 +0200 Subject: [PATCH 16/17] Listers are working --- src/client/result_list/ResultDetails.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/client/result_list/ResultDetails.java b/src/client/result_list/ResultDetails.java index a0f25db..81f5cda 100644 --- a/src/client/result_list/ResultDetails.java +++ b/src/client/result_list/ResultDetails.java @@ -181,8 +181,9 @@ public ResultDetails() { { public void mouseClicked(MouseEvent e) { +// System.exit(0); new client.resultDetails.ResultDetails(); -// mainPanel.setVisible(true); + } }); From b0a313d82ec2feb05a3bfbaf5ef4f6e0fbbce913 Mon Sep 17 00:00:00 2001 From: Cyebukayire Date: Sun, 13 Jun 2021 19:29:11 +0200 Subject: [PATCH 17/17] Listeners are working --- src/client/result_list/ResultDetails.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/client/result_list/ResultDetails.java b/src/client/result_list/ResultDetails.java index 81f5cda..8f8bfa7 100644 --- a/src/client/result_list/ResultDetails.java +++ b/src/client/result_list/ResultDetails.java @@ -183,7 +183,6 @@ public void mouseClicked(MouseEvent e) { // System.exit(0); new client.resultDetails.ResultDetails(); - } });