From add8566d4fa1cfb2454c996f2d0ac3c7d6dac99c Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Sun, 17 Feb 2019 00:13:22 +0100 Subject: [PATCH] netlist summarizer infrastructure added --- .../org/diylc/common/INetlistProcessor.java | 17 +++ .../org/diylc/common/INetlistSummarizer.java | 29 +++++ .../src/org/diylc/netlist/Summary.java | 80 ++++++++++++ .../src/org/diylc/presenter/Presenter.java | 116 ++++-------------- diylc/diylc-library/lib/diylc-core.jar | Bin 256780 -> 258033 bytes .../src/org/diylc/awt/TwoCircleTangent.java | 7 -- .../org/diylc/components/guitar/LPSwitch.java | 2 +- .../netlist/GuitarDiagramSummarizer.java | 34 +++++ diylc/diylc-swing/lib/diylc-core.jar | Bin 256780 -> 258033 bytes diylc/diylc-swing/library/main.jar | Bin 601320 -> 602360 bytes .../src/org/diylc/images/IconLoader.java | 2 +- .../src/org/diylc/images/guitar.png | Bin 0 -> 808 bytes .../src/org/diylc/images/scientist.png | Bin 0 -> 903 bytes .../src/org/diylc/swing/ActionFactory.java | 58 +++++++-- .../swing/plugins/file/FileMenuPlugin.java | 12 +- 15 files changed, 245 insertions(+), 112 deletions(-) create mode 100644 diylc/diylc-core/src/org/diylc/common/INetlistSummarizer.java create mode 100644 diylc/diylc-core/src/org/diylc/netlist/Summary.java create mode 100644 diylc/diylc-library/src/org/diylc/netlist/GuitarDiagramSummarizer.java create mode 100644 diylc/diylc-swing/src/org/diylc/images/guitar.png create mode 100644 diylc/diylc-swing/src/org/diylc/images/scientist.png diff --git a/diylc/diylc-core/src/org/diylc/common/INetlistProcessor.java b/diylc/diylc-core/src/org/diylc/common/INetlistProcessor.java index 6b890c01..2c6fc736 100644 --- a/diylc/diylc-core/src/org/diylc/common/INetlistProcessor.java +++ b/diylc/diylc-core/src/org/diylc/common/INetlistProcessor.java @@ -25,7 +25,24 @@ import java.util.List; import org.diylc.netlist.Netlist; +/** + * Interface for {@link Netlist} related operations. + * + * @author Branislav Stojkovic + */ public interface INetlistProcessor { + /** + * Finds all {@link Netlist}s for each switch position combination. + * + * @return + */ List extractNetlists(); + + /** + * Finds all available {@link INetlistSummarizer} implementations. + * + * @return + */ + List getNetlistSummarizers(); } diff --git a/diylc/diylc-core/src/org/diylc/common/INetlistSummarizer.java b/diylc/diylc-core/src/org/diylc/common/INetlistSummarizer.java new file mode 100644 index 00000000..7e9d0738 --- /dev/null +++ b/diylc/diylc-core/src/org/diylc/common/INetlistSummarizer.java @@ -0,0 +1,29 @@ +package org.diylc.common; + +import java.util.List; + +import org.diylc.netlist.Netlist; +import org.diylc.netlist.Node; +import org.diylc.netlist.Summary; + +public interface INetlistSummarizer { + + /** + * @return summarizer name + */ + String getName(); + + /** + * @return name of the icon to use + */ + String getIconName(); + + /** + * Summarizes all {@link Netlist}s provided. + * + * @param netlists + * @param preferredOutput optional, needed only where there's more than one possible output node. + * @return + */ + List summarize(List netlists, Node preferredOutput); +} diff --git a/diylc/diylc-core/src/org/diylc/netlist/Summary.java b/diylc/diylc-core/src/org/diylc/netlist/Summary.java new file mode 100644 index 00000000..6bff5fe5 --- /dev/null +++ b/diylc/diylc-core/src/org/diylc/netlist/Summary.java @@ -0,0 +1,80 @@ +/* + + DIY Layout Creator (DIYLC). + Copyright (c) 2009-2018 held jointly by the individual authors. + + This file is part of DIYLC. + + DIYLC is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + DIYLC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DIYLC. If not, see . + +*/ +package org.diylc.netlist; + +import java.util.List; + +public class Summary { + + private Netlist netlist; + private List notes; + + public Summary(Netlist netlist, List notes) { + super(); + this.netlist = netlist; + this.notes = notes; + } + + public Netlist getNetlist() { + return netlist; + } + + public List getNotes() { + return notes; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((netlist == null) ? 0 : netlist.hashCode()); + result = prime * result + ((notes == null) ? 0 : notes.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Summary other = (Summary) obj; + if (netlist == null) { + if (other.netlist != null) + return false; + } else if (!netlist.equals(other.netlist)) + return false; + if (notes == null) { + if (other.notes != null) + return false; + } else if (!notes.equals(other.notes)) + return false; + return true; + } + + @Override + public String toString() { + return notes.toString(); + } +} diff --git a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java index 89c249fa..8f4d82ce 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java @@ -62,6 +62,7 @@ import org.diylc.common.EventType; import org.diylc.common.IComponentFiler; import org.diylc.common.IComponentTransformer; import org.diylc.common.IKeyProcessor; +import org.diylc.common.INetlistSummarizer; import org.diylc.common.IPlugIn; import org.diylc.common.IPlugInPort; import org.diylc.common.PropertyWrapper; @@ -76,11 +77,11 @@ import org.diylc.core.Theme; import org.diylc.core.annotations.IAutoCreator; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; +import org.diylc.netlist.Group; import org.diylc.netlist.Netlist; -import org.diylc.netlist.SwitchSetup; import org.diylc.netlist.Node; import org.diylc.netlist.Position; -import org.diylc.netlist.Group; +import org.diylc.netlist.SwitchSetup; import org.diylc.utils.Constants; import com.thoughtworks.xstream.XStream; @@ -2882,98 +2883,27 @@ public class Presenter implements IPlugInPort { if (s.arePointsConnected(i, j, position)) connections.add(new Line2D.Double(c.getControlPoint(i), c.getControlPoint(j))); } - } - -// // grab continuity areas -// List continuity = drawingManager.getContinuityAreas(currentProject); -// -// mergeConnections(connections, continuity); + } return connections; - } + } -// private void mergeConnections(List connections, List continuity) { -// List merged = new ArrayList(); -// boolean[] visited = new boolean[connections.size()]; -// for (int i = 0; i < visited.length; i++) -// visited[i] = false; -// -// double t = DrawingManager.CONTROL_POINT_SIZE; -// -// for (int i = 0; i < visited.length - 1; i++) { -// if (visited[i]) -// continue; -// for (int j = i + 1; j < visited.length; j++) { -// if (visited[j]) -// continue; -// Line2D c1 = connections.get(i); -// Line2D c2 = connections.get(j); -// Point2D p1 = null; -// Point2D p2 = null; -// boolean connected = false; -// // test direct continuity between two connections -// if (!connected && c1.getP1().distance(c2.getP1()) < t) { -// connected = true; -// p1 = c1.getP2(); -// p2 = c2.getP2(); -// } -// if (!connected && c1.getP1().distance(c2.getP2()) < t) { -// connected = true; -// p1 = c1.getP2(); -// p2 = c2.getP1(); -// } -// if (!connected && c1.getP2().distance(c2.getP1()) < t) { -// connected = true; -// p1 = c1.getP1(); -// p2 = c2.getP2(); -// } -// if (!connected && c1.getP2().distance(c2.getP2()) < t) { -// connected = true; -// p1 = c1.getP1(); -// p2 = c2.getP1(); -// } -// // if that failed, try using continuity areas -// if (!connected) { -// for (Area a : continuity) { -// if (!connected && a.contains(c1.getP1()) && a.contains(c2.getP1())) { -// connected = true; -// p1 = c1.getP2(); -// p2 = c2.getP2(); -// break; -// } -// if (!connected && a.contains(c1.getP1()) && a.contains(c2.getP2())) { -// connected = true; -// p1 = c1.getP2(); -// p2 = c2.getP1(); -// break; -// } -// if (!connected && a.contains(c1.getP2()) && a.contains(c2.getP1())) { -// connected = true; -// p1 = c1.getP1(); -// p2 = c2.getP2(); -// break; -// } -// if (!connected && a.contains(c1.getP2()) && a.contains(c2.getP2())) { -// connected = true; -// p1 = c1.getP1(); -// p2 = c2.getP1(); -// break; -// } -// } -// } -// -// if (connected) { -// visited[i] = visited[j] = true; -// merged.add(new Line2D.Double(p1, p2)); -// } -// } -// } -// -// // replace connections with merged -// if (!merged.isEmpty()) { -//// connections.clear(); -// connections.addAll(merged); -// mergeConnections(connections, continuity); // attempt another round of merging if needed -// } -// } + @Override + public List getNetlistSummarizers() { + Set> classes; + try { + classes = Utils.getClasses("org.diylc.netlist"); + List result = new ArrayList(); + + for (Class clazz : classes) { + if (!Modifier.isAbstract(clazz.getModifiers()) && INetlistSummarizer.class.isAssignableFrom(clazz)) { + result.add((INetlistSummarizer) clazz.newInstance()); + } + } + return result; + } catch (Exception e) { + LOG.error("Could not load INetlistSummarizer implementations", e); + return null; + } + } } diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 241a3ac12f7ee8b5cb0c9409752c90f7dd2d008b..30022924cf4b97cfaed9ed895cde4816249f6ebf 100644 GIT binary patch delta 33347 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 b1Fk9H#2Uay@dxJ*4#j00ocF2FK;ZlzcKChI delta 32878 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 diff --git a/diylc/diylc-library/src/org/diylc/awt/TwoCircleTangent.java b/diylc/diylc-library/src/org/diylc/awt/TwoCircleTangent.java index a8b9bd9e..d88a41df 100644 --- a/diylc/diylc-library/src/org/diylc/awt/TwoCircleTangent.java +++ b/diylc/diylc-library/src/org/diylc/awt/TwoCircleTangent.java @@ -21,14 +21,11 @@ */ package org.diylc.awt; -import java.awt.Shape; import java.awt.geom.Area; import java.awt.geom.Ellipse2D; import java.awt.geom.Path2D; import java.awt.geom.Point2D; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; - /** * Creates an are covered by the two circles and the area between them bordered by the two external common tangents. * @@ -54,8 +51,4 @@ public class TwoCircleTangent extends Area { a.add(new Area(path)); add(a); } - - public TwoCircleTangent(Shape s) { - throw new NotImplementedException(); - } } diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/LPSwitch.java b/diylc/diylc-library/src/org/diylc/components/guitar/LPSwitch.java index 0e989660..10dad12f 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/LPSwitch.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/LPSwitch.java @@ -281,7 +281,7 @@ public class LPSwitch extends AbstractTransparentComponent implements IS @Override public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; + return VisibilityPolicy.ALWAYS; } @Override diff --git a/diylc/diylc-library/src/org/diylc/netlist/GuitarDiagramSummarizer.java b/diylc/diylc-library/src/org/diylc/netlist/GuitarDiagramSummarizer.java new file mode 100644 index 00000000..09fa6dcf --- /dev/null +++ b/diylc/diylc-library/src/org/diylc/netlist/GuitarDiagramSummarizer.java @@ -0,0 +1,34 @@ +package org.diylc.netlist; + +import java.util.ArrayList; +import java.util.List; + +import org.diylc.common.INetlistSummarizer; + +public class GuitarDiagramSummarizer implements INetlistSummarizer { + + @Override + public String getName() { + return "Guitar Diagrams"; + } + + @Override + public String getIconName() { + return "Guitar"; + } + + public List summarize(List netlists, Node preferredOutput) { + List summaries = new ArrayList(); + for (Netlist n : netlists) + summaries.add(summarize(n, preferredOutput)); + + return summaries; + } + + private Summary summarize(Netlist netlist, Node preferredOutput) { + List notes = new ArrayList(); + notes.add("test"); + return new Summary(netlist, notes); + } + +} diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 241a3ac12f7ee8b5cb0c9409752c90f7dd2d008b..30022924cf4b97cfaed9ed895cde4816249f6ebf 100644 GIT binary patch delta 33347 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 b1Fk9H#2Uay@dxJ*4#j00ocF2FK;ZlzcKChI delta 32878 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 diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 4442013b173a2aa87e88b4d41c6130597082260c..91281ef655b99e45e5171f70ea927766b22eb733 100644 GIT binary patch delta 19402 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 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 4765eff7..18307302 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java +++ b/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java @@ -49,6 +49,7 @@ import org.diylc.appframework.miscutils.ConfigurationManager; import org.diylc.common.BuildingBlockPackage; import org.diylc.common.ComponentType; import org.diylc.common.IComponentTransformer; +import org.diylc.common.INetlistSummarizer; import org.diylc.common.IPlugInPort; import org.diylc.common.ITask; import org.diylc.common.PropertyWrapper; @@ -65,6 +66,7 @@ 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.Summary; import org.diylc.presenter.Presenter; import org.diylc.swing.gui.DialogFactory; import org.diylc.swing.gui.editor.PropertyEditorDialog; @@ -255,6 +257,10 @@ public class ActionFactory { public GenerateNetlistAction createGenerateNetlistAction(IPlugInPort plugInPort, ISwingUI swingUI) { return new GenerateNetlistAction(plugInPort, swingUI); } + + public SummarizeNetlistAction createSummarizeNetlistAction(IPlugInPort plugInPort, ISwingUI swingUI, INetlistSummarizer summarizer) { + return new SummarizeNetlistAction(plugInPort, swingUI, summarizer); + } // File menu actions. @@ -1667,20 +1673,56 @@ public class ActionFactory { for (Netlist netlist : res) { sb.append("

