From 8313a62324918160e767337a2f589e38dec738ea Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Sat, 16 Feb 2019 12:11:54 +0100 Subject: [PATCH] added netlist menu item and dialog --- diylc/diylc-swing/lib/diylc-core.jar | Bin 255782 -> 255782 bytes diylc/diylc-swing/lib/swing-framework.jar | Bin 157096 -> 160134 bytes diylc/diylc-swing/library/main.jar | Bin 597278 -> 597178 bytes .../src/org/diylc/images/IconLoader.java | 2 +- .../diylc-swing/src/org/diylc/images/web.png | Bin 0 -> 907 bytes .../src/org/diylc/swing/ActionFactory.java | 41 ++++++++++++++++++ .../swing/plugins/file/FileMenuPlugin.java | 1 + 7 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 diylc/diylc-swing/src/org/diylc/images/web.png diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 55459f9392658350145479a38f12cc16c3a3e03b..341e1b5391d761d821bd7e0e83b35635186355b9 100644 GIT binary patch delta 4329 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 delta 4329 zcmYjUd0fuv7Jr}Td1Y%MOEMy3>`K-$QA}!5BqVYPHC+2(X1KCkG-GrzB=x?@60J%} zsaGXwrBIYgT5wBt8M_+Iea<<*Kkh$$zi0cN^PJ!F`@Nr{ON^pRjP%`Ig}ReU)j_3N z?G>m$l&|s%v~H7sgRGf3fEODCu#1fa&@l_X+AFAujRMP*+k)lEhlAzMt-;#G`e+hT zh2j4x%itSs0XhAJCBQ6#T?FR^YCjg=LTrHA4rF}QRsg~35z?8Gr#{31=eEDx4w8Bp zGy=35`~}|6hQ$o9pi3;`kH+7q!4B@Z2W_)nNmyOln^cyXISPo!nwz7)`0EtJe-CuV z{Gvg2h#iOg4j6QJ=p9I3G3)@kKMprVG`29u@L0>&kTqyzi{UCScQ@nzeb)LQE(-g-Gx(dL7ooUgTosD+P0+(8gAz^Ao{~h()+O&lyY)gn=GR=r z)u(((KMVOm@tKtX{+B+1>h>(zMVb$@zkvDR3T^yzPInYB%I}LfvTzz+6Tjjd6rEJ^ zC;F{!*WnOG<#a9bD{?WuxB3;v|5dvK&PF3iHDLph)b?f_kvukI21q`bGgIiR>pGClfyTP!gW1I{K+J8J7IQLe z**+xS+q1th$N4+fiXKNNmXD;fi_)~;47MM05@s?d485PtN{|$IvUp(tZ$X+xVBP|u zQq9%eGGM)Q!3)@0%usu?!&t0c!X~5Vo-b=fPt|f3j%3S9HeCU_#qdCgnW4Aw!GiUVN4QI2_ zGa`Zw#qxPE%nZq=}}_9OVHS6fir~nQ@KzAt}1f?69h1EpzAy zn{a!?a_K;izYcZrlAG|*+?pvj;dWiL*G+uN{)vTAFIYB`<*!*cBwOFI`A8~0usKME zwXp3-&U|4%ATeURKa$aEJ`}F5Zc#fv5l6 zcrQK_LrWKOQzY9K^Gck@!-v-*8NG}fVaQbPlE?m{pdFCJ08x!q0sF-!HF#K{a7QvHSS$t|&4my# zK~An|4iS?9M`?r=psz-Z2Mp7QselhPViM$=YsD0dYlSP=Nm^kG_Dik!9&DN4M>9KA zo|=mKXtbfCKNy*z!Va)iLEEEbZ#_yKa*hfYh#Q0nH&9v>CMS}3GE7Vae_fdH1RQrv zcmoD2`2Luf2e#XB;SLynob1nv?RrAY1^?+2r2p!Km;v^rlVUpHzLWAK67QZQeXDS> z4(#x7u>!EuDKQ(+TfyX0Vm{dVr>UR!X^JPG79Qa55J7!BBIG%w9T`Eoe?~s zM!<|n%I^|IIzCY}Pf`@tg+x=ido+blN7IlyLem-Z#Ot4cFR434U z9tuV#P`{4}Vh-d@Po(39Bnl_!Q=cfj04JOyzyCQg4f0CP$+*OxNi_GGB+|)FqP3Zv zm-EW_mhh`76-XEpYzQ$$HJ_9ny zuFjx-BQiwOCxlaAX4VrWI4Vpjf20f=&H|X5@o)tn-=_X!%gDdAjOygR`)D4P3HaYtV^~hX zx#bi*Sx(KH%c;4|9rEwKLzm#@9TM$bK|}dekUyb<{4EufKedvUcDRxb-%v>p!MciG z=8!7!59t3^v1i|7f7s diff --git a/diylc/diylc-swing/lib/swing-framework.jar b/diylc/diylc-swing/lib/swing-framework.jar index beb0ad78406f92c8ec2a1a1d4f9f226510e8d0d8..1cdd5d595621b61f8a87b08e88883564d2b049f6 100644 GIT binary patch delta 7863 zcmZWu2{=_-8$NrP$BucPlgK>J^Gt?JAwy9z6dENmBpQ$$*@kXW5=oQGA-91HMd}*r zCn;`qE0vojDe5(=}&^zk4e+aF>V&f&|ENc^t~T5M&B4vqvhY_V2(}0 zfEi+~fF=4)2iEA@1yd^y1e{V#l`v(K!);z;iob+Y!}DbT2Q7hxn<%p(l|>XFqnK@y zn;#+`p}F>r@_<6AXQ2s%%F)h?@ZuK6fU}{EszxfO1Ze;%HFw+5DW#^(j)Hk;tB}ExbmPh5C(UI^gvaVT2h#93$&rYLiz`_|vb!gV-0`52$P@4D zBvR?yLLwon>q&$!_%ms+hpr=MDR$#L(eH-1=pHs?n8YuThS~OQENF^tpPk*G%|@YY z=b=!Hh$(J(lysid;!pOqCE?uFH?$c37%Z%=_PNi2j*gB&gekieq!6$dg@E2$_g&AfUR0mf&( zqpS_awbML&MB3TZ2LbaKh0>0vNnrA6zUz~=*+;L9i;r5WqZtvmcI(zWpV7@iI#de} z+hWbpWxl5?pL_URad8t%vW~HFF39v1)>QO+{9B$&h_uu$qm{GjOM{lmexX=$>pZq+ zt#a&fHEX&jaYEwW@bx_lU%18vPMQcO-YhM*G=KCyQEF$(qt3FNvpL(B%!rHTx13#; zcFDl?>Wd)lbNYwB=vW;ntQ@-fa{FtoPg#{EvOQH_)7M^&j?Bw3oAp}|�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 delta 5110 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 delta 14271 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 XR9<*z6vPE*ic&erFDj6Y67K&2>X`?; diff --git a/diylc/diylc-swing/src/org/diylc/images/IconLoader.java b/diylc/diylc-swing/src/org/diylc/images/IconLoader.java index d79fc0f1..80614159 100644 --- a/diylc/diylc-swing/src/org/diylc/images/IconLoader.java +++ b/diylc/diylc-swing/src/org/diylc/images/IconLoader.java @@ -63,7 +63,7 @@ public enum IconLoader { "component_add.png"), History("history.png"), DocumentPlain("document_plain.png"), FitToSize("fit_to_size.png"), DocumentsGear( "documents_gear.png"), SplashResistor("splash_resistor.png"), SplashCeramic("splash_ceramic.png"), SplashElectrolytic( "splash_electrolytic.png"), SplashFilm("splash_film.png"), Splash("splash.png"), Help("help2.png"), ScrollInformation("scroll_information.png"), - Node("node.png"); + Node("node.png"), Web("web.png"); protected String name; diff --git a/diylc/diylc-swing/src/org/diylc/images/web.png b/diylc/diylc-swing/src/org/diylc/images/web.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac51a3793db16d9ac05bf064a7b85a115a811ea GIT binary patch literal 907 zcmV;619bd}P)WdKBJATco@Piu4_GB7YTATcvKGC4XlHy|r8F)%Qm<>*}i000McNliru z)&&<0GzTCHK*In4010qNS#tmY3lRVS3lRZ-WM7d0000DMK}|sb0I`n?{9y$E00QGl zL_t(|+KrPcV;Hpg_f(FLLgsRr*u-WWQ zo6YuMWa#S{{FtVrly8EK0bbv!{N}CO69}4 zy1J(bs|O`V3VM5cUv6)2Gs?=!GCUqn+|kj&6^TU5bUJ-0o6UYkGjCZemI#x{@ zy`P+%G$HH&cGEt|ko5CLu zhTM-*sq~3VCZnPs5-gM&vp;NTXpkq9$xL;1wHV3127|#>_y_aHm;oseVX;`=*4EbN z7#p>zsp+!M=L^lw&c4!UG^TJk9N2;3od>=0I^G6cCFg0#dS)9mH~b|35|~ hEFwSKl2Zztuz##*NDp?(R^k8v002ovPDHLkV1l_LnSTHP literal 0 HcmV?d00001 diff --git a/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java b/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java index ad034d44..0da03b78 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java +++ b/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java @@ -17,6 +17,8 @@ */ package org.diylc.swing; +import java.awt.Dimension; +import java.awt.Font; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.ClipboardOwner; @@ -39,6 +41,7 @@ import java.util.Set; import java.util.TreeMap; import javax.swing.AbstractAction; +import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.KeyStroke; @@ -61,6 +64,8 @@ import org.diylc.core.measures.Nudge; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; import org.diylc.images.IconLoader; +import org.diylc.netlist.Netlist; +import org.diylc.netlist.SwitchSetup; import org.diylc.presenter.Presenter; import org.diylc.swing.gui.DialogFactory; import org.diylc.swing.gui.editor.PropertyEditorDialog; @@ -71,6 +76,7 @@ import org.diylc.swing.plugins.file.FileFilterEnum; import org.diylc.swingframework.ButtonDialog; import org.diylc.swingframework.CheckBoxListDialog; import org.diylc.swingframework.IDrawingProvider; +import org.diylc.swingframework.TextDialog; import org.diylc.swingframework.export.DrawingExporter; import org.diylc.utils.BomEntry; @@ -246,6 +252,10 @@ public class ActionFactory { public RenumberAction createRenumberAction(IPlugInPort plugInPort, boolean xAxisFirst) { return new RenumberAction(plugInPort, xAxisFirst); } + + public GenerateNetlistAction createGenerateNetlistAction(IPlugInPort plugInPort, ISwingUI swingUI) { + return new GenerateNetlistAction(plugInPort, swingUI); + } // File menu actions. @@ -1632,4 +1642,35 @@ public class ActionFactory { plugInPort.renumberSelectedComponents(xAxisFirst); } } + + public static class GenerateNetlistAction extends AbstractAction { + + private static final long serialVersionUID = 1L; + + private IPlugInPort plugInPort; + private ISwingUI swingUI; + + public GenerateNetlistAction(IPlugInPort plugInPort, ISwingUI swingUI) { + super(); + this.plugInPort = plugInPort; + this.swingUI = swingUI; + putValue(AbstractAction.NAME, "Create Netlist"); + putValue(AbstractAction.SMALL_ICON, IconLoader.Web.getIcon()); + } + + @Override + public void actionPerformed(ActionEvent e) { + Map> g = plugInPort.extractNetlists(); + if (g == null) + return; + StringBuilder sb = new StringBuilder("

"); + for (Map.Entry> en : g.entrySet()) { + sb.append("").append(en.getValue()).append("
"); + sb.append(en.getKey()).append("

"); + } + sb.append("

"); + new TextDialog(swingUI.getOwnerFrame().getRootPane(), sb.toString(), "Netlist", new Dimension(600, 480)).setVisible(true); + } + + } } 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 925af8f2..fa7e6ec3 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 @@ -86,6 +86,7 @@ public class FileMenuPlugin implements IPlugIn, IDynamicSubmenuHandler { actionFactory.createPrintAction(traceMaskDrawingProvider, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() | KeyEvent.SHIFT_DOWN_MASK), TRACE_MASK_TITLE); swingUI.injectMenuAction(actionFactory.createBomAction(plugInPort), FILE_TITLE); + swingUI.injectMenuAction(actionFactory.createGenerateNetlistAction(plugInPort, swingUI), FILE_TITLE); swingUI.injectMenuAction(null, FILE_TITLE); swingUI.injectSubmenu(INTEGRATION_TITLE, IconLoader.Node.getIcon(), FILE_TITLE); swingUI.injectMenuAction(actionFactory.createImportBlocksAction(swingUI, plugInPort), INTEGRATION_TITLE);