diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 55459f93..341e1b53 100644 Binary files a/diylc/diylc-swing/lib/diylc-core.jar and b/diylc/diylc-swing/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/lib/swing-framework.jar b/diylc/diylc-swing/lib/swing-framework.jar index beb0ad78..1cdd5d59 100644 Binary files a/diylc/diylc-swing/lib/swing-framework.jar and b/diylc/diylc-swing/lib/swing-framework.jar differ diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 447ceed8..b0bb6592 100644 Binary files a/diylc/diylc-swing/library/main.jar and b/diylc/diylc-swing/library/main.jar differ 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 00000000..8ac51a37 Binary files /dev/null and b/diylc/diylc-swing/src/org/diylc/images/web.png differ 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);