improved netlist display

minor component updates
This commit is contained in:
Branislav Stojkovic
2019-02-16 20:12:44 +01:00
parent 2091b8a03d
commit 3e67515f69
14 changed files with 131 additions and 54 deletions
@@ -18,7 +18,6 @@
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;
@@ -66,7 +65,6 @@ import org.diylc.core.measures.SizeUnit;
import org.diylc.images.IconLoader;
import org.diylc.netlist.Group;
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;
@@ -77,12 +75,10 @@ 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.swingframework.text.TextDialog;
import org.diylc.utils.BomEntry;
import sun.java2d.pipe.hw.ExtendedBufferCapabilities.VSyncType;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
@@ -709,14 +705,12 @@ public class ActionFactory {
private static final long serialVersionUID = 1L;
private ISwingUI swingUI;
private IPlugInPort plugInPort;
private Map<String, ComponentType> typeMap = new TreeMap<String, ComponentType>(String.CASE_INSENSITIVE_ORDER);
public ExportVariantsAction(ISwingUI swingUI, IPlugInPort plugInPort) {
super();
this.swingUI = swingUI;
this.plugInPort = plugInPort;
putValue(AbstractAction.NAME, "Export Variants");
Map<String, List<ComponentType>> componentTypes = plugInPort.getComponentTypes();
@@ -1657,24 +1651,34 @@ public class ActionFactory {
super();
this.plugInPort = plugInPort;
this.swingUI = swingUI;
putValue(AbstractAction.NAME, "Create Netlist");
putValue(AbstractAction.NAME, "Create Netlist (beta)");
putValue(AbstractAction.SMALL_ICON, IconLoader.Web.getIcon());
}
@Override
public void actionPerformed(ActionEvent e) {
Map<Netlist, List<SwitchSetup>> g = plugInPort.extractNetlists();
if (g == null)
List<Netlist> res = plugInPort.extractNetlists();
if (res == null) {
swingUI.showMessage("The generated netlist is empty, nothing to show.", "Netlist", ISwingUI.INFORMATION_MESSAGE);
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>");
for (Group v : en.getKey().getGroups()) {
sb.append(v).append("<br>");
}
sb.append("<br>");
}
sb.append("</p></html>");
StringBuilder sb = new StringBuilder("<html>");
for (Netlist netlist : res) {
sb.append("<p style=\"font-family: " + new JLabel().getFont().getName() + "; font-size: 9px\"><b>Switch configuration: ").append(netlist.getSwitchSetup()).append("</b><br><br>Connected node groups:<br>");
for (Group v : netlist.getSortedGroups()) {
// boolean first = true;
// for (Node n : v.getSortedNodes()) {
// if (!first)
// sb.append(" &lt;-&gt; ");
// first = false;
//
// }
sb.append("&nbsp;&nbsp;").append(v.getSortedNodes()).append("<br>");
}
sb.append("</p><br><hr>");
}
sb.append("</html>");
new TextDialog(swingUI.getOwnerFrame().getRootPane(), sb.toString(), "Netlist", new Dimension(600, 480)).setVisible(true);
}
@@ -47,7 +47,8 @@ public class FileMenuPlugin implements IPlugIn, IDynamicSubmenuHandler {
private static final String FILE_TITLE = "File";
private static final String TRACE_MASK_TITLE = "Trace Mask";
private static final String INTEGRATION_TITLE = "Integration";
private static final String INTEGRATION_TITLE = "Integration";
private static final String ANALYZE_TITLE = "Analyze";
private ProjectDrawingProvider drawingProvider;
private TraceMaskDrawingProvider traceMaskDrawingProvider;
@@ -84,9 +85,10 @@ public class FileMenuPlugin implements IPlugIn, IDynamicSubmenuHandler {
swingUI.injectMenuAction(actionFactory.createExportPNGAction(plugInPort, traceMaskDrawingProvider, swingUI, " (mask)"), TRACE_MASK_TITLE);
swingUI.injectMenuAction(
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);
| KeyEvent.SHIFT_DOWN_MASK), TRACE_MASK_TITLE);
swingUI.injectSubmenu(ANALYZE_TITLE, IconLoader.Node.getIcon(), FILE_TITLE);
swingUI.injectMenuAction(actionFactory.createBomAction(plugInPort), ANALYZE_TITLE);
swingUI.injectMenuAction(actionFactory.createGenerateNetlistAction(plugInPort, swingUI), ANALYZE_TITLE);
swingUI.injectMenuAction(null, FILE_TITLE);
swingUI.injectSubmenu(INTEGRATION_TITLE, IconLoader.Node.getIcon(), FILE_TITLE);
swingUI.injectMenuAction(actionFactory.createImportBlocksAction(swingUI, plugInPort), INTEGRATION_TITLE);