From 922a46d6169749ffe336efdbc6dfe4a07ee3bcfd Mon Sep 17 00:00:00 2001 From: Miguel Date: Tue, 11 Jun 2024 00:22:33 +0200 Subject: [PATCH] Creando los botones de Seleccion multiple --- CtrEditor.csproj | 12 + Icons/allselect.png | Bin 0 -> 6623 bytes Icons/analyze.png | Bin 0 -> 37559 bytes Icons/choose.png | Bin 0 -> 12650 bytes Icons/extract.png | Bin 0 -> 8626 bytes Icons/unselect.png | Bin 0 -> 6754 bytes MainViewModel.cs | 222 +++++++++++++++++- MainWindow.xaml | 73 +++++- .../ucBuscarCoincidencias.xaml | 2 +- .../ucBuscarCoincidencias.xaml.cs | 47 ++-- .../Extraccion Datos/ucExtraccionTag.xaml | 2 +- .../Extraccion Datos/ucExtraccionTag.xaml.cs | 22 +- ObjetosSim/osBase.cs | 71 +++--- PopUps/AssignImagesWindow.xaml | 78 ++++++ PopUps/AssignImagesWindow.xaml.cs | 163 +++++++++++++ PopUps/SelectPages.xaml | 44 ++++ PopUps/SelectPages.xaml.cs | 82 +++++++ 17 files changed, 753 insertions(+), 65 deletions(-) create mode 100644 Icons/allselect.png create mode 100644 Icons/analyze.png create mode 100644 Icons/choose.png create mode 100644 Icons/extract.png create mode 100644 Icons/unselect.png create mode 100644 PopUps/AssignImagesWindow.xaml create mode 100644 PopUps/AssignImagesWindow.xaml.cs create mode 100644 PopUps/SelectPages.xaml create mode 100644 PopUps/SelectPages.xaml.cs diff --git a/CtrEditor.csproj b/CtrEditor.csproj index 8dd0289..aa9ea0d 100644 --- a/CtrEditor.csproj +++ b/CtrEditor.csproj @@ -27,22 +27,27 @@ + + + + + @@ -89,19 +94,26 @@ + + + + + + + diff --git a/Icons/allselect.png b/Icons/allselect.png new file mode 100644 index 0000000000000000000000000000000000000000..c140b79717b3fa7bd87e88d34d285f30f243560a GIT binary patch literal 6623 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 aHvONkE>yW)d%92gyx-OHJMP}_bN>P=NllFa literal 0 HcmV?d00001 diff --git a/Icons/analyze.png b/Icons/analyze.png new file mode 100644 index 0000000000000000000000000000000000000000..832c577904f45b08cff2461cbafc93ede82f423e GIT binary patch literal 37559 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 literal 0 HcmV?d00001 diff --git a/Icons/choose.png b/Icons/choose.png new file mode 100644 index 0000000000000000000000000000000000000000..1b056eaae027da99f6b63fc976e22fe092dd35e2 GIT binary patch literal 12650 zcmd6Oc{r5)7xygowGy%ukz`*YYpLuMBD=C>ow4s`JQbB}LzFNTk}N~AFEd3b`yiq* z6Ec?UJ7c`Jr>CCh_vic1d%f3H7w3DQb3UJQ&Ue3W53ZW(u`=;8fj}Tu1N}?pAP@xj z6#`X`9_ch%snXdW`G+gG&EGk)6YB5 z z&s~{3l6RI|tV;7pcuu))_(#fF4vCca@^ek{;=B)R%2dT6FJFT>`EMVIy{~(+gN2aT z*VnQ?X?gRS!*vJPLiFZ%uNtw}HuC+gYq0&EJ*~Z;g*}mUDPjhw|C@i6(!~PKpS5r| zaW8POIL+85q(kg=&cLE(J0xFhF%k{ohIl|dK-N}WL&wO;(}AMPiXCJ`4&kL=cjof z=vl1}M$$>J?Pw3Y(ucBd(s9j z+LIU!r>cH_6g*YQ6edLYbZ>3Hxf{nAWc}_o(rV)C=cJJK&{-Kh-^Xk1*8=#>1dC@E zyXr=WdrKoUN;eC;Fk2C%drzG#KD%j?BI?x{s%L_6310Dir+r?iU)X%pI&8xl#k1YS z7&AQ{BvDPZn^>~a-E4W5t~x3-AKTC;NKVe1QcVqNQ26RZRcv=BJ!j!b7bY7ZF@;hL zMQ+|m7w`Bdch>X@vaeXfBtvMMK^lG!w6Pq7$1-nD58JdwLa;c2C$~lzz6sQpg``OK z2t6*R4bvt}AiO`!8w+hBf^OxmA?Z&w#~qtG4_Vgu7A~1Ig!^8l+eM;Wb5g-;Lbk(5 zu|d5q1~!yXS}n8P33hlg3+4q~RD2ZCq%=iX$|#`b(slqt(*H9mcp1{*#8n<4~IaWz5PM^LB+iMY%>(91BZWD4#M(+sr-LgV~i_6yJ-OY@G-Z{_7f5FC$rJ zgEQx^oR-Yi_OfwGz-EHkS~Cr#?godAn5T^~)*|1H?%i4$91Enrz8=lLi565_)O}7z zk?_0+58CPAy+4eyisa5rZWI9g50WPkbmL56a%JMBCl;Nw-qKAts8A_lXX z+4f-2W`j^g8P-d4JYS1D^}gtoh?H*n$q0q3_Xt(Bestn6kY(ugn0`s5_ zYGKkpFB=iVdM5#!(JJu7>!Bl}e@#k@8zKEvU2f=j6ZIw8+DC?JIKgJDd>MnC+2PDg zz@q-xeVm%Woc$JC^lD~;Li;kfD10^@nFTAjSQWYyj!uA4v_6lKx0MfQ0%Z z9RTs2{eut#;CcQ*-v@HG_J`Rn!1~A^X%*mk;*Vx{-L};6KVG8jDV+b}3Cd8JKK&_Q zP6GBr0R5}1m%~o$6hk0MeSchL^n7&s{-=D>i3wP`_rLAD17xVYEPoI_)oy!V{l`%H zz?Rg6JMRoF7gS|eWm7G`n5%CEB|b-gJm9mypy!-PG^8l!$w5`b99AIv`-ZYye~2@0 z2GA=`9h@OW0?x_+XCepm87cGLBQ!dD3EDx39kbmAv(L+s%AkJ~ zh9jtVY_`jnlek{Xqtm&*-^Bu=cg{|md;Qu4rGU~UoRUxfJZ6I;Au-M8&2i-B3cael zNc+lDh12CF51|&m^>?dIKXUs5$17^D%<;#Xf9DY5w`Oig>5!Ehohz{SNn$oPF@L| z%8gKP9qjnkdb#7^J&PKdw;#)PKVk&&ieaNL?)MX{BHTT$WK9`-imU!xT={mINb!{( zi230dH>5humXViS-Y0AZ>#Vm>6)zWQD}Vm=%sl29^5!Aml7ILnWFWdsaD7~eW2@B) z2+OCm`GpCVr+uFrC6KO9sFw&Ixv2J*S=ONuh<|C(Mi-?(y+CbY2?U(gEwBsf?5@&j?) zN5oB+GHo~Kf1nU=2*`uyXxd#qi#*J*BcWyQ+UUr<*@NE^_rB;A1xG&;q5RP9-nBUP z+kM~zJPnKI3jKdIi#EiaZzpKqKp49IcJ5cI0@k&syx+Ar`P*`@&z3`O@S{+P_Nll3 zBnvBBssz?`{9iT82F4S>8vF%)?4M5AORTXq!JXhjlvC6HWbc^aIk1b(|5zGH4$(aN zUuv>NOXAKx|4Yp?TKTZN|E1>LL7;gQ{69fqPFZuvP5&?3SA*itKmXU6uaWOzVZWeJ zzpF+3i-1(Lp+ttzmDd~MH-V)5E-pgK3cLhWQ9OvO;!*XVJGkEdpS;=yBL1Eqff*16 z%z&2i*2N{*qjnkJmCX}`_2?35!Ung1AN8T+xAtC|naR06)6yLV}QtNpC)c7hJ7A z#rA8@fW6EPO``t-wzJudY~Vax2f}XmOP~IqJXFxBW-Q8X4Q>TB`)e)R#sp3|GXP!Y zcUQ(%Ya(kP!+pdL+L89GjZYW7@6P=9afTZ%0V#F5X1P~z7^KIs=jt_YX7IaDW4@2$ z&b>Z-<^kFI8Jw^O44enQM{|KDv^HZmf%?-Qx|}Uo(;)kwqB?z6AQ1+gX1ICnVndDH z5^T0QF-{I)`E@9tvw#0^ zGsSOgyHEvB<0kihu!5lTs4ul#6xw#3eBxC;+3skRNkZf|$;3ZdVFD%kAKl6 zbbZqv-!Nr@<1nJPzF`LO6KPtc<_9eU%GIH;`uMd$>b&M~ZBq3jhg|+n-ses6g;+kt z&|8?BwegCN{b=DV;USK8NcGG_Z3%Mkf^=T#Gs+aN$JK)_-G?2!9?n17aBO!;oiiI(~XbnPIu056|0-3OeO^-emJE$#q;5|FZDIJ{Tf#8 z(1J_0`=JuTR20Ec9@m(>-ozNjQSN>5)ngpr>|&Vpo+iw*QSrOxkj?_L&+{1n^Zd+- zd^4tv-X`yM0?nrvv{hWHJCVAI?vY~f@V2N_z2Y@J)-cTt=E3hbZu6ToIO^?hc~rP4 z5;PeCJ_Y|Z${yR`)}`!=aCUh0C{?c$sBbAv&x@GU^ZbE{umK0Ap*OeJ$lJza`{l;r zGB1c&(=Ga#$CBQy{kxQF(6|r|_I9}|-sfDNn&t0Q$_%Iop+!0|vGlH=D^v93djcUZ zyMW|-;z|c)ZR1_|9Hh1GsRGH^cv^j~{l&&P*UxWHz&@p%!{1jy3?eg8WHt{rz0bhG z@=4gqE;K)@PLjHaqw!b0r80L7C)!In+FrPXj=(X4co#_^f{kz2n$oM2X{NTBNXd#* zVK#C6Y3CJ0VCnu+z?OgAaw4j5_C!x@(oOzqpK$7wD&w;B10I#D)O`j3Gu3i9R z;0blU_cPCwK9B4$liDiMmLCWyaNOKpHCD@*c+5QYP}T4Gm>#=7_4Uy`(31N|d@sLS zdqn+MTGDqmH|Z|4#ivj_q4!uNKT5LQoWEYDOy9+LO)qie&f=x4%G(D%9(s{3QUp;0 zr;n;a#^x?mpI3XG+GL(BYYF!^JI1?B+#N%^C-x{u%S%F#l9Ax}{@_7+d^9=Sqn`fm z`o@&}M>sRVslghW`Ro3{c>mmnI?#vrA5%F=F1X}lPOxf|e7A2;%dU8hJY9UHBOOS+ z?O3V=LbZ9?P4o_r#{&nRqjrw!z#M<3mre(jfAlRlMa=WA4@k^_SA-8(0IqcWf7xs` z$R_6|M3N(21y+SzoFlFb_vT@pB~coeh`Ww6i)D_jj8#NRNll~j`!cRm2$7Ips3U_$ z<1Mz2?^w6lmKjMFxT@gE+YhQwQKPz}Pqg;Ra#jh!HOf={R#o|nT%d6Na@mLC8NEg_ z%BC3+lXyeuVdppbAj}N&A!M+i=q(jl2IV2Du2oBQ( z&Wc1{(#WWYSW&e-ft-tzEeBs^;frm64iB-tTt-~b0}|31OhXC>PSn3HKlJfOfcuSe zel~hreb1{#EMFJLR^jAvJ5$A#m4<$Ir#bhpobO*VGT0R96*y1<>wWLOqlC?w>6sv2 zifHns-8{qR6nMWGd8JqOlv=h%!U2cj;i5rvxM<{BoUg6^9pWTEFcUVmRp4fM9Q7vQ zyoBo#MFE3lVu@ce4d#)<-)|yJ{3J*ayw_5~M+@)jnSZ$Y(~z_tXdhg2Hj3lt&6EzR zN;_E#yfm>5<9XOsVM%vH&I{Wuo6iVfsohY^Rm@5Xy8=KTk*{dnl5Gl9{GR2dHT{hFbgfBcJ+Pro)+YgLG*k+oL1W&VI+ z+lWN{T74r+WS7Ru=htKVoh1f-R*GO)LRMEoq}m1PZ;fT zCkv)(#GiB7%DILDi*FPE*L;wI{k+U;Bw!7Z?K#M}ZT!;A`J?;(N3Q*~;;Jw*zZ2bN z?|$2D{{J*Lg^_uO!M&d-%EwJ;$k() zU}wQ zIps14HEj`9Bm^abRk+NW!hnth%yXTwSQ@I}_QpxXbP{e2c@9Fqo?aY`&f7D@i9h$~ zXa6o){bGnHfII+a>*w+nePfE^2;*~r_Gba($0@!N1{tUMnU&&u%7FtOn5Y$G;>k4_owCCM;YJoej+6KC-a(Oq%TB&sZLsY;(9>QVYE64~6%# zETN|l%Ts-NqXxCu&*fMS))0Emeb{Ld zt|EG0?#-8Nn!@!at?J3|F*83Lp4i>(g^ARS@0~l|Mag(nCz_b~BWx|MwG+hY(7CZC zOmZd3Yf_W6vRO6K7UBLxTPlT1RF5Nou{9J~-WfOUdJfN;J_q+mO@i)2nU@U_WZ+Cy-x)wJ9YK#7u`R`lB29Q! zhj_IMy4>!R#>6CWZpaRZa;%yv$Uq%0hr<5)ST9PT%uc@kI>xoKC&bnm?|0N}$H6Xk z4LOO7H!a_PaS4rkSo(1{QpT645L_{7ODgYL>h_V2iAmG%#^!$FYPSz5XgHRS8TH)I zq8paqI#nJDab&jtHW?W}9bCGRvz)6WaX9iyhlu0p(JB$dNq3Tg4e`a8H&6jfFREEa za?~?3*%T?acQHbDTs#^#b7o}X9f$*w^24>fVTuH6q3@RuIaKXNM#dSJCbCWuUi1!* zlFtxW*(Ng=%>!q~ag%Rr9C`)fB)fAg=}onJe0tJ|NI zu*MMZ4=``0qiJL-q%K3@B%xh+V{bou(ilQ4{CnU@4-viMRtN`Clh{v)=`bTS(L8?| z8@SU^^EEQoK8=;qSt3HaQwlfy&zD=2oja?WJ8Hg$IRh|Lmre1; ze~)It16u+CnmxnczIo%KX`CY{*AJC5M$JtH?VLoGeAMQ?->O&KG_vU~hj~)`KR2Td z4kyenw)-2w#l!?;G6Z25TA2<-YR<}tj6rM9ExXq5?ILnx&}VAzEv9}{d$+k`a^^?F zR50giPez_#T$Ioq+es%zJk38j*t-#DJTPeoEaI9ODK5!H=q5Rr+^3V7Q{nk=Z!|IA z)Oq%6GA1RodTg4uBcbTd6yNEQi=ktK$4jGQ zjQkbS$XXSK_=SSz1Koz?3*IhL%a80~H-zHkVmYl7Hn#FwjSJV)z10Yb4+C;vZ%5;E z1xF@;(gT;cXSLRf-mUHX&FyLD@11yezN{efhI!g=!{%0FYy46uLNBF;QD2R*dAiJs@dI1{5Z1YB1fzR4ylBF zx(u&V%U4#l8c1jA)kRcV7)!E%X+parW#Opi^t0KmPk~xEM1Qob`h!Er6MNAt)4Z9f zTPwrKG%~$UFs;LP5~gXaOiI5Hy+|3YK8SIb=C1*S_i+6D2fKYrn`_sW{1eR>hHs_u z*?R-gZYa^oaLp+@g+qpQ)aIv87Nj)E&pcuE7y)x)?}6*vLfUEy!0-vcFwp+uIriPR z+B<@`*3~tqv+r}K;=MAL-K%~s-C8wV!CIVe3D+E{s>`Dm6`?Z7$qc*ox9 z)ohOCGKdZL$HQ>Suf|m-Vw*aM!@K0d>L0g3=6-HXmU`k-IfA`sb0gSHoreY^_V+K} zYBtGtNN7Bc$bAwXq2YfNTfEV0=4(`nW*w|6iy1B==AiaXibOIBo00jnIl0?w#YjCe zgF-BOpTp6VH+2me29;5QBR9TpjWa|^t|+q^v)+UXZ_L}*@7*s9i%JsaxM8++sl_rm zPkr9TYlw#vv1QGHpf(qQeL(p!zToEEZQl4F3<@teI@U7#om|6Mi)6K5Z#N*GY_ENi z0FQ$7_l*|Tg&;q3MLTH9z*?y9!PJyEKiiYts{;?Qd-ztgQ`)J^C(S0VnH-&40`mmO zY`%@_$1Z|EN9GT|1*p&7EQma9=(TAkyR3dPD#pv&Yro|894J3Iy_#A>2D;7BIT+7u z=9iqSr{{fya)l?OT$th5a7XPA+?hmD4*&JZO+){HS0)mksQAq z$~AIZOf^X_MTO?GGLax)b2f<-w^u+`JOKE2G!6w5w*Fxnhw0Q7($U8e_sy`|(83 zJ+2~ZOvaOqmV0YG>tAUDq(dlK3(2=G?NSC`r9Ex*Gc7>{MSh>xrqG>!r@yg<;HY#o zS6woWKbzu>TIsRD@XfASJhK89R%~afJq{7{pUcED^FDDO-#86noQmo%4Ky zJbahrCzVB`W4wmXki@uvdpkvf6Sed#RSvn!js-JGo9`2pb;mQ0_h<}EPIpwMuT1k` zcmU^nUm)$!`5D3L%A0e<hen}3L3O$`|I*yEkAGq z3XMs}pX!0~kE-2S%-TI(AjGaQ)}YYX=78k(2oo^i{QAE5)%}gFCPu{`!NT<9D0Ou( zcPe$Mhp|P=0Dz@Jfrxy1& zRH_7ZVQ6eXRQ_`<9>O9bNL?&h~Vz@r@_ zg$0PzeT^SvpcAT%EConS41;PQ?LZP|Hvv*1_R#FiZC+^=5D39+@2Gw^pI8n~8AU}{ z<0RY-Qi;H2ZI!P6=gy^N%YnYRrJ{V;Ky*T(V>SWly}}Rj%mS)Y-#t9rtZ3FhF$4n5 z$8G_hf$JgRDmN(H6sTE*APC2ZYXhl1@lS*2LZ|`V;W&}AK>p~bj zy8@IzHDXjs77LG(X#;R||LUydZfb-eZW77K6R`fnoRr==yzF{W@fwpakHjI|*<0ZXN`)hp$roSh+My~ry-z7Z{Tr0CeMrQ+xl2sw*-Zf_AK8JJY zmp|4(pdNav@^`YuGckh)&BmiPkH}DUPP5V(E0Ffd(#>XIw7F`Tjc(@HYOS^k8g6xv z3~GFt;aBf9nwx&dKx$8~kcT09?j0}u)gG?X3Ri{fWdKZi6;$BF)Sj1QPnvxsoV(9kQb4z%NO@h(l`U) z!vNI}=RhEjv}TckNeHP5_Z~L~eD)$<`l|Sz%dD5Ebxw5g)D3E3mKv2O@Xh! z{JPd{&50@?beX`dRCC#2J6etNdPfXeP{rU{u5I|MVbty>c(j=wXUq*f$N|P9kzL1} zRt-(NEZC@AI9em9+8lD9vA~h-HdNSCT@5%iKL~8AXq)d2^7x{M8U<;b7!d{hW%U}? z+dcWB^&WU(;T`p?S|~*k-GFLd=slfli%-h$nHQ@QqK}dyB*yx6Q0mR!%*VDo*kKrT zf@F#{Uzty)&#=6)NCzTG;FurOSI%jEkCO>dDDerhGcdYt6zY))~S*`<-ZRw27!N#YP%M(SXq{V`TGV?K_ zpaH627*{UG^VKqXD#P~e1>vXmx?3|pj{^X+D$zhCoIrvXLxYi)A3|rmWOi>Jd^KNU znh6J?-rNB5n}jMo-+XbiU9SBKDY3P25GJ2{Wj8V?835>(2-b?PWMB5H->VpQl;dwX zF&`U>*UXCO_>vN1+HGVQpP_^qjCQ&a3DSdjR4gmv1d{67tm^f4n;-fUek`8FkJn(* zlh1kz7VW(k>oj)~PHUPmy?Xw*>XBM*IIwREv%20@u)b#Neafv^!*dg9GKKl z8B?kGOFGs4niUr2;fL~1V|?gIVvG7i17+aG(e`a2ihLTEW<;L}yu$UI%>d8q6H}v_ z060Jy-*{I;4=iY*TB8&Kh^P{p7}MRJDWifrMxwx6B>8o|Bk(xs=Ar0*DDsld<3mrQ zr3LJHQ>I_fi0LPMqJpN+Vq$E&!fo1E1L;D&a0Zx`qjE zjoBkJt`%VHFDq;YT_)n@K71{B0jyk>-xNsvt4d(lp#>9Qah?B4E}b(6oCqk094d5U zQwtfl?Pp1N5Pn6mhzyCD91O%0};liY%V|sUZQ- zwh=T5ec;?9PKpi_(`k9fNB9w06gb5W47vQesYWBx`nFj4+o>!1wAnhl-)b`!)gUNK zf&vNsiAWO#ENr9@{pbi)xYX?0gf7sp@fWQI2$R~O9B`5H>ceLvIg8`_YSXPtTs<-d z>Omm5z|J!yEACpDBl4ClI4V^m@cYSnQ9smRc441GUUmcH2wfDk7FK7Hijsy>lcEAi zZa}W^cd38H9ENLxZi&Z;UJ`5>JE^GM?2 z`2+sU-EKiMnOXr<`bRI)*x_Rc^)>LgvgAcW6D&!c(yeSNStE%`AI^zgo5eCNZ@xa` z#zPQ|*4E#>6V1hI4GookXM!3`XhJUa!#Lnj_|+m-{OOXHkv|vrXL!3@W~nE!4`aN; z`N}!5<0z#gksy!$CDXN&^-H(f=bY=8Ui22KYrkB&{JEbPCV^5C4yB>qiwVt^;2g^e zDS6qj{uc90PVI9NW}>BBjI}SI9_v?)@9haxgzHz77Qr|P(MP>xZId)6>2WzJ`QS({ zxaR)PO9xG)kijooCYk&{+6r*Z`gn$KeB0tXq4{>Rrr&t$@60BJ4La8H&rX`x?+6>@ zRb(%!6wZHY(A6xPx?&js+2EGZ+uhcp{*d)-T?A)eY0jBbbDOmG2XAo8>Wyxni6P4x zoTVSXlFLDZk<5A*qCW{K0~XFR*OX=YccgbD*uvtHM-^f*NS_K^219n)Qb_B0?}8cD|Azje|itx`bvPXCN=DPYH&J&H7(iN=u2Ex zP<#&h(iXL(EK9uEZbq;;O0yhX``2RXz`*1lPI(CbfA@C;sQjN)Z3V5bld3vp=YhYI O0H%D?OJx_G|N1}cZ{&Ue literal 0 HcmV?d00001 diff --git a/Icons/extract.png b/Icons/extract.png new file mode 100644 index 0000000000000000000000000000000000000000..37180d521e3ed039abf63bc0b6c684545bc1179a GIT binary patch literal 8626 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 H2uS-Mdc9Vu literal 0 HcmV?d00001 diff --git a/MainViewModel.cs b/MainViewModel.cs index 809332a..7bf3740 100644 --- a/MainViewModel.cs +++ b/MainViewModel.cs @@ -17,7 +17,11 @@ using CommunityToolkit.Mvvm.ComponentModel; using Xceed.Wpf.Toolkit.PropertyGrid; using System.Text.RegularExpressions; using System.Windows.Data; - +using CtrEditor.ObjetosSim.Extraccion_Datos; +using ClosedXML.Excel; +using DocumentFormat.OpenXml.Spreadsheet; +using CommunityToolkit.Mvvm.Input; +using CtrEditor.PopUps; namespace CtrEditor { @@ -56,12 +60,21 @@ namespace CtrEditor public ICommand TBSaveCommand { get; } public ICommand TBConnectPLCCommand { get; } public ICommand TBDisconnectPLCCommand { get; } + public ICommand TBExtractTagsCommand { get; } public ICommand TBEliminarUserControlCommand { get; } public ICommand TBDuplicarUserControlCommand { get; } public ICommand OpenWorkDirectoryCommand { get; } + public ICommand TBEliminarTodosCommand { get; } + public ICommand TBEliminarAutoCreatedCommand { get; } + public ICommand TBEliminarClonedCommand { get; } + public ICommand TBAssingPagesCommand { get; } + public ICommand TBMultiPageExtractTagsCommand { get; } + public ICommand TBMultiPageAnalizeCommand { get; } + + // Evento que se dispara cuando se selecciona una nueva imagen public event EventHandler ImageSelected; public event EventHandler TickSimulacion; @@ -197,6 +210,15 @@ namespace CtrEditor TBEliminarUserControlCommand = new RelayCommand(EliminarUserControl, () => habilitarEliminarUserControl); TBDuplicarUserControlCommand = new RelayCommand(DuplicarUserControl, () => habilitarEliminarUserControl); + TBExtractTagsCommand = new RelayCommand(ExtraerTags); + + TBEliminarTodosCommand = new RelayCommand(EliminarTodosCommand); + TBEliminarAutoCreatedCommand = new RelayCommand(EliminarAutoCreatedCommand); + TBEliminarClonedCommand = new RelayCommand(EliminarClonedCommand); + TBAssingPagesCommand = new RelayCommand(AssingPagesCommand); + TBMultiPageExtractTagsCommand = new RelayCommand(MultiPageExtractTagsCommand); + TBMultiPageAnalizeCommand = new RelayCommand(MultiPageAnalizeCommand); + stopwatch_Sim = new Stopwatch(); stopwatch_Sim.Start(); } @@ -252,6 +274,8 @@ namespace CtrEditor // Asignar los datos al UserControl UserControlFactory.AssignDatos(userControl, osObjeto, simulationManager); osObjeto._mainViewModel = this; + if (osObjeto.Id == null) // Para los objetos salvados antes de usar UniqueID + osObjeto.Id = new UniqueId().ObtenerNuevaID(); MainWindow.AgregarRegistrarUserControlCanvas(userControl); @@ -316,7 +340,7 @@ namespace CtrEditor } finally { - objDuplicar.RestaurarDatosNoSerializables(); + objDuplicar.RestaurarDatosNoSerializables(); } return NuevoObjetoDuplicado; } @@ -331,6 +355,198 @@ namespace CtrEditor } } + + private void EliminarTodosCommand() + { + var objetosSimulablesCopy = new List(ObjetosSimulables); + foreach (var obj in objetosSimulablesCopy) + RemoverObjetoSimulable(obj); + } + + private void EliminarAutoCreatedCommand() + { + var objetosSimulablesCopy = new List(ObjetosSimulables); + foreach (var obj in objetosSimulablesCopy) + if (obj.AutoCreated) + RemoverObjetoSimulable(obj); + } + + private void EliminarClonedCommand() + { + var objetosSimulablesCopy = new List(ObjetosSimulables); + foreach (var obj in objetosSimulablesCopy) + if (obj is osExtraccionTag TEobj && TEobj.Cloned) + RemoverObjetoSimulable(obj); + } + + private void AssingPagesCommand() + { + var assignImagesWindow = new AssignImagesWindow(); + var assignImagesViewModel = new AssignImagesViewModel(); + assignImagesViewModel.Initialize(this, assignImagesWindow); + assignImagesWindow.DataContext = assignImagesViewModel; + assignImagesWindow.ShowDialog(); + SaveStateObjetosSimulables(); + } + + private async Task WaitForUIUpdateAsync() + { + await Task.Yield(); + Application.Current.Dispatcher.Invoke(() => { }, DispatcherPriority.ApplicationIdle); + } + + + private async void MultiPageExtractTagsCommand() + { + var ImagenesSeleccionadas = new ObservableCollection(); + + StopSimulation(); + + var selectPagesWindow = new SelectPages(); + var selectPagesViewModel = new SelectPagesViewModel(); + selectPagesViewModel.Initialize(this, selectPagesWindow, ref ImagenesSeleccionadas); + selectPagesWindow.DataContext = selectPagesViewModel; + selectPagesWindow.ShowDialog(); + + foreach (var page in ImagenesSeleccionadas) + { + SelectedImage = page; + await WaitForUIUpdateAsync(); // Espera a que la UI se actualice + ExtraerTags(); + } + } + + private async void MultiPageAnalizeCommand() + { + var ImagenesSeleccionadas = new ObservableCollection(); + + StopSimulation(); + + var selectPagesWindow = new SelectPages(); + var selectPagesViewModel = new SelectPagesViewModel(); + selectPagesViewModel.Initialize(this, selectPagesWindow, ref ImagenesSeleccionadas); + selectPagesWindow.DataContext = selectPagesViewModel; + selectPagesWindow.ShowDialog(); + + SaveStateObjetosSimulables(); // Guarda el estado antes de cambiar la imagen + + foreach (var page in ImagenesSeleccionadas) + { + SelectedImage = page; + await WaitForUIUpdateAsync(); // Espera a que la UI se actualice + AnalizePageCommand(); + await WaitForUIUpdateAsync(); // Espera a que la UI se actualice + + SaveStateObjetosSimulables(); // Guarda el estado antes de cambiar la imagen + } + + } + + private void AnalizePageCommand() + { + foreach (var obj in ObjetosSimulables) + if (obj is osBuscarCoincidencias objBC) + objBC.BuscarCoincidencias(); + + } + + + + /// + /// Extrae y formatea las etiquetas de los objetos simulables y las guarda en un archivo Excel. + /// + private void ExtraerTags() + { + // Obtiene la ruta del archivo Excel donde se guardarán los datos. + var filePath = DatosDeTrabajo.ObtenerPathAllPages(".xlsx"); + + try + { + int colFix = 0; + // Crea o abre un libro de Excel. + XLWorkbook workbook = File.Exists(filePath) ? new XLWorkbook(filePath) : new XLWorkbook(); + var sheetName = "TagsExtracted"; + // Obtiene o crea la hoja de trabajo "TagsExtracted". + var worksheet = workbook.Worksheets.Contains(sheetName) ? workbook.Worksheet(sheetName) : workbook.Worksheets.Add(sheetName); + var lastRowUsed = worksheet.LastRowUsed(); + // Determina la fila en la que se empezarán a escribir los datos. + int row = lastRowUsed == null ? 2 : lastRowUsed.RowNumber() + 1; + + // Determina la columna fija más alta. + foreach (var obj in ObjetosSimulables) + { + if (obj is osExtraccionTag objExtraccionTag && (objExtraccionTag.Id_Search_Templates == null || objExtraccionTag.Id_Search_Templates == "") && !objExtraccionTag.Cloned) + { + colFix = Math.Max(colFix, objExtraccionTag.Collumn_number); + } + } + + int colNextGroup = 0; + + // Itera sobre los objetos simulables para extraer y guardar las etiquetas. + foreach (var obj in ObjetosSimulables) + { + if (obj is osBuscarCoincidencias objBC) + { + int maxColGroup = 0; + + foreach (var objchild in ObjetosSimulables) + { + if (objchild is osExtraccionTag objExtraccionTag && objExtraccionTag.Id_Search_Templates == objBC.Nombre && objExtraccionTag.Cloned) + { + foreach (var objfix in ObjetosSimulables) + { + if (objfix is osExtraccionTag objExtraccionTagNoGroup && (objExtraccionTagNoGroup.Id_Search_Templates == null || objExtraccionTagNoGroup.Id_Search_Templates == "") && !objExtraccionTagNoGroup.Cloned) + { + if (worksheet.Cell(1, objExtraccionTagNoGroup.Collumn_number).IsEmpty()) + worksheet.Cell(1, objExtraccionTagNoGroup.Collumn_number).Value = objExtraccionTagNoGroup.Collumn_name; + objExtraccionTagNoGroup.CaptureImageAreaAndDoOCR(); + worksheet.Cell(row, objExtraccionTagNoGroup.Collumn_number).Value = objExtraccionTagNoGroup.Tag_extract; + } + } + objExtraccionTag.CaptureImageAreaAndDoOCR(); + worksheet.Cell(row, objExtraccionTag.Collumn_number + colFix + colNextGroup).Value = objExtraccionTag.Tag_extract; + if (worksheet.Cell(1, objExtraccionTag.Collumn_number + colFix + colNextGroup).IsEmpty()) + worksheet.Cell(1, objExtraccionTag.Collumn_number + colFix + colNextGroup).Value = objExtraccionTag.Collumn_name; + + maxColGroup = Math.Max(maxColGroup, objExtraccionTag.Collumn_number); + if (objExtraccionTag.New_Row) row++; + } + } + colNextGroup += maxColGroup; + } + } + + // Formatear los títulos en la fila 1 + var titleRow = worksheet.Row(1); + titleRow.Style.Font.Bold = true; + titleRow.Style.Fill.BackgroundColor = XLColor.LightGray; + titleRow.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + + // Auto dimensionado de las columnas utilizadas + worksheet.Columns().AdjustToContents(); + + // Guarda el libro de Excel. + workbook.SaveAs(filePath); + } + catch (IOException ex) + { + // Muestra un diálogo de error si ocurre una excepción de IO. + var dialog = new TaskDialog + { + WindowTitle = "IOException", + MainInstruction = "Error al acceder al archivo", + Content = $"El proceso no puede acceder al archivo '{filePath}' porque está siendo utilizado por otro proceso.", + ExpandedInformation = ex.ToString(), + MainIcon = TaskDialogIcon.Error, + ButtonStyle = TaskDialogButtonStyle.Standard + }; + dialog.Buttons.Add(new TaskDialogButton(ButtonType.Ok)); + dialog.ShowDialog(); + } + } + + private void InitializeTipoSimulableList() { var baseType = typeof(osBase); @@ -473,7 +689,7 @@ namespace CtrEditor { // Guardar referencias temporales obj.SalvarDatosNoSerializables(); - if (!obj.Enable_on_all_pages) + if (!obj.Enable_On_All_Pages) _objetosSimulables.Add(obj); else _objetosSimulablesAllPages.Add(obj); diff --git a/MainWindow.xaml b/MainWindow.xaml index 5cc0c28..7f24ad1 100644 --- a/MainWindow.xaml +++ b/MainWindow.xaml @@ -91,35 +91,55 @@ + + a + + @@ -143,6 +163,7 @@ + @@ -153,8 +174,38 @@ + + + + + + + + + + - @@ -163,10 +214,10 @@