diff --git a/diylc/diylc-core/src/org/diylc/netlist/Summary.java b/diylc/diylc-core/src/org/diylc/netlist/Summary.java index 232c7dd0..12dee44b 100644 --- a/diylc/diylc-core/src/org/diylc/netlist/Summary.java +++ b/diylc/diylc-core/src/org/diylc/netlist/Summary.java @@ -21,8 +21,7 @@ */ package org.diylc.netlist; - -public class Summary { +public class Summary implements Comparable { private Netlist netlist; private String summary; @@ -36,6 +35,10 @@ public class Summary { public Netlist getNetlist() { return netlist; } + + public void append(Netlist netlist) { + this.netlist.getSwitchSetup().addAll(netlist.getSwitchSetup()); + } public String getSummary() { return summary; @@ -76,4 +79,9 @@ public class Summary { public String toString() { return summary.toString(); } + + @Override + public int compareTo(Summary o) { + return netlist.compareTo(o.netlist); + } } diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 3d4dfaa6..ce73d5f2 100644 Binary files a/diylc/diylc-library/lib/diylc-core.jar and b/diylc/diylc-library/lib/diylc-core.jar differ diff --git a/diylc/diylc-library/src/org/diylc/netlist/GuitarDiagramAnalyzer.java b/diylc/diylc-library/src/org/diylc/netlist/GuitarDiagramAnalyzer.java index 3dfa773f..7cc7151e 100644 --- a/diylc/diylc-library/src/org/diylc/netlist/GuitarDiagramAnalyzer.java +++ b/diylc/diylc-library/src/org/diylc/netlist/GuitarDiagramAnalyzer.java @@ -22,6 +22,7 @@ package org.diylc.netlist; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -85,11 +86,18 @@ public class GuitarDiagramAnalyzer extends NetlistAnalyzer implements INetlistAn } public List summarize(List netlists, Node preferredOutput) throws TreeException { - List summaries = new ArrayList(); - for (Netlist n : netlists) - summaries.add(summarize(n, preferredOutput)); + Map summaries = new HashMap(); + for (Netlist n : netlists) { + Summary s = summarize(n, preferredOutput); + if (summaries.containsKey(s.getSummary())) + summaries.get(s.getSummary()).append(n); + else + summaries.put(s.getSummary(), s); + } - return summaries; + List res = new ArrayList(summaries.values()); + Collections.sort(res); + return res; } private int positiveCount; diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 3d4dfaa6..ce73d5f2 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/library/main.jar b/diylc/diylc-swing/library/main.jar index f9665659..7c78c131 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/update.xml b/diylc/diylc-swing/update.xml index c91073bf..3b1b19b1 100644 --- a/diylc/diylc-swing/update.xml +++ b/diylc/diylc-swing/update.xml @@ -2645,6 +2645,10 @@ IMPROVEMENT Honor all possible combinations of "DIP Switch" positions when creating a netlist + + + IMPROVEMENT + Merge switch configurations that yield with the same effective wiring for "Analyze Guitar Wirings" module, for more compact report IMPROVEMENT