Switch configuration: ").append(netlist.getSwitchSetup()).append("

Connected node groups:
"); for (Group v : netlist.getSortedGroups()) { -// boolean first = true; -// for (Node n : v.getSortedNodes()) { -// if (!first) -// sb.append(" <-> "); -// first = false; -// -// } sb.append("  ").append(v.getSortedNodes()).append("
"); } sb.append("



"); } sb.append(""); new TextDialog(swingUI.getOwnerFrame().getRootPane(), sb.toString(), "Netlist", new Dimension(600, 480)).setVisible(true); - } + } + } + + public static class SummarizeNetlistAction extends AbstractAction { + private static final long serialVersionUID = 1L; + + private IPlugInPort plugInPort; + private ISwingUI swingUI; + private INetlistSummarizer summarizer; + + public SummarizeNetlistAction(IPlugInPort plugInPort, ISwingUI swingUI, INetlistSummarizer summarizer) { + super(); + this.plugInPort = plugInPort; + this.swingUI = swingUI; + this.summarizer = summarizer; + putValue(AbstractAction.NAME, "Analyze " + summarizer.getName()); + putValue(AbstractAction.SMALL_ICON, Enum.valueOf(IconLoader.class, summarizer.getIconName()).getIcon()); + } + + @Override + public void actionPerformed(ActionEvent e) { + List netlists = plugInPort.extractNetlists(); + if (netlists == null || netlists.isEmpty()) { + swingUI.showMessage("The generated netlist is empty, nothing to show.", "Netlist", ISwingUI.INFORMATION_MESSAGE); + return; + } + + List res = summarizer.summarize(netlists, null); + if (res == null) { + swingUI.showMessage("The generated summary is empty, nothing to show.", "Analyze", ISwingUI.INFORMATION_MESSAGE); + return; + } + StringBuilder sb = new StringBuilder(""); + + for (Summary summary : res) { + sb.append("

