added netlist menu item and dialog

This commit is contained in:
Branislav Stojkovic
2019-02-16 12:11:54 +01:00
parent c1d718a0f9
commit 8313a62324
7 changed files with 43 additions and 1 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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;
Binary file not shown.

After

Width:  |  Height:  |  Size: 907 B

@@ -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<Netlist, List<SwitchSetup>> g = plugInPort.extractNetlists();
if (g == null)
return;
StringBuilder sb = new StringBuilder("<html><p style=\"font-family: " + new JLabel().getFont().getName() + "; font-size: 9px\">");
for (Map.Entry<Netlist, List<SwitchSetup>> en : g.entrySet()) {
sb.append("<b>").append(en.getValue()).append("</b><br>");
sb.append(en.getKey()).append("<br><br>");
}
sb.append("</p></html>");
new TextDialog(swingUI.getOwnerFrame().getRootPane(), sb.toString(), "Netlist", new Dimension(600, 480)).setVisible(true);
}
}
}
@@ -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);