From b35b5b553594fb316ec1230ff46b1215fd5ac790 Mon Sep 17 00:00:00 2001 From: hongcj Date: Fri, 29 Dec 2023 17:59:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kwc/createBom/CreateBOMHandler$1.class | Bin 6744 -> 0 bytes .../kwc/createBom/CreateBOMHandler.class | Bin 1968 -> 4536 bytes .../kwc/createBom/CreateBOMOperation$1.class | Bin 1577 -> 0 bytes .../kwc/createBom/CreateBOMOperation.class | Bin 2153 -> 2669 bytes .../connor/kwc/createBom/NewJFrame1$1.class | Bin 2709 -> 0 bytes .../connor/kwc/createBom/NewJFrame1$2.class | Bin 3968 -> 0 bytes .../connor/kwc/createBom/NewJFrame1$3.class | Bin 5134 -> 0 bytes bin/com/connor/kwc/createBom/NewJFrame1.class | Bin 19931 -> 10801 bytes .../connor/kwc/createBom/NewJFrame2$1.class | Bin 1379 -> 0 bytes .../connor/kwc/createBom/NewJFrame2$2.class | Bin 2709 -> 0 bytes .../connor/kwc/createBom/NewJFrame2$3.class | Bin 3969 -> 0 bytes .../connor/kwc/createBom/NewJFrame2$4.class | Bin 5176 -> 0 bytes bin/com/connor/kwc/createBom/NewJFrame2.class | Bin 18998 -> 10701 bytes bin/com/connor/kwc/createBom/Util.class | Bin 7056 -> 9647 bytes .../kwc/createDWG/CreateDWGHandler$1.class | Bin 4034 -> 0 bytes .../kwc/createDWG/CreateDWGHandler.class | Bin 4107 -> 3974 bytes .../CreateTemplateDialg$1.class | Bin 3130 -> 0 bytes .../createTemplate/CreateTemplateDialg.class | Bin 10164 -> 6204 bytes .../CreateTemplateHandler$1.class | Bin 2575 -> 0 bytes .../CreateTemplateHandler.class | Bin 1473 -> 2823 bytes .../CreateTemplateOperation$1.class | Bin 1184 -> 0 bytes .../CreateTemplateOperation.class | Bin 1455 -> 1783 bytes plugin.xml | 15 +- .../kwc/createBom/CreateBOMOperation.java | 5 +- src/com/connor/kwc/createBom/NewJFrame1.java | 266 +++++----- src/com/connor/kwc/createBom/NewJFrame2.java | 227 ++++----- src/com/connor/kwc/createBom/Util.java | 213 +++++++- .../kwc/createDWG/CreateDWGHandler.java | 12 +- .../createTemplate/CreateTemplateDialg.java | 478 ++++++++++-------- .../createTemplate/CreateTemplateHandler.java | 20 +- 30 files changed, 746 insertions(+), 490 deletions(-) delete mode 100644 bin/com/connor/kwc/createBom/CreateBOMHandler$1.class delete mode 100644 bin/com/connor/kwc/createBom/CreateBOMOperation$1.class delete mode 100644 bin/com/connor/kwc/createBom/NewJFrame1$1.class delete mode 100644 bin/com/connor/kwc/createBom/NewJFrame1$2.class delete mode 100644 bin/com/connor/kwc/createBom/NewJFrame1$3.class delete mode 100644 bin/com/connor/kwc/createBom/NewJFrame2$1.class delete mode 100644 bin/com/connor/kwc/createBom/NewJFrame2$2.class delete mode 100644 bin/com/connor/kwc/createBom/NewJFrame2$3.class delete mode 100644 bin/com/connor/kwc/createBom/NewJFrame2$4.class delete mode 100644 bin/com/connor/kwc/createDWG/CreateDWGHandler$1.class delete mode 100644 bin/com/connor/kwc/createTemplate/CreateTemplateDialg$1.class delete mode 100644 bin/com/connor/kwc/createTemplate/CreateTemplateHandler$1.class delete mode 100644 bin/com/connor/kwc/createTemplate/CreateTemplateOperation$1.class diff --git a/bin/com/connor/kwc/createBom/CreateBOMHandler$1.class b/bin/com/connor/kwc/createBom/CreateBOMHandler$1.class deleted file mode 100644 index 1719e6cbb536d39439a014ce77dcfc6dd53939f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6744 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 diff --git a/bin/com/connor/kwc/createBom/CreateBOMHandler.class b/bin/com/connor/kwc/createBom/CreateBOMHandler.class index cced1b10549d00ebc7a11018e68ae063b5da0474..e0c347673aa80c655e4b9791cb32d63b9981dbde 100644 GIT binary patch literal 4536 zcmeHLUvJYe5I=XNX|s;OVEq4+0S}u%%L`8%nl!3bRO*<-$|N3L*K{69964Uuz7Agk z2_$&uLm@6rn++DWBn0(ks+8LC?|#1XozEBl`1$1<06d4s29yY_FzMP%dY)AFhmXu= zic`&B;>$+V+TMCay}rYh0cC_sHLy8zgdcDeQ{lsP5fIp$y+A9<^cYUS2zU?(=@FRi zbQ?QSXPrP zRhTE$wYQ$)fpmtvZ=oK(aHz%!Enmr=!`)!bGHcyEZVA_yN{5hD&8f?{r@68iMXR;d zizLu62wLawp*LN?+6yT?z95G3AI~qwQz(!N?!`PBR}jc6}+<MK&+vBPm zCc?00k&HUK%q(w0(K=otKvvjdHs8_S))7gfy>3Nu7=h)3D_$_Yic zd;6Seq%vdI1_s8mKj|TayEmrSoM0>Foq>ZdpI6UTdOaTLP~jyg?T~IRjV%yjQ@xj}rbaL1ol3pgQ_TIWTd2 zc62u~gDn8_E7adDT>cDKzK<~1@L3s+%)xbR*CP}x!VT;ZxCytA`8Kx8*t-*RmGDi( WbuWSINdi|19-vGK9>SwBoAnEn4FPNb literal 1968 zcmbtUYi}Dx6g^{avZ>k7LP&r>`k+p*ouu24LIIbwsY%sHNh{$Hi4T03Ob4^gdcB&R zl=iRi2Y84NMS>QA#1G&{LC>sBY$Zmrg)Qx!$Gzv=*WADU{{2q?*YK&2f6U-Ev>%I!$x;?fA_9T9>m)C@TlG~tx&5tN;6F}<38;+6|!*iAhSj)+fx_t zGo58oClOfOaV%ELw$h2!CZt|?s7<2daIewqs?`NN`y|x@ukJjQk7O9jq!l);iINuY zCT~PZWH$tgmFhlK8=VKbgd(N`oIy$8>`s*Edq?d9ZT93roWpdKjQ6F9+`f0{*{`Ea zU^(|_q`1lL>&IFhSz>NfcK$m9Te%h^-g?9^>(zlU?jJnV$`Y!y^;qfDQYrH>C$KUK z+`lFzyn%TiZwi!$BveLU8I^{c+jl;< zu~nvXr*>tUx2})(1S+F+i)%g~*92CFH_2di2T~|7C6(e^EHn7#|1H(2*InH|1Az|% zOklE4wI*O5YXw!&g#&L>E%wdt^yTCsanXec)E@9yO2^)PSlTzMSBqfh@uuzsB{LVr8BluN8S$U0Rrg>rYZaopZoN1}Oh-z`HTI88!*m7r z#0m-X!Kqv-9|)IwmLrq1QA8Nxd;E|aHkUg_d23IYUK9fiiLUfzOG>_F3x)x2*J>tb z2&UKvPL2#0Eopg63^S>|EYmfHNZzT7K`;#Ih$5yTjA0#vh%NoSC&bjnv6q5`S zJy~psqxFKz8)8mzzN;gJbeF;`L$zND3d$3_VG8L9*KoOM>4+o-9ejxV3%CVolN7=B8L)E99NV zfg_1%E(${Oo23``j&7mdVo5wuP5!VGVK2+mtOe!m(Dl2#m(5>jxpYlK5|4B|#uEmu zDZHB1wEU5eq&CyF7#1mMt~eyABS}Mc8iQf7_ds>~hsJ2A;&F4IO3|K2t>Uy?Qxq(< zSw{a|Pt&S?G~KJxw4Elkdr5e^PF=?fHTn^?P#E+zDTSN2d9x{+7^f`}ruz(7Jg$}n zZN?DYgV0EN*58vMU!rBQpP*+>aPEVzbDo|9qywxYK~LR3Yq)@m^hM)?c-zBU@~(WY zCPp$Jp?}8ZW88R$>{ldT2ZB4nD-*n?zhmwM^TllB7z^(aPvp90uM~I~3Vejz0!0j? z1Opqi(91-$>IX9t0JeiMNb@O{D4b_x5kY7{Cm+x09KteIeAyWCSf!Jqtw_=J3!C+< Axc~qF diff --git a/bin/com/connor/kwc/createBom/CreateBOMOperation.class b/bin/com/connor/kwc/createBom/CreateBOMOperation.class index f078b3ba89aa3b38700f7d4c833dc9c8624df7d5..569d6247930f1935ad304f0283efbfc275d0d4c4 100644 GIT binary patch literal 2669 zcmd^BTW`}a6h3adrt1p3Gwzss$JoMUys$Abs#O$qn?%bb9^KSyJ(4(boNoIG{30Zf z;GG|ZI7!y7u#6QXkkB3y+vn!vAF&x?{+QIQk-f2 z0)?fxx4FLQamBQdt^pYWV>_(FOq;nabF;C-Elt4ix$mQ%z(}=Ts>OpPlsB1X>&zoC zT8+E{Eo>77s2i?{mdkXYIDscWYM0|-G(}A-;kK6gB=Mw6D;OiA_dRr<=+hq96UgqA z6?0HK6>0ZOe-{IpuOcb>W;IhSj>*qdE3W2hn^}CdQZ7lylP-64XtFF^p;ri$i+#(A zC+n@`81JJg&2AB}j}J89qJL|;Oi4Dm0q3y(hnu#hlvFu5PcrE@uHwG5JG@B|1)i{@ zU8bIr4VyduQ<@*Hw>cG95~V|v1&1UK*Aqn zl!s}!Sb%Z3L}0p@%vz&W;qr~ZX>e6%$P6LlN{iWBOo?!OAk65t@CnRUkthbeQIKWF ze%^cn>0(Hh`L#WZd*Qv~8*q!jWFLohH95FL;Qg<8tV?760Bd+9g;z!nW(j%z>#SmS z9gr6K;Bb1Ni3q64Kv}#jLd?w^WrBqe5s2H0iw_uI_!=qTrNGCEvfBFwEa2sz#MK5o zh@28`eFGlh)1=3!1Pbc{pEho*j*Q~NbwF_9<7o&|_+_z|0t0d=9gg~W9FIUD>YstL zQ9BA_*rw5D941g7TTa3hN*7T+gl+y4OuwC&`2ZKbL_U}CpG6PA7+3ILi28ZB3fFK% zfMO;oxPko)j&Am1g&uLN+X=CrCC0iNt*V>NVT58rgpGs I9!z-n9q^$$4FCWD literal 2153 zcmb_d?NSs+6g|BREUXhnF(O1!5=>zE7*I^2izseM6&8j{ptj1N&Cue&?#$L~FOWYz zgwK!%NUDNbTIB=ep)61LEbF+tRkBw0$M)^MeNLZy=icuBKD>PoU=a_q$OugPQN{D4 zFpOev|IqjRSV^rOaDwaBk!YrHyKr31CRj5_$#nSg=@XTA;u4&qOWo@+y z5Xjb4twyN8jdgQU3vge>p(=Y@#m!_}fruTc=)?UTa9If-iy|IK^W*|fftjV7~0a2h-_w{ z6XuJjwg);@68P(D1e`L-|D#N&811MWdT`0bc?=8mOiq;sATZ*h7k$S1&P5je#=7d_ z90rYb&BYnGri6k}{Z_ARt9VOpm+g0td|58ZI56|ZqNAS&HGx?x{FKeWuX$qMSB)ZU{5mhSI$RaY)<<7a_0L3j}Dt94!zvB2dwJ=n1u`Fx6nK90a>)~tAi;QU}S{c(!Tph4> zj&nAWwZFkxJF>+%X1V7)F3_Ls9KuDezO+2RX#O?6%}*cWa(?ERv)N-@$&Wb482g92 zdT^cpqxQUMIG7`cNA`IPVF4p7!g2Z+smSd59zSq2mQg6IWi)22Wz?7mMy*Z<6SUpt zE~B4M4~9AZNRPwWPgdzIT867P{|Zw^RK|)j0AQIL?^_WGRc}KCUq4dudElPAJk}7n z?=bU};m*CmLMzW>iYlde+=OSaAHU$&2G0$SiI9IW_IFcA66rMyrX)h{@W|xoG~{wC r6vFkknr=m%KgXs)msj{JQD2yqsH diff --git a/bin/com/connor/kwc/createBom/NewJFrame1$1.class b/bin/com/connor/kwc/createBom/NewJFrame1$1.class deleted file mode 100644 index 6a4bbc1e20ff4ca412cf86b50a2ba6aef9400308..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2709 zcmb7GT~`xV6x}z33=E?|6l=6vTTuckDSkjDmR1m}G@v$!1&ekVE;5qLq%(s+Tl?vY ztAC+B^vP$}YO&U}Tzzi;M1M)?zB7plC05E>NiJv3=RW(MGk^U3+j9V?a9=}A;IQQu zGnVT(u9sO{wlbC{%|H%OI4+k*FL-8A_IC7YhzqpdG4Gn0g6Z7OT%Nrntw2LUU|%RT zmxGMFE1e*7DUijS?FZ74oFp=87H@eKv^1`wH-Sc6iBDHWYIM#5Fd8uWHSV| z8PL$AqX9_+&1e;9NGpY8&UWPZQgK##6Xt9|3bf^1%PdTqo~`~b3*#zTfzGW2?&xK* ztu~9z2Lx<*fw0Iqf&J-R9Y97DG}*369ec1>LrUP#7T_?j53dU}nU*E}5XHVNf)eGh z6xfB#m|4m;;ebF3b1fB^Daw#xhq*6$IzqUxInv#xJki4 z24q{31>|Lc9F=p5kOI5XbyGjFf!6uJW4I=q5)cg4i#`MWct@boFBNP;(pd{hq@C@$ zQG-cYreQ!}XBCrko@cJATcP6&k_wu44GiMFDl|+aw^e8qbpmM?Es{!l8PBvbi_&vs zAu}3ohfThARTwtL;#o zFz^xbq`EoBTiae+WHj8eUDGY)jXUR*qyHRU8$6F=@=Fa*tkPR`Z5UZ1P(;7RBqV@ubgJQB^;%DBhWW)fN0>U z$y-HTO(MFlj3G6I!-wH8DR;2^Ts4R{v&L9SXx*@6vt7+rm7meHepzp-Toi~&&Y%BQ zf6+>YYBbfQC1e{{#cHXtE>72^$J)+ru4c1jkd8ZQ>{MBG43*lpkU?}DZYK@*1onh@ z)j?W7&$~;WB`?@&yCti;yGNN&GU8YT*XMK_lfi;JXW%l4t^)712Kv=o(*-T z)lTfG* zHB8*sM7!4B^wavEsm7<65{x=iF~0Q-vs0%%tIF^)EI znfvbwdc;-qi#&4T8m7f0Y;hfqn1WB)Ju!m^;wF9+w?Z)H2?X%442C)_(lhS^e!u|~ z3Fr|l!+}fid-&atn~d6zd6e)On~_5&JjxT8MiM>(`g15>!d;#o5aMN8B(TCLyXh_R zyUJ7K<8$hM!DkZjb&NpQAT)fb;h+Y->CI@ISAvomV4a!Nc}%@Xfm+wr8L5s=#YK!o ae8pffe2s7T8|NVV7T@!vIHXv?zkdK+#LXT6 diff --git a/bin/com/connor/kwc/createBom/NewJFrame1$2.class b/bin/com/connor/kwc/createBom/NewJFrame1$2.class deleted file mode 100644 index a6005aa8cf84989b7e18a2d0903d3918330ec81b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3968 zcmbVP>vI!T6#v~e?IvNNrHB&VNP)IM1Eqo{V6~xOYtv#Ii&YV}n@hWGvKw|cO+i6W zMDYE<2fpx)A7w^U6vsio=?pXQK|lF__|5U$-Mp$`7dw;Y=H7GfIp_B~_ndQo{pQ2~`YhR3jZ$4P7_P@I+1xt0q@$-bs^vJlC_!RMLENW19pYL;biisf1ICJ{s;H z8Rx1kp_XBZGppq6FrVbQ9qzVyx>vJou5**2)*jQW#!aNB*Mp)cZP>2qntd-rQ65>SP2^&rsbY1nPP+gEIi4utf}_~fOH9HqRm4=EW%<5A%@i+;E=HdOBwu% zs&dO}+`@3LM^GFarovWEBeHs8Mta2PG^V0KEXPU-D;O3EBmX5JV-@Zsw??@=$Wz2H zPj>4`KIP!pEsSrJu?B0)HnlTsyA_+lSzAkmMSMi(pb0G!ni=Lfh?Q1ktj7jYNmh`d zP2J5dq7{J`mC!mP9tUlcJQW6RlCc?WWdmv0>(xL(iOrR?N@Q^}Y$|Gaf}1)|g%hzs zVn8!=g0LN1CEQhDa29bH+i*9-e9N&fVGt7;L#N{zqJ=q}}16N5+HbE%UII zq0bu+UfGt=$FSKGFe3RDT?!(OJu)7`0E0w#Nvtt!Z1Sj9h?9c}3`uyHq1BWA5;QXQ z;t>iHi`#DSB#ewm!VG_SWX93&EmSMLj(XeTRm>w;c^v0g$$=U?sqSJ5Rc;t z3Hu7AcGifLu^$I0Wr!T?WQ{$hk>RF&m|^V=ZY>cZDR1Fd) z=Y3Q-gHVtZ<&wx*SgFA+@`b83Dq{>Q<`a**)T1 zN^6wtBc9oC>n>%aVhm9F=hlPm{ZJR~@(*R@?+6XW7C1L?I*1%2bS}QUjct2$P#Z9CuwgDdRbuqP~n& zRtl6tya-{5o=Pdl?$dZd!Wo7IP*@rT}aUg`r?3%Q=kkmZQ=ujP+ z|9NXkx{6c#wy*;E62-JQ*I_oUWD4DTaL~w_D&M7v{=TmKdTA9ALNi^unldbE6XV<- zGbrPIDS~94cy7dsZ5eg{a<@(|msm=%EN)>Xy(+5dQv+6CFCG{4bgH6H0706a<2_fM`k|#uO%6<5j4}U z@kni`CRCe8f2fv`;9x{5tThbh@mR!v8Om_TKMge!5DOtG6u5+gmoYvZ3QQvv3A*CO zWmv=0$mTIwm)c&fB`oED$SFN8rImF^7%O^G2gq zegYjVh21QT1k98zk_Dpz?<+T_<6MALwrOWUZ?%%@iCqJ326?X>Q7vgaN0)-KBb8&e1^~I+edBs O7q~zp5iEj!`uiK^f~!UV diff --git a/bin/com/connor/kwc/createBom/NewJFrame1$3.class b/bin/com/connor/kwc/createBom/NewJFrame1$3.class deleted file mode 100644 index 2bf6226744ef9ee2ed5964614ba66dc8b9028e9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5134 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 literal 19931 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 diff --git a/bin/com/connor/kwc/createBom/NewJFrame2$1.class b/bin/com/connor/kwc/createBom/NewJFrame2$1.class deleted file mode 100644 index c484a41455600fa09e89f7da6e7e2bb79fb11b31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1379 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 UPQO0t)4#wadK1AS=%>HG0kXWQ`~Uy| diff --git a/bin/com/connor/kwc/createBom/NewJFrame2$4.class b/bin/com/connor/kwc/createBom/NewJFrame2$4.class deleted file mode 100644 index 84c4eb33c08b02344ce2308cb3c0afbf1de06bf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5176 zcmbVQZFm&b6@E{$$!sQ*1Q&^{m0}e`0wilfOzj36NCXKc0ZD`!TI{g7z>>|*GBf!? zMdU+85mK-!U`tc9DOIXzaS72Ptu1Zs*AM>n=}&|F>o1?Dk5Ak5+?h?XkOhY3$?nYD zx%b?2-t(T1yPy7d^gMuS{7pd?;l7B`6^a<~xM7Amdn2KUDRf)Z^I(hUUA4m0yF}Hz zY6U*RjBR?49*XJlEuqz$wuy+XAeS)58P$93kmwO{JG3lfM~!$>)Urifn1oz=Yt))| zKkwA!VXInRup}Cf+TSFUmU>!IwvOOyFgipY2n8Ax_*G=1NJAcG5VA|a~VjZjd>dGOV_T_kNE_sD8oVp3$9{} zyG+9(Dci>~y5zJ94IwZ$a>e#;J;un-N}-p=vf8qCKdK1jpN$TU9eM7v4^NIAIy-jw zfcrQ$@XF^y?~i@FZ*1_Le|~h}%6n%opWJo%#M^#Uv)Idr20njlR7DLQRPc4eJrZ(T z=v@(ZhA=~>9tm~Z(O9UN(bcyw@B1`-17TJ%VOVVYqv`sjOrH)$W0^yk8w++ITcY71 zFt;Zh`XHgjt3xyB-YLwuh=tl38jP-l5tj^8u#`~gX>Ow}y4H%GsKo&*{aLS}0S^=M zQf#ZNB-D7-&LO>vrJktuV+9AJ;iQQtEr&8H>abEnBUTY^V{*A@t}%^-FztRqNd~Ah z5HBB1Xi?D2;;-6L!)mPIaA(Qa$a0faZMv+~kb<>@GKp2j4A`($L^_!gZKe<{PJ($1 zZ5kd2ClobmwTc)gK^gPJ4E+{gmPs4iHEh7Qd4{F;h-H=pnQ$V5anpI^Wu$#WCa$H3 z@URex1|!km7~gEL!Jb*b+}w!oDtIyl$2ClzPBUqh1|6F?WEt@$t{Ik{&L_eHoHjfw zFhN5nNIEnKY@P}dj^rkm9Eewy{8Wi8 zYnSzCK*RTNIL*q%gyY_<^yVQZvID8N+37acP6tu8cCX?!1>Yykb`pWj?NextZdzh_ zUqmEiU##JE*_0L~xQXHls7E^6xCh}7K8oWCj&Wt2N+I=z5feHuc@sb2@aoZH-C{MT z#p2TT^jemh=J4W#h96;&r9_OFEKbW}F>dAEpcwTS6qBG#X)@9HcqK-ogFA zk_?r=8xYO`;k0DY&r@f!>t*msN^#%8Deo>9xNFa0?x}<8!e-h0b3YeI132Z@iMO0X z{AQ{hBrNu(@Kr&Y0{FD!5}Mzfx9 zj;jhT@n?E_A88hTDoPTD>;!hr*2-(BVj}BSR zh`M0m2hbLrMd7eB=QjS%ykb zX7~19zHM1_5px42i;^f!qWl@KRkfV!~HyWkg$sD>3|f!k@4?htxl>^M)K-BKA0_cbI478s#CO8E?wd$pOA^rwFv3bu z;rH9a{-8hTOQJjIBYy4==eZM~eIi_NzDCQg$sfX!V8N{Xs<0YVgLz5p;mLs)lXxkK zmycqOoF2>z<_6Uf92&wM;lf~H5=Vwmus5G(<E(){LqmY zR^4|$4wMAdBz`i4{9#w|cZb;@SMUY?#igr>>S!rWvk#>|c498$oIpNpM=_bGAq#b6 z^XameXZCXoy#u@GDeUFzetH@M^bB67op_V4gY+y;(Jq{$-MB=1aE12a3wj=3(u)|U zmne&NlST(=J{_V88lWX~nD;(HOX)SLr#I*kI_B`;APS|gQ#_D&@8NyP1bPU=_yy}; zOjY diff --git a/bin/com/connor/kwc/createBom/NewJFrame2.class b/bin/com/connor/kwc/createBom/NewJFrame2.class index c66f1ab5ffba7861b461e10f1c7b6b18bea75e27..53878ecdc9389abde1d78d6d5ebf5488009df096 100644 GIT binary patch literal 10701 zcmeHN{ZiXT5Z`kMGKK^KN%PS!r%769TATn$+Bi)cJ8?^5AdMZ;H2sq08<3GDMiSt@ zLSLf~(V2Fp{XY-T$LVzMB%dWCtdr|u80vpG-QMo+_HI9Xd)(`Pe*Y5ymY}9Uiog}k zYUVV{G%Y)~wWsAYo2o7?AaRxMJuca5lP)MQLSVX~?y9Yvv!|OIId6bKx>4A1UCX>l z;9NPx;L-CPmIVTtM$u~4tb)}-{_|n}_6SOhRrC#0b$4t^;CeLIJx|FeA=7+Nj!;Vb63)AeE`-P{+|N6Y7ZQzEw9W8g+ut2LmJM)y0AA1fm6Xb5pP0APF&Bj zQ=tZd)c`zFBhbqT799`8O{#67@3M_vwd#~FwvAt~_%7aw#}DjDVQr z=sq2xN49O*Y50^(=bxK4bu43-*0an;x}m!0gxPJ|su{HD+|6djs+%;cqxo!?vCO+v zZEEN))Xr)uCM7ppquDmdkbAf%$J|faxjDl7v#ym@v+mE^6yu;fvC8wybNcBiR>1!` ziRCM{)3leGV)>5@?!YvC)Y9lSPl5Xb`2h0{Y;LjpXx10HS-1A8=t{BheTpTvozO~N zBYDncJOn(WyE;1p9Ze~Dtz@H87%moC)+<-=*r;w`ZP1E<%#8IM_Pl#nwRIJL`a=mU z0xTR0vc4p{jzIDp*xX{bg&z;2t9|r~{@psvn2a@Z(0uGjE-w(n*)u5mkC~&nc}%OA z{RqTfe``24@iq87E}Xbz*$M2Bj9cEm$#9c#|9`!pzo?NqaSt|E_3>+*I3)h78^k)Z z>>?g4mqhdxExf*H;dREo`-||gMhNt?>|{Suhm@G5l#<-i4BUqN1T4Tkyjq^!e!6OH++?|Cs3$N8C-_A#m;BtG&)uH(nVkczOAd-^87mom)@C zLjudaFS7VOmR#jd;556(6SjBK@Ff}lr8mBJQPwH>V_j=_V#XWC(6Li?M}%QSYKh%! zAtKM&UlKn|DfzV|&R((5k{P0R!P)=WI#xefUy@x%;7mNQxrI{-KOWYj!+JC(C}M_t z+~FL})O1M4p5t+wI`}*;a!|6`E*W=h#yk`)j!l+L>;?Tr{?V;R37paJr3OA`cwiX# z42G2$1Pt~cbm2+XkGk z`gFzGu{B!KS)D%FskrCa%Mk_8>(R?ah$-+5R`UUZzY7X{i%+=1bT7&j_zvGoMU5~Y zR^SJW?7*m(ffV=&--@Z0l#djT%;@k{U~Z{PCUx8WV$e;2a6 zy$tUOy{@2MSK%6`zYiY>`Yh7ty80i&blOon-BDJ*uMcck?$m8Ex;o7y&YJB zTS#5P-5S9*^9S61IsM6RaQ82c`5FElMF~J1@8jPI{+)r(;S21g-~kkn(ner>9zrn! zVJi~h(E$jh2!vlF5D0t)%c#j?oO=Xyc_Or7R`;}7*^fp3j=%y~gQt;L%$Gc@ulHl6 e79+4yP(hg#R6)gd3cc?+ynvVR3cg1jfBYABG2Yhz literal 18998 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 literal 7056 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 CqLRJ< diff --git a/bin/com/connor/kwc/createDWG/CreateDWGHandler.class b/bin/com/connor/kwc/createDWG/CreateDWGHandler.class index 3382ae5a2b113a867ef9707b9eaad5ab1ac40f50..7db02556f4ecaf2969017345bea4336055bf5db9 100644 GIT binary patch literal 3974 zcmeHKTW`}a6h7`s({_cy#<*WHE~8~*dEtqTNuz6_QU?<4hIqquP3Musk>i%_fAC+B zK!SIE6yl_p5LmW$6B>J{DkXOO`RlR$opXGC{QU9_03O350}=!ZOga{mt}B)G;Ulw{ z;#BkXH_xr&p!I^fO`9tNk_eZoWpQQ;&*wNz1rNtTfN!lee61+ceK-Nb=e{qbOJK5E zFV=dUWdcdP=Wznl)g9WQmQCH3RntniEgVa&2v_J;0u%Yd7D9`%$qhJ5VCpxxq?A-? zm?Ei9o37%%v^%_Mq8*;Fsm4DvJtZ49cl;-2HdEi`rf@u|bO2e>oH~rVnk$o0T(veE z+#HaM(WiV*1}cgGdj=-b88F5_M|LL4rIdhvKWaSZ;LWgSmJp~dS|Q=bo)=4qZ#XJujYA$xP^ z;U7^O|Bx#SIk=F63``T4&F@cgL0+4x3YWiZI}NVtfjEO~C>gc4`eN;WOzLgn6IiIS zQIj;LP=oJs*4D_mny((5u1j4MMuk!b1KDyRV(6>J4rdyvvZ0`T1FjQT9EEP+V`;ca z5{(fu^f+3Ft~id?M~~J7W_p*_CI-G5*JY_TE9(TF=JD1UyR*wZt+z4TTN~8tccT~4 z!j=JZcyEoQ3<8;&Xt`9k6}lE1m3$@QSN&V={x7SsCZyp$NxU1ufeu*aknkB<+fZb< zjYE;6rS*u#<8&32FaIxHVU(}QwqiWUxR|m2F8h{(!pndHfy>{D4Ejsq?@8#YEHVgET(d! z*+48U5cbZMr9gcAv@vg_iiTZCWj)uj3tWrrv24rRD-cQ~rzkq=y&GjQzMxJ zlb%(yymLAp!IuQq6{I&>bzS;2QZ5%Q(@^FGb|#YT@{Ww4h z@jwgowcD{=iH1W0t3P3N5JU{$#<+&V0#AGvuJzKa;|PultYLv?G0r*7ObVo1y{H4! zwyZRB)!fWt@)Qf;XW4Jcj*)2<$#Xh^V>+_Pu_089c{##bzVH8cp{_O^1zSpw;}_`} z+bGE>o@Uv%NYoiCAHy^Fu7+m?c68)yE5CI-hZBU3DGShf%5}=p^_cSe64-=pX{ORD z=94-M%&H75SF^QE_$@SOC}!20KwgK$DRv>clQR!kMM?a&Cz8*$D@V&S7HnbOo)_4# z)X{xatC*K=3qvI@?ji~1Yivnxe7?(yz+4DH5;d}M=_dknV zfK?RV=RA`+GIDgLQkJH5s@{DSr51Gj5I<5KAy3cuwDG*NtfZ4uQCtwv7cXC1ymR~R z<*SRYycfkK!gBYGs~`X2b_|#CiiRr!kGJ7(P?k7@83nn|IjiGUyhe!2PK8D0a67M- zVUuZl;+H7qA^VBI?t6cH>)yhZd)IG$v~czC^ymyn&73Tii<~;yL_S)0^X{Lo-+lMW z;%m3=U3~rHcP?bc78m};^tkng!MUX~SXxgZdt?vKvTuc5Moo);5RH<|_0XIu!)sJa ztH_+$tULl+JF`a}TCkhA4RyAsQGdAAYaGX+l^sTb_2c)=xg4SEv+nNugY2-C5o^OV z$%oAxZL*(tWNQ|Y#+0vy_lAKT0>@Tjpe@aoSzvj~I#t({s=l#~Ed7ufQmN;0$=J4Z zM~g;<-znI{P8;HPQ5XN&Zv8tAQC_>b!Y>T|_V6jit59$IZ$SUR7yAN#BmT=r@gVQ@ zKme<;hEF{Hc!)~Z@;=O`b-tQwR2$}-M{Z)nkvrIUynk@u1|F^9@joGYbXyHu#QPKu zQ^i`&rXeUJ5Bq-g@oj?7Ij&7o-4uH9v~RdSP+2!j<><$NuVn)Uv5iiwqr?zn2w^+* ztw+~?s6M1YXxO1)r@HnjCwJp3lxev9ReYV&T^Lrbi$nB6;c{tk+byKK@HV{uzhFc? zjdtNf9IPQT9PSPO0~2q<>n(O<9Qa5BwD)ONq6~_mJz{^BcTZ-?N3+fQ!WceQxgZAqcqG+`_lN R_1CWBcf2YhZ{(GK{{^Q9tLy*( diff --git a/bin/com/connor/kwc/createTemplate/CreateTemplateDialg$1.class b/bin/com/connor/kwc/createTemplate/CreateTemplateDialg$1.class deleted file mode 100644 index 6ea82c3fbc4288497536774a624836e4dbd9ef80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3130 zcmb_e-E-7b6#w0J+q5CDWkGEDC|C-%DP*RCWQa2&UOfn>L%QN&4kC zf+8y7j88u648x1c3@oL548Hnz6!FbRUmVAClclBZ>U2BqOtQ(%x#ynqJLmk)`Q@*f z2LRe|MM4?F9^KBUx@}puqmEAKs_t;j<0+oWn)I*67Q7xdG;^r2RYHiNW<(p;R8zBt z)MJAqT=yhYGHmcywFyt<LM_55MY8c9!gg`iMSiEm6GsvBkHfVB&NZi&n^Q7h& z;yu3@5{@wJE!~X9R&pe)`M~sZ=bY_ic$#5jQ@kj4T>{5w^GO-CSSz89p|xb>6s*H~ zhAK_hx$DE9SQ37|g_Ei~VNleMr1+%QZE!Okl~IpP5;iid5k3@3D0mJH4AKzy#4d)_ zP0fM3egY*uhcuF!Mr@U^WkGTU-xNHLCQ@LyU74&mXQyW#U!VE?-uWtQr#-)3{rd6uGn-`W#4ZUcLxTX&<61^1Xt|?0ny!v{ zhN&h99c_qr+LH=ev753bYrACa(R^&4Hn!0G-ex};{#!9Q*@k@*_EN1BjbkU-c7lvi z@B&_BsCK#6In}SZlx(4K|fxdk0|Bd>Hj~XbHGtdlXMvIKJl{W$~b{j5{Uh_EDA>juiB_b~J<&G&`m<8V&co`ojiEsAErM+Jk>=~xPXf|`QK zP@iX|Cj{n^3N=MH|9f;9IEEygV_5sNvV~F#hG7I$cigrMs4nQ0l(eG^%>t!@-YWwN{d_ zU(R`oa}{`^DNAX?B@(8>9LJ=D35Hby`(W_sn$&q#3>XTggm5@ZeZ)(8nm(E$Qm5X{ z=vp5X=s$;&ps^CGT2%L<%g^i0_ag@RoKJPaFzUOdIPUvG152QQVMi&OX+Q`$e)4Q9 zAubGMoI1fXPdPFN5NTZQE!f_uYu zTEQ0r>lI=WnfUxq7kc{t_rZ48Zl|n%vnZPHDp>{=1-ty{)*hP z?G}`l+gNeKmsv^oN|FJtBSLq@f0nTdtLcsW!!fNa}9EPNaz^5LFU!tA}&$NmP5F60AafSKyLp? zF8xH)*bS1ni3Z%lZsgDbG6i>V1~Zh%ckw>%(f<3mj0gA%Kl?EB5QyYz9tQFB4&L>F zxQO>?M;U24fe-K@o!NmNe1!7|k;bj~7#9er%XD4DC$#n{=?SC!Pt;3j`~$-h#w%&l YC0Z`SXCw#`s>SE{lAc7gL@em{H-P`CV*mgE diff --git a/bin/com/connor/kwc/createTemplate/CreateTemplateDialg.class b/bin/com/connor/kwc/createTemplate/CreateTemplateDialg.class index 967c87e5ace118ebdfe082287724af16f999769d..b2f3e45120989dae19731b95d502368adf2b74a4 100644 GIT binary patch literal 6204 zcmeHLZF3tn5MH^#=a;mhNn6qu=(Xj=ffCau6k3Or*oh&G(_zLYGr%YLtUBl3ojf`@ zb^jILn1LDi-XF!V(mCh59u(x}Yv2VED}UZSD~$ zHd?i2@KGUjZ9=B2g5Z)Y2}2nHt(>z(?qvu{~QtaFK&gNb%m!o?t$A z_F2b77xZlmXADiVFL>KwuK(C9Wr9uTqgH;$5aU~tc!kW$$TcbYf1#D z1u_$gFy^IaO!#UQ70k7<@Os?<-l}a4E!J1*POWYDaiTBM&M+-5{m9|uPq1+Z&lI%F zuxcd$3;AQ4gNWa!!lqaO3i*xgdN^#2W7;2L890*n-}ZeHy5KbCzAc%Xp7%7->8+@9 zF@epKq0fjFY4>*+J9X}K5>HLh-E-{boN(_>lGQ>hPxSuu^VJ!ttOd9WrCBgx2`^%$ z;4~k-ov8EnT*LO*(}CM&qNNfj-T@ojqR#Fpp^lU@a?kb&tRx@%kGogm(ci#ZBHn)} zfeWRj-5lU$N~Af*r#|PTifjUx;su#NAq)-QfUoef774%{d`&L=p32OS<-|}-8?@8h zRObcp)Q`faS>h(+P9K4jmAJ{!ug?m6d{UcSJ$?|l7UaC}JxggTDgjjpxshsTr`@mN zv)Cjve^ZMqK0~z!w$llmSW(Y4p&u&A1t9U^NqPDSAwNvn)6>tkk@=-xzyBYJ^{UAS z!eVt>)#=5A`{S~DGc%y3OIf&R25jM)hB1ooq&vaIvW3@BA8rE{W_&xo1Q~b-viL6p z2IRENLqW?T%xZZNQL24zB;Os$%P_C?3vfltt8h)r_h3=W>mzvsZsKU~YuyLP^I_!s z7LHEvw4&^}gNRkMO4(KT3-10h|M4I2=|8&PXZV{%48Se;9Dir^{{q~DFLe7dlp_oZ z7chL8!0>A#!vkc@htiiX5){K3# ap1}1mfhz;w;rJQYfI7+?dbf(R+x!oLSJ&(S literal 10164 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 XG&f)Nb9~szn;XYRhsL*4_ diff --git a/bin/com/connor/kwc/createTemplate/CreateTemplateHandler$1.class b/bin/com/connor/kwc/createTemplate/CreateTemplateHandler$1.class deleted file mode 100644 index aedf72d9c2a348a80bfd494a8322870e851d385e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2575 zcmb_e-BTM?6#rdF*$@^2(JEFg6jI1nS&(9_!75F`rX)}$QmCzUv$=$Y&F*%yLHg#a z(+7R%3op(%<4ngVh8as~JLA+>|BrtC502xxA%>5nRTwjq-Ft7&Irn`0&hO-pzaIVu z;4~H_G%$>4RzcA$)3h9A`5R5q9Im=N!wa@SZzZv3dr>uW26uu(5Xn zvu#7yR9Cl5(rp^mP2D}mkPjW|_5)rRo@MYPtQ>C!L#vDeUsmtg=FN2SKnc>AE6`JAnzk0F@A{DK;gp&-tbv&rto=H?BedtG6La5^J0b4^x z1W^XBs%hk|=!EP49~k$$8V}D(IK>csRan(ZOjt&aJ6~;BFv8FwvhF&%nI~zRJMJxpzEEnX?YDo7hii{~ID@kiKG?$&+u|}l zgy>d&v!ogX^`pBjPM1B2hp$Tb=z!!jO&*r1KveK!8J}Qmrw|n7wZj#nF6wJ4;ln5r zqTer6E55JmYE%x@P2pJ|f|!u;DK0X!-7N7EuLfSOj^*SPt{J*ry}*?v zD_c}9Sy@7j7nc}1pR7N4zVXwujYm&@y#3pC5Mn zFonw!rWtzbpseKThLR?vt9gFjT9xq`J||YRts*hT&pi+yJWZeYsGaUCJ0|NUO z3@7WjQO)i6s>W?G4rE*r)a$niy@X*^Th7qTAkuAGD7V2s6KY?P#C)k3tIuW(Z|UP!zxlk zr@6amEpt)aE#>-Na-0>Bf2z$D|(zXn8(loh~Fw|m^ z7tu}gu#x_3G_<#i@d&gB#BdZR^lgTZes7`GS=tLZedM$aY^ z1dii%ddlUsA4l;9?WiCKY@1?S!yqwI93kR}exju?CTU7cAxe5N(j34%NnFP;z9!z) zF@hyxPZ4T_0s@vRp?axWb0o{iMhmXuOUl|jNn9h{27E=5ZSeewDG6Ok2^p!GJi0-r V4P;lPw})=eg40UmT_lt~e*>%%`}+U@ diff --git a/bin/com/connor/kwc/createTemplate/CreateTemplateHandler.class b/bin/com/connor/kwc/createTemplate/CreateTemplateHandler.class index 2046a8619fb636ceaa51dac04d15d4c1d4980712..60470fc2e691d88946b0916790f5e9d471dd8be4 100644 GIT binary patch literal 2823 zcmeHJOK;Oa5S~p!oVbBNc$Y`rTOy(Q07!_UN+C)_q!bQGD{DDex-|(R4p|&8yprUl&Md8UXLL$)d;QIuK+-f&6nhP_9Gq56zBB=rf8?8>Q zJ(=t>$i9++Gu6qAGg)!hq=nvDY^J!wu7*zJ5X&VmnIAd%K6dsIMqk$^l;InULV z;pRIx4f=m%{hR1%6|U5WeX4BU$Jc6)3GN+E!#aJL zF-J0D@VrGDd0Fu%*|uaV2i<- zATucJOX}x>eur-B2)2P5IBF>wq~Ho<$x4xJL5{}!xYbOP1z>*#`+ceK8LoXFV{Xux z9e>F|iR{7z1vlXq%}C_n4l&&&J43U3bFLJT?=E{+#DArU ziqXU$;EyuCYb&7C1c+_2GqX4I=FQIR{`mRzJAnI`w~!IIr^1G-!XOBZyYp7L%4nJB z4c&-*O1J!n`9ua=zBU%J0#0b^u2#Mm#hL&nT^bEK#O`t}PK;DZ$6dgRbsT$PATV7? z^Cem~lnxSYT>7~?+63BnH_Gd6w?%=z$6nwiO9DMbrz(&whg&*_9-Ombp zMW?bYcctsgpzc1eZEKYfDz~zybd=C3ws2Ws_9Sq>Lvpx+Q41pig)YY@z1K!X?(*8| zi^TK2!jQ?hMbn8$oG^?)3fD8r&|{YbI`dIYwbwTqJ?Wb#xu-HVIhZc zTu<9}L!e$fQzuS9_b6GXn&zCcaWfs2-Z+sa;S5PrpBE^dypfzf8ASr_Df0{TOQkr= z1?GG8|4Ke~Pn_xiSdooh^c^N$5ZF9h(ynuHEGvh3J!~4KSH1M&jdgt^=F&SLV6O#% zHf3MNd;%~Dy^BREgpZad%t25AWl z;Uc~A)KjQSEtpN}X`1{O3_tyb@t399eN24DqY-L!f>TH`^h-_Oci5F6!SB z)QW;Xz#k>fUP7ZER2uML-)85YXLjb9??1kL18^I@jhw(;6%Bk9X&uG>{#)g%m}E*F z8Vo~T{pN4S_K;$k29d5bY*+%`o_r(yQ0l(l?(LCEZ4?AbQ|pV7*0L9pKq1`?lFBV6 zY|X^D!4MAu9i$Hh?pJ5TsC5ObX0$^^2%KTUrFGLSth&cqg;5gd{xeE;+z!FM4yV>5sX`JDcz*%?`gr~5w zyYg2oY}Y@){fzVD<zfpy-QSWP7S F{RES_NLl~@ diff --git a/bin/com/connor/kwc/createTemplate/CreateTemplateOperation.class b/bin/com/connor/kwc/createTemplate/CreateTemplateOperation.class index 38a43fa91048e710653f69d00e7847e95bba761e..3c39802c56cbc021239c75fff2eeaaa2f2f32f2e 100644 GIT binary patch literal 1783 zcmdT_-%k@k5dOAQ4vr$o4}XEWsA%zlzGzIun2-h{NtFi*iI3OqKo@(vm%S~*UuL3- zzWZPJPxxq@JD^2VQhXrMT<&(~=9{_M`DW(6{rvO=z*9U4P!M>gY+O;+80#wUKd6dw z6nUysoV0nZRDTmU6LOK))&wXDOzuYqQKcQ3y~<`|pOhB}Qc6?S3yjt3)vaS;MPPW> zwwvSx#`$&C#)&m#e5QD*jrOku7RzT0Y8%Fr+l>^hZmjpk?!1EgS z#@`PHZt2NC^CvJ=&H@P64izO?JEj5V1g3job~PioBk=u#P5l4z#mU&R9j9nrXGF}O zQ&-DbhM3U}!xK8yspo=vt$7AJ)jA4rUtp%+PzdlaH|jG(13co{d}am*C=2xFgh1(y z<`Hi8>RhlX7QpQB@1nrh6%6OQ03-Rzb_iKNmj6zMa$NWsrFT+6#tBOy572ZdRkhkscGJw<|-tCMj(fRa2TZ=1QpGV&)RNp_SoH1|Ez+f zD2RUUkBZ*xd1u8XD6|Xv-pstu`@CCbWEWeO65xL(A}&?G3)W>&UObNU_}%~3>BC! zcLCNY)a1MSrM;HfhCtt8;2%&Zuy7%u6x17m<`4|zk*B@*vB1mxg_t%;HzSk6Su{H) zuS2PbQ#q$8R0Ptc;DBtTaLqvmg9531p^|~Xkb_?IS;%po7p2*8XF#J4Ec6Rx%bup) zX1z+`zO4ErkShmD`V|>^W_`Aqj^BEbz{4c^OZSe;w05PuIXOBZ)r{%4w%S`KiW+7n zA`6oOBk$yqbbYDcxSbOVcQ{&8jY|hRw`yYwGp5M10_&}=UfRn>p<-hW_bkk}Bb3Ln zyLH4<^R!7#aOxc$qfECSAs))ba}8S&M|49{_je=I%x@(oBd z9%`0pKFPr5?*Ok}@VT+e6+gi#E}kM=T>6gTQ;d8_FxSl)V}Mcq-eBYyhB3|>Fx^7( z&N#1(onaD*X5l7#7Py5$mbZD&@J=M0>x?s2&R0x5XWr@0xO>iKvpq1$ma_?q)3R-` z4E3XcBJY^k=UEy*y~U5nzGtNeCfrsC!wHyOF=P=-T_7WWLvn2hJG!5^TZYTh)M|<) GKfeIYp@Dk< diff --git a/plugin.xml b/plugin.xml index 895cb71..aaa93e8 100644 --- a/plugin.xml +++ b/plugin.xml @@ -6,6 +6,7 @@ point="org.eclipse.ui.commands"> + @@ -19,11 +20,12 @@ point="org.eclipse.ui.handlers"> - - - - - + + + + + + @@ -34,6 +36,9 @@ + + + diff --git a/src/com/connor/kwc/createBom/CreateBOMOperation.java b/src/com/connor/kwc/createBom/CreateBOMOperation.java index 891ff3d..a3bbb3a 100644 --- a/src/com/connor/kwc/createBom/CreateBOMOperation.java +++ b/src/com/connor/kwc/createBom/CreateBOMOperation.java @@ -15,6 +15,7 @@ import com.teamcenter.rac.aif.AbstractAIFOperation; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.kernel.TCComponentBOMLine; import com.teamcenter.rac.kernel.TCComponentFolder; +import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCSession; /** @@ -77,8 +78,8 @@ public class CreateBOMOperation extends AbstractAIFOperation { NewJFrame2 newJFrame2 = new NewJFrame2(session, dataMap, (TCComponentFolder) target); newJFrame2.setVisible(true); } else if ("revision".equals(type)) { -// NewJFrame1 newJFrame2 = new NewJFrame1(session,dataMap); -// newJFrame2.setVisible(true); + NewJFrame1 newJFrame2 = new NewJFrame1(session,dataMap, (TCComponentItemRevision) target); + newJFrame2.setVisible(true); } } diff --git a/src/com/connor/kwc/createBom/NewJFrame1.java b/src/com/connor/kwc/createBom/NewJFrame1.java index fca60ba..8e5b817 100644 --- a/src/com/connor/kwc/createBom/NewJFrame1.java +++ b/src/com/connor/kwc/createBom/NewJFrame1.java @@ -6,6 +6,8 @@ */ package com.connor.kwc.createBom; +import java.awt.Dimension; +import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; @@ -32,12 +34,16 @@ import javax.swing.LayoutStyle; import javax.swing.WindowConstants; import javax.swing.tree.DefaultTreeModel; +import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; import com.teamcenter.rac.aif.kernel.AIFComponentContext; import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponentBOMLine; +import com.teamcenter.rac.kernel.TCComponentBOMView; import com.teamcenter.rac.kernel.TCComponentBOMWindow; import com.teamcenter.rac.kernel.TCComponentBOMWindowType; import com.teamcenter.rac.kernel.TCComponentFolder; +import com.teamcenter.rac.kernel.TCComponentForm; +import com.teamcenter.rac.kernel.TCComponentGDE; import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCException; @@ -79,6 +85,7 @@ public class NewJFrame1 extends JFrame { private String[] sxxdate; private TCComponent component; private List tempList; + private List tempIdList; private Map itemMapIsSel = new HashMap<>(); private Map itemMapBoMap = new HashMap<>(); @@ -146,8 +153,11 @@ public class NewJFrame1 extends JFrame { jLabel3.setText("类型:"); - List typeList = (ArrayList) dataMap.get("typeList"); - String[] typeArray = (String[]) typeList.toArray(); + ArrayList typeList = (ArrayList) dataMap.get("typeList"); + for(String tyString : typeList) { + System.out.println("tyString:"+tyString); + } + String[] typeArray = typeList.stream().toArray(String[]::new); jComboBox2.setModel(new DefaultComboBoxModel<>(typeArray)); jComboBox2.setSelectedIndex(0); @@ -155,9 +165,11 @@ public class NewJFrame1 extends JFrame { String template = templateMap.get(jComboBox2.getSelectedItem()); String[] split = template.split(";"); tempList = new ArrayList(); + tempIdList = new ArrayList(); // 根据UID找模板信息 for (String uid : split) { try { + tempIdList.add(uid); TCComponent component = session.stringToComponent(uid); tempList.add(component.getStringProperty("object_name")); } catch (TCException e1) { @@ -166,13 +178,14 @@ public class NewJFrame1 extends JFrame { } } - String[] array = (String[]) tempList.toArray(); + String[] array = tempList.stream().toArray(String[]::new); jComboBox3.setModel(new DefaultComboBoxModel<>(array)); jComboBox3.setSelectedIndex(0); jLabel4.setText("模板:"); try { // 根据模板创建树结构,给用户选择 - component = session.stringToComponent(tempList.get(0)); + System.out.println("tempId:"+tempIdList.get(0)); + component = session.stringToComponent(tempIdList.get(0)); TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); TCComponentBOMWindow view = winType.create(null); if (component instanceof TCComponentItemRevision) { @@ -192,11 +205,8 @@ public class NewJFrame1 extends JFrame { e1.printStackTrace(); } - jComboBox2.setModel(new DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); - jComboBox3.setModel(new DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); - jLabel4.setText("模板:"); jLabel5.setText("专业:"); @@ -324,7 +334,17 @@ public class NewJFrame1 extends JFrame { GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); pack(); + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 获取屏幕尺寸 + int screenWidth = screenSize.width; // 获取屏幕宽度 + int screenHeight = screenSize.height; // 获取屏幕高度 + int x = (screenWidth - this.getWidth()) / 2; // 计算Frame的左上角x坐标 + int y = (screenHeight - this.getHeight()) / 2; // 计算Frame的左上角y坐标 + this.setLocation(x, y); // 设置Frame的位置 + this.setDefaultCloseOperation(2); + jTextField1.setText(target.getStringProperty("item_id")); +// jTextField2.setText(target.getStringProperty("object_name")); +// jTextField1.setEditable(false); jTextField2.setEditable(false); // 类型下拉框监听,更新模板下拉框 jComboBox2.addItemListener(new ItemListener() { @@ -334,10 +354,11 @@ public class NewJFrame1 extends JFrame { Map templateMap = (HashMap) dataMap.get("templateMap"); String template = templateMap.get(jComboBox2.getSelectedItem()); String[] split = template.split(";"); - List tempList = new ArrayList(); + tempList = new ArrayList(); // 根据UID找模板信息 for (String uid : split) { try { + tempIdList.add(uid); TCComponent component = session.stringToComponent(uid); tempList.add(component.getStringProperty("object_name")); } catch (TCException e1) { @@ -345,8 +366,8 @@ public class NewJFrame1 extends JFrame { e1.printStackTrace(); } } - - String[] array = (String[]) tempList.toArray(); + String[] array = tempList.stream().toArray(String[]::new); + //String[] array = (String[]) tempList.toArray(); jComboBox3.setModel(new DefaultComboBoxModel<>(array)); } }); @@ -357,7 +378,7 @@ public class NewJFrame1 extends JFrame { public void itemStateChanged(ItemEvent e) { try { int selectedIndex = jComboBox3.getSelectedIndex(); - String uid = tempList.get(selectedIndex); + String uid = tempIdList.get(selectedIndex); component = session.stringToComponent(uid); TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); @@ -387,28 +408,56 @@ public class NewJFrame1 extends JFrame { public void actionPerformed(ActionEvent e) { // 必填判定 String field1 = jTextField1.getText(); - String field2 = jTextField2.getText(); - if (field1 == null || "".equals(field1.trim()) || field2 == null || "".equals(field2.trim())) { - MessageBox.post("产品代号和产品名称必填,请检查", "提示", MessageBox.INFORMATION); + if (field1 == null || "".equals(field1.trim())) { + MessageBox.post("产品代号必填,请检查", "提示", MessageBox.INFORMATION); return; } // 开始复制对象 TCComponentItemRevision revision = (TCComponentItemRevision) component; try { - if (itemMapIsSel.get(revision.getStringProperty("object_string")).isSelected) { - TCComponentItem newItem = revision.saveAsItem(jTextField1.getText(), "A", jTextField2.getText(), - "", true, null); + if (itemMapIsSel.get(revision.getStringProperty("object_name")).isSelected) { + TCComponentItem newItem = revision.saveAsItem(jTextField1.getText(), "A"); +// TCComponentItem newItem = revision.saveAsItem(jTextField1.getText(), "A", revision.getStringProperty("object_name"),"", true, null); TCComponentItemRevision newRevision = newItem.getLatestItemRevision(); TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session .getTypeComponent("BOMWindow"); TCComponentBOMWindow view = winType.create(null); - TCComponentBOMLine line = view.setWindowTopLine(revision.getItem(), revision, null, null); + TCComponentBOMLine line = view.setWindowTopLine(newItem, newRevision, null, null); // 根据首选项的值复制对象属性 for (String attrStr : sxxdate) { if (attrStr.startsWith(line.getItemRevision().getItem().getStringProperty("object_type"))) { try { - replaceAttribute(line, newRevision, attrStr); - } catch (ParseException e1) { + String[] replaces = attrStr.split("=")[1].split(";"); + for(String replace : replaces) { + String[] getValues = replace.split("\\."); + Object val = ""; + if(getValues[0].equals("item")) { + val = Util.getTCPropertyValue(revision.getItem(), getValues[1]); + Util.setTCPropertyValue(newRevision.getItem(), getValues[1], val); + //val = item.getProperty(getValues[1]); + }else if(getValues[0].equals("rev")) { + val = Util.getTCPropertyValue(revision, getValues[1]); + Util.setTCPropertyValue(newRevision, getValues[1], val); + //val = rev.getProperty(getValues[1]); + }else if(getValues[0].equals("rm")) { + TCComponent[] oldreferenceListProperty = revision.getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm oldform = (TCComponentForm) oldreferenceListProperty[0]; + val = Util.getTCPropertyValue(oldform, getValues[1]); + TCComponent[] newreferenceListProperty = newRevision.getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm newform = (TCComponentForm) newreferenceListProperty[0]; + Util.setTCPropertyValue(newform, getValues[1], val); + //val = form.getProperty(getValues[1]); + }else if(getValues[0].equals("bom")) { + TCComponentBOMWindowType winType1 = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); + TCComponentBOMWindow view1 = winType1.create(null); + TCComponentBOMLine line1 = view1.setWindowTopLine(revision.getItem(), revision, null, null); + val = Util.getTCPropertyValue(line1, getValues[1]); + + Util.setTCPropertyValue(line, getValues[1], val); + } + } + + } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } @@ -416,10 +465,18 @@ public class NewJFrame1 extends JFrame { } } // 递归BOM结构,删除未选中的对象 - collectAllBomLine(line, jTextField1.getText(), winType, view, false); - TCComponentItemRevision itemRevision = line.getItemRevision(); - target.add("", itemRevision); - + collectAllBomLine(line, jTextField1.getText(), winType, line.getBOMView(), true); + AIFComponentContext[] children = line.getChildren(); + TCComponentBOMWindowType winType1 = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); + TCComponentBOMWindow view1 = winType1.create(null); + TCComponentBOMLine revLine = view1.setWindowTopLine(target.getItem(), target, null, null); + for(AIFComponentContext line2 : children) { + TCComponentBOMLine bomLine = (TCComponentBOMLine)line2.getComponent(); + revLine.add(bomLine.getItem(), bomLine.getItemRevision(), null, false, ""); + view1.save(); + } + MessageBox.post("创建成功", "提示", MessageBox.INFORMATION); + return; } else { return; } @@ -443,7 +500,7 @@ public class NewJFrame1 extends JFrame { * @throws TCException */ public void collectAllBomLine(TCComponentBOMLine bomLine, String newId, TCComponentBOMWindowType winType, - TCComponentBOMWindow newview, Boolean flag) throws TCException { + TCComponentBOMView newview, Boolean flag) throws TCException { String objectName = bomLine.getItemRevision().getStringProperty("object_name"); boolean selected = itemMapIsSel.get(objectName).isSelected(); // 判断界面是否选中 @@ -461,15 +518,48 @@ public class NewJFrame1 extends JFrame { } else { // 当不是第一次递归的时候,每次递归另存一个对象,把要同步的数据同步过去,然后将对象替换到新的bomview上去 - TCComponentItem saveAsItem = bomLine.getItemRevision().saveAsItem(jTextField1.getText(), "A", - bomLine.getItemRevision().getStringProperty("object_name"), "", true, null); + String itemId = bomLine.getItemRevision().getStringProperty("item_id"); + System.out.println("itemID:"+itemId); + System.out.println(bomLine.getItemRevision().getStringProperty("object_string")); + String newItemId = itemId.replaceFirst(itemId.split("-")[0], jTextField1.getText()); + System.out.println("newItemId:"+newItemId); + TCComponentItem saveAsItem = bomLine.getItemRevision().saveAsItem(newItemId, "A"); + //TCComponentItem saveAsItem = bomLine.getItemRevision().saveAsItem(jTextField1.getText(), "A",bomLine.getItemRevision().getStringProperty("object_name"), "", true, null); TCComponentItemRevision latestItemRevision = saveAsItem.getLatestItemRevision(); // 替换属性 for (String attrStr : sxxdate) { if (attrStr.startsWith(bomLine.getItemRevision().getItem().getStringProperty("object_type"))) { try { - replaceAttribute(itemMapBoMap.get(objectName), latestItemRevision, attrStr); - } catch (ParseException e1) { + //Util.replaceAttribute(itemMapBoMap.get(objectName), latestItemRevision, attrStr); + String[] replaces = attrStr.split("=")[1].split(";"); + for(String replace : replaces) { + String[] getValues = replace.split("\\."); + Object val = ""; + if(getValues[0].equals("item")) { + val = Util.getTCPropertyValue(itemMapBoMap.get(objectName).getItem(), getValues[1]); + Util.setTCPropertyValue(latestItemRevision.getItem(), getValues[1], val); + //val = item.getProperty(getValues[1]); + }else if(getValues[0].equals("rev")) { + val = Util.getTCPropertyValue(itemMapBoMap.get(objectName).getItemRevision(), getValues[1]); + Util.setTCPropertyValue(latestItemRevision, getValues[1], val); + //val = rev.getProperty(getValues[1]); + }else if(getValues[0].equals("rm")) { + TCComponent[] oldreferenceListProperty = itemMapBoMap.get(objectName).getItemRevision().getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm oldform = (TCComponentForm) oldreferenceListProperty[0]; + val = Util.getTCPropertyValue(oldform, getValues[1]); + TCComponent[] newreferenceListProperty = latestItemRevision.getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm newform = (TCComponentForm) newreferenceListProperty[0]; + Util.setTCPropertyValue(newform, getValues[1], val); + //val = form.getProperty(getValues[1]); + }else if(getValues[0].equals("bom")) { + val = Util.getTCPropertyValue(itemMapBoMap.get(objectName), getValues[1]); + TCComponentBOMWindowType winType1 = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); + TCComponentBOMWindow view1 = winType1.create(null); + TCComponentBOMLine line1 = view1.setWindowTopLine(latestItemRevision.getItem(), latestItemRevision, null, null); + Util.setTCPropertyValue(line1, getValues[1], val); + } + } + } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } @@ -477,9 +567,15 @@ public class NewJFrame1 extends JFrame { } } // 替换分类属性 - - // 替换bom行 - bomLine.replace(saveAsItem, latestItemRevision, newview); + + //添加属性 + latestItemRevision.setStringProperty("kwc6_ProductID", jTextField1.getText()); + // 添加bom行 + String stringProperty = bomLine.getItemRevision().getStringProperty("object_string"); + System.out.println("要替换的老行:"+stringProperty); + String stringProperty2 = latestItemRevision.getStringProperty("object_string"); + System.out.println("要替换的新行:"+stringProperty2); + bomLine.replace(saveAsItem, latestItemRevision, null); if (bomLine.hasChildren()) { for (AIFComponentContext aifComponentContext : bomLine.getChildren()) { TCComponentBOMLine line = (TCComponentBOMLine) aifComponentContext.getComponent(); @@ -489,6 +585,7 @@ public class NewJFrame1 extends JFrame { } } else { // 从bomview中删除对象 + bomLine.cut(); return; } @@ -515,109 +612,6 @@ public class NewJFrame1 extends JFrame { } } } - - private void replaceAttribute(TCComponentBOMLine oldLine, TCComponentItemRevision newLine, String attrStr) - throws TCException, ParseException { - String[] attrs = attrStr.split("=")[1].split(";"); - for (String attr : attrs) { - String[] p1 = attr.split("\\."); - - if (p1[0].equals("item")) { - // pitem.setStringProperty(p1[1], val); - String val = oldLine.getItem().getStringProperty(p1[1]); - TCComponentItem pitem = newLine.getItem(); - TCProperty property = (TCProperty) pitem.getTCProperty(p1[1]); - switch (property.getPropertyType()) { - case TCProperty.PROP_string: - case TCProperty.PROP_long_string: - pitem.setStringProperty(p1[1], val); - break; - case TCProperty.PROP_short: - case TCProperty.PROP_int: - pitem.setIntProperty(p1[1], Integer.parseInt(val)); - break; - case TCProperty.PROP_double: - case TCProperty.PROP_float: - pitem.setDoubleProperty(p1[1], Double.parseDouble(val)); - break; - case TCProperty.PROP_date: - if (!val.equals("")) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); - Date date = sdf.parse(p1[1]); - if (date != null) { - pitem.setDateProperty(p1[1], date); - } - } - break; - default: - pitem.setStringProperty(p1[1], val); - break; - } - } else if (p1[0].equals("rev")) { - String val = oldLine.getItemRevision().getStringProperty(p1[1]); - TCComponentItemRevision prev = newLine; - TCProperty property = (TCProperty) prev.getTCProperty(p1[1]); - // prev.setStringProperty(p1[1], val); - switch (property.getPropertyType()) { - case TCProperty.PROP_string: - case TCProperty.PROP_long_string: - prev.setStringProperty(p1[1], val); - break; - case TCProperty.PROP_short: - case TCProperty.PROP_int: - prev.setIntProperty(p1[1], Integer.parseInt(val)); - break; - case TCProperty.PROP_double: - case TCProperty.PROP_float: - prev.setDoubleProperty(p1[1], Double.parseDouble(val)); - break; - case TCProperty.PROP_date: - if (!val.equals("")) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); - Date date = sdf.parse(p1[1]); - if (date != null) { - prev.setDateProperty(p1[1], date); - } - } - break; - default: - prev.setStringProperty(p1[1], val); - break; - } - } else if (p1[0].equals("bom")) { - String val = oldLine.getStringProperty(p1[1]); - TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); - TCComponentBOMWindow view = winType.create(null); - TCComponentBOMLine line = view.setWindowTopLine(newLine.getItem(), newLine, null, null); - TCProperty property = (TCProperty) line.getTCProperty(p1[1]); - switch (property.getPropertyType()) { - case TCProperty.PROP_string: - case TCProperty.PROP_long_string: - line.setStringProperty(p1[1], val); - break; - case TCProperty.PROP_short: - case TCProperty.PROP_int: - line.setIntProperty(p1[1], Integer.parseInt(val)); - break; - case TCProperty.PROP_double: - case TCProperty.PROP_float: - line.setDoubleProperty(p1[1], Double.parseDouble(val)); - break; - case TCProperty.PROP_date: - if (!val.equals("")) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); - Date date = sdf.parse(p1[1]); - if (date != null) { - line.setDateProperty(p1[1], date); - } - } - break; - default: - line.setStringProperty(p1[1], val); - break; - } - } - } - } + } diff --git a/src/com/connor/kwc/createBom/NewJFrame2.java b/src/com/connor/kwc/createBom/NewJFrame2.java index 6ebebec..9d8e2aa 100644 --- a/src/com/connor/kwc/createBom/NewJFrame2.java +++ b/src/com/connor/kwc/createBom/NewJFrame2.java @@ -1,6 +1,8 @@ package com.connor.kwc.createBom; +import java.awt.Dimension; import java.awt.EventQueue; +import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; @@ -35,6 +37,7 @@ import com.teamcenter.rac.kernel.TCComponentBOMWindow; import com.teamcenter.rac.kernel.TCComponentBOMWindowType; import com.teamcenter.rac.kernel.TCComponentBomChange; import com.teamcenter.rac.kernel.TCComponentFolder; +import com.teamcenter.rac.kernel.TCComponentForm; import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCException; @@ -75,6 +78,7 @@ public class NewJFrame2 extends JFrame { private Map dataMap; private TCComponentFolder target; private List tempList; + private List tempIdList; private TCComponent component; private Map itemMapIsSel = new HashMap<>(); private Map itemMapBoMap = new HashMap<>(); @@ -141,8 +145,9 @@ public class NewJFrame2 extends JFrame { jLabel3.setText("类型:"); - List typeList = (ArrayList) dataMap.get("typeList"); - String[] typeArray = (String[]) typeList.toArray(); + ArrayList typeList = (ArrayList) dataMap.get("typeList"); + //String[] typeArray = (String[]) typeList.toArray(); + String[] typeArray = typeList.stream().toArray(String[]::new); jComboBox2.setModel(new DefaultComboBoxModel<>(typeArray)); jComboBox2.setSelectedIndex(0); @@ -150,9 +155,11 @@ public class NewJFrame2 extends JFrame { String template = templateMap.get(jComboBox2.getSelectedItem()); String[] split = template.split(";"); tempList = new ArrayList(); + tempIdList = new ArrayList(); // 根据UID找模板信息 for (String uid : split) { try { + tempIdList.add(uid); TCComponent component = session.stringToComponent(uid); tempList.add(component.getStringProperty("object_name")); } catch (TCException e1) { @@ -160,14 +167,14 @@ public class NewJFrame2 extends JFrame { e1.printStackTrace(); } } - - String[] array = (String[]) tempList.toArray(); + String[] array = tempList.stream().toArray(String[]::new); + // String[] array = (String[]) tempList.toArray(); jComboBox3.setModel(new DefaultComboBoxModel<>(array)); jComboBox3.setSelectedIndex(0); jLabel4.setText("模板:"); try { // 根据模板创建树结构,给用户选择 - component = session.stringToComponent(tempList.get(0)); + component = session.stringToComponent(tempIdList.get(0)); TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); TCComponentBOMWindow view = winType.create(null); if (component instanceof TCComponentItemRevision) { @@ -305,6 +312,14 @@ public class NewJFrame2 extends JFrame { GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); pack(); + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 获取屏幕尺寸 + int screenWidth = screenSize.width; // 获取屏幕宽度 + int screenHeight = screenSize.height; // 获取屏幕高度 + int x = (screenWidth - this.getWidth()) / 2; // 计算Frame的左上角x坐标 + int y = (screenHeight - this.getHeight()) / 2; // 计算Frame的左上角y坐标 + this.setLocation(x, y); // 设置Frame的位置 + this.setDefaultCloseOperation(2); + // 类型下拉框监听,更新模板下拉框 jComboBox2.addItemListener(new ItemListener() { @@ -313,10 +328,11 @@ public class NewJFrame2 extends JFrame { Map templateMap = (HashMap) dataMap.get("templateMap"); String template = templateMap.get(jComboBox2.getSelectedItem()); String[] split = template.split(";"); - List tempList = new ArrayList(); + tempList = new ArrayList(); // 根据UID找模板信息 for (String uid : split) { try { + tempIdList.add(uid); TCComponent component = session.stringToComponent(uid); tempList.add(component.getStringProperty("object_name")); } catch (TCException e1) { @@ -324,8 +340,8 @@ public class NewJFrame2 extends JFrame { e1.printStackTrace(); } } - - String[] array = (String[]) tempList.toArray(); + String[] array = tempList.stream().toArray(String[]::new); + //String[] array = (String[]) tempList.toArray(); jComboBox3.setModel(new DefaultComboBoxModel<>(array)); } }); @@ -336,7 +352,7 @@ public class NewJFrame2 extends JFrame { public void itemStateChanged(ItemEvent e) { try { int selectedIndex = jComboBox3.getSelectedIndex(); - String uid = tempList.get(selectedIndex); + String uid = tempIdList.get(selectedIndex); component = session.stringToComponent(uid); TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); @@ -375,8 +391,8 @@ public class NewJFrame2 extends JFrame { TCComponentItemRevision revision = (TCComponentItemRevision) component; try { if (itemMapIsSel.get(revision.getStringProperty("object_string")).isSelected) { - TCComponentItem newItem = revision.saveAsItem(jTextField1.getText(), "A", jTextField2.getText(), - "", true, null); + TCComponentItem newItem = revision.saveAsItem(jTextField1.getText(), "A"); + //TCComponentItem newItem = revision.saveAsItem(jTextField1.getText(), "A", jTextField2.getText(),"", true, null); TCComponentItemRevision newRevision = newItem.getLatestItemRevision(); TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session .getTypeComponent("BOMWindow"); @@ -386,8 +402,36 @@ public class NewJFrame2 extends JFrame { for (String attrStr : sxxdate) { if (attrStr.startsWith(line.getItemRevision().getItem().getStringProperty("object_type"))) { try { - replaceAttribute(line, newRevision, attrStr); - } catch (ParseException e1) { + //Util.replaceAttribute(line, newRevision, attrStr); + String[] replaces = attrStr.split("=")[1].split(";"); + for(String replace : replaces) { + String[] getValues = replace.split("\\."); + Object val = ""; + if(getValues[0].equals("item")) { + val = Util.getTCPropertyValue(line.getItem(), getValues[1]); + Util.setTCPropertyValue(newRevision.getItem(), getValues[1], val); + //val = item.getProperty(getValues[1]); + }else if(getValues[0].equals("rev")) { + val = Util.getTCPropertyValue(line.getItemRevision(), getValues[1]); + Util.setTCPropertyValue(newRevision, getValues[1], val); + //val = rev.getProperty(getValues[1]); + }else if(getValues[0].equals("rm")) { + TCComponent[] oldreferenceListProperty = line.getItemRevision().getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm oldform = (TCComponentForm) oldreferenceListProperty[0]; + val = Util.getTCPropertyValue(oldform, getValues[1]); + TCComponent[] newreferenceListProperty = newRevision.getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm newform = (TCComponentForm) newreferenceListProperty[0]; + Util.setTCPropertyValue(newform, getValues[1], val); + //val = form.getProperty(getValues[1]); + }else if(getValues[0].equals("bom")) { + val = Util.getTCPropertyValue(line, getValues[1]); + TCComponentBOMWindowType winType1 = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); + TCComponentBOMWindow view1 = winType1.create(null); + TCComponentBOMLine line1 = view1.setWindowTopLine(newRevision.getItem(), newRevision, null, null); + Util.setTCPropertyValue(line1, getValues[1], val); + } + } + } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } @@ -397,7 +441,9 @@ public class NewJFrame2 extends JFrame { // 递归BOM结构,删除未选中的对象 collectAllBomLine(line, jTextField1.getText(), winType, view, false); TCComponentItemRevision itemRevision = line.getItemRevision(); - target.add("", itemRevision); + target.add("contents", itemRevision); + MessageBox.post("创建成功", "提示", MessageBox.INFORMATION); + return; } else { return; @@ -423,7 +469,7 @@ public class NewJFrame2 extends JFrame { */ public void collectAllBomLine(TCComponentBOMLine bomLine, String newId, TCComponentBOMWindowType winType, TCComponentBOMWindow newview, Boolean flag) throws TCException { - String objectName = bomLine.getItemRevision().getStringProperty("object_name"); + String objectName = bomLine.getItemRevision().getStringProperty("object_string"); boolean selected = itemMapIsSel.get(objectName).isSelected(); // 判断界面是否选中 if (selected) { @@ -440,15 +486,46 @@ public class NewJFrame2 extends JFrame { } else { // 当不是第一次递归的时候,每次递归另存一个对象,把要同步的数据同步过去,然后将对象替换到新的bomview上去 - TCComponentItem saveAsItem = bomLine.getItemRevision().saveAsItem(jTextField1.getText(), "A", - bomLine.getItemRevision().getStringProperty("object_name"), "", true, null); + String itemId = bomLine.getItemRevision().getStringProperty("item_id"); + + String newItemId = itemId.replaceFirst(itemId.split("-")[0], jTextField1.getText()); + TCComponentItem saveAsItem = bomLine.getItemRevision().saveAsItem(newItemId, "A"); + //TCComponentItem saveAsItem = bomLine.getItemRevision().saveAsItem(jTextField1.getText(), "A", bomLine.getItemRevision().getStringProperty("object_name"), "", true, null); TCComponentItemRevision latestItemRevision = saveAsItem.getLatestItemRevision(); // 替换属性 for (String attrStr : sxxdate) { if (attrStr.startsWith(bomLine.getItemRevision().getItem().getStringProperty("object_type"))) { try { - replaceAttribute(itemMapBoMap.get(objectName), latestItemRevision, attrStr); - } catch (ParseException e1) { + //Util.replaceAttribute(itemMapBoMap.get(objectName), latestItemRevision, attrStr); + String[] replaces = attrStr.split("=")[1].split(";"); + for(String replace : replaces) { + String[] getValues = replace.split("\\."); + Object val = ""; + if(getValues[0].equals("item")) { + val = Util.getTCPropertyValue(itemMapBoMap.get(objectName).getItem(), getValues[1]); + Util.setTCPropertyValue(latestItemRevision.getItem(), getValues[1], val); + //val = item.getProperty(getValues[1]); + }else if(getValues[0].equals("rev")) { + val = Util.getTCPropertyValue(itemMapBoMap.get(objectName).getItemRevision(), getValues[1]); + Util.setTCPropertyValue(latestItemRevision, getValues[1], val); + //val = rev.getProperty(getValues[1]); + }else if(getValues[0].equals("rm")) { + TCComponent[] oldreferenceListProperty = itemMapBoMap.get(objectName).getItemRevision().getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm oldform = (TCComponentForm) oldreferenceListProperty[0]; + val = Util.getTCPropertyValue(oldform, getValues[1]); + TCComponent[] newreferenceListProperty = latestItemRevision.getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm newform = (TCComponentForm) newreferenceListProperty[0]; + Util.setTCPropertyValue(newform, getValues[1], val); + //val = form.getProperty(getValues[1]); + }else if(getValues[0].equals("bom")) { + val = Util.getTCPropertyValue(itemMapBoMap.get(objectName), getValues[1]); + TCComponentBOMWindowType winType1 = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); + TCComponentBOMWindow view1 = winType1.create(null); + TCComponentBOMLine line1 = view1.setWindowTopLine(latestItemRevision.getItem(), latestItemRevision, null, null); + Util.setTCPropertyValue(line1, getValues[1], val); + } + } + } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } @@ -457,8 +534,10 @@ public class NewJFrame2 extends JFrame { } // 替换分类属性 + //添加属性 + latestItemRevision.setStringProperty("kwc6_ProductID", jTextField1.getText()); // 替换bom行 - bomLine.replace(saveAsItem, latestItemRevision, newview); + bomLine.replace(saveAsItem, latestItemRevision, null); if (bomLine.hasChildren()) { for (AIFComponentContext aifComponentContext : bomLine.getChildren()) { TCComponentBOMLine line = (TCComponentBOMLine) aifComponentContext.getComponent(); @@ -468,6 +547,7 @@ public class NewJFrame2 extends JFrame { } } else { // 从bomview中删除对象 + bomLine.cut(); return; } @@ -481,8 +561,8 @@ public class NewJFrame2 extends JFrame { * @throws TCException */ private void getTree(TCComponentBOMLine bomLine, CheckBoxTreeNode rootNode) throws TCException { - itemMapIsSel.put(bomLine.getItemRevision().getStringProperty("object_name"), rootNode); - itemMapBoMap.put(bomLine.getItemRevision().getStringProperty("object_name"), bomLine); + itemMapIsSel.put(bomLine.getItemRevision().getStringProperty("object_string"), rootNode); + itemMapBoMap.put(bomLine.getItemRevision().getStringProperty("object_string"), bomLine); if (bomLine.hasChildren()) { AIFComponentContext[] children = bomLine.getChildren(); for (AIFComponentContext aifComponentContext : children) { @@ -495,107 +575,4 @@ public class NewJFrame2 extends JFrame { } } - private void replaceAttribute(TCComponentBOMLine oldLine, TCComponentItemRevision newLine, String attrStr) - throws TCException, ParseException { - String[] attrs = attrStr.split("=")[1].split(";"); - for (String attr : attrs) { - String[] p1 = attr.split("\\."); - - if (p1[0].equals("item")) { - // pitem.setStringProperty(p1[1], val); - String val = oldLine.getItem().getStringProperty(p1[1]); - TCComponentItem pitem = newLine.getItem(); - TCProperty property = (TCProperty) pitem.getTCProperty(p1[1]); - switch (property.getPropertyType()) { - case TCProperty.PROP_string: - case TCProperty.PROP_long_string: - pitem.setStringProperty(p1[1], val); - break; - case TCProperty.PROP_short: - case TCProperty.PROP_int: - pitem.setIntProperty(p1[1], Integer.parseInt(val)); - break; - case TCProperty.PROP_double: - case TCProperty.PROP_float: - pitem.setDoubleProperty(p1[1], Double.parseDouble(val)); - break; - case TCProperty.PROP_date: - if (!val.equals("")) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); - Date date = sdf.parse(p1[1]); - if (date != null) { - pitem.setDateProperty(p1[1], date); - } - } - break; - default: - pitem.setStringProperty(p1[1], val); - break; - } - } else if (p1[0].equals("rev")) { - String val = oldLine.getItemRevision().getStringProperty(p1[1]); - TCComponentItemRevision prev = newLine; - TCProperty property = (TCProperty) prev.getTCProperty(p1[1]); - // prev.setStringProperty(p1[1], val); - switch (property.getPropertyType()) { - case TCProperty.PROP_string: - case TCProperty.PROP_long_string: - prev.setStringProperty(p1[1], val); - break; - case TCProperty.PROP_short: - case TCProperty.PROP_int: - prev.setIntProperty(p1[1], Integer.parseInt(val)); - break; - case TCProperty.PROP_double: - case TCProperty.PROP_float: - prev.setDoubleProperty(p1[1], Double.parseDouble(val)); - break; - case TCProperty.PROP_date: - if (!val.equals("")) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); - Date date = sdf.parse(p1[1]); - if (date != null) { - prev.setDateProperty(p1[1], date); - } - } - break; - default: - prev.setStringProperty(p1[1], val); - break; - } - } else if (p1[0].equals("bom")) { - String val = oldLine.getStringProperty(p1[1]); - TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); - TCComponentBOMWindow view = winType.create(null); - TCComponentBOMLine line = view.setWindowTopLine(newLine.getItem(), newLine, null, null); - TCProperty property = (TCProperty) line.getTCProperty(p1[1]); - switch (property.getPropertyType()) { - case TCProperty.PROP_string: - case TCProperty.PROP_long_string: - line.setStringProperty(p1[1], val); - break; - case TCProperty.PROP_short: - case TCProperty.PROP_int: - line.setIntProperty(p1[1], Integer.parseInt(val)); - break; - case TCProperty.PROP_double: - case TCProperty.PROP_float: - line.setDoubleProperty(p1[1], Double.parseDouble(val)); - break; - case TCProperty.PROP_date: - if (!val.equals("")) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); - Date date = sdf.parse(p1[1]); - if (date != null) { - line.setDateProperty(p1[1], date); - } - } - break; - default: - line.setStringProperty(p1[1], val); - break; - } - } - } - } } diff --git a/src/com/connor/kwc/createBom/Util.java b/src/com/connor/kwc/createBom/Util.java index a1cebe9..c92bd6d 100644 --- a/src/com/connor/kwc/createBom/Util.java +++ b/src/com/connor/kwc/createBom/Util.java @@ -6,14 +6,22 @@ */ package com.connor.kwc.createBom; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.HashMap; import java.util.Map; - import com.teamcenter.rac.aifrcp.AIFUtility; import com.teamcenter.rac.kernel.TCAccessControlService; import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentBOMLine; +import com.teamcenter.rac.kernel.TCComponentBOMWindow; +import com.teamcenter.rac.kernel.TCComponentBOMWindowType; import com.teamcenter.rac.kernel.TCComponentFolder; +import com.teamcenter.rac.kernel.TCComponentItem; +import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCProperty; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.kernel.TCTextService; import com.teamcenter.rac.kernel.TCUserService; @@ -40,6 +48,209 @@ public class Util { session = (TCSession) AIFUtility.getCurrentApplication().getSession(); textService = session.getTextService(); } + + public static Object getTCPropertyValue(TCComponent item,String propertyName) + { + Object result = ""; + + try { + TCProperty tcProperty = item.getTCProperty(propertyName); + if(tcProperty == null) + { + System.out.println("未获取属性:"+propertyName); + return result; + } + switch (tcProperty.getPropertyType()) { + case TCProperty.PROP_double: + result = tcProperty.getDoubleValue(); + break; + case TCProperty.PROP_int: + result = tcProperty.getIntValue(); + break; + case TCProperty.PROP_string: + result = tcProperty.getStringValue(); + break; + case TCProperty.PROP_date: + result = tcProperty.getDateValue(); + break; + default: + break; + } + + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + return result; + } + public static void setTCPropertyValue(TCComponent item,String propertyName,Object value) + { + try { + TCProperty tcProperty = item.getTCProperty(propertyName); + switch (tcProperty.getPropertyType()) { + case TCProperty.PROP_double: + if(value instanceof Double) + { + tcProperty.setDoubleValue((double) value); + } + else + { + tcProperty.setDoubleValue(Double.parseDouble(value.toString())); + } + break; + case TCProperty.PROP_int: + if(value instanceof Integer) + { + tcProperty.setDoubleValue((int) value); + } + else + { + tcProperty.setDoubleValue(Integer.parseInt(value.toString())); + } + break; + case TCProperty.PROP_string: + tcProperty.setStringValue(value.toString()); + break; + case TCProperty.PROP_date: + if(value instanceof Date) + { + tcProperty.setDateValue((Date) value); + } + else + { + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-M-dd HH:mm"); + tcProperty.setDateValue(sdf.parse(value.toString())); + } + break; + default: + break; + } + + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + + /** + * + * @Title: replaceAttribute + * @Description: 根据规则继承{替换}属性 + * @param @param oldLine + * @param @param newLine + * @param @param attrStr + * @param @throws TCException + * @param @throws ParseException 参数 + * @return void 返回类型 + * @throws + */ + public static void replaceAttribute(TCComponentBOMLine oldLine, TCComponentItemRevision newLine, String attrStr) + throws TCException, ParseException { + String[] attrs = attrStr.split("=")[1].split(";"); + for (String attr : attrs) { + String[] p1 = attr.split("\\."); + + if (p1[0].equals("item")) { + // pitem.setStringProperty(p1[1], val); + String val = oldLine.getItem().getStringProperty(p1[1]); + TCComponentItem pitem = newLine.getItem(); + TCProperty property = (TCProperty) pitem.getTCProperty(p1[1]); + switch (property.getPropertyType()) { + case TCProperty.PROP_string: + case TCProperty.PROP_long_string: + pitem.setStringProperty(p1[1], val); + break; + case TCProperty.PROP_short: + case TCProperty.PROP_int: + pitem.setIntProperty(p1[1], Integer.parseInt(val)); + break; + case TCProperty.PROP_double: + case TCProperty.PROP_float: + pitem.setDoubleProperty(p1[1], Double.parseDouble(val)); + break; + case TCProperty.PROP_date: + if (!val.equals("")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); + Date date = sdf.parse(p1[1]); + if (date != null) { + pitem.setDateProperty(p1[1], date); + } + } + break; + default: + pitem.setStringProperty(p1[1], val); + break; + } + } else if (p1[0].equals("rev")) { + String val = oldLine.getItemRevision().getStringProperty(p1[1]); + TCComponentItemRevision prev = newLine; + TCProperty property = (TCProperty) prev.getTCProperty(p1[1]); + // prev.setStringProperty(p1[1], val); + switch (property.getPropertyType()) { + case TCProperty.PROP_string: + case TCProperty.PROP_long_string: + prev.setStringProperty(p1[1], val); + break; + case TCProperty.PROP_short: + case TCProperty.PROP_int: + prev.setIntProperty(p1[1], Integer.parseInt(val)); + break; + case TCProperty.PROP_double: + case TCProperty.PROP_float: + prev.setDoubleProperty(p1[1], Double.parseDouble(val)); + break; + case TCProperty.PROP_date: + if (!val.equals("")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); + Date date = sdf.parse(p1[1]); + if (date != null) { + prev.setDateProperty(p1[1], date); + } + } + break; + default: + prev.setStringProperty(p1[1], val); + break; + } + } else if (p1[0].equals("bom")) { + String val = oldLine.getStringProperty(p1[1]); + TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); + TCComponentBOMWindow view = winType.create(null); + TCComponentBOMLine line = view.setWindowTopLine(newLine.getItem(), newLine, null, null); + TCProperty property = (TCProperty) line.getTCProperty(p1[1]); + switch (property.getPropertyType()) { + case TCProperty.PROP_string: + case TCProperty.PROP_long_string: + line.setStringProperty(p1[1], val); + break; + case TCProperty.PROP_short: + case TCProperty.PROP_int: + line.setIntProperty(p1[1], Integer.parseInt(val)); + break; + case TCProperty.PROP_double: + case TCProperty.PROP_float: + line.setDoubleProperty(p1[1], Double.parseDouble(val)); + break; + case TCProperty.PROP_date: + if (!val.equals("")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); + Date date = sdf.parse(p1[1]); + if (date != null) { + line.setDateProperty(p1[1], date); + } + } + break; + default: + line.setStringProperty(p1[1], val); + break; + } + } + } + } + + /** * diff --git a/src/com/connor/kwc/createDWG/CreateDWGHandler.java b/src/com/connor/kwc/createDWG/CreateDWGHandler.java index c0fbb6d..fb38f21 100644 --- a/src/com/connor/kwc/createDWG/CreateDWGHandler.java +++ b/src/com/connor/kwc/createDWG/CreateDWGHandler.java @@ -87,7 +87,17 @@ public class CreateDWGHandler extends AbstractHandler { } return null; } - + /** + * + * @Title: createdataSetForUID + * @Description: 根据uid创建数据集 + * @param @param revision + * @param @param templateMap + * @param @param key + * @param @throws TCException 参数 + * @return void 返回类型 + * @throws + */ public void createdataSetForUID(TCComponentItemRevision revision, Map templateMap, String key) throws TCException { if (templateMap.containsKey(key)) { diff --git a/src/com/connor/kwc/createTemplate/CreateTemplateDialg.java b/src/com/connor/kwc/createTemplate/CreateTemplateDialg.java index daced7b..ab1bf0b 100644 --- a/src/com/connor/kwc/createTemplate/CreateTemplateDialg.java +++ b/src/com/connor/kwc/createTemplate/CreateTemplateDialg.java @@ -1,7 +1,14 @@ package com.connor.kwc.createTemplate; +import java.awt.Dimension; +import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; import javax.swing.DefaultComboBoxModel; import javax.swing.GroupLayout; @@ -22,10 +29,19 @@ import com.connor.kwc.createBom.CheckBoxTreeNode; import com.connor.kwc.createBom.CheckBoxTreeNodeSelectionListener; import com.connor.kwc.createBom.Util; import com.teamcenter.rac.aif.AIFPortal; +import com.teamcenter.rac.aif.kernel.AIFComponentContext; +import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentBOMLine; +import com.teamcenter.rac.kernel.TCComponentBOMWindow; +import com.teamcenter.rac.kernel.TCComponentBOMWindowType; import com.teamcenter.rac.kernel.TCComponentFolder; import com.teamcenter.rac.kernel.TCComponentFolderType; +import com.teamcenter.rac.kernel.TCComponentForm; +import com.teamcenter.rac.kernel.TCComponentItem; +import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCProperty; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.util.MessageBox; @@ -39,238 +55,270 @@ import com.teamcenter.rac.util.MessageBox; */ public class CreateTemplateDialg extends JFrame { - private TCSession session; - private TCComponent target; - private JButton jButton3; - private JLabel jLabel3; - private JPanel jPanel1; - private JPanel jPanel2; - private JPanel jPanel4; - private JScrollPane jScrollPane1; - private JTextField jTextField3; - private JTree jTree1; - private String[] sxxdate; + private TCSession session; + private TCComponent target; + private JButton jButton3; + private JLabel jLabel3; + private JPanel jPanel1; + private JPanel jPanel2; + private JPanel jPanel4; + private JScrollPane jScrollPane1; + private JTextField jTextField3; + private JTree jTree1; + private String[] sxxdate; + private String[] sxxAttrDate; + private Map isSelectMap = new HashMap(); + private Map> isSelectByNodeMap = new HashMap>(); - /** - * Creates new form NewJFrame2 - */ - public CreateTemplateDialg(TCSession session, TCComponent folder) { - this.session = session; - this.target = folder; - getData(); - try { - initComponents(); - } catch (TCException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } + /** + * Creates new form NewJFrame2 + */ + public CreateTemplateDialg(TCSession session, TCComponent folder) { + this.session = session; + this.target = folder; + getData(); + try { + initComponents(); + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } - private void getData() { - // TODO Auto-generated method stub - sxxdate = Util.getSXX(session, "KWC_CreateDOCtemplate"); + private void getData() { + // TODO Auto-generated method stub + sxxdate = Util.getSXX(session, "KWC_CreateDOCtemplate"); + sxxAttrDate = Util.getSXX(session, "KWC_CreateDOC_attribute"); - } + } - @SuppressWarnings("unchecked") - // - private void initComponents() throws TCException { - this.setTitle("依据模板创建"); - jPanel1 = new JPanel(); - jPanel2 = new JPanel(); - jLabel3 = new JLabel(); - jScrollPane1 = new JScrollPane(); - jTree1 = new JTree(); - // 初始化Jtree + @SuppressWarnings("unchecked") + // + private void initComponents() throws TCException { + this.setTitle("依据模板创建"); + jPanel1 = new JPanel(); + jPanel2 = new JPanel(); + jLabel3 = new JLabel(); + jScrollPane1 = new JScrollPane(); + jTree1 = new JTree(); + // 初始化Jtree + initTree(jTree1); + jTree1.setCellRenderer(new CheckBoxTreeCellRenderer()); + jButton3 = new JButton(); + jTextField3 = new JTextField(); + jTextField3.setText(target.getStringProperty("item_id")); + jPanel4 = new JPanel(); - jTree1.setCellRenderer(new CheckBoxTreeCellRenderer()); - jButton3 = new JButton(); - jTextField3 = new JTextField(); - jTextField3.setText(target.getStringProperty("item_id")); - jPanel4 = new JPanel(); + setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + setBackground(new java.awt.Color(240, 240, 240)); - setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - setBackground(new java.awt.Color(240, 240, 240)); + jPanel1.setBackground(new java.awt.Color(240, 240, 240)); - jPanel1.setBackground(new java.awt.Color(240, 240, 240)); + jPanel2.setBackground(new java.awt.Color(240, 240, 240)); - jPanel2.setBackground(new java.awt.Color(240, 240, 240)); + jLabel3.setText("产品代号:"); - jLabel3.setText("产品代号:"); + jScrollPane1.setViewportView(jTree1); - jScrollPane1.setViewportView(jTree1); + jButton3.setText("确定"); - jButton3.setText("确定"); + jTextField3.setText(""); - jTextField3.setText(""); + GroupLayout jPanel2Layout = new GroupLayout(jPanel2); + jPanel2.setLayout(jPanel2Layout); + jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup().addGap(53, 53, 53).addComponent(jLabel3) + .addGap(18, 18, 18) + .addComponent(jTextField3, GroupLayout.PREFERRED_SIZE, 213, GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18).addComponent(jButton3) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(jPanel2Layout.createSequentialGroup().addContainerGap() + .addComponent(jScrollPane1, GroupLayout.DEFAULT_SIZE, 526, Short.MAX_VALUE).addContainerGap())); + jPanel2Layout + .setVerticalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup().addGap(13, 13, 13) + .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(jButton3) + .addComponent(jTextField3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, + GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel3)) + .addGap(18, 18, 18) + .addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 544, GroupLayout.PREFERRED_SIZE) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); - GroupLayout jPanel2Layout = new GroupLayout(jPanel2); - jPanel2.setLayout(jPanel2Layout); - jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel2Layout.createSequentialGroup().addGap(53, 53, 53).addComponent(jLabel3) - .addGap(18, 18, 18) - .addComponent(jTextField3, GroupLayout.PREFERRED_SIZE, 213, GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18).addComponent(jButton3) - .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(jPanel2Layout.createSequentialGroup().addContainerGap() - .addComponent(jScrollPane1, GroupLayout.DEFAULT_SIZE, 526, Short.MAX_VALUE).addContainerGap())); - jPanel2Layout - .setVerticalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel2Layout.createSequentialGroup().addGap(13, 13, 13) - .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(jButton3) - .addComponent(jTextField3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel3)) - .addGap(18, 18, 18) - .addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 544, GroupLayout.PREFERRED_SIZE) - .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); + jPanel4.setBackground(new java.awt.Color(255, 255, 255)); - jPanel4.setBackground(new java.awt.Color(255, 255, 255)); + GroupLayout jPanel4Layout = new GroupLayout(jPanel4); + jPanel4.setLayout(jPanel4Layout); + jPanel4Layout.setHorizontalGroup( + jPanel4Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 538, Short.MAX_VALUE)); + jPanel4Layout.setVerticalGroup( + jPanel4Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 0, Short.MAX_VALUE)); - GroupLayout jPanel4Layout = new GroupLayout(jPanel4); - jPanel4.setLayout(jPanel4Layout); - jPanel4Layout.setHorizontalGroup( - jPanel4Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 538, Short.MAX_VALUE)); - jPanel4Layout.setVerticalGroup( - jPanel4Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 0, Short.MAX_VALUE)); + GroupLayout jPanel1Layout = new GroupLayout(jPanel1); + jPanel1.setLayout(jPanel1Layout); + jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap() + .addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(jPanel2, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent(jPanel4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE)) + .addContainerGap())); + jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap() + .addComponent(jPanel2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, + GroupLayout.PREFERRED_SIZE) + .addGap(73, 73, 73) + .addComponent(jPanel4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addContainerGap())); - GroupLayout jPanel1Layout = new GroupLayout(jPanel1); - jPanel1.setLayout(jPanel1Layout); - jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap() - .addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(jPanel2, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE) - .addComponent(jPanel4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE)) - .addContainerGap())); - jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap() - .addComponent(jPanel2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addGap(73, 73, 73) - .addComponent(jPanel4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addContainerGap())); + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addContainerGap() + .addComponent(jPanel1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addContainerGap())); + layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup().addContainerGap() + .addComponent(jPanel1, GroupLayout.PREFERRED_SIZE, 619, GroupLayout.PREFERRED_SIZE) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); - GroupLayout layout = new GroupLayout(getContentPane()); - getContentPane().setLayout(layout); - layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addContainerGap() - .addComponent(jPanel1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addContainerGap())); - layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup().addContainerGap() - .addComponent(jPanel1, GroupLayout.PREFERRED_SIZE, 619, GroupLayout.PREFERRED_SIZE) - .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); + pack(); + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 获取屏幕尺寸 + int screenWidth = screenSize.width; // 获取屏幕宽度 + int screenHeight = screenSize.height; // 获取屏幕高度 + int x = (screenWidth - this.getWidth()) / 2; // 计算Frame的左上角x坐标 + int y = (screenHeight - this.getHeight()) / 2; // 计算Frame的左上角y坐标 + this.setLocation(x, y); // 设置Frame的位置 + this.setDefaultCloseOperation(2); - pack(); - - this.jButton3.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - // TODO Auto-generated method stub - String name = jTextField3.getText(); - if (name.isEmpty()) { - MessageBox.post("产品代号不能为空!", "提示 ", MessageBox.INFORMATION); - } else { - TCComponentFolderType folderType; - try { - Util.setByPass(true); - folderType = (TCComponentFolderType) session.getTypeComponent("LD6_CusProdFolder"); - TCComponentFolder folder = Util.createFolderBySOA(folderType.getTypeName(), name); - //TCComponentFolder folder = folderType.create(name, "", "LD6_CusProdFolder"); - target.add("contents", folder); - CheckBoxTreeNode root = (CheckBoxTreeNode) jTree1.getModel().getRoot(); - createFolderStruct(root,folder,(TCComponentFolderType) session.getTypeComponent("LD6_ProjMaFolder"),true); - Util.setByPass(false); - dispose(); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - } - }); - } + this.jButton3.addActionListener(new ActionListener() { - /** - * 创建树 - * @param tree - */ - private void initTree(JTree tree){ - String puids = sxxdate[0].split("=")[1]; - TCComponent component; - try { - CheckBoxTreeNode rootNode = new CheckBoxTreeNode("模板"); - String[] puid = puids.split(";"); - for(String uid : puid) { - component = session.stringToComponent(uid); - if(component == null || !(component instanceof TCComponentFolder)) { - MessageBox.post(puid + " 该puid在TC中不存在对象或者该puid对应的不是‘文件夹’对象!", "异常", MessageBox.ERROR); - return; - }else { - buildTree(component,rootNode); - } - } - - DefaultTreeModel model = new DefaultTreeModel(rootNode); - tree.addMouseListener(new CheckBoxTreeNodeSelectionListener()); - tree.setModel(model); - tree.setCellRenderer(new CheckBoxTreeCellRenderer()); - //展开所有节点并选中 - for (int i = 0; i < tree.getRowCount(); i++) { - tree.expandRow(i); - } - rootNode.setSelected(true); - } catch (TCException e) { - e.printStackTrace(); - } - } - - /** - * 递归创建树的子节点 - * @param component - * @param rootNode - * @throws TCException - */ - private void buildTree(TCComponent component, CheckBoxTreeNode rootNode) throws TCException { - TCComponent[] relatedComponent = component.getRelatedComponents("contents"); - if(relatedComponent != null) { - for (TCComponent child : relatedComponent) { - CheckBoxTreeNode childNode = new CheckBoxTreeNode(child.getStringProperty("object_name")); - rootNode.add(childNode); - buildTree(child,childNode); - } - } - - } - - /** - * 递归新建文件夹结构 - * @param root 父节点 - * @param folder 父节点生成的文件夹 - * @param folderType - * @throws Exception - */ - private void createFolderStruct(CheckBoxTreeNode root, TCComponentFolder parentFolder, - TCComponentFolderType folderType,boolean ifTop) throws Exception { - if(root.isSelected()) { - if(ifTop) { - for (int i = 0; i < root.getChildCount(); i++) { - CheckBoxTreeNode child = (CheckBoxTreeNode) root.getChildAt(i); - createFolderStruct(child,parentFolder,folderType,false); - } - } - else { - TCComponentFolder folder = Util.createFolderBySOA(folderType.getTypeName(), root.toString()); - parentFolder.add("contents", folder); - for (int i = 0; i < root.getChildCount(); i++) { - CheckBoxTreeNode child = (CheckBoxTreeNode) root.getChildAt(i); - createFolderStruct(child,folder,folderType,false); - } - } - } - - } + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + String name = jTextField3.getText(); + if (name.isEmpty()) { + MessageBox.post("产品代号不能为空!", "提示 ", MessageBox.INFORMATION); + } else { + try { + Util.setByPass(true); + + CheckBoxTreeNode root = (CheckBoxTreeNode) jTree1.getModel().getRoot(); + //根据当前文件夹下的关系匹配树节点的选中状态创建对象 + for(AIFComponentContext comp : target.getChildren()) { + TCComponent component = (TCComponent)comp.getComponent(); + if(isSelectByNodeMap.containsKey(component.getStringProperty("object_name"))) { + Map map = isSelectByNodeMap.get(component.getStringProperty("object_name")); + for (Map.Entry entry : map.entrySet()) { + if(entry.getValue().isSelected()) { + //另存文件,复制属性规则 + TCComponentItem item = (TCComponentItem)entry.getKey(); + TCComponentItem saveAsItem = item.getLatestItemRevision().saveAsItem(jTextField3.getText(), "A", item.getStringProperty("object_name"), "", true, null); + // 替换属性 + for (String attrStr : sxxAttrDate) { + if (attrStr.startsWith(saveAsItem.getStringProperty("object_type"))) { + try { + String[] replaces = attrStr.split("=")[1].split(";"); + for(String replace : replaces) { + String[] getValues = replace.split("\\."); + Object val = ""; + if(getValues[0].equals("item")) { + val = Util.getTCPropertyValue(item, getValues[1]); + Util.setTCPropertyValue(saveAsItem, getValues[1], val); + //val = item.getProperty(getValues[1]); + }else if(getValues[0].equals("rev")) { + val = Util.getTCPropertyValue(item.getLatestItemRevision(), getValues[1]); + Util.setTCPropertyValue(saveAsItem.getLatestItemRevision(), getValues[1], val); + //val = rev.getProperty(getValues[1]); + }else if(getValues[0].equals("rm")) { + TCComponent[] oldreferenceListProperty = item.getLatestItemRevision().getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm oldform = (TCComponentForm) oldreferenceListProperty[0]; + val = Util.getTCPropertyValue(oldform, getValues[1]); + TCComponent[] newreferenceListProperty = saveAsItem.getLatestItemRevision().getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm newform = (TCComponentForm) newreferenceListProperty[0]; + Util.setTCPropertyValue(newform, getValues[1], val); + //val = form.getProperty(getValues[1]); + } + } + } catch (Exception e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + break; + } + } + component.add("contents", saveAsItem); + } + + } + } + } + Util.setByPass(false); + dispose(); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } + }); + } + + /** + * 创建树 + * + * @param tree + */ + private void initTree(JTree tree) { + String puids = sxxdate[0].split("=")[1]; + TCComponent component; + try { + CheckBoxTreeNode rootNode = new CheckBoxTreeNode("模板"); + String[] puid = puids.split(";"); + for (String uid : puid) { + component = session.stringToComponent(uid); + if (component == null || !(component instanceof TCComponentFolder)) { + MessageBox.post(puid + " 该puid在TC中不存在对象或者该puid对应的不是‘文件夹’对象!", "异常", MessageBox.ERROR); + return; + } else { + buildTree(component, rootNode); + } + } + + DefaultTreeModel model = new DefaultTreeModel(rootNode); + tree.addMouseListener(new CheckBoxTreeNodeSelectionListener()); + tree.setModel(model); + tree.setCellRenderer(new CheckBoxTreeCellRenderer()); + // 展开所有节点并选中 + for (int i = 0; i < tree.getRowCount(); i++) { + tree.expandRow(i); + } + rootNode.setSelected(true); + } catch (TCException e) { + e.printStackTrace(); + } + } + + /** + * 循环创建树的子节点 + * + * @param component + * @param rootNode + * @throws TCException + */ + private void buildTree(TCComponent component, CheckBoxTreeNode rootNode) throws TCException { + CheckBoxTreeNode topNode = new CheckBoxTreeNode(component.getStringProperty("object_name")); + rootNode.add(topNode); + TCComponent[] relatedComponent = component.getRelatedComponents("contents"); + if (relatedComponent != null) { + for (TCComponent child : relatedComponent) { + CheckBoxTreeNode childNode = new CheckBoxTreeNode(child.getStringProperty("object_name")); + isSelectMap.put(child, childNode); + topNode.add(childNode); + } + isSelectByNodeMap.put(component.getStringProperty("object_name"), isSelectMap); + } + + } } diff --git a/src/com/connor/kwc/createTemplate/CreateTemplateHandler.java b/src/com/connor/kwc/createTemplate/CreateTemplateHandler.java index 2ba2b50..43a1b84 100644 --- a/src/com/connor/kwc/createTemplate/CreateTemplateHandler.java +++ b/src/com/connor/kwc/createTemplate/CreateTemplateHandler.java @@ -4,10 +4,13 @@ import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import com.connor.kwc.createBom.CreateBOMOperation; +import com.connor.kwc.createBom.Util; import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.aifrcp.AIFUtility; import com.teamcenter.rac.kernel.TCComponentFolder; +import com.teamcenter.rac.kernel.TCComponentItem; +import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.util.MessageBox; @@ -31,13 +34,20 @@ public class CreateTemplateHandler extends AbstractHandler { @Override public void run() { - InterfaceAIFComponent folder = app.getTargetComponent(); - session = (TCSession) folder.getSession(); - if (folder instanceof TCComponentFolder) { + InterfaceAIFComponent item = app.getTargetComponent(); + session = (TCSession) item.getSession(); + if (item instanceof TCComponentItem) { try { - if ("XYProduct".equals(((TCComponentFolder) folder).getStringProperty("object_type"))) { + if ("XYProduct".equals(((TCComponentItem) item).getStringProperty("object_type"))) { + // 判断当前用户是否有权限操作当前对象 + Boolean userHasPowerForCompont = Util.userHasPowerForCompont(session, + (TCComponentItem) item); + if (!userHasPowerForCompont) { + MessageBox.post("用户没有写权限", "提示", MessageBox.INFORMATION); + return; + } CreateTemplateOperation createTemplateOperation = new CreateTemplateOperation(session, - folder); + item); session.queueOperation(createTemplateOperation); } else { MessageBox.post("对象类型选择错误", "提示 ", MessageBox.INFORMATION);