Switch configuration: ").append(summary.getNetlist().getSwitchSetup()).append("

Notes:

"); + for (String v : summary.getNotes()) { + sb.append("  ").append(v).append("
"); + } + sb.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 73fb0eaf..36dccd7e 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 @@ -25,10 +25,11 @@ import java.awt.Toolkit; import java.awt.event.KeyEvent; import java.util.EnumSet; import java.util.List; - + import org.apache.log4j.Logger; import org.diylc.appframework.miscutils.ConfigurationManager; import org.diylc.common.EventType; +import org.diylc.common.INetlistSummarizer; import org.diylc.common.IPlugIn; import org.diylc.common.IPlugInPort; import org.diylc.images.IconLoader; @@ -86,9 +87,16 @@ public class FileMenuPlugin implements IPlugIn, IDynamicSubmenuHandler { swingUI.injectMenuAction( actionFactory.createPrintAction(traceMaskDrawingProvider, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() | KeyEvent.SHIFT_DOWN_MASK), TRACE_MASK_TITLE); - swingUI.injectSubmenu(ANALYZE_TITLE, IconLoader.Node.getIcon(), FILE_TITLE); + swingUI.injectSubmenu(ANALYZE_TITLE, IconLoader.Scientist.getIcon(), FILE_TITLE); swingUI.injectMenuAction(actionFactory.createBomAction(plugInPort), ANALYZE_TITLE); swingUI.injectMenuAction(actionFactory.createGenerateNetlistAction(plugInPort, swingUI), ANALYZE_TITLE); + + List summarizers = plugInPort.getNetlistSummarizers(); + if (summarizers != null) { + for(INetlistSummarizer summarizer : summarizers) + swingUI.injectMenuAction(actionFactory.createSummarizeNetlistAction(plugInPort, swingUI, summarizer), ANALYZE_TITLE); + } + swingUI.injectMenuAction(null, FILE_TITLE); swingUI.injectSubmenu(INTEGRATION_TITLE, IconLoader.Node.getIcon(), FILE_TITLE); swingUI.injectMenuAction(actionFactory.createImportBlocksAction(swingUI, plugInPort), INTEGRATION_TITLE);