diff --git a/diylc/diylc-core/src/main/java/org/diylc/netlist/AbstractNetlistAnalyzer.java b/diylc/diylc-core/src/main/java/org/diylc/netlist/AbstractNetlistAnalyzer.java index 5e41416b..235f25c8 100644 --- a/diylc/diylc-core/src/main/java/org/diylc/netlist/AbstractNetlistAnalyzer.java +++ b/diylc/diylc-core/src/main/java/org/diylc/netlist/AbstractNetlistAnalyzer.java @@ -34,10 +34,10 @@ public abstract class AbstractNetlistAnalyzer { Map summaries = new HashMap(); for (Netlist n : netlists) { Summary s = summarize(n); - if (summaries.containsKey(s.getSummary())) - summaries.get(s.getSummary()).append(n); + if (summaries.containsKey(s.getSummaryHtml())) + summaries.get(s.getSummaryHtml()).append(n); else - summaries.put(s.getSummary(), s); + summaries.put(s.getSummaryHtml(), s); } List res = new ArrayList(summaries.values()); diff --git a/diylc/diylc-core/src/main/java/org/diylc/netlist/NetlistAnalyzer.java b/diylc/diylc-core/src/main/java/org/diylc/netlist/NetlistAnalyzer.java index a1abf33b..2d35bdc2 100644 --- a/diylc/diylc-core/src/main/java/org/diylc/netlist/NetlistAnalyzer.java +++ b/diylc/diylc-core/src/main/java/org/diylc/netlist/NetlistAnalyzer.java @@ -37,10 +37,10 @@ public abstract class NetlistAnalyzer { Map summaries = new HashMap(); for (Netlist n : netlists) { Summary s = summarize(n, preferredOutput); - if (summaries.containsKey(s.getSummary())) - summaries.get(s.getSummary()).append(n); + if (summaries.containsKey(s.getSummaryHtml())) + summaries.get(s.getSummaryHtml()).append(n); else - summaries.put(s.getSummary(), s); + summaries.put(s.getSummaryHtml(), s); } List res = new ArrayList(summaries.values()); diff --git a/diylc/diylc-core/src/main/java/org/diylc/netlist/NetlistSummaryHtmlReport.java b/diylc/diylc-core/src/main/java/org/diylc/netlist/NetlistSummaryHtmlReport.java new file mode 100644 index 00000000..e3b2c3b0 --- /dev/null +++ b/diylc/diylc-core/src/main/java/org/diylc/netlist/NetlistSummaryHtmlReport.java @@ -0,0 +1,39 @@ +package org.diylc.netlist; + +import org.diylc.netlist.Netlist; +import org.diylc.netlist.Summary; + +import java.util.List; + +public class NetlistSummaryHtmlReport { + + public static String generateHtml(List summaries, String fontName) { + if (summaries == null || summaries.isEmpty()) { + return ""; + } + + StringBuilder sb = new StringBuilder(""); + + for (Summary summary : summaries) { + if (summaries.size() > 1) { + sb.append("

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

"); + } + + sb.append(summary.getSummaryHtml()); + + if (summaries.size() > 1) { + sb.append("

"); + } + } + sb.append(""); + + return sb.toString(); + } +} diff --git a/diylc/diylc-core/src/main/java/org/diylc/netlist/Summary.java b/diylc/diylc-core/src/main/java/org/diylc/netlist/Summary.java index 12dee44b..a9c2930b 100644 --- a/diylc/diylc-core/src/main/java/org/diylc/netlist/Summary.java +++ b/diylc/diylc-core/src/main/java/org/diylc/netlist/Summary.java @@ -24,12 +24,12 @@ package org.diylc.netlist; public class Summary implements Comparable { private Netlist netlist; - private String summary; + private String summaryHtml; - public Summary(Netlist netlist, String summary) { + public Summary(Netlist netlist, String summaryHtml) { super(); this.netlist = netlist; - this.summary = summary; + this.summaryHtml = summaryHtml; } public Netlist getNetlist() { @@ -40,8 +40,8 @@ public class Summary implements Comparable { this.netlist.getSwitchSetup().addAll(netlist.getSwitchSetup()); } - public String getSummary() { - return summary; + public String getSummaryHtml() { + return summaryHtml; } @Override @@ -49,7 +49,7 @@ public class Summary implements Comparable { final int prime = 31; int result = 1; result = prime * result + ((netlist == null) ? 0 : netlist.hashCode()); - result = prime * result + ((summary == null) ? 0 : summary.hashCode()); + result = prime * result + ((summaryHtml == null) ? 0 : summaryHtml.hashCode()); return result; } @@ -67,17 +67,17 @@ public class Summary implements Comparable { return false; } else if (!netlist.equals(other.netlist)) return false; - if (summary == null) { - if (other.summary != null) + if (summaryHtml == null) { + if (other.summaryHtml != null) return false; - } else if (!summary.equals(other.summary)) + } else if (!summaryHtml.equals(other.summaryHtml)) return false; return true; } @Override public String toString() { - return summary.toString(); + return summaryHtml.toString(); } @Override diff --git a/diylc/diylc-core/src/main/resources/update.xml b/diylc/diylc-core/src/main/resources/update.xml index f7b93e80..05f5b87b 100644 --- a/diylc/diylc-core/src/main/resources/update.xml +++ b/diylc/diylc-core/src/main/resources/update.xml @@ -301,6 +301,10 @@ IMPROVEMENT Improved trace proximity calculation to avoid showing false positives + + IMPROVEMENT + Improved the styling of the guitar wiring analysis report + BUG_FIX If the internet connection is present, but unstable, the application starts but nothing can be clicked until the connection restores diff --git a/diylc/diylc-swing/src/main/java/org/diylc/swing/actions/analyze/SummarizeNetlistAction.java b/diylc/diylc-swing/src/main/java/org/diylc/swing/actions/analyze/SummarizeNetlistAction.java index 3f405227..2c31399f 100644 --- a/diylc/diylc-swing/src/main/java/org/diylc/swing/actions/analyze/SummarizeNetlistAction.java +++ b/diylc/diylc-swing/src/main/java/org/diylc/swing/actions/analyze/SummarizeNetlistAction.java @@ -1,3 +1,24 @@ +/* + + 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.swing.actions.analyze; import java.awt.Dimension; @@ -12,6 +33,7 @@ import org.diylc.common.IPlugInPort; import org.diylc.common.ITask; import org.diylc.netlist.Netlist; import org.diylc.netlist.Summary; +import org.diylc.netlist.NetlistSummaryHtmlReport; import org.diylc.swing.ISwingUI; import org.diylc.utils.IconLoader; @@ -68,25 +90,9 @@ public class SummarizeNetlistAction extends AbstractAction { summarizer.getName(), ISwingUI.INFORMATION_MESSAGE); return; } - StringBuilder sb = new StringBuilder(""); - - for (Summary summary : res) { - sb.append("

"); - - if (res.size() > 1) - sb.append("Switch configuration: ").append(summary.getNetlist().getSwitchSetup()) - .append("

"); - - sb.append(summary.getSummary()); - - sb.append("


"); - - if (res.size() > 1) - sb.append("
"); - } - sb.append(""); - new TextDialog(swingUI.getOwnerFrame().getRootPane(), sb.toString(), summarizer.getName(), + + String html = NetlistSummaryHtmlReport.generateHtml(res, summarizer.getFontName()); + new TextDialog(swingUI.getOwnerFrame().getRootPane(), html, summarizer.getName(), new Dimension(800, 600)).setVisible(true); } }, true);