From dae4ee91cb6133bcccee7eac64e11b137f189503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Cort=C3=A9s?= Date: Tue, 18 Jun 2019 15:40:12 -0400 Subject: [PATCH] Agrege los modelos que faltaban de paso corregi errores de los anteriors --- biblioteca.vpp | Bin 986112 -> 1011712 bytes create.sql | 1 - .../libro/LibroCreateController.java | 87 +++++----- .../libro/LibroUpdateController.java | 101 ++++++------ .../libro/LibroViewController.java | 88 ++++------ .../framework/BaseRepository.java | 4 +- .../danielcortes/framework/JListUtils.java | 5 +- .../xyz/danielcortes/models/Arriendo.java | 154 ++++++++++++++++++ .../java/xyz/danielcortes/models/Autor.java | 32 +++- .../java/xyz/danielcortes/models/Boleta.java | 108 ++++++++++++ .../xyz/danielcortes/models/Categoria.java | 30 +++- .../java/xyz/danielcortes/models/Cliente.java | 41 +++++ .../java/xyz/danielcortes/models/Compra.java | 92 +++++++++++ .../java/xyz/danielcortes/models/Correo.java | 20 +++ .../xyz/danielcortes/models/Direccion.java | 21 +++ .../xyz/danielcortes/models/Distribuidor.java | 44 +++++ .../xyz/danielcortes/models/Editorial.java | 18 ++ .../xyz/danielcortes/models/Ejemplar.java | 64 ++++++++ .../java/xyz/danielcortes/models/Empresa.java | 18 ++ .../java/xyz/danielcortes/models/Estado.java | 18 ++ .../java/xyz/danielcortes/models/Factura.java | 108 ++++++++++++ .../java/xyz/danielcortes/models/Idioma.java | 30 +++- .../java/xyz/danielcortes/models/Libro.java | 66 +++++--- .../xyz/danielcortes/models/Telefono.java | 20 +++ .../xyz/danielcortes/models/Trabajador.java | 45 ++++- .../java/xyz/danielcortes/models/Usuario.java | 24 +++ .../java/xyz/danielcortes/models/Venta.java | 105 ++++++++++++ .../views/autor/AutorCreatePanel.java | 14 +- .../views/autor/AutorSearchPanel.java | 61 ++++--- .../views/autor/AutorUpdatePanel.java | 15 +- .../views/autor/AutorViewPanel.java | 14 +- .../views/categoria/CategoriaCreatePanel.java | 14 +- .../views/categoria/CategoriaSearchPanel.java | 56 +++---- .../views/categoria/CategoriaUpdatePanel.java | 15 +- .../views/categoria/CategoriaViewPanel.java | 14 +- .../views/cliente/ClienteCreatePanel.java | 14 +- .../views/cliente/ClienteSearchPanel.java | 62 +++---- .../views/cliente/ClienteUpdatePanel.java | 14 +- .../views/cliente/ClienteViewPanel.java | 14 +- .../views/correo/CorreoCreatePanel.java | 14 +- .../views/correo/CorreoSearchPanel.java | 54 +++--- .../views/correo/CorreoUpdatePanel.java | 15 +- .../views/correo/CorreoViewPanel.java | 15 +- .../distribuidor/DistribuidorCreatePanel.form | 2 +- .../distribuidor/DistribuidorCreatePanel.java | 24 +-- .../distribuidor/DistribuidorSearchPanel.form | 2 +- .../distribuidor/DistribuidorSearchPanel.java | 56 +++---- .../distribuidor/DistribuidorUpdatePanel.form | 2 +- .../distribuidor/DistribuidorUpdatePanel.java | 24 +-- .../distribuidor/DistribuidorViewPanel.form | 2 +- .../distribuidor/DistribuidorViewPanel.java | 14 +- .../views/editorial/EditorialCreatePanel.java | 14 +- .../views/editorial/EditorialSearchPanel.java | 54 +++--- .../views/editorial/EditorialUpdatePanel.java | 14 +- .../views/editorial/EditorialViewPanel.java | 15 +- .../views/empresa/EmpresaCreatePanel.java | 14 +- .../views/empresa/EmpresaSearchPanel.java | 54 +++--- .../views/empresa/EmpresaUpdatePanel.java | 14 +- .../views/empresa/EmpresaViewPanel.java | 15 +- .../views/idioma/IdiomaCreatePanel.java | 14 +- .../views/idioma/IdiomaSearchPanel.java | 28 ++-- .../views/idioma/IdiomaUpdatePanel.java | 14 +- .../views/idioma/IdiomaViewPanel.java | 14 +- .../views/libro/LibroCreatePanel.java | 28 ++-- .../views/libro/LibroSearchPanel.java | 60 +++---- .../views/libro/LibroUpdatePanel.java | 74 ++++----- .../views/libro/LibroViewPanel.form | 16 +- .../views/libro/LibroViewPanel.java | 52 +++--- .../views/telefono/TelefonoCreatePanel.java | 14 +- .../views/telefono/TelefonoSearchPanel.java | 54 +++--- .../views/telefono/TelefonoUpdatePanel.java | 14 +- .../views/telefono/TelefonoViewPanel.java | 14 +- .../trabajador/TrabajadorCreatePanel.form | 2 +- .../trabajador/TrabajadorCreatePanel.java | 14 +- .../trabajador/TrabajadorSearchPanel.form | 2 +- .../trabajador/TrabajadorSearchPanel.java | 62 +++---- .../trabajador/TrabajadorUpdatePanel.form | 2 +- .../trabajador/TrabajadorUpdatePanel.java | 14 +- .../views/trabajador/TrabajadorViewPanel.form | 4 +- .../views/trabajador/TrabajadorViewPanel.java | 15 +- .../views/usuario/UsuarioCreatePanel.java | 14 +- .../views/usuario/UsuarioUpdatePanel.java | 14 +- .../views/usuario/UsuarioViewPanel.java | 14 +- 83 files changed, 1775 insertions(+), 847 deletions(-) create mode 100644 src/main/java/xyz/danielcortes/models/Arriendo.java create mode 100644 src/main/java/xyz/danielcortes/models/Boleta.java create mode 100644 src/main/java/xyz/danielcortes/models/Compra.java create mode 100644 src/main/java/xyz/danielcortes/models/Factura.java create mode 100644 src/main/java/xyz/danielcortes/models/Venta.java diff --git a/biblioteca.vpp b/biblioteca.vpp index 6a28e4af8b46bfd4e60c5fc7e92d9dfa4d4b0386..095446973bf273c08288ea98870b623f74238b32 100644 GIT binary patch delta 65978 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
!=c-F24$UX_`3)p{y>#asRjWO+d$cs;r+~ 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

-X9~|hZ}i#>t1E;^@hgNzw>X4PGn#$1AX{GN(T#ziwa3oUj%3eChU9Go?j?8 zVcdM44%UseX7O8#f6wyL&zv1LX*q3QJFqXO99es7Nht=*|ux6r^5bw9|>@Vg&fn8sKT6PUAf6 zj#j@NslGT1r5P|%K`$*#`|gTfI4_T^TDKd9TNQ}j(Xp$B8<6Vl@=&U!6$*zABXKz2cJMYM{%#)Fo$q%y|S(4^1NcwI~ z7BB&{G0j3#CN?ZpGTCBLqhUfvuE)2Oms>6Qs<4NT*>I8aM{T3Lvw5}gOm0!L$4*C#cl z8d*~T&0q%Ncj(3^Ig0=WNr8Eq{ReOq}NoeELxze5xXt1q}QEhgUamk>4!6lNM^)@5s*6>W& z6ZgETJbO)q(F)9{BIg*rF!v5YzH5%RgzAIv`@HD!2CyghlDZ^dPTf?8*<_DAP?LOV z-hKrFu_gu^$#IMsFgZHadrzzAR=wh+uF;4ALwResk%!(0=?fkS4kki79bXXwcqU7( zDEuU{Min8qiJJ&4>KIpuycKnvK2e-id}^%Npea1$rXMRyR-!JfXEH#z)aGHhWXeQ9 z;UR>5g9n<#@d7ePgFqZgGEuuIHumm7jV0ix_OBiusGE$~3-L6ke`)JWgLT1}tu2xz zjKpjUCuudt4)h>pUA|uaVh(6Ioa3_#+eHl<2Bp0yx=j1>IK%d;Zw$b<={WXm)^8>+ z8;_!@5<+*5LErG+Em4b6vfmx4?h^);1DD>*H~&udg=6!Jq%_-n1UqUF7D;UXE-$*; zSG+Lp>FxLAhhn2~Iq$7I#wTwAJ4}@(TsI9IHULj&+vY3av0vbY1K|K}PCOj&{RPBy zmh|<#tK*<6A-5o)W9rlWI^5gWD)*gg8?}Za782A*3n-6+-{sKWqrGilkf=;brGHkP z=029L>UDH?6_X43do`&3sxir|DwZm%4t<%OF{sv1h$_7{oSZMC`sO60+3VwHD0OAS z(jEkWJXi#HQmCTlcTWE2V)pLp>K4ofls7rSIL%#$%NS(6uvwYOXImIQKL5PkUOfx@ z=%$IQrNIo{Ht&|=WD?(IDUR>e=4PKt>m4$TZx^Z)G6u05wUSIQpa4le>>9BPmwj zE7iZsXS92{$Qdy^&Rg;*IW)t3akm&vR@eVpF{eQfi&)(_Ru4z~=}=S<;FRd1#boWj zLZg;tbZVoh>(8bo-nauJy0Vp7pcrHiTJ>$QPH_G7>o2b<0MWsylll~f9k@Rnfg~<^ zUvs02Vuqll<-S*9(&|rXcyIC>#eHl^s)Rr) zUnU%7iLH}40&Y7PitvIOfa!Do6?24?-n`-K4-QrL@9| zEVjZr41aD>x!m(4+rd7h1bJ6K$U8f1mhK zFYcjg<_3|hRC>&D{O|_DrWC~>aW(@jxiRJ-)dvt0&$}av9?g`EKS4!tu!Yk-< zr#1Hapu@adx|g-iRDYgmR8ut`MYi$^tzw9fD75&@j@=O}nf5<`|CVVcnm!rSh#Xzf z?(5>ifz1Jn;0^;xj$Jzztufk1l8gE!EnRS9m8>jqs0-Zj`O?nt%-;~Jfqq0@GM22x zWANB^Y$V57ZN~(KlEF>Z$|Z9Lt=(`s{HwFohm!ya`$P$q;#u7FN8l?jE7W96D?As?-4ZdCF>Sif#PNjO4$gI?X!B4 zE=6)`K59P)h{MUEb7%;n)sP|H1iuecaA2&}$b}a<`1zO0Z}^zlN-T^X)i-%4085Zz z-|kWW5s942>hSF8-1y_G@4>i?ie9cCz$LGn&=SYK>@cZzenLwsmx<|AO#BC1f*(gBA zKn&-HTY&ypSqq*#UDjY&pOZD8*poHM*5aZO+9wn&gcuQq^kb;P%vm>)a8otG@$fFR zZ>pFJ{4Q*$R>_r3!Lso^a=byZz)w5$S@FMDhCCIHO9qnX^BD{;_LL!av4bKC)0OrN zf1d~m3r~#xEf~#`9T+6S|Ag4U5VnzXb= z%<2%^x_0b|x_=*wway2!NvTrAwnUM1H|1Q;6FU%NbF#_ zMZ&mH7Bpv;=Ek=MBlxNIY;wCv<@-g2Jw?zA{$?S?;jTr>E6T!9mrF&9c0xC6J(8O# zbBYDF&Ep7mUU|`9)sX)9yTf zdjMd(uTlGI}~t#5R^ah1#Ryn3$K_Q0&zY?pDYK2W2|LxSna(JwKSp6B6t z2@F+nWCZqnI5zoUH_!tbJbTA;1u>^pwaB89I-qqL4r;e}Iuv+s@P2y6fIEfrx*m`A z<+1;fr?`dHLK)DLJ7wrfS_9ThB5DDYe&IL{G3-y>`7bym2zm%fE_)o`+S@2I zyBwl0Cm$l`h^{kLxDj9@b{T$9#9g;b@dw>@MFI{&rTDotg=Z; z4Jr`Ujq~8Ee6nrnR1rH(g?DyWfkgh}m9Zc>)qIENJ(vhMl+Q8Wu{ZU(d@5?ZS)U82 zEgOUIh5W|M|T?9okZ`FBF1u-dbafsTo(O#g+8@b(1J?9reg z{bnCWV;!&O&5>+Ir%bwCqBOh+ya zpU`qL2*>w~x=Ss_ISdRCl~zdt0nWQGF%fnL?e-sd+FO(!mV!RoJTk z8!ntdyVP<+>+1D+i>6PQ%SuOycL?tLiXjdpIN>@`a98w|og3N}+9fZrDpD%X%6L$8 zmxeM*e6w6#BRrO0V#EwJ-*L&~STQR1NSW7dkQE9R6jK7RP%C3 zSIy{LJ!4Q};n}^}>0TERc|&qz&TJ=8!xA=-X6a+rn1RK=<&t^gRm6huARJo=*pSS@ zEewMg^8qE^hsY@~j^$jLa?)-8HDm0t1y~OXbznO`etb@RPVDW5cBy)~IbU*xeKbE= zCaBN~>r1N}A)o?rHZFzt;;o;H{DymvUdHi;_H4g-1#Rc8$OlP{dV~M~bdmMf+rhCI z<+_l(3{4FuhY^INvy@htop27|{7kZxzHUrevI9ER40kuVeRpF@i16oO#h`=2+OVLobYni2 zm8eD zqyp-NKLy>f4ssdQq{ULasg+tU`bjV{T%r@Uwh1r#mOe#HhL5W6Y=Vm)Q1RgFuIW?% zF`_w$!J4HqTd(J1=Z6u6uK{Wn;AH@RAw89braon<9E2NFJiAT@eD}R)LgscX#W#F7 zAej<}LK)B>ZOX~e(aB3s9(3^bw+z}0|oY@64x>WwYk#Z)DL`Jrvddo62(c{-0}IPp{C z?T_7-gKs>Uernk3O){TDc+`e&o31PH9JGv0LlKC-)4_FGiq+RRjL^ z5$rT7Mya3KM*QwtN?iP{l!CN+tVK;Zp&2*};mq&=GtD$WZRkQj-i#I!1WmoK-{H{ZECLr{;vXeeVt&6bGgw2PSe21lazF4E#p8 z|90YHy{#ybB_oX*lNqA?_#ULw9SkX*@pW>v4yj~6jurT2R&Sy4`#B?UNQR}@kU)!V zt`xBmoxqf;P)HskMYjI~KIgp3A1^p891{1N`Ym5( z9ul$*7Ujq*n=Uv!uYysPFoK$+)T|8>xoT2|^?%{@wt$)~k&y%u0t$22xp1t;;mW90 zfx@Wyuv(9jA_XcUVo<8+qxdH_)QZ<|zuJShar=B~jYP;e2H`}Fb_xwj0FQDcNpbef zK$wC)3o<+_l|XkyykWTHohf;ZC&)w$yIZj34vbW^+=JNqcQeLMH)s+D@ivA@g_KO# zfz7B)KR{Qw)nXNIt-5Nh|G23uB3#3c z&uLt)tHC~?l3ztRD^cwJqo%^jWjIlI0N^h>5hKa< zX&=qo$aALytVbtnfo0sFR8ibAmg!%m{|ubf`nZ0dKCO>LrDubvf59Prn=r$zEe9R& zzRg@Bu8HOQN&v4DO;!uQbZ46v=ygkdDziTuN+b=1hg(HR8Ev*9BST&rVW4JXPXCMa z0?#j$6Yp(?GB1&p$QEBq240M1j@_alOjx>Wbr0Tnhtc$v$TIxinboXw<-kj9@05+rLkZ{SQM4Os`rm@CF^PA91iDP%ca0F;L<9D z*!$1z%F+_1(ht^Y_QnTcikYFLV7ef0!|>huXU{wCMWD}3*FCjJ{>*}9OcSn=j(oC zJ5saAWj_#Bqr(LoBoq9Fvlvq9VXl|R@{gqNHoImwlyzB}5$Xp9vz#!U zHIbC#Bqj^ezd@NAReY|G9CX53KG$wcXj%LjS zKK#_l6s4XtL`%7%Vz8++vDUt=^-`dyhK-4Xdi}7vH@pI}FCbGM`x946lfhBC>p4s# zU_v=jV)n{&>GK9UK)mo)&#gQLA!n1mDl?ZxaasV}X>|R5M^uZDAjm7>VqKp{}e;++xRIsL?M;XC!Z}FD%5O7B`Mip zsQX59hdRS|7@4ItHFLNSy@~t#m++@+#BXrz@K79>_3+)!{)*1gV5;iDbT$LR6m1Nb z)TxvIwptoeRGW12qlzlVeRMtcKfqKiv--RX4h*({HbT8KK#jf)Vk`x!iYhVFGU62{ z=`!MXE$}Vy73QPJ>#oJtxBai?n-2&%-D7-|4I6Y)|HV2#ANZ(UgRrA?l1_q0p(~bl zh7C2$BoJzx;QV0NnE@-_LMv~NTZd|_C;C5QB%pk^8j7#V+3fSczI0xuHfDzX_SRNi_ajq|E9fU$_YG=OXMcHd3xZ{D_w;cO)Glb8SmAD6IRKM(>Y6$u#8@7u7 z_;{Po@cz`Jnvq`!mdtx!X7l@xbSoal-G zd`XcM)2NHxq@SzLnMR;VDPk?Hq2kv!dL*nSKXo|&x3FqI;C5%<-))#?8lgB9v?%z< zT9pcQHL3n}H4$uTZ~t>O`NWoJ*b8g#*lCxx{2!^??-{_;9e;nH%Sx7FIJJhXpPOV2 z)wm%UWvzcTZnNl;WC4=D8h4R_ndr`jfM--M_eyvCj4Mu|Q*KEc%)ZkF%a2p$#EWfz zij9G#guS%Teh`_S&iQ+%8s_u`IDBIDK*&9^jL{CsSGyJ$oZ9P8c)04X%-(F>lFkz9 zMKtyUno#oz4jaxbUzM;DB*V@3CwpZz%f{2*sJgwH=9QTpzIDeKE_wa?B^u%!?)TPq zV%~N!JepTi^7443n|*YR)_cH?Cjb!?2j;RkXWmRog8s@atix_fs4e;wTN16G=4rO( zKm9-^7@4MNEEJ)L!Si8maZSs(S{#O&ar>!FF1`rZJ-^=WZ`;h?j~_=K8U%8*+oCqz zPV&Nd$j~%X;>7F341rfA9l|P77{{tG7A2A1P5XbZ{2b?(pf|fe_5^Lk`uwn_W-7L+ z+&R${!!{)?zjZ5=(4f|Db>x~r1q^S6zj|d-njwli(wz_pcRvBKjY|sn3!Z-t3#qR-1>g|-TeGW zNE`U1O0Fu->hilgs(@**uf6b!5Ot`y%@ijtWIeSIb-RitW){;AL`5D5xDoyA5|eJQ zD0)my8}R9nb{eM`s^FrqRpevJM^sj%DYkyxgtGuBF9WhbfbE00T(H~AJjt@>lGmPtFW zRDNx!&7S8v!d!dpde+rxRck2Kp)9TF_|EI-Eb2HMP@~_b-`Qw&$l7mtCEw(F%}G-i z0T;Ao?Fr=)Cx0V8o%p(_BJ=Ur7>{MR$s1H4|J~?lJ^)1ATZzm|dKquuiqhNFT1e9d zCE}-iFa4cc9lMGP`yM=xX4|~#tAwji3#ZG6giifOI(SCmv2haFLS!n+R}I$QH0!Tu zQ&wrSFX{a_k2-T5U~QXW?vgdJw+)%@kK-;XU&tnSX8V?eSPU#;n>=dfO&~v0Cl(VA z{|;LFnZ2*U1ji2dAu1?ylEaG0BTtIJp3YL+-Q(Pa0K;-`^8RW|?^Qgs(xlbv;XD5& z;-8)bjSBB*x;Nshm-XP9R8yB1Z=$0rGPSql)i6!s3#g0}{sSFD!$y8J@ouX+V#-l< zy5gHgnwnC5!WdJgOQ&q3Ir=c;o3{L84>S>nG zFV>^Y#dJ!x0nwNzey2*A`c|WLT7hljB6P+K&FmjfSZBVXCT-0bnD(#Rldch2545WOsvehEyWM zDCUTEc5Jw7uGdjVygpwp8dE3e$7ctsV&-&Gft_ZW2`AN>wrJcW%k9{@GW90 zOXU081`)BjAe7F_s5 zfb$XOrw$8}!C0*wQ;80UyPt@^aRizWER+s%*T*}*ov6NXjzg(9+dc7vGL;A;msJ_u zLUA8@5&WN-3o7>Wa zZ%7c1opgz3(LQbo$$b^IpR-Cs4vG5M7w=fYV-e<%9?Q3~Mb`|%;;)zB(=JyC5O7cA ztG8zfW}dk(IBDa>ESS@`k?xo2U#h3DQfMirQ*l1^(XCcd%3;SLI6-5xH_qj5ufHi) z&VJrQUGj{*GcOL!R|^zh_kX>6;K#z^|8up=(&^^9bExyM#L>Iy-+fMl{O+Ncby;fR zX!&z*42v3mreG_GOJzMDMf9-xDp(i>@`XY)RM?RG!-`3EBc^j`!7)DaSpn;^mn8Ww z_lLs@|6qCa*K2MPhx}_!TUZ`F3VFRsuM%pY-ARIY*9x_IceGVMV#tDi-D=J1NfSpv z-|}=tFrtBT*S%Zz>Nxx-?AV_)a)DUAs%2@5@McG78cDjKT>8f9A#i+M&Ekh(lKA~! zs7en6;5U!d_G;=cp2M|nQDnB+)E2B3U1Qn5<#S94Xygpy^xvs4w_aGWKE?y1tb86 zlW+pw6Z0AfH@2jf_z%kM!rgivjGc?>@QRsH#hd(z-#e09=xu`b98M-?v?T#%s1SFF z!U)naF|(W|DUpypizb;u|93?541|X@FLhB}u5%JSUnv?RJJc1*TeCCn+2HmkrB0=c zK2*D2Y1M}&qmJzhG+(#RXz-}eM zt^KR4RZv|UlX;B^^#PZBxJb_MJT>3AEW@0Y_hy9}uSpcf!fHmTkQHpnvDG$$|AG@@ z#EsB*T+3P(!Cd|P2N$qKG`6*5Zr4PJ`JNE(>%w^uB|2Xr5tUryR+GL@i=;J zAWMOQS{F@$6>@JLn$N^g99Rr%vTsJhI#Ch5o*#8gQaZ#Bz@YAHDs;eQpn-}?g)EdU zV0QJ|_8*sp7}q3)ZFwh2t(XZkl?M{`t!yiT(zwfv*F4!h z)Z-Yr%rRq%P7<*f%vw!=svhd7pp5+SqKr%d^tEYAKNF02fr&0o2N#=dEUv{z7e}|1 z*B*S-xfNweFw3-;phQvK$F=vQq|4bYooG*#QOL-vobBl_Y%e?o&DP;Va~(4XivVJ>V9lsp%madjk@tl&b6&Wp|KMc1K1tH)>iQfSYZbQWyS zSXO@@eK7Mr?XBOOdgf|&1Y~}ujUulKDHmf`o688xg2Yh6Hh<`*KGJr>zS=om8jQRsx!*s|Uu> zLTqew-p#%94^Q#rd&WLT1-nAGw^lMH%~eI6m+gdfMv@o1!%93K7`7k7gjPAsE%JT1 z3a*wJ%st}>#Q}iYr_9B)!5aBQ@G$53yKQ3*;UodYH;Y0Es+P2G%?Zsp0L$a$@0u@! z%F7r>p8GWC8?qy+Y62w14P%~o=NMaC@YufCoZORn(G+bZR=$4xZl1<$Lz_3H`JNB% zc*vDxZFyR|el1baB-bDn=A^mvG_H-hQLHF~tlFWHI4T>212Z`m--Z& zP1(?~ZfiSeH$C3r<(JF+{3pJxQL0L`vw0rYKuJ)tb(n&mhdGl&8b%D#Jz?|q&t~ev zM?vcpSr0?`uXWlns@`kZM`-(VLry-ku0MKKsME$>J)_VFHV9dK|d zmKJVx6p>|;#2TZrKsd(RK)iCDz$%(bUH0{(*AW=da&d;F;J$N0_25wtFrkcwI9_^F zW)q47OR;GW{lrnV@d+e5otp4+9qg@E=rW=rjC#)wWZLF<{r)ch1mxCDQ!;c^LHq-kCKk5^+D#59(d?X#@WY>1JWW% zyGfwf9CPL~P8{bQ1F7)Oz8FQuQR*d6oV4#E$Pwey!pUWwMQ3as$;B8@>)5#2xqE!^ zsUkk(v$=q0+ypH<{Q{rUZh+S@q^0#<(R`o2eM8H69?bPF(H5!La#{bq!r8h}*0mwv zDAg~NI#Dr}8xNeS8CwC{{vhdf6V~fWi`oJun4d*%tra=Mdz}C7sTrkgz1cX`L?dyi zn}wHh-l(iMSo;@ecJHiu{4|thNu}EA6w;7N=Gro6%bSq^nHwgyw;OAT`Rl^$n`C16 za4*89oAL4&g#A{)L82y>wCJ0Totd7I*ED1}A4&vfeqz9<3duhB=U139X`!k=AWVF- zA6a47RNP9ZaNlyCsK4@!I0mh{S4%Al38?NlFuY}bYy1les@3>)m0nbR>BL#Fkogoh z{P=fgXv?}-UT{NImYt2{MOAN|~Xx%ChxCq)QkOt>!qq}{@GN1D)i%~m~^qV&kv#4Q_iC$hvFc?{0TCwYMz*<}GC(Tk-PkIJKRHk!v(hujIjU0$oxfu*dwK{|KJP8p z%>XiquA!o8o9es`$}?6$9tDUHddSG8%Hoe5ax11@;JC41rl2d?L$ znrM-p>xg(O0QioQI2%qut9n54!K41pQ>z*U5_baD6~OvOhy zRi;-!9O?!Rw5g_K+GN_6s^405e<{A(VgK3DfE3Zh-uk0Hax?!I==2`oz`uS-R0f?- zn*MD;yUx7CAJ_GUdE)+}F3HDr;fUAhd!o3vQxj;#Ha4=Q&NCZR(D?Rfk??mqWkIJ? zBblptE;kVjY_NG&cQzjp_G7tQ%qTJpSC+*8#4{`@&JwS&ldx64;;luYFjYJk<2~cO z7nw>_kik){T@mhvV`|yZoo#gr<2Q+nDeZGDy-w*lPm~rY4lFAT^5}%lUnnnJK<86S z@o`@}eVrYIFHskq2G9kQGp~%9^=zb?I3rdCDBs#_uXzA@Z&zDQMhKl*)HKPPgSh-4 z9y&u-a^=iQCB<^VB%gbVE5|PyJ!ECDXxu@o^rhW7n6XpiDA2nrOXy(fkQ5ZMH1nJ# zq;>F209+N43U_2KhA-$- zq;xwd_w3846E2k~3CjB_g)G%eW(t0Wwej261jLeZl2j~bC(bM6n{0GB!Jg87et}m#khg2eib!gR z(`Ou5F)QPBMr{0E*-^HKyOgFLWiZ9DxU|K}1k7$?0c22|$_aqxSSC!iBq{0}IW}34 z3$3A3_Qc`&3rG6wYDvlSw@lD~R4ag02y&^%yWQSQgyg0VySC88t#}SZB*b>_cae{% zE|gg1oBZlakX|lF8d45hA25{LgfilDA}_?l5S5dyb3xHEO~2>x?a1?Y1pN^4&5%QP zY^}1NWsOBz-SD}4$QMmMu(4Ka@FO4OqJ^qn5&4aAI(FO_W^3NDZ%?S*M9HteEWAo| zcs|C480>3eRP!+XGJ>H7sk}LnBF&wHV!VW$J3k&5As2_j#P|VeGqdnP^+bmYFP=2$ z^D3s6IgSofP9+3?ffBe;;k0o7=}b%SS(+QPVwJ2IoixnZYLpJFqLWL#51r8_jMAdBVzU}PXp9s)sl;-Z-1dbxsu^SwXoo`c{B7;bpPhdr(|l|5oh9_^3eQUk zRnM@4fMixE@vrUR-tnw1Y?i`{>j}xaqlB*7ALhP~n)9BZM|Y^v_EbJq4FmGFi{TZK z*1hX4JiR42{@r+`m$wzhb(#A`Oyveawkn=fhcaE#jIS%am8!;b!I#_>@eT0!gH6&3 zzAs_OiD?I4Tbs%K@wYR2PCapBJYc-N(;MytYTCMNfquHMpiEPXBTzBL}C0TRP zPMC{uZ8vwFUjdPxRR{`Ab2joZey+_0c!`?inqXvGS68}ENkmG5;xqlE9a}R?3sFul85VhW!=fH0yuA0m135P)LaBKt^m&} zS7NtUDu=sI*wM0n+}dX|Ubqtuth1GTT9Rt~xqzGL)u4!j+a*J}@1ytHGJ`UMOLdf1 zu;3m9b#FH%v+1!R@_tH9=g!Wo0au5bI#2_AX9AC;r^B&&Xm@W^OlPp}LOu6}3yow| zJnBGs_0t#mne%V9x$!e{-6S^n5;|>5@&LC32bB!rkr z%!|h1tl}JblS(qFRstQiWo(C>k)!2DQ~WizIDVgQHGxN4IQHh%w>W**0gtCa`O)(SBDk z1}5N=D=&(HBdeVVVsa5@&P%S+U6l3JBMUqpSNKu?F($V1&MkAH$AenVtxFKCipGYM zz+YTF%3NxX+&E>o`_}Ilg{&>7+->Tek`}$0_jJUC2zplFlAQUOqsBmDeZI~&0~Ony zxovfEXe#S6Gf1;ZmKFwq%4GmCZCwQ*m*chTY)M)oBucWD;K?eZkQps&5HEXNALFIMp!DHC8smB>MS4S!09|XTGwuAw z2b!fU3NrW@VdUXPRBfa~Rapj4e(Y6#61jMi}U?o7YSr|8&e@=~op?jb&tF z9c<=?&S6(G$;!j%x9NHRQ1)yan{dEQGxcJ#%q68s5oP{4#KGzdv_Ayg0A06lW)3?n zA`u5pOcsYke&r)Kh~La{ieo~i1E#3_&Rkv$GC;`tzc`7UnrfLLnW3cy>cLAh8Bi>% zvt^|5f{FjE*aAlqbZKQm&6ecZ#plxtAStWw%#C{Z9#M5JremF{Lb~Au#evn@HCJN+ zXa3`cs*$XyEgj#NI`Zmjw}RKLXJ2&9&Kj`yzc-{G%CXO0j9;?PZZ4!4mv&2)p*2g? zLl4S<9^?onGEJ!df?)- zNv}>87$GT>OlZ6jPF-Wfq3IFJIft?qPPTcZS?8M2#WVY!g>B_pxG`C|mrW;v6uXx& zH>6$lzLWO@mbaBGG!^f&6Utn{{8s#(^8JrXYwrcYNv|PalJU>_BX%M(R!+MI2pT** zG)FN8V(b4VCQvwDH*Oc*Gwq^zwT^_RRKt;3T)NF7bjM8kMpP^`u-x@jx~Cy+q1q$C*NGXrpeqXQu9K+ z9=bi`Q>VmO#Bs56f6(mfP@wI1_{2>NijMAWtaKS=P{6s++|~to)Uj)1HCC(ggVh5j zla5a4si}NPWc%^u<|!*UbUwZQsq+C5WzNg%oB4@v=E>sRz&z-;S1Ar3siV{J-8;q8oMZC44F3SnfAdIZDh+rpMdHtYQP1< z$jNA@H0m|#wHlBPO0(04ndXjmEr$vuuQB#kC}i^uxlxmQfS?PDv$X1Z=&NavRfcLg zVQa;+^E49&+ln(yG#ANF{L7)-vKU_ZLrj-rL`sLvnhtsuEsL#95PQg%WkFg`ZxOq5 z$%Y~F;Dch}lRQ4feTcQ9y4a#)%{Gh+#AFskV8lCBg|Jsphc88 z_r{O^mpl=SQMD|>(;(Ck@2t#J5wU6o3ei~iYLfiTeotoPR~ph}tMU;XzNTxogXX3a zLyw&!HHW^goU6H6+yDu|yM?dzFp#||p^`h4TE)uzNM>ROt{v+zzzsLGP{2&U&_Xm6 z2iB$^(bb|pSg&md8PBKy`|7Zx)LCGPCzun?8Cl9ncNjk#=V@5e%M@IE-#r*T zg(vlGh619es+IrSM}o%>tqw^bx|x^^>EO5G^-=z157Fn8Zu`4sB_*JW=b)`FQu_MN zFfNscyMP^shs#@_^+W8V_rPFlB2BXzD_7vj6nN2--=b6+LUud}B)wE5VGz=XEjiRi zt13^}EL~+HW$3j7HL$c-4eUK11d01V51)4myBbPrId}s`yl< zT?2dj;|D4>m#eG67)pCn-y{$7fuh1JVLADF47M(Z@0yc(j4SZ+ov82;KT`4+;V5gh z&m@z24)Q@@zW{oiEKivQH*lxZ`2#Ii$HELY?vglF-Y6c_o_I&YhRF|Qgm`9c!qIs^ zs=k$JbN3DY*AKZh%$77eT5dbmiJc$4z>RuVfS;5O50Rjt28f6`oShq={`biYQR3Yq1n-wU!V{&r<37h5oH@ec!s2D z^Ie6@6yX!kK>u_XzA@hF=2wLY@C`uHS9>fGudp`;N#O>W`}+v`SDQnE@<>a8fd-u% z)x$}`C#yMM%cl}_Fik(YixbhqrXKyR6PkuOH&*|C%}+IFFFD~Ilzq2CIGEz=rf|;O za1x~Sv2V{YT_7@In4(&Br4o`q-Nr%MsV5(4L9u3q>DSCfiv>rmK+MlH9aqtDv2lbn zyVkgv2G-AJPR zRd#$b@E8;wZB>{dj@JRx^tp(^&eT0kw`g@f0=SP{dN9sh9r!gi5F+u5<2 zvF6X~TRZJeh!K?9SL12-&)3gDynwC^W9mI)#ahPh-ubguI<8%g+PI{mOlBJ{UKxdz zzgba8xbMxMz34HAwG4abUe|&9R~1A6GxajR=TP zN}z)hdru$=gCThuyz14Qx+wS|!A|~d5kb+1_P0rN-(xaFgvT{(I~DkayrJJ9$ZbE> zZ{yciInS%e-`TFU!BjOY{RdxW=T+C zGOmEfFrk>(^{h91LdnKbcIn**7rp!$&pqbxrWx=#_&6#PUwU$?Msx>rd$sf^uAF8S z$ILZ9=xC^;Ca0r1^v`|Q6h5A(NKY31)ct=_a_6~6I0YoXzp4@7nL3b9FjGNAEP3@h=gzkr_jG19LRoiRye%6QJ_cYiabr0(@b zB8@^qe<~4B$0#+ng^6wGJ`1}KH<+^+N%MSki{MaEtJ>Jj@Z_8ifApRqPI^pc%rqn? z34bbCPe4Ix7VGl>hsh$~3`h34ihb_vg1O%R282-{=ydn$mU+ zL&Ih1)+`oM?(U2a$seM2QF3vYE&1Ostxk!4M$@&Ve@2e|8<%xFZq0cDQAkTZijc`f zPEr=o6M6$uK?fApSE-Plx4W)FPmP$7yWjlhq6joxeV4)cHcuZcMJ^-1ueIy9a9vKe z{pontsSwS&Uqz~0bUSr;>)hMgj_LPj#uy{AO8Di=OL~89Cq9Oz0A!m63u- zw(CR8kjn6qbMBhWdRxm{0@~K=DR+bw5sCORN`9({FbFk_W-ua*E1x8^zbg@c{da5X zJ=Ujl?aj51zj!jeeTx_xaK#PLC74+gNVfvsZZgxx9nYigEetd6l~r}w&TMsc;fj9R zHL5I(i;^chcqY=NGFPt9rECzBrQ%T7?-oA3zHXkq7Ha#BkJ&D+wrIcW0awYTF@_Nf z@3m)^Qv$+XRz#pccM%M>wJk$9C{FYyg`F46f2@T|I7L(+=t?3b81{5Qk83eCBPoS5 z1=fEG=Fg$|_@WORmy8pe%1R|gMBF4$?!iJ5d?$z+{Hpz<%+Ujm<2N%~qce&{aDD{m z_o@(FKzy90i$2*v2N!38q!|bPm)Gxf96!6u`zAo45M7!5(0LpEPbv);SFV zl$Wr~>%S|V7C0TMyS(&?cLnm6^UVipG^1fyX>lgK_c9MwmeZ?j5|b}-Tg>#!2KInm zG~u%8cVVAFb$5o)B%U}_=qBY%5?+vCx#vS1CWe&| zL^A$P;+dD;pnb~0plis{BwhgqSU|lJj#&K2qTl)V)BexJub5Eas_u@G%35AkQaJI2 zdhUdOqcWQ#F8whLFuS2w_P|56H4%RM((@g^peIedyCm&nI1d~j2*7Qj0|%Fj%On?x z$W2Bb3eWU@%GVnUD{aoltJ)8+?W2CF+%vaeR3m zb6lTWSdJjol!jhTTv0xd>VG}1uSVzvKJlMDdCM`E!TOK2Xed^=jlUaji!A@oK_KWu z{YtZaY+3L2{{%z=yZv&{<&qi`DqQWR7Sv~9`>YC(O~626bZ8*c(J?rXLgTE1_e{II z#>>(g2g2{)JGfa6#PzEH5ejt-E+&V?F&!KO<0ur)x_47|Y3B+LN4g`i4K_(u9w4zm z%m&-fi_xKhOh;EZ66=E$8e6Hx2ev=RHJ+4zUu8!q<*yO~j*yIyDnM{Uq!b+*2yQSo z4%)AAzSOSEhQs{quKYbx<}%e169hzl@Vwl zAF2-_M~4P7936uL?YB5<+qJ^8D7X0MZ|&|g*y)zseMSR;9k$5Pp@HDe>r8|8Tby<6 zHZLpA;>jD<-ASz{uvIs5GYt*ofh~uBlcGZd8IG>F`K%36+{!BJJ>T?ri@$46Ee5;Z zDNij%1NmTwt5S4mAj8oWPc7C4DHeL97XLUOef}J!7EjxyE%qIctJ?;9vT>h{3aC`e*qfgG?S7BM+2j_KeE4c6w!2ET5^k6rllkqO&3`-}KF4c(iQ Zi$y<-A9cQa=K1F6Usr#gVgM8h0Ar`WMbQ8N delta 51794 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 diff --git a/create.sql b/create.sql index 8f742ae..ddf6047 100644 --- a/create.sql +++ b/create.sql @@ -324,7 +324,6 @@ create table arriendo fecha_devolucion_estimada date not null, fecha_devolucion_real date, multa int, - costo_total int, inserted_at timestamp default CURRENT_TIMESTAMP, foreign key (trabajador_id) references trabajador (id) on delete restrict on update cascade, foreign key (cliente_id) references cliente (id) on delete restrict on update cascade diff --git a/src/main/java/xyz/danielcortes/controllers/libro/LibroCreateController.java b/src/main/java/xyz/danielcortes/controllers/libro/LibroCreateController.java index 09590b0..286f8b5 100644 --- a/src/main/java/xyz/danielcortes/controllers/libro/LibroCreateController.java +++ b/src/main/java/xyz/danielcortes/controllers/libro/LibroCreateController.java @@ -1,7 +1,6 @@ package xyz.danielcortes.controllers.libro; import java.time.Year; -import java.util.HashSet; import java.util.List; import javax.swing.DefaultListModel; import javax.swing.JComboBox; @@ -54,10 +53,40 @@ public class LibroCreateController extends BaseController { this.setupListeners(); } - @Override - public void show() { - this.reload(); - this.view.getIsbnField().requestFocus(); + private void loadIdiomasList() { + List idiomas = this.idiomaRepository.getAll(); + DefaultListModel model = this.view.getIdiomasModel(); + model.clear(); + for (Idioma idioma : idiomas) { + model.addElement(idioma); + } + } + + private void loadCategoriasList() { + List categorias = this.categoriaRepository.getAll(); + DefaultListModel model = this.view.getCategoriasModel(); + model.clear(); + for (Categoria categoria : categorias) { + model.addElement(categoria); + } + } + + private void loadAutorList() { + List autores = this.autorRepository.getAll(); + DefaultListModel model = this.view.getAutoresModel(); + model.clear(); + for (Autor autor : autores) { + model.addElement(autor); + } + } + + private void loadEditorialCombo() { + List editoriales = this.editorialRepository.getAll(); + JComboBox combobox = this.view.getEditorialCombo(); + combobox.removeAllItems(); + for (Editorial editorial : editoriales) { + combobox.addItem(editorial); + } } private void setupListeners() { @@ -138,9 +167,9 @@ public class LibroCreateController extends BaseController { libro.setNumeroPaginas(Integer.parseInt(numeroPaginas)); libro.setAnoPublicacion(Year.of(Integer.parseInt(anoPublicacion))); libro.setPrecioReferencia(Integer.parseInt(precioReferencial)); - libro.setIdiomas(new HashSet<>(idiomas)); - libro.setAutores(new HashSet<>(autores)); - libro.setCategorias(new HashSet<>(categorias)); + libro.setIdiomas(idiomas); + libro.setAutores(autores); + libro.setCategorias(categorias); libro.setEditorial(editorial); this.libroRepository.save(libro); @@ -148,6 +177,12 @@ public class LibroCreateController extends BaseController { this.getParentController().showCard(PanelName.LIBRO_SEARCH); } + @Override + public void show() { + this.reload(); + this.view.getIsbnField().requestFocus(); + } + private void reload() { this.loadIdiomasList(); this.loadCategoriasList(); @@ -155,42 +190,6 @@ public class LibroCreateController extends BaseController { this.loadEditorialCombo(); } - private void loadIdiomasList() { - List idiomas = this.idiomaRepository.getAll(); - DefaultListModel model = this.view.getIdiomasModel(); - model.clear(); - for (Idioma idioma : idiomas) { - model.addElement(idioma); - } - } - - private void loadCategoriasList() { - List categorias = this.categoriaRepository.getAll(); - DefaultListModel model = this.view.getCategoriasModel(); - model.clear(); - for (Categoria categoria : categorias) { - model.addElement(categoria); - } - } - - private void loadAutorList() { - List autores = this.autorRepository.getAll(); - DefaultListModel model = this.view.getAutoresModel(); - model.clear(); - for (Autor autor : autores) { - model.addElement(autor); - } - } - - private void loadEditorialCombo() { - List editoriales = this.editorialRepository.getAll(); - JComboBox combobox = this.view.getEditorialCombo(); - combobox.removeAllItems(); - for (Editorial editorial : editoriales) { - combobox.addItem(editorial); - } - } - @Override public BasePanel getView() { return this.view; diff --git a/src/main/java/xyz/danielcortes/controllers/libro/LibroUpdateController.java b/src/main/java/xyz/danielcortes/controllers/libro/LibroUpdateController.java index a3fcf46..e3207a3 100644 --- a/src/main/java/xyz/danielcortes/controllers/libro/LibroUpdateController.java +++ b/src/main/java/xyz/danielcortes/controllers/libro/LibroUpdateController.java @@ -1,7 +1,6 @@ package xyz.danielcortes.controllers.libro; import java.time.Year; -import java.util.HashSet; import java.util.List; import javax.swing.DefaultListModel; import javax.swing.JComboBox; @@ -49,43 +48,10 @@ public class LibroUpdateController extends BaseController { this.setupListeners(); } - public void setLibro(Libro libro) { - this.libro = libro; - } - - @Override - public void show() { - this.reload(); - } - private void setupListeners() { this.view.getActualizarButton().addActionListener(e -> this.update()); } - private void fillLibro() { - if (this.libro == null) - return; - - this.view.getIsbnField().setText(this.libro.getIsbn()); - this.view.getTituloField().setText(this.libro.getTitulo()); - this.view.getPaginasField().setText(String.valueOf(this.libro.getNumeroPaginas())); - this.view.getAnoPublicacionField().setText(String.valueOf(this.libro.getAnoPublicacion())); - this.view.getPrecioReferenciaField().setText(String.valueOf(this.libro.getPrecioReferencia())); - JListUtils.setSelectedValues( - this.view.getIdiomasList(), - this.libro.getIdiomas() - ); - JListUtils.setSelectedValues( - this.view.getAutoresList(), - this.libro.getAutores() - ); - JListUtils.setSelectedValues( - this.view.getCategoriasList(), - this.libro.getCategorias() - ); - this.view.getEditorialCombo().setSelectedItem(this.libro.getEditorial()); - } - private void update() { ValidationResult libroValidation = this.validator.validateLibro(this.libro); if (libroValidation.hasError()) { @@ -164,15 +130,24 @@ public class LibroUpdateController extends BaseController { this.libro.setNumeroPaginas(Integer.parseInt(numeroPaginas)); this.libro.setAnoPublicacion(Year.of(Integer.parseInt(anoPublicacion))); this.libro.setPrecioReferencia(Integer.parseInt(precioReferencial)); - this.libro.setIdiomas(new HashSet<>(idiomas)); - this.libro.setAutores(new HashSet<>(autores)); - this.libro.setCategorias(new HashSet<>(categorias)); + this.libro.setIdiomas(idiomas); + this.libro.setAutores(autores); + this.libro.setCategorias(categorias); this.libro.setEditorial(editorial); this.libroRepository.update(this.libro); this.getParentController().showCard(PanelName.LIBRO_SEARCH); } + public void setLibro(Libro libro) { + this.libro = libro; + } + + @Override + public void show() { + this.reload(); + } + private void reload() { this.loadAutorList(); this.loadCategoriasList(); @@ -181,12 +156,12 @@ public class LibroUpdateController extends BaseController { this.fillLibro(); } - private void loadIdiomasList() { - List idiomas = this.idiomaRepository.getAll(); - DefaultListModel model = this.view.getIdiomasModel(); + private void loadAutorList() { + List autores = this.autorRepository.getAll(); + DefaultListModel model = this.view.getAutoresModel(); model.clear(); - for (Idioma idioma : idiomas) { - model.addElement(idioma); + for (Autor autor : autores) { + model.addElement(autor); } } @@ -199,15 +174,6 @@ public class LibroUpdateController extends BaseController { } } - private void loadAutorList() { - List autores = this.autorRepository.getAll(); - DefaultListModel model = this.view.getAutoresModel(); - model.clear(); - for (Autor autor : autores) { - model.addElement(autor); - } - } - private void loadEditorialCombo() { List editoriales = this.editorialRepository.getAll(); JComboBox combobox = this.view.getEditorialCombo(); @@ -217,6 +183,39 @@ public class LibroUpdateController extends BaseController { } } + private void loadIdiomasList() { + List idiomas = this.idiomaRepository.getAll(); + DefaultListModel model = this.view.getIdiomasModel(); + model.clear(); + for (Idioma idioma : idiomas) { + model.addElement(idioma); + } + } + + private void fillLibro() { + if (this.libro == null) + return; + + this.view.getIsbnField().setText(this.libro.getIsbn()); + this.view.getTituloField().setText(this.libro.getTitulo()); + this.view.getPaginasField().setText(String.valueOf(this.libro.getNumeroPaginas())); + this.view.getAnoPublicacionField().setText(String.valueOf(this.libro.getAnoPublicacion())); + this.view.getPrecioReferenciaField().setText(String.valueOf(this.libro.getPrecioReferencia())); + JListUtils.setSelectedValues( + this.view.getIdiomasList(), + this.libro.getIdiomas() + ); + JListUtils.setSelectedValues( + this.view.getAutoresList(), + this.libro.getAutores() + ); + JListUtils.setSelectedValues( + this.view.getCategoriasList(), + this.libro.getCategorias() + ); + this.view.getEditorialCombo().setSelectedItem(this.libro.getEditorial()); + } + @Override public BasePanel getView() { return this.view; diff --git a/src/main/java/xyz/danielcortes/controllers/libro/LibroViewController.java b/src/main/java/xyz/danielcortes/controllers/libro/LibroViewController.java index f655ef2..d951cde 100644 --- a/src/main/java/xyz/danielcortes/controllers/libro/LibroViewController.java +++ b/src/main/java/xyz/danielcortes/controllers/libro/LibroViewController.java @@ -1,16 +1,12 @@ package xyz.danielcortes.controllers.libro; -import java.util.List; import javax.swing.DefaultListModel; -import javax.swing.JComboBox; import xyz.danielcortes.controllers.LaunchController; import xyz.danielcortes.framework.BaseController; import xyz.danielcortes.framework.BasePanel; -import xyz.danielcortes.framework.JListUtils; import xyz.danielcortes.framework.PanelName; import xyz.danielcortes.models.Autor; import xyz.danielcortes.models.Categoria; -import xyz.danielcortes.models.Editorial; import xyz.danielcortes.models.Idioma; import xyz.danielcortes.models.Libro; import xyz.danielcortes.repository.AutorRepository; @@ -40,29 +36,48 @@ public class LibroViewController extends BaseController { this.setupListeners(); } - @Override - public void show() { - this.reload(); - } - - public void setLibro(Libro libro) { - this.libro = libro; - } - private void setupListeners() { this.view.getVolverButton().addActionListener(e -> { this.getParentController().showCard(PanelName.LIBRO_SEARCH); }); } + @Override + public void show() { + this.reload(); + } + private void reload() { this.loadAutorList(); this.loadCategoriasList(); - this.loadEditorialCombo(); this.loadIdiomasList(); this.fillLibro(); } + private void loadAutorList() { + DefaultListModel model = this.view.getAutoresModel(); + model.clear(); + for (Autor autor : this.libro.getAutores()) { + model.addElement(autor); + } + } + + private void loadCategoriasList() { + DefaultListModel model = this.view.getCategoriasModel(); + model.clear(); + for (Categoria categoria : this.libro.getCategorias()) { + model.addElement(categoria); + } + } + + private void loadIdiomasList() { + DefaultListModel model = this.view.getIdiomasModel(); + model.clear(); + for (Idioma idioma : this.libro.getIdiomas()) { + model.addElement(idioma); + } + } + private void fillLibro() { if (this.libro == null) return; @@ -72,50 +87,15 @@ public class LibroViewController extends BaseController { this.view.getPaginasField().setText(String.valueOf(this.libro.getNumeroPaginas())); this.view.getAnoPublicacionField().setText(String.valueOf(this.libro.getAnoPublicacion())); this.view.getPrecioReferenciaField().setText(String.valueOf(this.libro.getPrecioReferencia())); - JListUtils.setSelectedValues(this.view.getIdiomasList(), this.libro.getIdiomas()); - JListUtils.setSelectedValues(this.view.getAutoresList(), this.libro.getAutores()); - JListUtils.setSelectedValues(this.view.getCategoriasList(), this.libro.getCategorias()); - this.view.getEditorialCombo().setSelectedItem(this.libro.getEditorial()); - } - - private void loadIdiomasList() { - List idiomas = this.idiomaRepository.getAll(); - DefaultListModel model = this.view.getIdiomasModel(); - model.clear(); - for (Idioma idioma : idiomas) { - model.addElement(idioma); - } - } - - private void loadCategoriasList() { - List categorias = this.categoriaRepository.getAll(); - DefaultListModel model = this.view.getCategoriasModel(); - model.clear(); - for (Categoria categoria : categorias) { - model.addElement(categoria); - } - } - - private void loadAutorList() { - List autores = this.autorRepository.getAll(); - DefaultListModel model = this.view.getAutoresModel(); - model.clear(); - for (Autor autor : autores) { - model.addElement(autor); - } - } - - private void loadEditorialCombo() { - List editoriales = this.editorialRepository.getAll(); - JComboBox combobox = this.view.getEditorialCombo(); - combobox.removeAllItems(); - for (Editorial editorial : editoriales) { - combobox.addItem(editorial); - } + this.view.getEditorialField().setText(this.libro.getEditorial().toString()); } @Override public BasePanel getView() { return this.view; } + + public void setLibro(Libro libro) { + this.libro = libro; + } } diff --git a/src/main/java/xyz/danielcortes/framework/BaseRepository.java b/src/main/java/xyz/danielcortes/framework/BaseRepository.java index 7219add..7cdc2c1 100644 --- a/src/main/java/xyz/danielcortes/framework/BaseRepository.java +++ b/src/main/java/xyz/danielcortes/framework/BaseRepository.java @@ -1,6 +1,6 @@ package xyz.danielcortes.framework; -import java.util.List; +import java.util.Collection; import javax.persistence.EntityManager; import javax.persistence.PersistenceException; @@ -51,7 +51,7 @@ public abstract class BaseRepository { this.em.getTransaction().commit(); } - public void delete(List entities) { + public void delete(Collection entities) { this.em.getTransaction().begin(); try { diff --git a/src/main/java/xyz/danielcortes/framework/JListUtils.java b/src/main/java/xyz/danielcortes/framework/JListUtils.java index 0445ada..2c56310 100644 --- a/src/main/java/xyz/danielcortes/framework/JListUtils.java +++ b/src/main/java/xyz/danielcortes/framework/JListUtils.java @@ -1,11 +1,12 @@ package xyz.danielcortes.framework; -import java.util.Set; +import java.util.List; import javax.swing.JList; import javax.swing.ListModel; public class JListUtils { - public static void setSelectedValues(JList list, Set values) { + + public static void setSelectedValues(JList list, List values) { list.clearSelection(); for (Object value : values) { int index = getIndex(list.getModel(), value); diff --git a/src/main/java/xyz/danielcortes/models/Arriendo.java b/src/main/java/xyz/danielcortes/models/Arriendo.java new file mode 100644 index 0000000..c547e4f --- /dev/null +++ b/src/main/java/xyz/danielcortes/models/Arriendo.java @@ -0,0 +1,154 @@ +package xyz.danielcortes.models; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; +import javax.persistence.ManyToMany; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "arriendo") +public class Arriendo { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + private Integer id; + + @Column(name = "costo_arriendo", nullable = false) + private Integer costoArriendo; + + @Column(name = "fecha_arriendo", nullable = false) + private LocalDate fechaArriendo; + + @Column(name = "fecha_devolucion_estimada", nullable = false) + private LocalDate fechaDevolucionEstimada; + + @Column(name = "fecha_devolucion_real") + private LocalDate fechaDevolucionReal; + + @Column(name = "multa") + private Integer multa; + + @ManyToOne + @JoinColumn(name = "trabajador_id", nullable = false) + private Trabajador trabajador; + + @ManyToOne + @JoinColumn(name = "cliente_id", nullable = false) + private Trabajador Cliente; + + @ManyToMany + @JoinTable( + name = "ejemplar_arriendo", + joinColumns = @JoinColumn(name = "arriendo_id", referencedColumnName = "id"), + inverseJoinColumns = @JoinColumn(name = "ejemplar_id", referencedColumnName = "id")) + private List ejemplares; + + public Integer getId() { + return this.id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getCostoArriendo() { + return this.costoArriendo; + } + + public void setCostoArriendo(Integer costoArriendo) { + this.costoArriendo = costoArriendo; + } + + public LocalDate getFechaArriendo() { + return this.fechaArriendo; + } + + public void setFechaArriendo(LocalDate fechaArriendo) { + this.fechaArriendo = fechaArriendo; + } + + public LocalDate getFechaDevolucionEstimada() { + return this.fechaDevolucionEstimada; + } + + public void setFechaDevolucionEstimada(LocalDate fechaDevolucionEstimada) { + this.fechaDevolucionEstimada = fechaDevolucionEstimada; + } + + public LocalDate getFechaDevolucionReal() { + return this.fechaDevolucionReal; + } + + public void setFechaDevolucionReal(LocalDate fechaDevolucionReal) { + this.fechaDevolucionReal = fechaDevolucionReal; + } + + public Integer getMulta() { + return this.multa; + } + + public void setMulta(Integer multa) { + this.multa = multa; + } + + public Trabajador getTrabajador() { + return this.trabajador; + } + + public void setTrabajador(Trabajador trabajador) { + this.trabajador = trabajador; + } + + public Trabajador getCliente() { + return this.Cliente; + } + + public void setCliente(Trabajador cliente) { + this.Cliente = cliente; + } + + public List getEjemplares() { + if (this.ejemplares == null) + this.ejemplares = new ArrayList<>(); + return this.ejemplares; + } + + public void setEjemplares(List ejemplares) { + this.ejemplares = ejemplares; + } + + @Override + public int hashCode() { + return Objects.hash(this.id, this.costoArriendo, this.fechaArriendo, this.fechaDevolucionEstimada, this.fechaDevolucionReal, this.multa, + this.trabajador, this.Cliente, this.ejemplares); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Arriendo)) + return false; + Arriendo arriendo = (Arriendo) o; + return Objects.equals(this.id, arriendo.id) && + Objects.equals(this.costoArriendo, arriendo.costoArriendo) && + Objects.equals(this.fechaArriendo, arriendo.fechaArriendo) && + Objects.equals(this.fechaDevolucionEstimada, arriendo.fechaDevolucionEstimada) && + Objects.equals(this.fechaDevolucionReal, arriendo.fechaDevolucionReal) && + Objects.equals(this.multa, arriendo.multa) && + Objects.equals(this.trabajador, arriendo.trabajador) && + Objects.equals(this.Cliente, arriendo.Cliente) && + Objects.equals(this.ejemplares, arriendo.ejemplares); + } +} diff --git a/src/main/java/xyz/danielcortes/models/Autor.java b/src/main/java/xyz/danielcortes/models/Autor.java index f0a8fa9..5f74192 100644 --- a/src/main/java/xyz/danielcortes/models/Autor.java +++ b/src/main/java/xyz/danielcortes/models/Autor.java @@ -1,7 +1,8 @@ package xyz.danielcortes.models; -import java.util.HashSet; -import java.util.Set; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -29,7 +30,7 @@ public class Autor { private String apellidoMaterno; @ManyToMany(mappedBy = "autores") - private Set libros; + private List libros; public Integer getId() { return this.id; @@ -63,17 +64,36 @@ public class Autor { this.apellidoMaterno = apellidoMaterno; } - public Set getLibros() { + public List getLibros() { if (this.libros == null) { - this.libros = new HashSet<>(); + this.libros = new ArrayList<>(); } return this.libros; } - public void setLibros(Set libros) { + public void setLibros(List libros) { this.libros = libros; } + @Override + public int hashCode() { + return Objects.hash(this.id, this.nombre, this.apellidoPaterno, this.apellidoMaterno, this.libros); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Autor)) + return false; + Autor autor = (Autor) o; + return Objects.equals(this.id, autor.id) && + Objects.equals(this.nombre, autor.nombre) && + Objects.equals(this.apellidoPaterno, autor.apellidoPaterno) && + Objects.equals(this.apellidoMaterno, autor.apellidoMaterno) && + Objects.equals(this.libros, autor.libros); + } + @Override public String toString() { return this.nombre + " " + this.apellidoPaterno + " " + this.apellidoMaterno; diff --git a/src/main/java/xyz/danielcortes/models/Boleta.java b/src/main/java/xyz/danielcortes/models/Boleta.java new file mode 100644 index 0000000..8b5c8c3 --- /dev/null +++ b/src/main/java/xyz/danielcortes/models/Boleta.java @@ -0,0 +1,108 @@ +package xyz.danielcortes.models; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +@Entity +@Table(name = "boleta") +public class Boleta { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id") + private Integer id; + + @Column(name = "folio") + private String folio; + + @Column(name = "precio_neto") + private Integer precioNeto; + + @Column(name = "precio_iva") + private Integer precioIVA; + + @Column(name = "fecha_venta") + private LocalDate fechaVenta; + + @OneToMany(mappedBy = "boleta") + private List ventas; + + public Integer getId() { + return this.id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getFolio() { + return this.folio; + } + + public void setFolio(String folio) { + this.folio = folio; + } + + public Integer getPrecioNeto() { + return this.precioNeto; + } + + public void setPrecioNeto(Integer precioNeto) { + this.precioNeto = precioNeto; + } + + public Integer getPrecioIVA() { + return this.precioIVA; + } + + public void setPrecioIVA(Integer precioIVA) { + this.precioIVA = precioIVA; + } + + public LocalDate getFechaVenta() { + return this.fechaVenta; + } + + public void setFechaVenta(LocalDate fechaVenta) { + this.fechaVenta = fechaVenta; + } + + public List getVentas() { + if (this.ventas == null) + this.ventas = new ArrayList<>(); + return this.ventas; + } + + public void setVentas(List ventas) { + this.ventas = ventas; + } + + @Override + public int hashCode() { + return Objects.hash(this.id, this.folio, this.precioNeto, this.precioIVA, this.fechaVenta, this.ventas); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Boleta)) + return false; + Boleta boleta = (Boleta) o; + return Objects.equals(this.id, boleta.id) && + Objects.equals(this.folio, boleta.folio) && + Objects.equals(this.precioNeto, boleta.precioNeto) && + Objects.equals(this.precioIVA, boleta.precioIVA) && + Objects.equals(this.fechaVenta, boleta.fechaVenta) && + Objects.equals(this.ventas, boleta.ventas); + } +} diff --git a/src/main/java/xyz/danielcortes/models/Categoria.java b/src/main/java/xyz/danielcortes/models/Categoria.java index 2f2dca5..d40ec69 100644 --- a/src/main/java/xyz/danielcortes/models/Categoria.java +++ b/src/main/java/xyz/danielcortes/models/Categoria.java @@ -1,7 +1,8 @@ package xyz.danielcortes.models; -import java.util.HashSet; -import java.util.Set; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -23,7 +24,7 @@ public class Categoria { private String nombre; @ManyToMany(mappedBy = "categorias") - private Set libros; + private List libros; public Integer getId() { return this.id; @@ -41,17 +42,34 @@ public class Categoria { this.nombre = nombre; } - public Set getLibros() { + public List getLibros() { if (this.libros == null) { - this.libros = new HashSet<>(); + this.libros = new ArrayList<>(); } return this.libros; } - public void setLibros(Set libros) { + public void setLibros(List libros) { this.libros = libros; } + @Override + public int hashCode() { + return Objects.hash(this.id, this.nombre, this.libros); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Categoria)) + return false; + Categoria categoria = (Categoria) o; + return Objects.equals(this.id, categoria.id) && + Objects.equals(this.nombre, categoria.nombre) && + Objects.equals(this.libros, categoria.libros); + } + @Override public String toString() { return this.nombre; diff --git a/src/main/java/xyz/danielcortes/models/Cliente.java b/src/main/java/xyz/danielcortes/models/Cliente.java index c5bdee5..3243a91 100644 --- a/src/main/java/xyz/danielcortes/models/Cliente.java +++ b/src/main/java/xyz/danielcortes/models/Cliente.java @@ -3,12 +3,14 @@ package xyz.danielcortes.models; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToMany; +import javax.persistence.OneToMany; import javax.persistence.Table; @Entity @@ -44,6 +46,9 @@ public class Cliente { @ManyToMany(mappedBy = "clientes") private List direcciones; + @OneToMany(mappedBy = "cliente") + private List ventas; + public Integer getId() { return this.id; } @@ -121,4 +126,40 @@ public class Cliente { public void setDirecciones(List direcciones) { this.direcciones = direcciones; } + + public List getVentas() { + if (this.ventas == null) + this.ventas = new ArrayList<>(); + return this.ventas; + } + + public void setVentas(List ventas) { + this.ventas = ventas; + } + + @Override + public int hashCode() { + return Objects.hash(this.id, this.rut, this.nombre, this.apellidoPaterno, this.apellidoMaterno, this.fechaNacimiento, this.correos, + this.telefonos, + this.direcciones, this.ventas); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Cliente)) + return false; + Cliente cliente = (Cliente) o; + return Objects.equals(this.id, cliente.id) && + Objects.equals(this.rut, cliente.rut) && + Objects.equals(this.nombre, cliente.nombre) && + Objects.equals(this.apellidoPaterno, cliente.apellidoPaterno) && + Objects.equals(this.apellidoMaterno, cliente.apellidoMaterno) && + Objects.equals(this.fechaNacimiento, cliente.fechaNacimiento) && + Objects.equals(this.correos, cliente.correos) && + Objects.equals(this.telefonos, cliente.telefonos) && + Objects.equals(this.direcciones, cliente.direcciones) && + Objects.equals(this.ventas, cliente.ventas); + } } diff --git a/src/main/java/xyz/danielcortes/models/Compra.java b/src/main/java/xyz/danielcortes/models/Compra.java new file mode 100644 index 0000000..9f07b78 --- /dev/null +++ b/src/main/java/xyz/danielcortes/models/Compra.java @@ -0,0 +1,92 @@ +package xyz.danielcortes.models; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; +import javax.persistence.ManyToMany; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "compra") +public class Compra { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id") + private Integer id; + + @ManyToOne + @JoinColumn(name = "factura_id") + private Factura factura; + + @ManyToOne + @JoinColumn(name = "distribuidor_id") + private Distribuidor distribuidor; + + @ManyToMany + @JoinTable( + name = "ejemplar_compra", + joinColumns = @JoinColumn(name = "compra_id", referencedColumnName = "id"), + inverseJoinColumns = @JoinColumn(name = "ejemplar_id", referencedColumnName = "id")) + private List ejemplares; + + public Integer getId() { + return this.id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Factura getFactura() { + return this.factura; + } + + public void setFactura(Factura factura) { + this.factura = factura; + } + + public Distribuidor getDistribuidor() { + return this.distribuidor; + } + + public void setDistribuidor(Distribuidor distribuidor) { + this.distribuidor = distribuidor; + } + + public List getEjemplares() { + if (this.ejemplares == null) + this.ejemplares = new ArrayList<>(); + return this.ejemplares; + } + + public void setEjemplares(List ejemplares) { + this.ejemplares = ejemplares; + } + + @Override + public int hashCode() { + return Objects.hash(this.id, this.factura, this.distribuidor, this.ejemplares); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Compra)) + return false; + Compra compra = (Compra) o; + return Objects.equals(this.id, compra.id) && + Objects.equals(this.factura, compra.factura) && + Objects.equals(this.distribuidor, compra.distribuidor) && + Objects.equals(this.ejemplares, compra.ejemplares); + } +} diff --git a/src/main/java/xyz/danielcortes/models/Correo.java b/src/main/java/xyz/danielcortes/models/Correo.java index ded2be9..864c5a1 100644 --- a/src/main/java/xyz/danielcortes/models/Correo.java +++ b/src/main/java/xyz/danielcortes/models/Correo.java @@ -2,6 +2,7 @@ package xyz.danielcortes.models; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -94,4 +95,23 @@ public class Correo { public void setClientes(List clientes) { this.clientes = clientes; } + + @Override + public int hashCode() { + return Objects.hash(this.id, this.correo, this.trabajadores, this.distribuidores, this.clientes); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Correo)) + return false; + Correo correo1 = (Correo) o; + return Objects.equals(this.id, correo1.id) && + Objects.equals(this.correo, correo1.correo) && + Objects.equals(this.trabajadores, correo1.trabajadores) && + Objects.equals(this.distribuidores, correo1.distribuidores) && + Objects.equals(this.clientes, correo1.clientes); + } } diff --git a/src/main/java/xyz/danielcortes/models/Direccion.java b/src/main/java/xyz/danielcortes/models/Direccion.java index c9c2303..71b8c54 100644 --- a/src/main/java/xyz/danielcortes/models/Direccion.java +++ b/src/main/java/xyz/danielcortes/models/Direccion.java @@ -2,6 +2,7 @@ package xyz.danielcortes.models; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -105,4 +106,24 @@ public class Direccion { public void setClientes(List clientes) { this.clientes = clientes; } + + @Override + public int hashCode() { + return Objects.hash(this.id, this.calle, this.numero, this.trabajadores, this.distribuidores, this.clientes); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Direccion)) + return false; + Direccion direccion = (Direccion) o; + return Objects.equals(this.id, direccion.id) && + Objects.equals(this.calle, direccion.calle) && + Objects.equals(this.numero, direccion.numero) && + Objects.equals(this.trabajadores, direccion.trabajadores) && + Objects.equals(this.distribuidores, direccion.distribuidores) && + Objects.equals(this.clientes, direccion.clientes); + } } diff --git a/src/main/java/xyz/danielcortes/models/Distribuidor.java b/src/main/java/xyz/danielcortes/models/Distribuidor.java index 3849825..ccb2a25 100644 --- a/src/main/java/xyz/danielcortes/models/Distribuidor.java +++ b/src/main/java/xyz/danielcortes/models/Distribuidor.java @@ -1,6 +1,8 @@ package xyz.danielcortes.models; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -9,6 +11,7 @@ import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; import javax.persistence.Table; @Entity @@ -35,6 +38,9 @@ public class Distribuidor { @ManyToMany(mappedBy = "distribuidores") private List direcciones; + @OneToMany(mappedBy = "distribuidor") + private List compras; + public Integer getId() { return this.id; } @@ -60,6 +66,8 @@ public class Distribuidor { } public List getCorreos() { + if (this.correos == null) + this.correos = new ArrayList<>(); return this.correos; } @@ -68,6 +76,8 @@ public class Distribuidor { } public List getTelefonos() { + if (this.telefonos == null) + this.telefonos = new ArrayList<>(); return this.telefonos; } @@ -76,10 +86,44 @@ public class Distribuidor { } public List getDirecciones() { + if (this.direcciones == null) + this.direcciones = new ArrayList<>(); + return this.direcciones; } public void setDirecciones(List direcciones) { this.direcciones = direcciones; } + + public List getCompras() { + if (this.compras == null) + this.compras = new ArrayList<>(); + return this.compras; + } + + public void setCompras(List compras) { + this.compras = compras; + } + + @Override + public int hashCode() { + return Objects.hash(this.id, this.rut, this.empresa, this.correos, this.telefonos, this.direcciones, this.compras); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Distribuidor)) + return false; + Distribuidor that = (Distribuidor) o; + return Objects.equals(this.id, that.id) && + Objects.equals(this.rut, that.rut) && + Objects.equals(this.empresa, that.empresa) && + Objects.equals(this.correos, that.correos) && + Objects.equals(this.telefonos, that.telefonos) && + Objects.equals(this.direcciones, that.direcciones) && + Objects.equals(this.compras, that.compras); + } } diff --git a/src/main/java/xyz/danielcortes/models/Editorial.java b/src/main/java/xyz/danielcortes/models/Editorial.java index 28521c4..ce60c8e 100644 --- a/src/main/java/xyz/danielcortes/models/Editorial.java +++ b/src/main/java/xyz/danielcortes/models/Editorial.java @@ -1,6 +1,7 @@ package xyz.danielcortes.models; import java.util.HashSet; +import java.util.Objects; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; @@ -52,6 +53,23 @@ public class Editorial { this.libros = libros; } + @Override + public int hashCode() { + return Objects.hash(this.id, this.nombre, this.libros); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Editorial)) + return false; + Editorial editorial = (Editorial) o; + return Objects.equals(this.id, editorial.id) && + Objects.equals(this.nombre, editorial.nombre) && + Objects.equals(this.libros, editorial.libros); + } + @Override public String toString() { return this.nombre; diff --git a/src/main/java/xyz/danielcortes/models/Ejemplar.java b/src/main/java/xyz/danielcortes/models/Ejemplar.java index 8587717..fa4889d 100644 --- a/src/main/java/xyz/danielcortes/models/Ejemplar.java +++ b/src/main/java/xyz/danielcortes/models/Ejemplar.java @@ -1,11 +1,15 @@ package xyz.danielcortes.models; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; +import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.Table; @@ -29,6 +33,15 @@ public class Ejemplar { @JoinColumn(name = "estado_id") private Estado estado; + @ManyToMany(mappedBy = "ejemplares") + private List arriendos; + + @ManyToMany(mappedBy = "ejemplares") + private List compras; + + @ManyToMany(mappedBy = "ejemplares") + private List ventas; + public Integer getId() { return this.id; } @@ -62,6 +75,57 @@ public class Ejemplar { this.estado = estado; } + public List getArriendos() { + if (this.arriendos == null) + this.arriendos = new ArrayList<>(); + return this.arriendos; + } + + public void setArriendos(List arriendos) { + this.arriendos = arriendos; + } + + public List getCompras() { + if (this.compras == null) + this.compras = new ArrayList<>(); + return this.compras; + } + + public void setCompras(List compras) { + this.compras = compras; + } + + public List getVentas() { + if (this.ventas == null) + this.ventas = new ArrayList<>(); + return this.ventas; + } + + public void setVentas(List ventas) { + this.ventas = ventas; + } + + @Override + public int hashCode() { + return Objects.hash(this.id, this.serie, this.libro, this.estado, this.arriendos, this.compras, this.ventas); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Ejemplar)) + return false; + Ejemplar ejemplar = (Ejemplar) o; + return Objects.equals(this.id, ejemplar.id) && + Objects.equals(this.serie, ejemplar.serie) && + Objects.equals(this.libro, ejemplar.libro) && + Objects.equals(this.estado, ejemplar.estado) && + Objects.equals(this.arriendos, ejemplar.arriendos) && + Objects.equals(this.compras, ejemplar.compras) && + Objects.equals(this.ventas, ejemplar.ventas); + } + @Override public String toString() { return this.serie + " " + this.estado.getNombre(); diff --git a/src/main/java/xyz/danielcortes/models/Empresa.java b/src/main/java/xyz/danielcortes/models/Empresa.java index ae9cd41..3b4c467 100644 --- a/src/main/java/xyz/danielcortes/models/Empresa.java +++ b/src/main/java/xyz/danielcortes/models/Empresa.java @@ -2,6 +2,7 @@ package xyz.danielcortes.models; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -52,6 +53,23 @@ public class Empresa { this.distribuidores = distribuidores; } + @Override + public int hashCode() { + return Objects.hash(this.id, this.nombre, this.distribuidores); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Empresa)) + return false; + Empresa empresa = (Empresa) o; + return Objects.equals(this.id, empresa.id) && + Objects.equals(this.nombre, empresa.nombre) && + Objects.equals(this.distribuidores, empresa.distribuidores); + } + @Override public String toString() { return this.nombre; diff --git a/src/main/java/xyz/danielcortes/models/Estado.java b/src/main/java/xyz/danielcortes/models/Estado.java index 94262f9..38a8af0 100644 --- a/src/main/java/xyz/danielcortes/models/Estado.java +++ b/src/main/java/xyz/danielcortes/models/Estado.java @@ -1,6 +1,7 @@ package xyz.danielcortes.models; import java.util.HashSet; +import java.util.Objects; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; @@ -52,6 +53,23 @@ public class Estado { this.ejemplares = ejemplares; } + @Override + public int hashCode() { + return Objects.hash(this.id, this.nombre, this.ejemplares); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Estado)) + return false; + Estado estado = (Estado) o; + return Objects.equals(this.id, estado.id) && + Objects.equals(this.nombre, estado.nombre) && + Objects.equals(this.ejemplares, estado.ejemplares); + } + @Override public String toString() { return this.nombre; diff --git a/src/main/java/xyz/danielcortes/models/Factura.java b/src/main/java/xyz/danielcortes/models/Factura.java new file mode 100644 index 0000000..f15e57a --- /dev/null +++ b/src/main/java/xyz/danielcortes/models/Factura.java @@ -0,0 +1,108 @@ +package xyz.danielcortes.models; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +@Entity +@Table(name = "factura") +public class Factura { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id") + private Integer id; + + @Column(name = "folio") + private String folio; + + @Column(name = "precio_neto") + private Integer precioNeto; + + @Column(name = "precio_iva") + private Integer precioIVA; + + @Column(name = "fecha_compra") + private LocalDate fechaVenta; + + @OneToMany(mappedBy = "factura") + private List compras; + + public Integer getId() { + return this.id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getFolio() { + return this.folio; + } + + public void setFolio(String folio) { + this.folio = folio; + } + + public Integer getPrecioNeto() { + return this.precioNeto; + } + + public void setPrecioNeto(Integer precioNeto) { + this.precioNeto = precioNeto; + } + + public Integer getPrecioIVA() { + return this.precioIVA; + } + + public void setPrecioIVA(Integer precioIVA) { + this.precioIVA = precioIVA; + } + + public LocalDate getFechaVenta() { + return this.fechaVenta; + } + + public void setFechaVenta(LocalDate fechaVenta) { + this.fechaVenta = fechaVenta; + } + + public List getCompras() { + if (this.compras == null) + this.compras = new ArrayList<>(); + return this.compras; + } + + public void setCompras(List compras) { + this.compras = compras; + } + + @Override + public int hashCode() { + return Objects.hash(this.id, this.folio, this.precioNeto, this.precioIVA, this.fechaVenta, this.compras); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Factura)) + return false; + Factura factura = (Factura) o; + return Objects.equals(this.id, factura.id) && + Objects.equals(this.folio, factura.folio) && + Objects.equals(this.precioNeto, factura.precioNeto) && + Objects.equals(this.precioIVA, factura.precioIVA) && + Objects.equals(this.fechaVenta, factura.fechaVenta) && + Objects.equals(this.compras, factura.compras); + } +} diff --git a/src/main/java/xyz/danielcortes/models/Idioma.java b/src/main/java/xyz/danielcortes/models/Idioma.java index fcbc889..0db8747 100644 --- a/src/main/java/xyz/danielcortes/models/Idioma.java +++ b/src/main/java/xyz/danielcortes/models/Idioma.java @@ -1,7 +1,8 @@ package xyz.danielcortes.models; -import java.util.HashSet; -import java.util.Set; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -23,7 +24,7 @@ public class Idioma { private String nombre; @ManyToMany(mappedBy = "idiomas") - private Set libros; + private List libros; public Integer getId() { return this.id; @@ -41,17 +42,34 @@ public class Idioma { this.nombre = nombre; } - public Set getLibros() { + public List getLibros() { if (this.libros == null) { - this.libros = new HashSet<>(); + this.libros = new ArrayList<>(); } return this.libros; } - public void setLibros(Set libros) { + public void setLibros(List libros) { this.libros = libros; } + @Override + public int hashCode() { + return Objects.hash(this.id, this.nombre, this.libros); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Idioma)) + return false; + Idioma idioma = (Idioma) o; + return Objects.equals(this.id, idioma.id) && + Objects.equals(this.nombre, idioma.nombre) && + Objects.equals(this.libros, idioma.libros); + } + @Override public String toString() { return this.nombre; diff --git a/src/main/java/xyz/danielcortes/models/Libro.java b/src/main/java/xyz/danielcortes/models/Libro.java index 4408112..20ab69a 100644 --- a/src/main/java/xyz/danielcortes/models/Libro.java +++ b/src/main/java/xyz/danielcortes/models/Libro.java @@ -1,8 +1,9 @@ package xyz.danielcortes.models; import java.time.Year; -import java.util.HashSet; -import java.util.Set; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; import javax.persistence.Column; import javax.persistence.Convert; import javax.persistence.Entity; @@ -48,7 +49,7 @@ public class Libro { joinColumns = @JoinColumn(name = "libro_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "idioma_id", referencedColumnName = "id") ) - private Set idiomas; + private List idiomas; @ManyToMany @JoinTable( @@ -56,7 +57,7 @@ public class Libro { joinColumns = @JoinColumn(name = "libro_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "autor_id", referencedColumnName = "id") ) - private Set autores; + private List autores; @ManyToMany @JoinTable( @@ -64,14 +65,14 @@ public class Libro { joinColumns = @JoinColumn(name = "libro_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "categoria_id", referencedColumnName = "id") ) - private Set categorias; + private List categorias; @ManyToOne @JoinColumn(name = "editorial_id") private Editorial editorial; @OneToMany(mappedBy = "libro") - private Set ejemplares; + private List ejemplares; public Integer getId() { return this.id; @@ -121,34 +122,34 @@ public class Libro { this.anoPublicacion = anoPublicacion; } - public Set getIdiomas() { + public List getIdiomas() { if (this.idiomas == null) - this.idiomas = new HashSet<>(); + this.idiomas = new ArrayList<>(); return this.idiomas; } - public void setIdiomas(Set idiomas) { + public void setIdiomas(List idiomas) { this.idiomas = idiomas; } - public Set getAutores() { + public List getAutores() { if (this.autores == null) - this.autores = new HashSet<>(); + this.autores = new ArrayList<>(); return this.autores; } - public void setAutores(Set autores) { + public void setAutores(List autores) { this.autores = autores; } - public Set getCategorias() { + public List getCategorias() { if (this.categorias == null) - this.categorias = new HashSet<>(); + this.categorias = new ArrayList<>(); return this.categorias; } - public void setCategorias(Set categorias) { + public void setCategorias(List categorias) { this.categorias = categorias; } @@ -160,21 +161,40 @@ public class Libro { this.editorial = editorial; } - public Set getEjemplares() { + public List getEjemplares() { if (this.ejemplares == null) - this.ejemplares = new HashSet<>(); + this.ejemplares = new ArrayList<>(); return this.ejemplares; } - public void setEjemplares(Set ejemplar) { + public void setEjemplares(List ejemplar) { this.ejemplares = ejemplar; } - public void addEjemplar(Ejemplar ejemplar) { - this.ejemplares.add(ejemplar); - if (ejemplar.getLibro() != this) { - ejemplar.setLibro(this); - } + @Override + public int hashCode() { + return Objects.hash(this.id, this.isbn, this.titulo, this.numeroPaginas, this.precioReferencia, this.anoPublicacion, this.idiomas, this.autores, + this.categorias, this.editorial, this.ejemplares); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Libro)) + return false; + Libro libro = (Libro) o; + return this.numeroPaginas == libro.numeroPaginas && + this.precioReferencia == libro.precioReferencia && + Objects.equals(this.id, libro.id) && + Objects.equals(this.isbn, libro.isbn) && + Objects.equals(this.titulo, libro.titulo) && + Objects.equals(this.anoPublicacion, libro.anoPublicacion) && + Objects.equals(this.idiomas, libro.idiomas) && + Objects.equals(this.autores, libro.autores) && + Objects.equals(this.categorias, libro.categorias) && + Objects.equals(this.editorial, libro.editorial) && + Objects.equals(this.ejemplares, libro.ejemplares); } @Override diff --git a/src/main/java/xyz/danielcortes/models/Telefono.java b/src/main/java/xyz/danielcortes/models/Telefono.java index a1fcd5a..91586e2 100644 --- a/src/main/java/xyz/danielcortes/models/Telefono.java +++ b/src/main/java/xyz/danielcortes/models/Telefono.java @@ -2,6 +2,7 @@ package xyz.danielcortes.models; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -94,4 +95,23 @@ public class Telefono { public void setClientes(List clientes) { this.clientes = clientes; } + + @Override + public int hashCode() { + return Objects.hash(this.id, this.numero, this.trabajadores, this.distribuidores, this.clientes); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Telefono)) + return false; + Telefono telefono = (Telefono) o; + return Objects.equals(this.id, telefono.id) && + Objects.equals(this.numero, telefono.numero) && + Objects.equals(this.trabajadores, telefono.trabajadores) && + Objects.equals(this.distribuidores, telefono.distribuidores) && + Objects.equals(this.clientes, telefono.clientes); + } } diff --git a/src/main/java/xyz/danielcortes/models/Trabajador.java b/src/main/java/xyz/danielcortes/models/Trabajador.java index 5444ef7..4a9c4e3 100644 --- a/src/main/java/xyz/danielcortes/models/Trabajador.java +++ b/src/main/java/xyz/danielcortes/models/Trabajador.java @@ -10,6 +10,7 @@ import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToMany; +import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Table; @@ -48,6 +49,12 @@ public class Trabajador { @ManyToMany(mappedBy = "trabajadores") private List direcciones; + @OneToMany(mappedBy = "trabajador") + private List ventas; + + @OneToMany(mappedBy = "trabajador") + private List arriendos; + public Integer getId() { return this.id; } @@ -134,6 +141,33 @@ public class Trabajador { this.direcciones = direcciones; } + public List getVentas() { + if (this.ventas == null) + this.ventas = new ArrayList<>(); + return this.ventas; + } + + public void setVentas(List ventas) { + this.ventas = ventas; + } + + public List getArriendos() { + if (this.arriendos == null) + this.arriendos = new ArrayList<>(); + return this.arriendos; + } + + public void setArriendos(List arriendos) { + this.arriendos = arriendos; + } + + @Override + public int hashCode() { + return Objects + .hash(this.id, this.rut, this.nombre, this.apellidoPaterno, this.apellidoMaterno, this.fechaContrato, this.usuario, this.correos, + this.telefonos, this.direcciones, this.ventas, this.arriendos); + } + @Override public boolean equals(Object o) { if (this == o) @@ -149,13 +183,10 @@ public class Trabajador { Objects.equals(this.fechaContrato, that.fechaContrato) && Objects.equals(this.usuario, that.usuario) && Objects.equals(this.correos, that.correos) && - Objects.equals(this.telefonos, that.telefonos); - } - - @Override - public int hashCode() { - return Objects.hash(this.id, this.rut, this.nombre, this.apellidoPaterno, this.apellidoMaterno, this.fechaContrato, this.usuario, this.correos, - this.telefonos); + Objects.equals(this.telefonos, that.telefonos) && + Objects.equals(this.direcciones, that.direcciones) && + Objects.equals(this.ventas, that.ventas) && + Objects.equals(this.arriendos, that.arriendos); } } diff --git a/src/main/java/xyz/danielcortes/models/Usuario.java b/src/main/java/xyz/danielcortes/models/Usuario.java index e873167..8c55fd8 100644 --- a/src/main/java/xyz/danielcortes/models/Usuario.java +++ b/src/main/java/xyz/danielcortes/models/Usuario.java @@ -1,5 +1,7 @@ package xyz.danielcortes.models; +import java.util.Arrays; +import java.util.Objects; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -69,4 +71,26 @@ public class Usuario { public void setTrabajador(Trabajador trabajador) { this.trabajador = trabajador; } + + @Override + public int hashCode() { + int result = Objects.hash(this.id, this.nombre, this.trabajador); + result = 31 * result + Arrays.hashCode(this.password); + result = 31 * result + Arrays.hashCode(this.salt); + return result; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Usuario)) + return false; + Usuario usuario = (Usuario) o; + return Objects.equals(this.id, usuario.id) && + Objects.equals(this.nombre, usuario.nombre) && + Arrays.equals(this.password, usuario.password) && + Arrays.equals(this.salt, usuario.salt) && + Objects.equals(this.trabajador, usuario.trabajador); + } } diff --git a/src/main/java/xyz/danielcortes/models/Venta.java b/src/main/java/xyz/danielcortes/models/Venta.java new file mode 100644 index 0000000..e23eb3a --- /dev/null +++ b/src/main/java/xyz/danielcortes/models/Venta.java @@ -0,0 +1,105 @@ +package xyz.danielcortes.models; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; +import javax.persistence.ManyToMany; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "venta") +public class Venta { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + private Integer id; + + @ManyToOne + @JoinColumn(name = "cliente_id") + private Cliente cliente; + + @ManyToOne + @JoinColumn(name = "trabajador_id") + private Trabajador trabajador; + + @ManyToOne + @JoinColumn(name = "boleta_id") + private Boleta boleta; + + @ManyToMany + @JoinTable( + name = "ejemplar_venta", + joinColumns = @JoinColumn(name = "venta_id", referencedColumnName = "id"), + inverseJoinColumns = @JoinColumn(name = "ejemplar_id", referencedColumnName = "id")) + private List ejemplares; + + public Integer getId() { + return this.id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Cliente getCliente() { + return this.cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public Trabajador getTrabajador() { + return this.trabajador; + } + + public void setTrabajador(Trabajador trabajador) { + this.trabajador = trabajador; + } + + public Boleta getBoleta() { + return this.boleta; + } + + public void setBoleta(Boleta boleta) { + this.boleta = boleta; + } + + public List getEjemplares() { + if (this.ejemplares == null) + this.ejemplares = new ArrayList<>(); + return this.ejemplares; + } + + public void setEjemplares(List ejemplares) { + this.ejemplares = ejemplares; + } + + @Override + public int hashCode() { + return Objects.hash(this.id, this.cliente, this.trabajador, this.boleta, this.ejemplares); + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof Venta)) + return false; + Venta venta = (Venta) o; + return Objects.equals(this.id, venta.id) && + Objects.equals(this.cliente, venta.cliente) && + Objects.equals(this.trabajador, venta.trabajador) && + Objects.equals(this.boleta, venta.boleta) && + Objects.equals(this.ejemplares, venta.ejemplares); + } +} diff --git a/src/main/java/xyz/danielcortes/views/autor/AutorCreatePanel.java b/src/main/java/xyz/danielcortes/views/autor/AutorCreatePanel.java index 866f31c..c87791f 100644 --- a/src/main/java/xyz/danielcortes/views/autor/AutorCreatePanel.java +++ b/src/main/java/xyz/danielcortes/views/autor/AutorCreatePanel.java @@ -21,6 +21,13 @@ public class AutorCreatePanel extends BasePanel { private JPanel contentPane; private JButton volverButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + public JTextField getNombreField() { return this.nombreField; } @@ -46,13 +53,6 @@ public class AutorCreatePanel extends BasePanel { return this.volverButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/autor/AutorSearchPanel.java b/src/main/java/xyz/danielcortes/views/autor/AutorSearchPanel.java index b964d43..97f701f 100644 --- a/src/main/java/xyz/danielcortes/views/autor/AutorSearchPanel.java +++ b/src/main/java/xyz/danielcortes/views/autor/AutorSearchPanel.java @@ -27,6 +27,13 @@ public class AutorSearchPanel extends BasePanel { private JButton crearButton; private BaseTableModel autorModel; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -60,41 +67,10 @@ public class AutorSearchPanel extends BasePanel { return this.crearButton; } - public BaseTableModel getAutorModel() { return this.autorModel; } - private void createUIComponents() { - this.createAutorTable(); - } - - private void createAutorTable() { - // @formatter:off - this.autorModel = new BaseTableModel<>( - new String[]{"Nombre", "Apellido Paterno", "Apellido Materno", "Nº Libros"}, - (row, rowIndex, colIndex) -> { - switch (colIndex) { - case 0: return row.get(rowIndex).getNombre(); - case 1: return row.get(rowIndex).getApellidoPaterno(); - case 2: return row.get(rowIndex).getApellidoMaterno(); - case 3: return row.get(rowIndex).getLibros().size(); - default: return null; - } - } - ); - // @formatter:on - this.autorTable = new JTable(this.autorModel); - this.autorTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - } - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -145,6 +121,29 @@ public class AutorSearchPanel extends BasePanel { null, 0, false)); } + private void createUIComponents() { + this.createAutorTable(); + } + + private void createAutorTable() { + // @formatter:off + this.autorModel = new BaseTableModel<>( + new String[]{"Nombre", "Apellido Paterno", "Apellido Materno", "Nº Libros"}, + (row, rowIndex, colIndex) -> { + switch (colIndex) { + case 0: return row.get(rowIndex).getNombre(); + case 1: return row.get(rowIndex).getApellidoPaterno(); + case 2: return row.get(rowIndex).getApellidoMaterno(); + case 3: return row.get(rowIndex).getLibros().size(); + default: return null; + } + } + ); + // @formatter:on + this.autorTable = new JTable(this.autorModel); + this.autorTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + } + /** * @noinspection ALL */ diff --git a/src/main/java/xyz/danielcortes/views/autor/AutorUpdatePanel.java b/src/main/java/xyz/danielcortes/views/autor/AutorUpdatePanel.java index c97c149..a2d6d38 100644 --- a/src/main/java/xyz/danielcortes/views/autor/AutorUpdatePanel.java +++ b/src/main/java/xyz/danielcortes/views/autor/AutorUpdatePanel.java @@ -21,6 +21,13 @@ public class AutorUpdatePanel extends BasePanel { private JPanel contentPane; private JButton volverButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + public JTextField getNombreField() { return this.nombreField; } @@ -46,14 +53,6 @@ public class AutorUpdatePanel extends BasePanel { return this.contentPane; } - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/autor/AutorViewPanel.java b/src/main/java/xyz/danielcortes/views/autor/AutorViewPanel.java index 0a64ea1..5616b62 100644 --- a/src/main/java/xyz/danielcortes/views/autor/AutorViewPanel.java +++ b/src/main/java/xyz/danielcortes/views/autor/AutorViewPanel.java @@ -20,6 +20,13 @@ public class AutorViewPanel extends BasePanel { private JButton volverButton; private JPanel contentPane; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -41,13 +48,6 @@ public class AutorViewPanel extends BasePanel { return this.volverButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/categoria/CategoriaCreatePanel.java b/src/main/java/xyz/danielcortes/views/categoria/CategoriaCreatePanel.java index 5c1aa73..96fd68e 100644 --- a/src/main/java/xyz/danielcortes/views/categoria/CategoriaCreatePanel.java +++ b/src/main/java/xyz/danielcortes/views/categoria/CategoriaCreatePanel.java @@ -19,6 +19,13 @@ public class CategoriaCreatePanel extends BasePanel { private JTextField nombreField; private JButton volverButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + public JButton getGuardarButton() { return this.guardarButton; } @@ -36,13 +43,6 @@ public class CategoriaCreatePanel extends BasePanel { return this.volverButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/categoria/CategoriaSearchPanel.java b/src/main/java/xyz/danielcortes/views/categoria/CategoriaSearchPanel.java index fb1536c..b30343d 100644 --- a/src/main/java/xyz/danielcortes/views/categoria/CategoriaSearchPanel.java +++ b/src/main/java/xyz/danielcortes/views/categoria/CategoriaSearchPanel.java @@ -27,6 +27,13 @@ public class CategoriaSearchPanel extends BasePanel { private JButton crearButton; private BaseTableModel categoriaModel; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -64,34 +71,6 @@ public class CategoriaSearchPanel extends BasePanel { return this.crearButton; } - private void createUIComponents() { - this.createCategoriaTable(); - } - - private void createCategoriaTable() { - // @formatter:off - this.categoriaModel = new BaseTableModel<>( - new String[]{"Nombre", "Nº Libros"}, - (row, rowIndex, colIndex) -> { - switch (colIndex) { - case 0: return row.get(rowIndex).getNombre(); - case 1: return row.get(rowIndex).getLibros().size(); - default: return null; - } - } - ); - // @formatter:on - this.categoriaTable = new JTable(this.categoriaModel); - this.categoriaTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - } - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -147,6 +126,27 @@ public class CategoriaSearchPanel extends BasePanel { null, 0, false)); } + private void createUIComponents() { + this.createCategoriaTable(); + } + + private void createCategoriaTable() { + // @formatter:off + this.categoriaModel = new BaseTableModel<>( + new String[]{"Nombre", "Nº Libros"}, + (row, rowIndex, colIndex) -> { + switch (colIndex) { + case 0: return row.get(rowIndex).getNombre(); + case 1: return row.get(rowIndex).getLibros().size(); + default: return null; + } + } + ); + // @formatter:on + this.categoriaTable = new JTable(this.categoriaModel); + this.categoriaTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + } + /** * @noinspection ALL */ diff --git a/src/main/java/xyz/danielcortes/views/categoria/CategoriaUpdatePanel.java b/src/main/java/xyz/danielcortes/views/categoria/CategoriaUpdatePanel.java index a38df2e..65e15cd 100644 --- a/src/main/java/xyz/danielcortes/views/categoria/CategoriaUpdatePanel.java +++ b/src/main/java/xyz/danielcortes/views/categoria/CategoriaUpdatePanel.java @@ -19,6 +19,13 @@ public class CategoriaUpdatePanel extends BasePanel { private JButton updateButton; private JButton volverButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -36,14 +43,6 @@ public class CategoriaUpdatePanel extends BasePanel { return this.volverButton; } - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/categoria/CategoriaViewPanel.java b/src/main/java/xyz/danielcortes/views/categoria/CategoriaViewPanel.java index fd770f7..87316b4 100644 --- a/src/main/java/xyz/danielcortes/views/categoria/CategoriaViewPanel.java +++ b/src/main/java/xyz/danielcortes/views/categoria/CategoriaViewPanel.java @@ -18,6 +18,13 @@ public class CategoriaViewPanel extends BasePanel { private JTextField nombreField; private JButton volverButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -31,13 +38,6 @@ public class CategoriaViewPanel extends BasePanel { return this.volverButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/cliente/ClienteCreatePanel.java b/src/main/java/xyz/danielcortes/views/cliente/ClienteCreatePanel.java index 5f992b0..bf9827f 100644 --- a/src/main/java/xyz/danielcortes/views/cliente/ClienteCreatePanel.java +++ b/src/main/java/xyz/danielcortes/views/cliente/ClienteCreatePanel.java @@ -24,6 +24,13 @@ public class ClienteCreatePanel extends BasePanel { private JTextField rutField; private DatePicker fechaNacimientoPicker; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -57,13 +64,6 @@ public class ClienteCreatePanel extends BasePanel { return this.fechaNacimientoPicker; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/cliente/ClienteSearchPanel.java b/src/main/java/xyz/danielcortes/views/cliente/ClienteSearchPanel.java index 3734f02..1bcc722 100644 --- a/src/main/java/xyz/danielcortes/views/cliente/ClienteSearchPanel.java +++ b/src/main/java/xyz/danielcortes/views/cliente/ClienteSearchPanel.java @@ -27,6 +27,13 @@ public class ClienteSearchPanel extends BasePanel { private JButton crearButton; private BaseTableModel clienteModel; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -64,37 +71,6 @@ public class ClienteSearchPanel extends BasePanel { return this.clienteModel; } - private void createUIComponents() { - this.createClienteTable(); - } - - private void createClienteTable() { - // @formatter:off - this.clienteModel= new BaseTableModel<>( - new String[]{"Rut", "Nombre", "Apellido Paterno", "Apellido Materno", "Fecha Nacimiento"}, - (row, rowIndex, colIndex) -> { - switch (colIndex) { - case 0: return row.get(rowIndex).getRut(); - case 1: return row.get(rowIndex).getNombre(); - case 2: return row.get(rowIndex).getApellidoPaterno(); - case 3: return row.get(rowIndex).getApellidoMaterno(); - case 4: return row.get(rowIndex).getFechaNacimiento(); - default: return null; - } - } - ); - // @formatter:on - this.clienteTable = new JTable(this.clienteModel); - this.clienteTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - } - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -145,6 +121,30 @@ public class ClienteSearchPanel extends BasePanel { null, 0, false)); } + private void createUIComponents() { + this.createClienteTable(); + } + + private void createClienteTable() { + // @formatter:off + this.clienteModel= new BaseTableModel<>( + new String[]{"Rut", "Nombre", "Apellido Paterno", "Apellido Materno", "Fecha Nacimiento"}, + (row, rowIndex, colIndex) -> { + switch (colIndex) { + case 0: return row.get(rowIndex).getRut(); + case 1: return row.get(rowIndex).getNombre(); + case 2: return row.get(rowIndex).getApellidoPaterno(); + case 3: return row.get(rowIndex).getApellidoMaterno(); + case 4: return row.get(rowIndex).getFechaNacimiento(); + default: return null; + } + } + ); + // @formatter:on + this.clienteTable = new JTable(this.clienteModel); + this.clienteTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + } + /** * @noinspection ALL */ diff --git a/src/main/java/xyz/danielcortes/views/cliente/ClienteUpdatePanel.java b/src/main/java/xyz/danielcortes/views/cliente/ClienteUpdatePanel.java index 3014f8e..68f0aed 100644 --- a/src/main/java/xyz/danielcortes/views/cliente/ClienteUpdatePanel.java +++ b/src/main/java/xyz/danielcortes/views/cliente/ClienteUpdatePanel.java @@ -24,6 +24,13 @@ public class ClienteUpdatePanel extends BasePanel { private JTextField rutField; private DatePicker fechaNacimientoField; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + public JTextField getNombreField() { return this.nombreField; } @@ -57,13 +64,6 @@ public class ClienteUpdatePanel extends BasePanel { return this.fechaNacimientoField; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/cliente/ClienteViewPanel.java b/src/main/java/xyz/danielcortes/views/cliente/ClienteViewPanel.java index 8e4b015..6ca344c 100644 --- a/src/main/java/xyz/danielcortes/views/cliente/ClienteViewPanel.java +++ b/src/main/java/xyz/danielcortes/views/cliente/ClienteViewPanel.java @@ -25,6 +25,13 @@ public class ClienteViewPanel extends BasePanel { private JButton telefonosButton; private JTextField fechaNacimientoField; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + public JTextField getNombreField() { return this.nombreField; } @@ -66,13 +73,6 @@ public class ClienteViewPanel extends BasePanel { return this.telefonosButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/correo/CorreoCreatePanel.java b/src/main/java/xyz/danielcortes/views/correo/CorreoCreatePanel.java index 9fa70b3..ff2b78d 100644 --- a/src/main/java/xyz/danielcortes/views/correo/CorreoCreatePanel.java +++ b/src/main/java/xyz/danielcortes/views/correo/CorreoCreatePanel.java @@ -19,6 +19,13 @@ public class CorreoCreatePanel extends BasePanel { private JButton volverButton; private JTextField correoField; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + public JButton getGuardarButton() { return this.guardarButton; } @@ -36,13 +43,6 @@ public class CorreoCreatePanel extends BasePanel { return this.correoField; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/correo/CorreoSearchPanel.java b/src/main/java/xyz/danielcortes/views/correo/CorreoSearchPanel.java index b8cc0d7..c4020e1 100644 --- a/src/main/java/xyz/danielcortes/views/correo/CorreoSearchPanel.java +++ b/src/main/java/xyz/danielcortes/views/correo/CorreoSearchPanel.java @@ -28,6 +28,13 @@ public class CorreoSearchPanel extends BasePanel { private JButton volverButton; private BaseTableModel correoModel; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -69,33 +76,6 @@ public class CorreoSearchPanel extends BasePanel { return this.correoModel; } - private void createUIComponents() { - this.creatCorreoTable(); - } - - private void creatCorreoTable() { - // @formatter:off - this.correoModel = new BaseTableModel<>( - new String[]{"Correo"}, - (row, rowIndex, colIndex) -> { - switch (colIndex) { - case 0: return row.get(rowIndex).getCorreo(); - default: return null; - } - } - ); - // @formatter:on - this.correosTable = new JTable(this.correoModel); - this.correosTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - } - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -156,6 +136,26 @@ public class CorreoSearchPanel extends BasePanel { GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false)); } + private void createUIComponents() { + this.creatCorreoTable(); + } + + private void creatCorreoTable() { + // @formatter:off + this.correoModel = new BaseTableModel<>( + new String[]{"Correo"}, + (row, rowIndex, colIndex) -> { + switch (colIndex) { + case 0: return row.get(rowIndex).getCorreo(); + default: return null; + } + } + ); + // @formatter:on + this.correosTable = new JTable(this.correoModel); + this.correosTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + } + /** * @noinspection ALL */ diff --git a/src/main/java/xyz/danielcortes/views/correo/CorreoUpdatePanel.java b/src/main/java/xyz/danielcortes/views/correo/CorreoUpdatePanel.java index 64e78e2..3a98082 100644 --- a/src/main/java/xyz/danielcortes/views/correo/CorreoUpdatePanel.java +++ b/src/main/java/xyz/danielcortes/views/correo/CorreoUpdatePanel.java @@ -19,6 +19,13 @@ public class CorreoUpdatePanel extends BasePanel { private JButton volverButton; private JTextField correoField; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + public JButton getActualizarButton() { return this.actualizarButton; } @@ -36,13 +43,6 @@ public class CorreoUpdatePanel extends BasePanel { return this.correoField; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -94,4 +94,5 @@ public class CorreoUpdatePanel extends BasePanel { public JComponent $$$getRootComponent$$$() { return contentPane; } + } diff --git a/src/main/java/xyz/danielcortes/views/correo/CorreoViewPanel.java b/src/main/java/xyz/danielcortes/views/correo/CorreoViewPanel.java index f1f24ad..eaae55c 100644 --- a/src/main/java/xyz/danielcortes/views/correo/CorreoViewPanel.java +++ b/src/main/java/xyz/danielcortes/views/correo/CorreoViewPanel.java @@ -18,6 +18,13 @@ public class CorreoViewPanel extends BasePanel { private JButton volverButton; private JTextField correoField; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -31,13 +38,6 @@ public class CorreoViewPanel extends BasePanel { return this.correoField; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -85,4 +85,5 @@ public class CorreoViewPanel extends BasePanel { public JComponent $$$getRootComponent$$$() { return contentPane; } + } diff --git a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorCreatePanel.form b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorCreatePanel.form index 05c55d4..288a474 100644 --- a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorCreatePanel.form +++ b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorCreatePanel.form @@ -1,5 +1,5 @@ -

