From ca78cd030b1851fdf4d9a07849e0d5a4329fc6e1 Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Sat, 9 Feb 2019 17:44:15 +0100 Subject: [PATCH] add check list dialogs when exporting blocks and variants --- diylc/diylc-library/lib/diylc-core.jar | Bin 250015 -> 250015 bytes diylc/diylc-swing/DIYLCStarter.launch | 2 +- diylc/diylc-swing/lib/diylc-core.jar | Bin 250015 -> 250015 bytes diylc/diylc-swing/lib/swing-framework.jar | Bin 151904 -> 156973 bytes diylc/diylc-swing/library/main.jar | Bin 590866 -> 592193 bytes .../src/org/diylc/swing/ActionFactory.java | 67 ++++++++++++++++-- .../swing/plugins/file/FileMenuPlugin.java | 2 +- diylc/diylc-swing/update.xml | 6 +- 8 files changed, 68 insertions(+), 9 deletions(-) diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index ace0a931999a7ef57a9fe4f5d4b1d2768ac034ed..266505c9dad3f740b6d5f22bcbfd77a71dc079aa 100644 GIT binary patch delta 4429 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 diff --git a/diylc/diylc-swing/DIYLCStarter.launch b/diylc/diylc-swing/DIYLCStarter.launch index 38c8ab51..aff8a7cb 100644 --- a/diylc/diylc-swing/DIYLCStarter.launch +++ b/diylc/diylc-swing/DIYLCStarter.launch @@ -11,5 +11,5 @@ - + diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index ace0a931999a7ef57a9fe4f5d4b1d2768ac034ed..266505c9dad3f740b6d5f22bcbfd77a71dc079aa 100644 GIT binary patch delta 4429 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 diff --git a/diylc/diylc-swing/lib/swing-framework.jar b/diylc/diylc-swing/lib/swing-framework.jar index 0f3769b431a42b0f61a831749a06d13c6e2d5108..e3c7b6a5d0524e8cc81ba4c61f59a7861cd5fc70 100644 GIT binary patch delta 10723 zcmZ`;2V716`@iS3_g>ml-O?`YQna@ysR#|y4ryJHB<)LwQrb}>N*N7_HcI#wAr&b^ zNmR=JbI!Tw^80(auk(1u`x&3-GYuCpRdq43Ioi8$K|0tMf{EnY?F`h|WC+&Bq{grj_B{lf zU|%bUh!mK>jKWl*P`MLFyuUzF|KJf3PDhx5972PIQ4>qU52J`R*>sc4>}bedDeJFE zzyv}S4Y@B(9C;uM^VYO*5^=35ZZb|J@a1;|JNeyfLse2wFdm0aYSD4EQTbo?pb;@qbEBEBNinuJV!p=>`v;B1OLghBOBRPkh zj<0gwUNCuVX3jp`v#s)Flu2iZRz-A6j=MO#^zoh`k(5>@0U+Kt_*(C5a=nje`|fn@ufEo zx80BLAGz5uRXM{J`);BZ?&>0`9Q!I^Em$qrfB(F9(T<&h#sh+PGe)u}?zin5Dp(?g z)l5r!2(Jz8Hs{mgsSg}#@r(~YmzkOxeLZ+5U8T0z_WNyS1|zil2e)XyD_B<2ZuscZ z29KWmkbgVERgG3z-@&-jZcob9w4!;oGj&^~LOK-cEQp`o9_qh;xXY8xMuoI#%Dm~0 zR>S4O?Eyj$8Q_;GkJIlw=?F}JlJw=u=Dxti3)B1QdKyRlnh!9aHY&Q+N5c_m=iemK zA;(f{DPNoxE#cnnuz8n>*9+OV-`5wYc&GjBU>!eh-EeM-sLq&Olvmv%9DO(R1xMB` zhrk6k8PA+6Lvs_JxVwEg5+{rfdMCG_^rU%0P+QuQ4<8Tn99 zmnZFb(X*V>Q0IqeVyw&q$DXH!C5p3b_TgHNZ9*yUb9~+2&#iWt;GH4S{F?8K=+a|f zVe(RZ3L+3LfeEM!mYQJl6G)JH4q_7$osCuzK7o|^nB^J3vyM0MRcG8Ta**BDt<4or z_f&QgJ$G}_*>KUAN)DW`RE}CZm@-jI_8iEoT{zd^Sk3J9o#uzr$Y5ty$rS-97QgYc zhU0nTd3oEKNk3?-Q!O@KzrHp8$TfqZZc_hOb+MCIT87VtY4Nh!RPBuGGP^e#7ujpb zpBdNbcxua5dG`}yH2S+j4)`d26>GI#`m}6*tR+a!(7E#3E~S_344#=yqn*Dy;DRF$1J}7%S!+YG=LrtlNTadKN z=gYaVYWuafO9PyWj)n9j54`($h@Hvk-oY+*k}ZQHOVbg$r@GcHqv3AbdT#S2+f*wA zImMX5l27uB%ufXrt0@f=w{PyQW%CrDbXT}*M()pUaXo32D(ks%NKJkDd|`&SOmw5* zOT~_%?WfMmnQYn^Yp1nu$(^9lRC zif`;U;a%o;hb2#CpBSa%;*;Smk(ZE4vMzL&FYu_?9LxBTIX*+jiupS^rk`Ong(L0Z zvV42^BmNuT551LK%=_dq_aQ%cZv1laD`=?Yx!hf~i&F8=iD#rq#52XrQx!=gV!}MO zulzJS{geA>%==TsDk2lwQ+#<#_r}+evBh5ZhhOKa{Zu<+{Q#~A;)!ux}oqMbQ-@vKGv|D8B;Lec;Dd8C!hNLX# zGTY~~<#bsKLg5Qv;7n5O#w>V^ZhyATn-^>omxP4*)v9#ME!l)0YY%QxzZ1wLb4T4{ z=Z0sp6V|RK-OuVG`mQfT)pL^;N?n}(i#9^>??__lhaZwEq;%~j z-yZTs_#EwmH@V;K=H{Y{Z(Gyat#eO3&&zXPSCEshZBy-Cux5sCViO2)YL(r^YtZ+Z zcMIDWH^&Sf!TI*+?u9VqXvE{Es<&kYt`vAPb+5{QeIt?Y;vTown~4U+0&cFKom&-o zH5=N5b1Q=@-5A1P-jM+^D(ZUgg29UwQ0bs+)Ien1}lH@9Wxs{7BmIo-nuD zYM&w49gs!e^Bx1krmyu0O4a0U){6i9D@SV0Q*vHvvGP* z)EVxAHYW>subKX9_Na)-5F;@^&qTqoTekW3rp3E7iscxZOk|pirosiok1n(E()1La zSawg^eH-(C{%>rO$(M6OPCgCQT%xC*V253-;&+21)Br6xosarV z^lL78I)D|}u>W%4e^sT)eCwQ=KGex87Dzb97FatwYjOpe#yksZzgqo5>(*9g$ypXjJqQJ>h@U0$oI77ozef6AO3dq!NYB@NCdYQ8@?^PeD8=maIVGrLTH>bLg_3FXv~I7NXf)u*;e; zQF_%Bx}kcz@|LCBb3^IZ{$t&1u|6t@Gbd<3HBZ?=YEKHkNAUBSn=RSn^|YNXOT7l# z4k-nGw*re58qI63cV<)!ToP^CG0phq2p6?F(d1Nr6BfNNOi_D7>w%(Xw+XROFw;e@N(=_D*rHWFn zRVwVVbXD@JzJFbrwldo5zxwZWYi7reg(G*pcb~qyG4ZR-)ukJ5naj4VtDb5Zw9^Of z(=6~|Q!xoE{~7KbOw!wSr~lnk+L#Tkv{R}|DG9dGB8fxCV=7&BY!l%|9>`ZmZe3%5 zSeW9;^n#1&k%dw^0-vk9M8~(S>3Jvc@$z>3wUhJ*5i1=_d?u`h`P0E_C5zlHV>FH7}m6>JT2>Z zS-M4-X@(H~=AMz;yvUWMF!5;(nXX+~W0p+E!V+g)&%~tfg^Fz3JNYx(1F!O&-oVu# zW_RbckywXmzO+@%`s}j4ABSo!jZ^$@gzuW;dA#7*{5nTsdzQooLq@$sI;#av-O1Hl zY&AEQJ_ugPXN{eoOzLCdOWSN~w zDPfZY%zU`?@G5T2qysH1v?_fPwN86$>pbryD|Rct*t`Bi1HyhFR9{t33R;B$YDU6ljGptPC zd)SpYV54xI_t4?)u!T*79+~}@6(S7@e8C;&8&$bY_#QEvmnMptuwCl%wblNQR}gwU zdh@Z+<%Hu*gKm!=XW!o?`!Yc~HwAWGx4A&CSU=I1{k?r#brs8W929E4-Lt1o{gUsE z)|@j>Y%&*l;AF!IXEo{S*I}fQoBPd9hT_*+)kP!OGc+` zxA~}GbAWcwiFKs|T0rc)u;dB$~f05vNYR+-7;=L5> z@<>l-$k*d39$e1KM?>uy&xf9Hxof+I+^6u8bZ}q(^Uc@2&+fBwwMpmjCwuwuij3yS z3`6&;cg)=_37p{1T+2PrJjbkllf<~|QCeV*SEK)@J37reMV-Dh?9x_$R zkG*1Kg}w3@pPqI-C?}pYKQ`p&*_!fpa82Iu9xXcUOD2j(X`D?`7fyBWj|vN&s55+B zHNN|^#Vx)eN7W5`vi3icWERnmZ-cD++%M4 z$agx(#}H~c8FPL_y661$RH2}3*;Ub^7P(##>)(lw@?0$+*%(tc5*|}HViQw35)fnN zwP~oOp4il?5a01r$0#4MJy)M8@b&3sl9DRo-?!mvowSCr?8Ed&jt0uj4KzcN7R?p< zX+}AkL7k;pUmC97&38I_!S4B%Z!X#6M^t3|CQa|9mv{9%3L4$d?3qPAW*VR`U-B`` z(PnX*b&lXfGJl-s7`gLfh&eo=Ud^2dd#w+4drgG6nWsW?NDmDiZ?e2O~ zsex@cui8PebYlBz+dS4AjaQvhTt28W37(N9`X5vf=)L86FfSo_)qHJVpI@&{^u241 z`%VbVbNj#k_`ytiajRr+mlM;o@1sFq7lu-PWIOYlCj>HBNXGHOaUOrE^)gvMn#lv#6L@JxLnX8hIen<>$nezhS#VWTW3B%k#Nc*zXVA`B`P_ z1`pEO7F5~4zfj-w#sqphn>DCjY`K}C1F^XM{o4tqkJl&yD zmpT8DcEFq`Br;p{IM`vdQk=%5AG(9l165>5g31weI3) z;aTYwGwTM^c~~VwxXWh>m&?**44V!uJQlgEG7-g}OCMvAtN*r7B1GV$=>0GLN-e>T z9E-voPu_|<@@3|g9n?gIM^e%sFA1G#=ZBcOn^UT3_Htw;n)yq~N@hK>GL6!iYV9+9 z;$U|E-fr$OKR8cpUz1P5sbT@YknD`obF}n~3ulq6j&Axva_#2UZ*GtDN`__omXq>r zK3}zP$?6+>G|s+y-okNOoN9Tmc`v#e#vWz{7sJdX!7G&y54o^i95Go9ud3N1p@={G z93zV1?>Og`mKd=2pYxjHIHyb7ng-(t=sDn=-3FXEC&suL=NOsZz&Q&Ws&Gz)sngC9YzT}!pWm|7$jB&WVXOp#IyrPgx@O~`89fGg z<`p9y`e;Zl8Jk7FHMwu@(Xa!;zT)2IsZ}6LJ{quB%OUr*VXm6e2^ktptLFoV165c3 zycWWUJ=5(tNAoLquR}%N-+XXU=l6pU8w#15dQ(jbJQ-M>l7N(JVi(kLHbVpLtQ=rF zW9-RAZ3qkCmE8_+CBU|a5Va0S{FDjAQRA_shhv^uj>3p*{7@lA)Zc`lT%2;Ff$H%b zu1RxRX@MM6Y0$$kKwzjhV}S4;tIuGD1h9(LSFl1dIMv4vapKe%C&Y-2PyHtW=qJvb zUIlgGRFf!VkBw11hdA^O8nsjY`p4ol%Y_po$A?jArahmjXrb>qsreK zLfF{VPnkmWxaqeIkTu>n-fzNLeAx(u?^4L20BAL0q6@LtCs;%K+0cQjUvh=M;}Lw{ z0^O#?c(=TuF&G>1Tw}Rg0kj0d5@=C#avv;%++GiJAY0eN{PpwR&^}y0)EA-zurC18 z!XvH{pxG4qO{33)AX=zv$``2b^*d8OwrC~>m0H(qSpA4*q{mV)Qw#EoxFN|D~p_q-y zz^)kENEY6N5!te^8%9k3B5dX0%~(VHd95c9)*v-A!JjIr9-V%nfp1BCtuzWK^1lJ`Hz?$_9VMzMg=jTfI?7LMAQ)$#3~|ScI?`JU@CqA4Xj0F z)~14lD!?LS6A7L_1^l!95(pYp>YvqqsS6?Qt6^4bsCKW0g`pithypB{Ef2FJ)vGB9 z2hel+YGscFbYU)% z#T#ht0k=&vDlJzhR7(+ICc<)D+ z9s^LGt$1+`jR^QMpz?Lp9anW%ge5S5SVaI3=ZSI^kXA*Q8v}@3ihXq%7{Z`}np6Oz zerQ)9oJ#O&%wA6k*pK<6%q-6}Sjnk)aa zt|Y!D0=HRBR@ljoOxRKITGoKJAR^u>ut=6CFT$n_^JCGTZo4om0VbER0N59(qNR(& zfq2yaclQTvzs__YSo{D#>Mq%rgjym^%CHpX<8kVLAvr*+4g9Dpl71Z3B)>c${7;5m zIxU(DU>qvJI1qv1uRkU6(aGfLXc;6?1uP5b0-2`*O4XPOm_%d?=t<0{iJT?9H`p^j zf<2Sk{B9<>FhQ0qdWZorP^DDIMioE=W&?rJKY_4Z)Uqi9^CprL91wp+0lp>i*G>Zi z8DvZq=EeeBvcJH!n78$>vxuchVcPo zO5JtUWvG@Snd1}>!lq7%S416nsy>fOh-7wz9@z~f7|?h_%$;bEa~}8Kt3^pIHY(NX zupAccAc_&vhz&qGO&dTMEn*Phj4g^WKcdX?WlVeN z11DmzmZEL576@2ir^9e#zO~44VZpQ)qIpgg8Wvl#Au?LlP`+ZK?iOGKP9R}OPGI~B0qFs zF3csTE?7?_5N`um1cc6xY}N%shQ<;A1aKWIkdN3!3 zDxn8ZBRKy^{PZY+M5B^vu3r*fsy;>&qfK2RxqzfX|49tYC`#$s5fOa~o~k~;)8P9h zVL*cQ!3K%~{kebqePZ}1_(%PoJ}iKB^eYr7Km?N@>|BrlqHI9fir@dtE$##1bc5m5 zp{n&!u@(9!fj$ORX#k)uN~{nq{1R~)0#UQnZ;>cf{^$WrZQty+La>lFfr(&7<*Z8q zH%pU-S&-|7up%~TlD0(o2LkKR=ij}S00)GOEo5^oBtlZQ1K|D1d7 zn*cOMI}}YCz0q+XLHZEGKaqaxGkSLk6!Rt6W~o8j99G!gae#TSf*PEBt6d8QU=%E+ z)cTz+xW0rL#E*PjN7)R1tOH>@a$NysV+spkP=BtSe;+l)J$~!6|2ezJ)EeC?1o^Xq z{HeF0f!!J4i1@$i9AAs7*Ad2qLzbC-536Xgc$TlCCT2qZ< zb_i;QUqD#bgB)YSQHDBt@x@!|5X!ZU#JLaG!(v#2eMY&Cu_#v!G1@>mmOWl}qb&nz zm4Ke1-p-PaqN>u!t8j?(pRB0v%~avV9>>kldo%*>(TvEv9AzWCaQfvaIvvgcf5ucs z9w$~9H5`QakPvgqFp|tc*auQq$UDqoJ}jeQRCF=zw@4V{8d(7D{U($vj5u~c^yrmb z2@_SKqRlNUM3t8zUgU*5#TTn3kQ>}tAy2mgFA4?KU=!MINl^+$m6GmKD~TYTmXuX# z7?sbo{VmtCqR5@BfZPpi^uOZ+PL#3uZlj|5C)6T#gw>idPbIB^9D4R!&V%f=rbHEu zihex*En-2MfECv5E_DOCw4me};83hhRrbnBTpxQUkg%aF!&zZFE*FBfYXHXsYJHli z75WK4AB#HI2Dtt{vqI$Y8Vvhq8%k(DQMu>W6>{(-f!~6o94`gMfiBMgbDG+f`uqz0 z>R4Kmna<-Nx+Dj185Vh07G`L5LU21 zZykS6S!KH4`uJVN-5#Kv;6}Mp$QgUe?IF>xIC&m4`U_BX>N$UlA5~RBmhCC4+7Ufj zTl7ft5DX5rD!mY@YKlcP$QfYy7yxeh2XIIP2Q+4Z8IVo~%1qnMWM^FgX0#Z`-`5vd z9MxAwq#Y^UQB8>O=mI6Z1BQV59{ocORh37KonSh|lMiM@(o`rzdd3l?EkIl$A9bXZ ad;t~BDE}7muqP4{3AW%8)vXTP5dIJIEXSSz delta 5602 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 U@G&AuRq$^rd_CTBfyku)1GijAm;e9( diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index db0358b884a170f355d6ee716151fe199500f5cd..c177d9e9ec68cad06ecadbe47c72ed8d2ec52f2d 100644 GIT binary patch delta 17212 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 typeMap = new HashMap(); - public ExportVariantsAction(ISwingUI swingUI) { + public ExportVariantsAction(ISwingUI swingUI, IPlugInPort plugInPort) { super(); this.swingUI = swingUI; + this.plugInPort = plugInPort; putValue(AbstractAction.NAME, "Export Variants"); + + Map> componentTypes = plugInPort.getComponentTypes(); + for (Map.Entry> entry : componentTypes.entrySet()) + for (ComponentType type : entry.getValue()) + typeMap.put(type.getInstanceClass().getCanonicalName(), type); } @SuppressWarnings("unchecked") @@ -706,8 +718,33 @@ public class ActionFactory { swingUI.showMessage("No variants found to export.", "Error", IView.ERROR_MESSAGE); return; } + + List types = new ArrayList(); + for (String className : variantMap.keySet()) + types.add(typeMap.get(className)); + + CheckBoxListDialog dialog = new CheckBoxListDialog(swingUI.getOwnerFrame(), "Export Variants", types.toArray()); + + dialog.setVisible(true); + + if (dialog.getSelectedButtonCaption() != "OK") + return; + + Object[] selected = dialog.getSelectedOptions(); + + if (selected.length == 0) { + swingUI.showMessage("No building blocks selected for export.", "Error", IView.ERROR_MESSAGE); + return; + } + + Map> selectedVariants = new HashMap>(); + for (Object key : selected) { + ComponentType type = (ComponentType) key; + String clazz = type.getInstanceClass().getCanonicalName(); + selectedVariants.put(clazz, variantMap.get(clazz)); + } - final VariantPackage variantPkg = new VariantPackage(variantMap, System.getProperty("user.name")); + final VariantPackage variantPkg = new VariantPackage(selectedVariants, System.getProperty("user.name")); File initialFile = new File(variantPkg.getOwner() == null ? "variants.xml" : ("variants by " @@ -769,7 +806,6 @@ public class ActionFactory { @Override public void actionPerformed(ActionEvent e) { LOG.info("ImportVariantsAction triggered"); - final File file = DialogFactory.getInstance().showOpenDialog(FileFilterEnum.XML.getFilter(), @@ -821,8 +857,27 @@ public class ActionFactory { swingUI.showMessage("No building blocks found to export.", "Error", IView.ERROR_MESSAGE); return; } + + CheckBoxListDialog dialog = new CheckBoxListDialog(swingUI.getOwnerFrame(), "Export Building Blocks", blocks.keySet().toArray(new String[0])); + + dialog.setVisible(true); + + if (dialog.getSelectedButtonCaption() != "OK") + return; + + Object[] selected = dialog.getSelectedOptions(); + + if (selected.length == 0) { + swingUI.showMessage("No building blocks selected for export.", "Error", IView.ERROR_MESSAGE); + return; + } + + Map>> selectedBlocks = new HashMap>>(); + for (Object key : selected) { + selectedBlocks.put(key.toString(), blocks.get(key)); + } - final BuildingBlockPackage variantPkg = new BuildingBlockPackage(blocks, System.getProperty("user.name")); + final BuildingBlockPackage variantPkg = new BuildingBlockPackage(selectedBlocks, System.getProperty("user.name")); File initialFile = new File(variantPkg.getOwner() == null ? "building blocks.xml" : ("building blocks by " diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/file/FileMenuPlugin.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/file/FileMenuPlugin.java index eae1b77d..925af8f2 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/file/FileMenuPlugin.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/file/FileMenuPlugin.java @@ -92,7 +92,7 @@ public class FileMenuPlugin implements IPlugIn, IDynamicSubmenuHandler { swingUI.injectMenuAction(actionFactory.createExportBlocksAction(swingUI), INTEGRATION_TITLE); swingUI.injectMenuAction(null, INTEGRATION_TITLE); swingUI.injectMenuAction(actionFactory.createImportVariantsAction(swingUI, plugInPort), INTEGRATION_TITLE); - swingUI.injectMenuAction(actionFactory.createExportVariantsAction(swingUI), INTEGRATION_TITLE); + swingUI.injectMenuAction(actionFactory.createExportVariantsAction(swingUI, plugInPort), INTEGRATION_TITLE); swingUI.injectMenuAction(null, FILE_TITLE); swingUI.injectMenuAction(actionFactory.createExitAction(plugInPort), FILE_TITLE); } diff --git a/diylc/diylc-swing/update.xml b/diylc/diylc-swing/update.xml index 770c0486..e71e1790 100644 --- a/diylc/diylc-swing/update.xml +++ b/diylc/diylc-swing/update.xml @@ -2413,7 +2413,11 @@ NEW_FEATURE Add switched type to "Open 1/4" Jack" component - + + + NEW_FEATURE + Selectable coordinate origin point for all perforated boards + IMPROVEMENT Vast improvement of rendering performance and memory management, especially with large layouts