From ba26e95ea5d83a69aa750158d81d5f57778f724a Mon Sep 17 00:00:00 2001 From: zack Date: Tue, 4 Dec 2018 10:12:17 +0800 Subject: [PATCH] rt --- build.xml | 118 ++++++++++++++++++ demo-design-rightSelection.iml | 6 + plugin.xml | 15 +++ pom.xml | 18 +++ screenshots/demo.png | Bin 0 -> 28975 bytes .../com/fr/plugin/designer/MyActionImpl.java | 41 ++++++ .../com/fr/plugin/designer/MyCopyAction.java | 46 +++++++ .../com/fr/plugin/designer/MyCutAction.java | 40 ++++++ 8 files changed, 284 insertions(+) create mode 100644 build.xml create mode 100644 demo-design-rightSelection.iml create mode 100644 plugin.xml create mode 100644 pom.xml create mode 100644 screenshots/demo.png create mode 100644 src/main/java/com/fr/plugin/designer/MyActionImpl.java create mode 100644 src/main/java/com/fr/plugin/designer/MyCopyAction.java create mode 100644 src/main/java/com/fr/plugin/designer/MyCutAction.java diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..bffddaa --- /dev/null +++ b/build.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo-design-rightSelection.iml b/demo-design-rightSelection.iml new file mode 100644 index 0000000..19dbd15 --- /dev/null +++ b/demo-design-rightSelection.iml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/plugin.xml b/plugin.xml new file mode 100644 index 0000000..d59f89e --- /dev/null +++ b/plugin.xml @@ -0,0 +1,15 @@ + + com.fr.plugin.designer.right.selection + + yes + 1.0 + 9.0 + 2018-11-13 + zack + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..eb2524d --- /dev/null +++ b/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + + com.fr.plugin + starter + 10.0 + + jar + demo-design-rightSelection + + + E:/默认工程/WebReport90/WEB-INF/plugins/plugin-com.fr.plugin.designer.right.selection-1.0/classes + + \ No newline at end of file diff --git a/screenshots/demo.png b/screenshots/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..5d9ff8579b16156b95f690ec3a181b95693edbbe GIT binary patch literal 28975 zcmch=2Ut_tw?6FXD5I#1iot^7SU`n<7&NFrMjZ>%>`0d)NH>6V$c%^zp^8c;gCdNg zpdt{uBB4kC1(6OCno$8Ev`~`&J|QPL0sNJF@AvsU^Nd2yIs5Fr*Sp^JuC-VEPHG-o zwq)IsdGqEiQ$7C2>3Q>h4xcw~e$g-U!B6(bA8iKz`^oY2u|xAxD#hvGA3s|h)HpbA z-t%DLN#lj!-;1vt*KwRTZ}}VOzn@C%|1q04?@E#C9|zC68usS(hS`)IBsCCTind2Css`mPIGtgjaz@_P6&pkAc-wb+#lg@gOQRrD#v#>NgiYo0rQNjZrm<$Wqt zs_M~4rK_42!&*r>eXVTjSQw6}B|K zvjF*odK&j{H$?SfxYvi65HZttT65Y4&;8qBfBsF^zN1xcjH^2_aJMA%Q*B;Q$00e? zmJ#>%D%Qjp?P@9bm;3W~L|?;-wI6BulU)TDaP413joicstjy!Zh@Z|4k?=)dLwpTo zhD_qcg!7_IiOHx`b8yiwhDX?IkL51c`AnIhZD`N4yV-oe@@N~=(4qKg~zheFv`UIK|^D${?fe_&MDn?3bLuM zwpVHY?FUA%H}vl_OZRR_eRFk9vi3#mqoGgT7G^x^zDi!Mm;cKGz3)p-zn5N?@n>E8 z+fLcIR7*Rhw12i8xpwY-$$7Q0{S@uilZ9VbZkNQ06{u;OTg&c?OTBt)f0Gjab@FFi z^zmIMf}8x>jJ}3^$mk|-NPTs$s_|p){HC)_-B%UQr`o<)n7V0oUiC#`n_kZ&59Hmt zWK9Q`Y>mB|3qQrMc+kU+QH)uYuQ_lR8~XizLP@V#blbzf>^vAY%p51{Kl9au+Ox1VNYX+O`ch1Od4eGQ8N1a>(vZ5 z8nk$OLoeO|zqR!y_#WJ9XD3=v@X-vOz>JEoSDqL)nF$**%NnCT-AjGLeZ8~qvj(>L z>z>|vVYQb{`t{T^o?RN9w4M3)>(k?Hm`{>kCpHYa&_90neEMcYOXvH}@hZucx&DzF z7UgY5rg_Vcb+4|EI%Q^U_?PWtw+$(8?#UItLgn5+%OWoXJEgEABG(~Y-fiLI&&^{i zkDzy~d@{KEUYlbyHZJn}RsYmnzw6pbYi#!GseCofj&g)PdDJa`zDBM;E6wlcSQGP_ zf&Kb7pSv&2Fc)oz(!LmNWq9*z$XAgMaRFPrXX!zCza}8GCDZeUhbe z75<_R98L30+i0-4fX6rxHvU^maLf%X`}!|4xYC~{DAVQI2CQP_R~g-Uh(2;<_K zNt&+4#t|y>e$Sd@4!LAd7=gO*;_;qd7 zet5v}{jGxj{los7cOcmna%XngWxRz*Rr1!{{eWb=*m4~OuWH?fmwUmw@+Z&z`FF$r z!^JB{X)oh0sQdG0yk)7?)pr%S<_d+ zk|^88C(qxoh=q3{{NO!F=ESdO+ULhzCA_6;WA>x%ex2jz;>dl^-5d)`1?Gr58$S)c zpqx7l6A77ntb+$cQx8MK=THLvKIPfLIu0q(R&~7!IHlRKUw}pU-TLL{e&lU(#s0Oa z35xBS%f+PM4e#pdli0W_9+>frE9y)d#dnDXalHhLUmULkjB4&}o~%nG zPF0|=DqJ%Os7wWd|^wFIG3#4J%v23ns;O9I=(IRyMWe@8N)2Yr5R~-~UG|Ik#W4{+)Qh z!_{zGdo2{|ZTRga*>3CR&A;Y~ArSNb0*iSoDPYE2ryNpec&Zka;883yVpm;J`FgHp zeoDFeVB^2r{ltUzv`swlW(U5tvr^$BVDXpQp1kN=b-zI_uQq0Uly)zF?OeA6cnbpH z*&yI5H$`a-88Pnk}4EC#)|9S;e^W+FjxzkW!=~3Ls zA0d))%nf`3M8TM6mmoAvyV-MYrQrrBVqI~F`1R=K&GSL@j$ljuJijQgL~|o8_x=9N z6|nd@v4`hj0EKGGNoa})p367t64j<`EkhYRBY`|ITSNw7nazJ==OHJO&#(6A>AQYo zXnxYMfK3bbSrv~y(oPffbUXPr1beOIeZzzY)hO(4c&&K;VQ#usYl;8sLg#z|pE3hI z074M>4+^L)|2L%a2cFIYu%t8pgT=4=6BRCzrCFG~1@Nl_hc4q=j{ot;CV@@co(B_J zfoIR{@Bc@OtV?Vv|D4#(Ukj5bhH7o(cqll4)QCp}xk~<|Bj@Ox9p0;TF@OH}3nj22 zVa(93K-Dp{cmKzq7chxadMt<%PWY;Px|D`L8wBO>2|2U-iS*0zwt;RR3yfd%$#f$=DRvD2NM7 zt^3Q3Sj0Q`Ggj|-TmP0rnJL@ziW{AazpRFyOFC7?<@x6XgO3M8>v+#;&&vTUAK`8J zL@c1%`iZT@6T_bh3Z`Q(_vgGA>Gy#2-hf)^PouoRY?B<}!3!uRn(O@@H_-fF=W^E0 z8aaS%PR(o9Fy;W*xB&BMAe-R1)J2MO;lzG65wGu+Uf9&F^z zWbZLIEL=V4E0;S|m}KP13M2KU#4WqX!)@L;>S%|2rM)j;&GCmqC#V)Gbq2quKc5NM zzjj#TN$g2AO4VmDCb3GR#^%)XjWfgDTcPP>XxOaH57$Orskknklyk$%bk-wJ6W1Rr ztfEmwJ{J%9q3yP(Fd!nW?TBzCp)67KEg(MYpxfWl^SAx+N9RY(-;}F)_O^v=D-dWx ztMkYEYoDJ}B5Pk{dEiqxLAsbQFPx=B0RLg0UQfGmpR=$$&PJ36VK~+5Ic3=q&fesQ z8>S#6f$oOtNs4~P+0eW_i<36F2*?A>eh;=D$(Ov2Z?*x(Pp=hzl6JO+b5Z-*yMG`|TZ zOg0dvQrV=`iR_ZTR!J-KOyLzXx+xqd@kfMfnL_@=j3uGzN{H<4IN>Bgp60wzaJqntPBh|+ElOYn8QAH@MXdO3* z1RmI7$238+9;G+Xtj>`m&c2aducNwulS;RbiOsrV#HV35U^@7vf#yASlaS!}P`c)m)u{7zPlgI03(jx}leDv#^|J_xoc;Iu8qd6D046_?JW|#OczNJtux!S67~vhDidjgX zSF;NkSITcIR%8vso*eAFdl_WX_#@KtBYl&TT?(uE%U7#<2tEAA?1-xLNHH}=p(%KD zE~7%*;)|&Pz?!G&c*S#WT)rkO99{Y3UPU@t8Q1bNcc?JKoc<+Bulc0D2&8?bcGq(Q z-hi_5S@sl9S)V~mE5mZA}@_#dkH|aKeUA^i!66g zh^Cc3RMjdYhxqi`MKt*nJxY>URf|^mzPYH9Hk8o?y}ESX#W(W7`9QUYfzY) zsOX?hU#fleC1u&%FXJY9Ojcvy&g%R_p~D69w~5J(uBN1@0DPU}#%m?oPv-lh0ZX~m&xc6F>N{spG^&y!J+)OLFlb~ErXRnc^?Ewk)q`zWhc+ENAno=!SMY>FP&2%txbPX{;Y z6EZWb6c~)bf$O7T zr+~08uI0kJG|i4EtVT#^irX`5oaBvM`hP{vZaa+lI$4yKyouv+CaG(^006+ZfdwkC z*&m`)E?djjl!#)~R(YQ`dbZXAb%pV%=7GnkmK`-grvB1Le}q}`m%KKKf{ydcv%4G` zZDmsKVQ}KPwZk)llS7_PcPESW8o$r-Vw9y93A~DJ}=}**X=K0ud6+J@g65>%!ueaK6l=!wm zlQwy3gm@?HP40)torpUu&~0vb!`KON{nDqGP7;NKYgCUde@nf6Ppa}}iRFtoDb{)! zI_il`&*CT1SGt_)LT=q^c83KTj)&8?vaX4>twGC5h<22#XOaO_bu={Rk*~0_-;=M* zhLF{|%|p~BewU<|4>Iq#zEVnA9&Lv=cFay|pnWNs)8PU~XEIoclGazjY=3@ZVYPYV zU8zbr0lM!#1nISzL-+k1L=;>4Uqx*`_NZy<{mZTm1h|)4baEs{p6=ZIjbQm|Jw6&@qFmqg=p9J8xL~ul=0^)< z_wImk81s^%k))VtQTRfCseci3QeL8&8hF4Sn|3i=N1AVT7A-&_{@x(TfAO4o<6lSNu6$R5L>ZfTi4AYg1*s^vTVf%rIHNu!Qj%T@37dVb8U*8O-*y0MiI;jzhkGVAy~|>SJf*%7D`xw#Va`VYsWKeOmxQ zjwZS}a=hzYE9gaA#byEK#q`%!8c#QxxN0;>3-`~HHnX=+T_f5-FUlhZ%j+Si0iTa( zSD{AZMkh<_2vfOG9TUJ*iI*lP~@OqgZoqMusO=MnYq zK4I=|;vf=QT?_=NvQeEF(D;oT@OsYoFPF50E z|KwiZL;Yb&GqBR{qz{3`zO&g0AZt}hjHdXcyk1*-_J9PtY&5T5YNK1Hbt`McrATW( zGo^ogJz>JW0K4@3SZUaOr6KxC>Ct5vO#869XwLYLtg#v;Hr@oyE9(tmOuu>ZqrI0w zz30$-?Hhw5(FIIB_IC-*!i%4e#dTKv7PN{UL6>Q@z9E_aDbz%p#E)qZo&yZD#;wZ3 z81Z1ZWJ?DerX7nLQrF(_VlX7QMqM+eOk|g}Wd5_iO!6)GY!BgeZ)A|i zRHfoGygIPnHD8U`y=~)9Q;BF+LBO({4_UxB?Gy@7wLr|c$ zP!J087_n^<`}MXvq`Fcb$Umn{eXC;W<2z~BFYQy&#CX-`YNTm?^pwYfaEWjMgsiZc za0p(NHruU(=arXQ;RnJr4|y}N1Zj=@fk46@YVK5T|8b1h%8#83qjz9LqFtUfm`lU46>+OKt<^TS@AXSo@5%2wIMa4|LNN4+qcb86kRrM5DWU&AIp> zc#Ja;0Yb@ptmB!=)`_p+pl*iGKhtj5d=d#}0^ttd2|xh`6hlmlio7J0yrkR@IlhlB z6yZ|U@Ch7xFgyNs&mh;=3^tzMimPwF0q7Q!F3C**0x8sG9VX=GNw-;_W@jMlRduOV(6Nu_PU-(tORCX zJ#POFsZ>V?0{as=Mxi`s;I>VlAzw^Dum}~jEFmV`$&-}8+Lc=9J77{B>ZTek?&PsR zC@guwy^py~QDcWzhfN`3d;#ZItFco=c+n2Lxx0#_Lgtfa8z2Tzxan+;;;l&WKDPsQ zJKMJfiZYbvygq#kTJ~W?8P;MrFuC!(4GNv2MAhG#8|U{U3$`r)vdwQ>+U^!JyN5pQ ztU;%2VF#YjYoM2H{a5yrB+M)2c6;qrT-a%eFZ-MoFC6C*6L|VDg0=s8r-dTzehl z`Ubt;qOdE$2CD1hJT6i(Lgj_$+s-TO&qG#@&cp-z8Vi`h_qsQCN$=YQTs_ZUx6x?b z*D`;G`8BX)Vl(ZDPlGu&CHY1OW; z^{&BoGX9dRvLh~C(O5%v5u=!C)+i$>H{O&NUD3N=*f}yC>6FLOvPsc-e(;qUZL~rw z{Qx=b&-Wt?r1~^OJv5RL%7w)if|%Ha@AqJyPkM;1jEF>p9+lZ>S(&L&yNTO&R+Txt z0YQc<5OA#S1Hm0U#exww0&}_c{@=@Q*#7={Iy}LAw+&l4tQ0Iolze2~i%0im^~B+n zJiU&u5zV1KJwbNJwgx#0J7t7Vje|aLAt(%#-)bnN0XDT|F)B9WGl;Nkoj=}Qf5 zqmrxS-b^>YO!}gSCd6p*ZxXS0!s_;A6%elIYeuEdX>}mx@GWYx!>n>%EhMM8-IQ1s zOckQbFVDWSt#|BV{}qQkx6o~Ss-D~dGRqb3oH?2KL(UAbUkR}ejvsmJlG`z%!YmUz zRJf_~xtL7U5OQ9G$7DA|!-UYnl6U|tfQ_|$d;x{ItF-5hF@1+u_0w`}q{=1Y(2NuivbbP9`jCNoO%^BGzrB#*^qZGD+8J(5Pa_$v5O^Y2I(3bLGx*440ws!5{M zPK7Tjw91W`EcFcO&#vtJKAzE3Hszt+k=qh0-WyJGG5Lr@o}HQG7&it?x#=~uy#uM< zqpFW>j}WByrY_OTT@fBEM<7;nqZ1hE1Ov3=pDhP&GzqDE7cn6U`#f7KshxbqSfdYj z=3CVM!J*HFBNJiR7f^%(REd=JuoDBOo|}FwyH^LZkoWus+UYotKIWS@bvKtzDTXNl z1Tr`AXL>SBHdGyFaM%OaQEK{n;16?4n{uk&p)Ax9a?EU#o!c>k@pv%UzswJu%}==s zJsg_MKotQn5{Pj@;q!U5IV_(;1m+ZQV9vtHFV7`E@@vfCDu;kFYfIw90mA51+mte{ z9@GAbMmK+gz){3-ftY$f2}p@Uk&AJOa`oyu?iW;675gdZP{lfL8gvhRZk-Bq*lqqg zMQVOQeRUki@b|2O3 z>z5D@56cAQ^E?Ly%*yv+!G)}I9wIlwX!~ML(xHAcmy-t$nuD&Hq zsgeRw^X?5go%eADD@&Luo{|#kt6aKN!!V=8GWC1*)gOp(>Ii!<5uc?I)JMwo+#eZ} zXlfV-QIEczh@m$e2Z9CD>@V28fs_aVDDy*={RFN0)f?X^Qo)@3W~>p{N|lm3->Va5 zDURL3aDMoDeoCB!XGn|VfqnZG_b<+qrHX5%JZ>2>29^E%iFwpUt2S35bxbGrq4DdN z9%C~LmgW?iHtRp746m(?MbVz1F6EC(07b$51P-!Ir8zENDf z?VC*o`K!RDM))jHHWV6ntoUwLy?Q63#$y%5nECe_E&IxtEWl|>j*a$dNsjin9LOI? z6&{nntHTd}Aa9;4FKFTo-bCTW)(&?gLp*l}X-}RGdo%T5=%D0)(ai%Y#ZCp zZkT29KyK^npKKWwQ?@-=_!_!J_8(98uDY#NJaA1)Q^ZcP^_sM#De7DHLm&kUTO@&0 z?ren-NJWpOCIjM5oD~;KFu;fGRt|Gu=6=ny#4JaJ#F^ZfJMGfwO~iDR&MnE!h!89g zB}-W#c}TV5@OM8TpOpy8pcDXrv!ezsRpJK=aAg2L9r*)A1mRZr8YMhBm<$13%D)z8 zBboh(=W}O@Fd(`VZfwkTgZJW)J-+SxvNl&BsR*xJzCF(5C@4STWm`TJh>7VS7$FNS zJM>b->+_qWBneXFGimXYN|*43Z}q97JC;YNs8D4#;ba1nuxT+HTXG1eHGw%_RYMp8 zGH|!U53rh`P}^91QT)>`55{!^5MW-omlUZYsod>zhaP#yQyX8OYoW1xBv|up+1Hrn zHk_iYlsz6X6(C5>9Gl|BheSPnLuw)UV;;Hw!QkGz!Nf@V!4nZWzk6R$DRnXEIjVX< zxv^kuiI`c1t!hQir5_{}Y6~c~w0@ebNA*IA=kcfjAyLs1YO^{B9|#m&x}EhBuP15(vo?Sq_}!bPKbZW!1oG1)0UGPuTErNGsE zdA+r~4=3qd(pWr6&z+i~uVhq^^F%oAY zk?w%cYjvAxV=2_0Ku27T2@>fEN7 zN}CmvvbH#D$euUbM3tLWx-mK zC31N~C6u4KQAkW>9lgXk)&QhhAk0ZgNqA7CH%_S$=+xOzrd~Ty ztyFz?E_Luyx?IxxT+SS40top<@0 zn>{2Z)k4B+=x)FFs7PFFEN=J%ZsJ3d${Fznobf@;gh)3ZN=NCC`X-W$^R{YvNRZL* z%c)n&7vHFv&GhB+C@#x<(nOPObCvs?VNoH92%e(VgZf*&I%E4MSqz4p?-H@%Hue~MB6|mN=*PEPJ}>ocM7`D9=@9>c zQV=TaF~MdmfJ86apLbqLOZ?%_RLE~`cz#iv_9cRjasi7%uT_uAq+If%GU7d-+Oi&jyUwdOEkdW&-LmGdR6gO^RVbK#`s675z+Q@StxNs~zb?P2Aw|#(Cy3kK~XZj<$|LTpa zEFJ0cl%MdwmX+)qcoq^((s!u+=#RV3Fx{Dk*qhu#5Wq^7+2WyP%LylJaq(t7JlRg` z1lzRJG&pbPhBSreDwK_@cQ~*13uBt9kb>WUDw%Tuj54D7^0YRRI&c}mBdJX-W$(R5 z7H`i~2Hcfft02fymfGU!_MNRvK#Rw|D^Vva`zQOPjhNwauJ zZ8U+l_xc(ZUzkT*9UK=UD)IA+?cuebubHT9Ytvf_V*8%30eJ~(lZ<%^z}$Y8>b|vU z7wga!-F+0_w3<1y5KrIH4nag&Dy##VX~>9IX({b{S@`g^dUfbPgvl;too^>PG0YT` zR*t|s8#1la!BN-$2r~J;YDS(qW(hjw!qgjckXz>IhBJg{kbIV2()433J83XaQLlLn zsu|1CYNZv{M?^TCqpB$;g7UYH?AP4dMcc;|Ul0fIA`TT?>Uzuu{=Q6mR6r#9D9*}n zb5}jdo2XV#EB*_3|3)t$PfJY37hH87@ip1KRsDtmB_V4W!ZWU)41B8?Q4EW8%6iRE z3JEt{gFB;s<9gY%h^w|Ws&HDL2E#O9{G)IBneXjAT3*W$ z#2qak>{ru5 zVpyEsHokcxU=UQPmG-mx(%J@!3)YS6K_jRA8Ao4Nwi+*~oT%TIyU7;i6LL~>xg_4x z-AOb`Puu)ZSr+Ta+cIOrFP9e|bqU&7G*EJAPtK6CO6j`BT4Ss(z*PqW$7u17Pp|wo z=Q9DzK0di1E95R)Ty|@!F+K)Y49>kKmYG~h%NEx%$@9a6bv&u2URJ!Lk9{uFVo>7K zLCkaM`({vI;T$90yf3P`AnmV}Iaw$%DuOQx5+;yus*3e$hZw`8T!H-7rG@7B->dY` zhgj3p-PI#ABP+DD!y_-*^e~C3w_m;K$!()w*WB3Si@(L6~P6R zy9G;`pTNoLvJ}1M+SW?>mc(*N?EQXF69sQ@J_oC#p+@CM>>7K|FUf5quT%4T9~ik+ z)EG^5C$YZXBz(;xe+_5XIvQhuWwrl#<$|K3G9G_=S&oc2rr6TF+gt@VT(&K3o$!R| zPM`OI1;m^uwvKxGBSk~UoWcofFR(VWWY4V!p)$#tUPI-n6Ax2aIaREZUEbdd3FC=L z>?RKa16N`Ismf++ZZ0S^ZvRA1K5wE|F2P^|20itl=4*uxplO#0ALX_=?C!wq^f9j| zvp+PW!p9Ar9`saW79{yf3XBUd1+Df#GW1yX_AO=~cgj;)jDfDK!2cFfuOqnn8Xx zB&a;-G}HVGh{DWFIYWi)kX^ShhuN|zdUulib>zctSIH?-Z9pdg-b(2tQ@Xx-i)&S> z^UxAR2V1?4c8#*e!%55`QfE$~dBoD38{S7Bu08mJast3n1xgYhFlZ*nkH zFhK#_fSsXZ8YOT6AZfhf2)IUgwMt9EdIOMqfzE-f z@h*o2Oh}7KiU^3V;jukDaU!E`gQ(j$T?ADU(G*#cu2{DWJ`h})6up$^ivX2!Y2Iec zm|%71$T&zst1?ThOx7Y!NEk6qAb`P5FmRcrk-zdC3j+T@aqdG!hs)VU&ZHyw3;Am? zd)y#rT^1O52g+6=JP3cq*L|SPcMDaER1YFb$yQSB&Triaq;5{wo`Nlh!uB;IBnzk} zKsKfg92B1IrIQInwagA#l8Z(JGtOnQf^|f;HZ8LAW>=ii2RNQ&)A>|>cD-8J_Hm>g87w8jR+ck8*$N-WVvq|TobVeU- za=YSWF}_##bBdU_xY4&fM~nW#6sH(wk^cZlWY3-!>nT+D8jwGZ4562KN(QEtfZ3HMRkfIc^SH|tE@dx z&q^dnN~~b38-U>v=OFstmKZ5cwe0KwGaZyRNhu}&bLBVV-QRY`cTG%oxy@_ixH>L|~2)N6K~W@X79czL{Ekb1v= za46kC2Ldj3%Bw)Q%nvU7YNO3(x~_x8vnL;E=DR-|>L*m0JzrZUr4hy_`7!%}xwn4G zdB2Tf&R3`}hh};K5j5FB{8I2`ZSngkX3a4?swbF_)r{4`uDw1(Bbc3%MFVM_CC3U6*`?@K z&W^fW6|MK9fGOn`x)NyB=&>!oD8O&P7b-xavO*32EbH9d?hn*H1M|67;TGvwPk)~` zA=PC@y=Gwk6cI$u3U1m)vVG|4k|mT?;pTXvaP&T==ei_yglM>Cl4NmDQh#5|p0m+c z?&XBuy7fCKn1+Q45M=n97E)abrZ!9w^=(W*s1?x~gYCP0_hs3^`ZoNoEERLrifNix zGn?j>4R@CW^)05#~$zybFK-BA2g^f5E|`2 zo3}y?Q7wQFXP>swPJ;-doQ2njQWr|7n3N|~?QWs%w`+AV$t3HHzRUK&8~4{P%Um1u z=%>mj*Q}8u5aONFC=aif)dF_soU%S4k7BABkwtYPMmKzXH4Q-XM*tzid-P^g40?OT zYizU2eLB!&fVYoQ3&1fOUS#wX(nE4&1@w?4RpQr=T~89aa!^XeogE<7-ktRHIWBSc z@s_b1a(Uz4Ov)v#+|tfZmG9plWy!qbyTvE9w89B@Z1y@Nedx_3*T1ed6;DWDMh43> z#{fP;azpnwNk@m5Mx#E;8L?|gr`D>!DV|EYmrf>DDQ3z3wP#MjH=PX1K;Pz(L!L>B z`Oqs=Izp10@W6u^SGBgXDhS<85F#Nw=~b4jY_6Zn1L;JIm2j@L!55_+A`xQWT~w9~ ziRlf^DV!=&5R$b|IzPa-!>42p5u**K#0n&M#33Dp#jNh9bcHd@)teA@lT?@#?esvJ zckGyRkSB8!<+XW{0AM_xG5~nSCiTFHuXs=ef=Ky*ShqZKA0}{a%!t`fvfKR&jE`JR z5hh9eoxwdwh3$8-_&l3^YtIOgXPpp}DekQ8>A7l}ICpMgMs~PTpdbsPW-C)-`qn+x zm~l##n}cx$RpPUOEBz4BgArYTNdSQ{bSz}{sOy%X`}$gr9r7>!)uQBLjYOYxf zFmt&ilgi;z?u^}GZ4>VmZ4>Z=cu2ZpE$@OA~I39Xae{Q(uWhBv(H z%bXk|;#B=|y2W?3G?=H88^SV`+qY?ex=;i;J!^;GSA$srZxsc5JUF=^s^j`6+HUxI zxWcJ#U&266;(HrH8iIVPcJ5F5`G+gK)Ob#xgwo!+H`B!7B<+Q`kfkK4D$KbnO#3eJf3T3GtgGt{Oo*fh?M(yBKF)d1A!jHaZ3Fl@48yF~^$?7>tt=}!~c-4ny# z5HiD=-hSFpl+M~Q*}-s$<)t&H z4}I{h%6D|^c%~O+NSzmsDfd&*+bs`I=;=RPKvC>9P$HS1mJ|Xyb64k8ZUKgQC9wg= z*Jdo9g7W|&+3!Cnwjrr3_Om=VQ$f@Zf7#*lOwJ)K1O3P?bI-uTosts(5M(E{ukzgh zVtt@jJ6Lsnp_^}s5)+_F|Ha$RzMEYX7yCdS&2qn_4Jxnl`t@-5j1&xYUnULoS&M!x zK^9h~p=Fnw(9Abi7}aGsFvc$8*p6h{F2~Tm+T4WtS}8%}051`keQIx|lrXR0DS=Y4 zrB9CnnMik%SJd8X`@trQ&^7-~y_npt?_B7bCV)Mkpahj{TZT+!L3Z8_6Ou6uGjltpc#WR{EanD`$ z&nXyjix}oQU|URZvlwyYn=gR(U3iEUjQtJ z{Js)A$z?w5c!n(T_JoN8EGCXE1|6QjGaN}Cu0S_`*Va0ckqIRXeP2hdmVHtSITQfOaz)Gz0>`uddUw{*JR`zr?6faPG z9^hNz*6EQ%x;r;S2-sIFP{;b!EkkZ$cp^~}P<4Eb#@bAY<*SIz9&Ho(LLzZHf{dcT z`O$iHjHL?hZzZyfWr>i-&9JW(L>UM_+V9F3QGY{BDM%H&YJEA%DA|W_=8%#~Tq3s0 zzZs}~&lJf7+5JVLmf8amQlv=nZyVH8Tnz4H=S5?F6`HeLC76`X@85@y z_!4#6k2X6c5{r&xmP&R2Y^f5c`J@|GsQDXsA&?m&q+3amt?Lm*Mo^AVW?YZzSfy+v zo~7^{bG^hZA&{B7`KGyT2y`vx04W~EW*@#o1}(3y0Cmf#@^!LS%)K$y&O zd)GG|M|?fNffVm{VY$`EMpS{DHH}jUllXOGlHW~@+O&6VvaFwFow9)7np_4nv;Zf$ zt`9n&k!K+UKqAS4DC{=U&|^6D#lBRJkDx zu!RWUC$|K9YUF3Sj#ICb-V+bL9ZH#uU}`BTXNOO*I(a(FY#`k8l7iM87^3WWdjafe zN{S*z*;3$0yg-5HLt`T5^K@T{Rl52!&rDH3DB}i-GUnt2g2D(7wSUP4C-U>FBktUf zN4hOuuHY~2fy233T|3t4&UHd*h3jfuQM6v%$ufV@Slj*W5q&0)1NrSrpukq;*7$8u zQqMnxo7RcT7sJIyH-$N^6=iTt0oIT?@Rc+$^fz4cBttK8(QCHV%wFox6g(siYKPq_ z(C|Tb@VQY?-7ZA#Jv=4 z&rBhW(@8rd4;Px%pHp9VqWTgzVS)7I?`VUC_eL{4Rc1W(W*g%Hq|z9%z8@Pb0~N?` zQar2wye;cvlCK3Ilvgth(d+Qe=nOLcZ|DU6y`c^dkl;%$7`Kjpmd9$6AdED$1!FiV zkovpJ*WY<21EMUZ*}AG2nc^KF+A_+Gyj@kLWbW?J8Xl#oC*=X zhsfS`Cpg;!0V)ErpH6jf|J;d4D30y$l-$;P!p8)2JJ_+%)BPjOG_j_)a`|VBW;A1C z&!zTOSS9zha^95{Llw+IYJ#2}Gbe&4G_7!bDA6Va0AozZ;WugaK7IA~wuPHc*(|D- zXDr%5QLhicFg;a*qH8*ZikuFZpAyd)lV9#njS0xIGtrS03OD);t6EdGM~OK~gO%?) zS+PDHCMuE!izuFuJ-X!tYj2Oeg~d zxPy3=RhY|?ZRf=I+G`IqQ-Ud*Zfj{u4ZSRnwm$;oFR_BX4SQZTp!)_hW zx#YPm-%sH3ir(F6-KWG?31K7{AaSvqB6nCtF;4&Ni?1k`^h|3! zeXqgZeMz4hXc@$rCG(uA7Rw|Pn3E*$jx$D686w`pwjhaW9mo2D#SI(bCiSW)1_hI; zal+9+;$I?k{Y~L(I@s?Gm=r$@U4EObq4=Fpt;7M^LDv{nCCMsk*=FG&5aWYdO}DT! zi#L2LZlf4{%*aB^dYFuF$tLcMAXKZ)+IRw5Ow(~NGj@3UiO=CiqiRM|E~Keo>&*;cIGInn-G-4Nxtt|&KV9~yGngD@;)`8g1&`_Ujq()1o$X~B}HT@Ij>L-RyDGH z4YXVAzAYG)2fLjzprip9&2XMwH*I6f*-*9cgDMSBVp&#FprgqzxnTc;%F)RqZ(lOU zZn9`)!QR_~-fXf-G#Jp9uIZ*-pa0^M{5G3JX3XTDET}LwLXm{4ET^T0h@3X>Thc*} z#MxoEC^I_8xn<7WXAJZYEhv}hFpd{MCTLTElWVO> zJP?hx6Ng&9#BQ4!vm@qI%$yjDGaw-gcdq^6ryz$mT(ClnD;Gha%YQ7=`Jk}>6fQ)# zf=o(FcS8B!5&e)(Lg{bRhdI>QF>p%$jxlllDk#-!p^D3IqS-m}oFU9$AleG*2G!?$ z1z0@b7xK(KI3~S{zTr=0o}(z zymn)}1GIl>j}IsZ;F$fm4gSqNIQH!VUAHFAvp5~Z7~zL}Jy=Yw5@E|#vpQT8IlDh_ zv0I-Au)Zq7pl?;~*s+#NFW2%q=JIObf64WipjDu?Ty(xI;-5r9s<%zsy>DSNm0B+S z2D&(}gik?m+QLj%LGk;x!HwKzH0t6=H?z;|aIWTc+=i7RZvRMbQzG3=O0U6t+p4G? z+|4w7R*EaPfvm#dV^j$UK&CY}USm6u=$p|ToO1=}0-g%#nRhbzRl1;^9`U(5+O_;> z$Mm-->;WxWq|dWo?&~+;cP0hhw0Uzktx57p6L@RT^pN)=$&GCkpbT_y8!02NtP?Cb zfQGv!x$at~jRM?3_={(D*`{fWfLf#>`z69ho&LqN{h)g?M;So$VdKm#cLC>j?m?7Y zbG{`6swVk&?Z?M>N3Y?X#JMTI1u3kmOs8CDw3R^iAP1cWTTq!UM-VzW+_?}MVpQ6B zVtKMIqU;2@$#@;DI6JO8&j@tkpYEV^rl+4)z5aKV;~iYp0qSgMIvh3Xtx+=lH5gW! zAm8(Z6+YZ+k{F@I-#}nRa!0NA!z;qc1VyGqwVFv+yu* znnoSDqSjES9$rgCl@>EZ({5y^Z-E({*+`Px^?15nBd>2Fa%%X^9R>Q2haiv2bH4l~ zxgBn|^uMrE7`HgPWT1D=EX-F0Or! z;SAsNdWw#$znh`RwP<9Acc80)Q+4ZqXK9AOOA?3ry96tV5fHM8JZ{7O#i-(8D96ezz&T@J){b+*-7&H$h{+m&76vOOZHUA343Y!k=PNq~) zxV8r^v(adc;?hB;nGxzV(Uu$6_Z%(HLr$Rrj7MLc%`~!|YI82D|(gl_qIO-=i1iJEbk%ZqK z^}mIdf9uj`bwT7}>ubHe>tJlPPA7Y|1b5IQ1+1Fi82cP(13(|0r`N2=^%MfD6;JW4 zEpS~B5m&~ISOD7tjlmb%H(Z9hybEv>zVXiOEW47T&+@;|g6Eb#=81_t)nLDIuzmhJuMB@q0K4V}=YPA7bI(;ex0zqQ ziMwR`bV_iV%|OQyV9z^U0}PJyaPy6G?0{*|Cd+`Po}rMWIQu5hiP=h23G-iI>0lmt zNb@3b{W9(*M)D%?ZEP{*WUd%1NEJi1u#2h5SALq#Gfk7D>3wEZnLSFA?IRn2qZHK| zZgO^_$VCJ@1AN`a)X__bcJA=+`Mrptu~2f`V&nfO3q1G2{qMMUKplG$d`(8`*}|R4 VPdA5xFFBm2dPMV<UM<{Xa5wov;7^ literal 0 HcmV?d00001 diff --git a/src/main/java/com/fr/plugin/designer/MyActionImpl.java b/src/main/java/com/fr/plugin/designer/MyActionImpl.java new file mode 100644 index 0000000..031eaa6 --- /dev/null +++ b/src/main/java/com/fr/plugin/designer/MyActionImpl.java @@ -0,0 +1,41 @@ +package com.fr.plugin.designer; + +import com.fr.design.actions.UpdateAction; +import com.fr.design.designer.TargetComponent; +import com.fr.design.fun.impl.AbstractRightSelectionHandlerProvider; +import com.fr.design.gui.imenu.UIPopupMenu; +import com.fr.design.mainframe.BaseFormDesigner; +import com.fr.design.mainframe.FormDesigner; +import com.fr.design.selection.SelectableElement; +import com.fr.grid.selection.CellSelection; +import com.fr.grid.selection.FloatSelection; +import com.fr.plugin.transform.ExecuteFunctionRecord; +import com.fr.plugin.transform.FunctionRecorder; + +import java.util.List; + +@FunctionRecorder +public class MyActionImpl extends AbstractRightSelectionHandlerProvider { + + + @Override + @ExecuteFunctionRecord + public void dmlMenu(TargetComponent ePane, UIPopupMenu popupMenu) { + popupMenu.add(new MyCopyAction(ePane).createMenuItem()); + } + + @Override + public boolean accept(SelectableElement selectableElement) { + return selectableElement instanceof CellSelection || selectableElement instanceof FloatSelection; + } + + @Override + public void dmlUpdateActions(BaseFormDesigner formDesigner ,List actions) { + actions.add(new MyCutAction((FormDesigner) formDesigner)); + } + + @Override + public boolean accept(BaseFormDesigner formDesigner) { + return formDesigner instanceof FormDesigner; + } +} \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/designer/MyCopyAction.java b/src/main/java/com/fr/plugin/designer/MyCopyAction.java new file mode 100644 index 0000000..d937a2c --- /dev/null +++ b/src/main/java/com/fr/plugin/designer/MyCopyAction.java @@ -0,0 +1,46 @@ +/* + * Copyright(c) 2001-2010, FineReport Inc, All Rights Reserved. + */ +package com.fr.plugin.designer; + +import com.fr.base.BaseUtils; +import com.fr.design.actions.TemplateComponentAction; +import com.fr.design.designer.TargetComponent; +import com.fr.general.Inter; + +import javax.swing.KeyStroke; +import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; + +import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER; + +/** + * Cut. + */ +public class MyCopyAction extends TemplateComponentAction { + /** + * Constructor + */ + public MyCopyAction(TargetComponent t) { + super(t); + + this.setName(Inter.getLocText("新增插件菜单测试")); + this.setMnemonic('T'); + this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/cut.png")); + this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, DEFAULT_MODIFIER)); + } + + @Override + public boolean executeActionReturnUndoRecordNeeded() { + TargetComponent editPane = getEditingComponent(); + if (editPane == null) { + return false; + } + return editPane.cut(); + } + + @Override + public void actionPerformed(ActionEvent evt) { + System.out.println(111111); + } +} \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/designer/MyCutAction.java b/src/main/java/com/fr/plugin/designer/MyCutAction.java new file mode 100644 index 0000000..579e1bb --- /dev/null +++ b/src/main/java/com/fr/plugin/designer/MyCutAction.java @@ -0,0 +1,40 @@ +package com.fr.plugin.designer; + +import com.fr.base.BaseUtils; +import com.fr.design.actions.UndoableAction; +import com.fr.design.mainframe.FormDesigner; +import com.fr.general.Inter; + +import javax.swing.KeyStroke; +import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; + +import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER; + +/** + * 注意表单和参数面板的右键扩展必须是UndoableAction的子类 + */ +public class MyCutAction extends UndoableAction { + + public MyCutAction(FormDesigner t) { + this.setName(Inter.getLocText("M_Edit-Cut")); + this.setMnemonic('T'); + this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/cut.png")); + this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, DEFAULT_MODIFIER)); + } + + @Override + public void actionPerformed(ActionEvent e) { + System.out.println("3333333"); + } + + @Override + public boolean executeActionReturnUndoRecordNeeded() { + return false; + } + + @Override + public void prepare4Undo() { + + } +} \ No newline at end of file