+ diff --git a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorCreatePanel.java b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorCreatePanel.java index 2400679..af119bb 100644 --- a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorCreatePanel.java +++ b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorCreatePanel.java @@ -24,6 +24,13 @@ public class DistribuidorCreatePanel extends BasePanel { private JComboBox empresaCombobox; private DefaultComboBoxModel empresaModel; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -49,13 +56,6 @@ public class DistribuidorCreatePanel extends BasePanel { return this.empresaModel; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -109,15 +109,15 @@ public class DistribuidorCreatePanel extends BasePanel { GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); } + private void createUIComponents() { + this.empresaModel = new DefaultComboBoxModel<>(); + this.empresaCombobox = new JComboBox<>(this.empresaModel); + } + /** * @noinspection ALL */ public JComponent $$$getRootComponent$$$() { return contentPane; } - - private void createUIComponents() { - this.empresaModel = new DefaultComboBoxModel<>(); - this.empresaCombobox = new JComboBox<>(this.empresaModel); - } } diff --git a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorSearchPanel.form b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorSearchPanel.form index 160478e..fc14c56 100644 --- a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorSearchPanel.form +++ b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorSearchPanel.form @@ -1,5 +1,5 @@ - + diff --git a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorSearchPanel.java b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorSearchPanel.java index f0bc6db..bdf7bf8 100644 --- a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorSearchPanel.java +++ b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorSearchPanel.java @@ -27,6 +27,13 @@ public class DistribuidorSearchPanel extends BasePanel { private JButton crearButton; private BaseTableModel distribuidorModel; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -64,34 +71,6 @@ public class DistribuidorSearchPanel extends BasePanel { return this.distribuidorModel; } - private void createUIComponents() { - this.createDistribuidorTable(); - } - - private void createDistribuidorTable() { - // @formatter:off - this.distribuidorModel= new BaseTableModel<>( - new String[]{"Rut", "Empresa"}, - (row, rowIndex, colIndex) -> { - switch (colIndex) { - case 0: return row.get(rowIndex).getRut(); - case 1: return row.get(rowIndex).getEmpresa().getNombre(); - default: return null; - } - } - ); - // @formatter:on - this.distribuidorTable = new JTable(this.distribuidorModel); - this.distribuidorTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - } - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -142,6 +121,27 @@ public class DistribuidorSearchPanel extends BasePanel { null, 0, false)); } + private void createUIComponents() { + this.createDistribuidorTable(); + } + + private void createDistribuidorTable() { + // @formatter:off + this.distribuidorModel= new BaseTableModel<>( + new String[]{"Rut", "Empresa"}, + (row, rowIndex, colIndex) -> { + switch (colIndex) { + case 0: return row.get(rowIndex).getRut(); + case 1: return row.get(rowIndex).getEmpresa().getNombre(); + default: return null; + } + } + ); + // @formatter:on + this.distribuidorTable = new JTable(this.distribuidorModel); + this.distribuidorTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + } + /** * @noinspection ALL */ diff --git a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorUpdatePanel.form b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorUpdatePanel.form index cb5c79a..758919b 100644 --- a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorUpdatePanel.form +++ b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorUpdatePanel.form @@ -1,5 +1,5 @@ - + diff --git a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorUpdatePanel.java b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorUpdatePanel.java index c16e180..5bd8920 100644 --- a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorUpdatePanel.java +++ b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorUpdatePanel.java @@ -24,6 +24,13 @@ public class DistribuidorUpdatePanel extends BasePanel { private JComboBox empresaCombobox; private DefaultComboBoxModel empresaModel; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -49,13 +56,6 @@ public class DistribuidorUpdatePanel extends BasePanel { return this.empresaModel; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -109,15 +109,15 @@ public class DistribuidorUpdatePanel extends BasePanel { GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); } + private void createUIComponents() { + this.empresaModel = new DefaultComboBoxModel<>(); + this.empresaCombobox = new JComboBox<>(this.empresaModel); + } + /** * @noinspection ALL */ public JComponent $$$getRootComponent$$$() { return contentPane; } - - private void createUIComponents() { - this.empresaModel = new DefaultComboBoxModel<>(); - this.empresaCombobox = new JComboBox<>(this.empresaModel); - } } diff --git a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorViewPanel.form b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorViewPanel.form index df84963..60e9fd5 100644 --- a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorViewPanel.form +++ b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorViewPanel.form @@ -1,5 +1,5 @@ - + diff --git a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorViewPanel.java b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorViewPanel.java index a6b2adf..f84f07f 100644 --- a/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorViewPanel.java +++ b/src/main/java/xyz/danielcortes/views/distribuidor/DistribuidorViewPanel.java @@ -22,6 +22,13 @@ public class DistribuidorViewPanel extends BasePanel { private JButton correosButton; private JButton telefonosButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -51,13 +58,6 @@ public class DistribuidorViewPanel extends BasePanel { return this.telefonosButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/editorial/EditorialCreatePanel.java b/src/main/java/xyz/danielcortes/views/editorial/EditorialCreatePanel.java index 079e066..f2b311f 100644 --- a/src/main/java/xyz/danielcortes/views/editorial/EditorialCreatePanel.java +++ b/src/main/java/xyz/danielcortes/views/editorial/EditorialCreatePanel.java @@ -19,6 +19,13 @@ public class EditorialCreatePanel extends BasePanel { private JButton guardarButton; private JButton volverButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -36,13 +43,6 @@ public class EditorialCreatePanel extends BasePanel { return this.volverButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/editorial/EditorialSearchPanel.java b/src/main/java/xyz/danielcortes/views/editorial/EditorialSearchPanel.java index cc7f768..281605c 100644 --- a/src/main/java/xyz/danielcortes/views/editorial/EditorialSearchPanel.java +++ b/src/main/java/xyz/danielcortes/views/editorial/EditorialSearchPanel.java @@ -26,6 +26,13 @@ public class EditorialSearchPanel extends BasePanel { private JButton crearButton; private BaseTableModel editorialModel; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -63,33 +70,6 @@ public class EditorialSearchPanel extends BasePanel { return this.crearButton; } - private void createUIComponents() { - this.createEditorialTable(); - } - - private void createEditorialTable() { - // @formatter:off - this.editorialModel = new BaseTableModel<>( - new String[]{"Nombre", "Nº Libros"}, - (row, rowIndex, colIndex) -> { - switch(colIndex) { - case 0: return row.get(rowIndex).getNombre(); - case 1: return row.get(rowIndex).getLibros().size(); - default: return null; - } - } - ); - this.editorialTable = new JTable(this.editorialModel); - // @formatter:on - } - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -145,6 +125,26 @@ public class EditorialSearchPanel extends BasePanel { null, 0, false)); } + private void createUIComponents() { + this.createEditorialTable(); + } + + private void createEditorialTable() { + // @formatter:off + this.editorialModel = new BaseTableModel<>( + new String[]{"Nombre", "Nº Libros"}, + (row, rowIndex, colIndex) -> { + switch(colIndex) { + case 0: return row.get(rowIndex).getNombre(); + case 1: return row.get(rowIndex).getLibros().size(); + default: return null; + } + } + ); + this.editorialTable = new JTable(this.editorialModel); + // @formatter:on + } + /** * @noinspection ALL */ diff --git a/src/main/java/xyz/danielcortes/views/editorial/EditorialUpdatePanel.java b/src/main/java/xyz/danielcortes/views/editorial/EditorialUpdatePanel.java index b2bf0ed..058efc9 100644 --- a/src/main/java/xyz/danielcortes/views/editorial/EditorialUpdatePanel.java +++ b/src/main/java/xyz/danielcortes/views/editorial/EditorialUpdatePanel.java @@ -18,6 +18,13 @@ public class EditorialUpdatePanel extends BasePanel { private JTextField nombreField; private JButton actualizarButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -31,13 +38,6 @@ public class EditorialUpdatePanel extends BasePanel { return this.actualizarButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/editorial/EditorialViewPanel.java b/src/main/java/xyz/danielcortes/views/editorial/EditorialViewPanel.java index 2444e8c..f1dc026 100644 --- a/src/main/java/xyz/danielcortes/views/editorial/EditorialViewPanel.java +++ b/src/main/java/xyz/danielcortes/views/editorial/EditorialViewPanel.java @@ -18,6 +18,13 @@ public class EditorialViewPanel extends BasePanel { private JTextField nombreField; private JButton volverButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -31,13 +38,6 @@ public class EditorialViewPanel extends BasePanel { return this.volverButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -80,4 +80,5 @@ public class EditorialViewPanel extends BasePanel { public JComponent $$$getRootComponent$$$() { return contentPane; } + } diff --git a/src/main/java/xyz/danielcortes/views/empresa/EmpresaCreatePanel.java b/src/main/java/xyz/danielcortes/views/empresa/EmpresaCreatePanel.java index 4a9eb77..b3efe82 100644 --- a/src/main/java/xyz/danielcortes/views/empresa/EmpresaCreatePanel.java +++ b/src/main/java/xyz/danielcortes/views/empresa/EmpresaCreatePanel.java @@ -19,6 +19,13 @@ public class EmpresaCreatePanel extends BasePanel { private JButton guardarButton; private JButton volverButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -36,13 +43,6 @@ public class EmpresaCreatePanel extends BasePanel { return this.volverButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/empresa/EmpresaSearchPanel.java b/src/main/java/xyz/danielcortes/views/empresa/EmpresaSearchPanel.java index b95e657..f0d3f69 100644 --- a/src/main/java/xyz/danielcortes/views/empresa/EmpresaSearchPanel.java +++ b/src/main/java/xyz/danielcortes/views/empresa/EmpresaSearchPanel.java @@ -26,6 +26,13 @@ public class EmpresaSearchPanel extends BasePanel { private JButton crearButton; private BaseTableModel empresaModel; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -63,33 +70,6 @@ public class EmpresaSearchPanel extends BasePanel { return this.crearButton; } - private void createUIComponents() { - this.createEmpresaTable(); - } - - private void createEmpresaTable() { - // @formatter:off - this.empresaModel = new BaseTableModel<>( - new String[]{"Nombre", "Nº Distribuidores"}, - (row, rowIndex, colIndex) -> { - switch(colIndex) { - case 0: return row.get(rowIndex).getNombre(); - case 1: return row.get(rowIndex).getDistribuidores().size(); - default: return null; - } - } - ); - this.empresaTable = new JTable(this.empresaModel); - // @formatter:on - } - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -145,6 +125,26 @@ public class EmpresaSearchPanel extends BasePanel { null, 0, false)); } + private void createUIComponents() { + this.createEmpresaTable(); + } + + private void createEmpresaTable() { + // @formatter:off + this.empresaModel = new BaseTableModel<>( + new String[]{"Nombre", "Nº Distribuidores"}, + (row, rowIndex, colIndex) -> { + switch(colIndex) { + case 0: return row.get(rowIndex).getNombre(); + case 1: return row.get(rowIndex).getDistribuidores().size(); + default: return null; + } + } + ); + this.empresaTable = new JTable(this.empresaModel); + // @formatter:on + } + /** * @noinspection ALL */ diff --git a/src/main/java/xyz/danielcortes/views/empresa/EmpresaUpdatePanel.java b/src/main/java/xyz/danielcortes/views/empresa/EmpresaUpdatePanel.java index c7bd82e..fd96d93 100644 --- a/src/main/java/xyz/danielcortes/views/empresa/EmpresaUpdatePanel.java +++ b/src/main/java/xyz/danielcortes/views/empresa/EmpresaUpdatePanel.java @@ -18,6 +18,13 @@ public class EmpresaUpdatePanel extends BasePanel { private JTextField nombreField; private JButton actualizarButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -31,13 +38,6 @@ public class EmpresaUpdatePanel extends BasePanel { return this.actualizarButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/empresa/EmpresaViewPanel.java b/src/main/java/xyz/danielcortes/views/empresa/EmpresaViewPanel.java index a3d7d40..7643090 100644 --- a/src/main/java/xyz/danielcortes/views/empresa/EmpresaViewPanel.java +++ b/src/main/java/xyz/danielcortes/views/empresa/EmpresaViewPanel.java @@ -18,6 +18,13 @@ public class EmpresaViewPanel extends BasePanel { private JTextField nombreField; private JButton volverButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -31,13 +38,6 @@ public class EmpresaViewPanel extends BasePanel { return this.volverButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -80,4 +80,5 @@ public class EmpresaViewPanel extends BasePanel { public JComponent $$$getRootComponent$$$() { return contentPane; } + } diff --git a/src/main/java/xyz/danielcortes/views/idioma/IdiomaCreatePanel.java b/src/main/java/xyz/danielcortes/views/idioma/IdiomaCreatePanel.java index aa35e46..b330559 100644 --- a/src/main/java/xyz/danielcortes/views/idioma/IdiomaCreatePanel.java +++ b/src/main/java/xyz/danielcortes/views/idioma/IdiomaCreatePanel.java @@ -19,6 +19,13 @@ public class IdiomaCreatePanel extends BasePanel { private JButton guardarButton; private JButton volverButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -36,13 +43,6 @@ public class IdiomaCreatePanel extends BasePanel { return this.volverButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/idioma/IdiomaSearchPanel.java b/src/main/java/xyz/danielcortes/views/idioma/IdiomaSearchPanel.java index eace982..e237600 100644 --- a/src/main/java/xyz/danielcortes/views/idioma/IdiomaSearchPanel.java +++ b/src/main/java/xyz/danielcortes/views/idioma/IdiomaSearchPanel.java @@ -27,6 +27,13 @@ public class IdiomaSearchPanel extends BasePanel { private JButton crearButton; private BaseTableModel idiomaTableModel; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -64,13 +71,6 @@ public class IdiomaSearchPanel extends BasePanel { return this.crearButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -126,13 +126,6 @@ public class IdiomaSearchPanel extends BasePanel { null, 0, false)); } - /** - * @noinspection ALL - */ - public JComponent $$$getRootComponent$$$() { - return contentPane; - } - private void createUIComponents() { this.createIdiomaTable(); } @@ -153,4 +146,11 @@ public class IdiomaSearchPanel extends BasePanel { this.idiomaTable = new JTable(this.idiomaTableModel); this.idiomaTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); } + + /** + * @noinspection ALL + */ + public JComponent $$$getRootComponent$$$() { + return contentPane; + } } diff --git a/src/main/java/xyz/danielcortes/views/idioma/IdiomaUpdatePanel.java b/src/main/java/xyz/danielcortes/views/idioma/IdiomaUpdatePanel.java index b55e3eb..d92ef73 100644 --- a/src/main/java/xyz/danielcortes/views/idioma/IdiomaUpdatePanel.java +++ b/src/main/java/xyz/danielcortes/views/idioma/IdiomaUpdatePanel.java @@ -18,6 +18,13 @@ public class IdiomaUpdatePanel extends BasePanel { private JTextField nombreField; private JButton actualizarButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -31,13 +38,6 @@ public class IdiomaUpdatePanel extends BasePanel { return this.actualizarButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/idioma/IdiomaViewPanel.java b/src/main/java/xyz/danielcortes/views/idioma/IdiomaViewPanel.java index c5d1d98..3ffe09d 100644 --- a/src/main/java/xyz/danielcortes/views/idioma/IdiomaViewPanel.java +++ b/src/main/java/xyz/danielcortes/views/idioma/IdiomaViewPanel.java @@ -18,6 +18,13 @@ public class IdiomaViewPanel extends BasePanel { private JTextField nombreField; private JButton volverButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -31,13 +38,6 @@ public class IdiomaViewPanel extends BasePanel { return this.volverButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/libro/LibroCreatePanel.java b/src/main/java/xyz/danielcortes/views/libro/LibroCreatePanel.java index 846e9a6..d3266f6 100644 --- a/src/main/java/xyz/danielcortes/views/libro/LibroCreatePanel.java +++ b/src/main/java/xyz/danielcortes/views/libro/LibroCreatePanel.java @@ -41,6 +41,13 @@ public class LibroCreatePanel extends BasePanel { private JTextField precioReferenciaField; private JButton volverButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -106,13 +113,6 @@ public class LibroCreatePanel extends BasePanel { return this.volverButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -226,13 +226,6 @@ public class LibroCreatePanel extends BasePanel { null, 0, false)); } - /** - * @noinspection ALL - */ - public JComponent $$$getRootComponent$$$() { - return contentPane; - } - private void createUIComponents() { this.createIdiomasList(); this.createAutoresList(); @@ -262,4 +255,11 @@ public class LibroCreatePanel extends BasePanel { this.editorialModel = new DefaultComboBoxModel<>(); this.editorialCombo = new JComboBox<>(this.editorialModel); } + + /** + * @noinspection ALL + */ + public JComponent $$$getRootComponent$$$() { + return contentPane; + } } diff --git a/src/main/java/xyz/danielcortes/views/libro/LibroSearchPanel.java b/src/main/java/xyz/danielcortes/views/libro/LibroSearchPanel.java index 4b7a622..c9a9aba 100644 --- a/src/main/java/xyz/danielcortes/views/libro/LibroSearchPanel.java +++ b/src/main/java/xyz/danielcortes/views/libro/LibroSearchPanel.java @@ -27,6 +27,13 @@ public class LibroSearchPanel extends BasePanel { private JButton eliminarButton; private JButton crearButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + public JTable getLibrosTable() { return this.librosTable; } @@ -64,36 +71,6 @@ public class LibroSearchPanel extends BasePanel { return this.crearButton; } - private void createUIComponents() { - this.createLibrosTable(); - } - - private void createLibrosTable() { - //@formatter:off - this.librosModel = new BaseTableModel<>( - new String[]{"ISBN", "Titulo", "Precio Referencial", "Stock"}, - (rows, rowIndex, colIndex) -> { - switch(colIndex) { - case 0: return rows.get(rowIndex).getIsbn(); - case 1: return rows.get(rowIndex).getTitulo(); - case 2: return rows.get(rowIndex).getPrecioReferencia(); - case 3: return rows.get(rowIndex).getEjemplares().size(); - default: return null; - } - } - ); - //@formatter:on - this.librosTable = new JTable(this.librosModel); - this.librosTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - } - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -149,6 +126,29 @@ public class LibroSearchPanel extends BasePanel { null, 0, false)); } + private void createUIComponents() { + this.createLibrosTable(); + } + + private void createLibrosTable() { + //@formatter:off + this.librosModel = new BaseTableModel<>( + new String[]{"ISBN", "Titulo", "Precio Referencial", "Stock"}, + (rows, rowIndex, colIndex) -> { + switch(colIndex) { + case 0: return rows.get(rowIndex).getIsbn(); + case 1: return rows.get(rowIndex).getTitulo(); + case 2: return rows.get(rowIndex).getPrecioReferencia(); + case 3: return rows.get(rowIndex).getEjemplares().size(); + default: return null; + } + } + ); + //@formatter:on + this.librosTable = new JTable(this.librosModel); + this.librosTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + } + /** * @noinspection ALL */ diff --git a/src/main/java/xyz/danielcortes/views/libro/LibroUpdatePanel.java b/src/main/java/xyz/danielcortes/views/libro/LibroUpdatePanel.java index b3e8596..7bccf3a 100644 --- a/src/main/java/xyz/danielcortes/views/libro/LibroUpdatePanel.java +++ b/src/main/java/xyz/danielcortes/views/libro/LibroUpdatePanel.java @@ -40,6 +40,13 @@ public class LibroUpdatePanel extends BasePanel { private DefaultComboBoxModel editorialModel; private JButton actualizarButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -101,43 +108,6 @@ public class LibroUpdatePanel extends BasePanel { return this.actualizarButton; } - private void createUIComponents() { - this.createAutoresList(); - this.createCategoriaList(); - this.createEditorialCombo(); - this.createIdiomasList(); - } - - private void createIdiomasList() { - this.idiomasModel = new DefaultListModel<>(); - this.idiomasList = new JList<>(this.idiomasModel); - this.idiomasList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); - } - - private void createAutoresList() { - this.autoresModel = new DefaultListModel<>(); - this.autoresList = new JList<>(this.autoresModel); - this.autoresList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); - } - - private void createCategoriaList() { - this.categoriasModel = new DefaultListModel<>(); - this.categoriasList = new JList<>(this.categoriasModel); - this.categoriasList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); - } - - private void createEditorialCombo() { - this.editorialModel = new DefaultComboBoxModel<>(); - this.editorialCombo = new JComboBox<>(this.editorialModel); - } - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -240,6 +210,36 @@ public class LibroUpdatePanel extends BasePanel { null, null, null, 0, false)); } + private void createUIComponents() { + this.createAutoresList(); + this.createCategoriaList(); + this.createEditorialCombo(); + this.createIdiomasList(); + } + + private void createAutoresList() { + this.autoresModel = new DefaultListModel<>(); + this.autoresList = new JList<>(this.autoresModel); + this.autoresList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + } + + private void createCategoriaList() { + this.categoriasModel = new DefaultListModel<>(); + this.categoriasList = new JList<>(this.categoriasModel); + this.categoriasList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + } + + private void createEditorialCombo() { + this.editorialModel = new DefaultComboBoxModel<>(); + this.editorialCombo = new JComboBox<>(this.editorialModel); + } + + private void createIdiomasList() { + this.idiomasModel = new DefaultListModel<>(); + this.idiomasList = new JList<>(this.idiomasModel); + this.idiomasList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + } + /** * @noinspection ALL */ diff --git a/src/main/java/xyz/danielcortes/views/libro/LibroViewPanel.form b/src/main/java/xyz/danielcortes/views/libro/LibroViewPanel.form index 02e9a96..f181b5f 100644 --- a/src/main/java/xyz/danielcortes/views/libro/LibroViewPanel.form +++ b/src/main/java/xyz/danielcortes/views/libro/LibroViewPanel.form @@ -49,14 +49,6 @@ - - - - - - - - @@ -209,6 +201,14 @@ + + + + + + + + diff --git a/src/main/java/xyz/danielcortes/views/libro/LibroViewPanel.java b/src/main/java/xyz/danielcortes/views/libro/LibroViewPanel.java index 34bbd64..3267c2d 100644 --- a/src/main/java/xyz/danielcortes/views/libro/LibroViewPanel.java +++ b/src/main/java/xyz/danielcortes/views/libro/LibroViewPanel.java @@ -5,10 +5,8 @@ import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.Spacer; import java.awt.Dimension; import java.awt.Insets; -import javax.swing.DefaultComboBoxModel; import javax.swing.DefaultListModel; import javax.swing.JButton; -import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JList; @@ -19,7 +17,6 @@ import javax.swing.ListSelectionModel; import xyz.danielcortes.framework.BasePanel; import xyz.danielcortes.models.Autor; import xyz.danielcortes.models.Categoria; -import xyz.danielcortes.models.Editorial; import xyz.danielcortes.models.Idioma; public class LibroViewPanel extends BasePanel { @@ -35,10 +32,16 @@ public class LibroViewPanel extends BasePanel { private DefaultListModel autoresModel; private JList categoriasList; private DefaultListModel categoriasModel; - private JComboBox editorialCombo; - private DefaultComboBoxModel editorialModel; private JButton volverButton; private JTextField precioReferenciaField; + private JTextField editorialField; + + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } @Override public JPanel getContentPane() { @@ -89,23 +92,12 @@ public class LibroViewPanel extends BasePanel { return this.categoriasModel; } - public JComboBox getEditorialCombo() { - return this.editorialCombo; - } - - public DefaultComboBoxModel getEditorialModel() { - return this.editorialModel; - } - public JButton getVolverButton() { return this.volverButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); + public JTextField getEditorialField() { + return this.editorialField; } /** @@ -138,9 +130,6 @@ public class LibroViewPanel extends BasePanel { contentPane.add(anoPublicacionField, new GridConstraints(7, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); - contentPane.add(editorialCombo, - new GridConstraints(17, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW, - GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); volverButton = new JButton(); volverButton.setText("Volver"); contentPane.add(volverButton, new GridConstraints(18, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, @@ -214,20 +203,16 @@ public class LibroViewPanel extends BasePanel { contentPane.add(spacer3, new GridConstraints(19, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false)); - } - - /** - * @noinspection ALL - */ - public JComponent $$$getRootComponent$$$() { - return contentPane; + editorialField = new JTextField(); + contentPane.add(editorialField, + new GridConstraints(17, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); } private void createUIComponents() { this.createIdiomasList(); this.createAutoresList(); this.createCategoriaList(); - this.createEditorialCombo(); } private void createIdiomasList() { @@ -248,8 +233,11 @@ public class LibroViewPanel extends BasePanel { this.categoriasList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); } - private void createEditorialCombo() { - this.editorialModel = new DefaultComboBoxModel<>(); - this.editorialCombo = new JComboBox<>(this.editorialModel); + /** + * @noinspection ALL + */ + public JComponent $$$getRootComponent$$$() { + return contentPane; } + } diff --git a/src/main/java/xyz/danielcortes/views/telefono/TelefonoCreatePanel.java b/src/main/java/xyz/danielcortes/views/telefono/TelefonoCreatePanel.java index 124f20b..aeb707e 100644 --- a/src/main/java/xyz/danielcortes/views/telefono/TelefonoCreatePanel.java +++ b/src/main/java/xyz/danielcortes/views/telefono/TelefonoCreatePanel.java @@ -19,6 +19,13 @@ public class TelefonoCreatePanel extends BasePanel { private JButton volverButton; private JTextField numeroField; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + public JButton getGuardarButton() { return this.guardarButton; } @@ -36,13 +43,6 @@ public class TelefonoCreatePanel extends BasePanel { return this.numeroField; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/telefono/TelefonoSearchPanel.java b/src/main/java/xyz/danielcortes/views/telefono/TelefonoSearchPanel.java index 4df656d..cb6d5d9 100644 --- a/src/main/java/xyz/danielcortes/views/telefono/TelefonoSearchPanel.java +++ b/src/main/java/xyz/danielcortes/views/telefono/TelefonoSearchPanel.java @@ -28,6 +28,13 @@ public class TelefonoSearchPanel extends BasePanel { private JButton volverButton; private BaseTableModel telefonoModel; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -69,33 +76,6 @@ public class TelefonoSearchPanel extends BasePanel { return this.telefonoModel; } - private void createUIComponents() { - this.creatTelefonoTable(); - } - - private void creatTelefonoTable() { - // @formatter:off - this.telefonoModel = new BaseTableModel<>( - new String[]{"Numero"}, - (row, rowIndex, colIndex) -> { - switch (colIndex) { - case 0: return row.get(rowIndex).getNumero(); - default: return null; - } - } - ); - // @formatter:on - this.telefonosTable = new JTable(this.telefonoModel); - this.telefonosTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - } - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -156,6 +136,26 @@ public class TelefonoSearchPanel extends BasePanel { GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false)); } + private void createUIComponents() { + this.creatTelefonoTable(); + } + + private void creatTelefonoTable() { + // @formatter:off + this.telefonoModel = new BaseTableModel<>( + new String[]{"Numero"}, + (row, rowIndex, colIndex) -> { + switch (colIndex) { + case 0: return row.get(rowIndex).getNumero(); + default: return null; + } + } + ); + // @formatter:on + this.telefonosTable = new JTable(this.telefonoModel); + this.telefonosTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + } + /** * @noinspection ALL */ diff --git a/src/main/java/xyz/danielcortes/views/telefono/TelefonoUpdatePanel.java b/src/main/java/xyz/danielcortes/views/telefono/TelefonoUpdatePanel.java index a9b70fa..537d1f9 100644 --- a/src/main/java/xyz/danielcortes/views/telefono/TelefonoUpdatePanel.java +++ b/src/main/java/xyz/danielcortes/views/telefono/TelefonoUpdatePanel.java @@ -19,6 +19,13 @@ public class TelefonoUpdatePanel extends BasePanel { private JButton volverButton; private JTextField telefonoField; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + public JButton getActualizarButton() { return this.actualizarButton; } @@ -36,13 +43,6 @@ public class TelefonoUpdatePanel extends BasePanel { return this.telefonoField; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/telefono/TelefonoViewPanel.java b/src/main/java/xyz/danielcortes/views/telefono/TelefonoViewPanel.java index 0f51f38..5e36190 100644 --- a/src/main/java/xyz/danielcortes/views/telefono/TelefonoViewPanel.java +++ b/src/main/java/xyz/danielcortes/views/telefono/TelefonoViewPanel.java @@ -18,6 +18,13 @@ public class TelefonoViewPanel extends BasePanel { private JButton volverButton; private JTextField telefonoField; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -31,13 +38,6 @@ public class TelefonoViewPanel extends BasePanel { return this.telefonoField; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorCreatePanel.form b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorCreatePanel.form index e2c9219..e19f4f4 100644 --- a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorCreatePanel.form +++ b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorCreatePanel.form @@ -1,5 +1,5 @@ -
+ diff --git a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorCreatePanel.java b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorCreatePanel.java index ff0b57a..09bb254 100644 --- a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorCreatePanel.java +++ b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorCreatePanel.java @@ -24,6 +24,13 @@ public class TrabajadorCreatePanel extends BasePanel { private JTextField rutField; private DatePicker fechaContratoPicker; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + public JTextField getNombreField() { return this.nombreField; } @@ -57,13 +64,6 @@ public class TrabajadorCreatePanel extends BasePanel { return this.fechaContratoPicker; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorSearchPanel.form b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorSearchPanel.form index 1c3ef1e..d20b423 100644 --- a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorSearchPanel.form +++ b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorSearchPanel.form @@ -1,5 +1,5 @@ - + diff --git a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorSearchPanel.java b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorSearchPanel.java index e777676..231f8ad 100644 --- a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorSearchPanel.java +++ b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorSearchPanel.java @@ -27,6 +27,13 @@ public class TrabajadorSearchPanel extends BasePanel { private JButton crearButton; private BaseTableModel trabajadorModel; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -64,37 +71,6 @@ public class TrabajadorSearchPanel extends BasePanel { return this.trabajadorModel; } - private void createUIComponents() { - this.createTrabajadorTable(); - } - - private void createTrabajadorTable() { - // @formatter:off - this.trabajadorModel= new BaseTableModel<>( - new String[]{"Rut", "Nombre", "Apellido Paterno", "Apellido Materno", "Fecha Contrato"}, - (row, rowIndex, colIndex) -> { - switch (colIndex) { - case 0: return row.get(rowIndex).getRut(); - case 1: return row.get(rowIndex).getNombre(); - case 2: return row.get(rowIndex).getApellidoPaterno(); - case 3: return row.get(rowIndex).getApellidoMaterno(); - case 4: return row.get(rowIndex).getFechaContrato(); - default: return null; - } - } - ); - // @formatter:on - this.trabajadorTable = new JTable(this.trabajadorModel); - this.trabajadorTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - } - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -145,6 +121,30 @@ public class TrabajadorSearchPanel extends BasePanel { null, 0, false)); } + private void createUIComponents() { + this.createTrabajadorTable(); + } + + private void createTrabajadorTable() { + // @formatter:off + this.trabajadorModel= new BaseTableModel<>( + new String[]{"Rut", "Nombre", "Apellido Paterno", "Apellido Materno", "Fecha Contrato"}, + (row, rowIndex, colIndex) -> { + switch (colIndex) { + case 0: return row.get(rowIndex).getRut(); + case 1: return row.get(rowIndex).getNombre(); + case 2: return row.get(rowIndex).getApellidoPaterno(); + case 3: return row.get(rowIndex).getApellidoMaterno(); + case 4: return row.get(rowIndex).getFechaContrato(); + default: return null; + } + } + ); + // @formatter:on + this.trabajadorTable = new JTable(this.trabajadorModel); + this.trabajadorTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + } + /** * @noinspection ALL */ diff --git a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorUpdatePanel.form b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorUpdatePanel.form index 28c3ff8..79b1884 100644 --- a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorUpdatePanel.form +++ b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorUpdatePanel.form @@ -1,5 +1,5 @@ - + diff --git a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorUpdatePanel.java b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorUpdatePanel.java index 351e912..9a4dce7 100644 --- a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorUpdatePanel.java +++ b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorUpdatePanel.java @@ -24,6 +24,13 @@ public class TrabajadorUpdatePanel extends BasePanel { private JTextField rutField; private DatePicker fechaContratoField; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + public JTextField getNombreField() { return this.nombreField; } @@ -57,13 +64,6 @@ public class TrabajadorUpdatePanel extends BasePanel { return this.fechaContratoField; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.form b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.form index 9f55db2..d6cab0a 100644 --- a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.form +++ b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.form @@ -1,9 +1,9 @@ - + - + diff --git a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.java b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.java index d56a9f8..700b042 100644 --- a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.java +++ b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.java @@ -27,6 +27,13 @@ public class TrabajadorViewPanel extends BasePanel { private JButton correosButton; private JButton telefonosButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + public JTextField getNombreField() { return this.nombreField; } @@ -56,7 +63,6 @@ public class TrabajadorViewPanel extends BasePanel { return this.fechaContratoPicker; } - public JButton getUsuarioButton() { return this.usuarioButton; } @@ -73,13 +79,6 @@ public class TrabajadorViewPanel extends BasePanel { return this.telefonosButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/usuario/UsuarioCreatePanel.java b/src/main/java/xyz/danielcortes/views/usuario/UsuarioCreatePanel.java index 2b1fee4..a2e9964 100644 --- a/src/main/java/xyz/danielcortes/views/usuario/UsuarioCreatePanel.java +++ b/src/main/java/xyz/danielcortes/views/usuario/UsuarioCreatePanel.java @@ -21,6 +21,13 @@ public class UsuarioCreatePanel extends BasePanel { private JPasswordField passField; private JButton volverButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -42,13 +49,6 @@ public class UsuarioCreatePanel extends BasePanel { return this.volverButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/usuario/UsuarioUpdatePanel.java b/src/main/java/xyz/danielcortes/views/usuario/UsuarioUpdatePanel.java index e8a88d8..aecdef7 100644 --- a/src/main/java/xyz/danielcortes/views/usuario/UsuarioUpdatePanel.java +++ b/src/main/java/xyz/danielcortes/views/usuario/UsuarioUpdatePanel.java @@ -21,6 +21,13 @@ public class UsuarioUpdatePanel extends BasePanel { private JPasswordField passField; private JButton volverButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -42,13 +49,6 @@ public class UsuarioUpdatePanel extends BasePanel { return this.volverButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * diff --git a/src/main/java/xyz/danielcortes/views/usuario/UsuarioViewPanel.java b/src/main/java/xyz/danielcortes/views/usuario/UsuarioViewPanel.java index e3fce2c..0a06327 100644 --- a/src/main/java/xyz/danielcortes/views/usuario/UsuarioViewPanel.java +++ b/src/main/java/xyz/danielcortes/views/usuario/UsuarioViewPanel.java @@ -20,6 +20,13 @@ public class UsuarioViewPanel extends BasePanel { private JButton editarButton; private JButton eliminarButton; + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + @Override public JPanel getContentPane() { return this.contentPane; @@ -41,13 +48,6 @@ public class UsuarioViewPanel extends BasePanel { return this.eliminarButton; } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! *