netlist analyzer enhancements

This commit is contained in:
Bane Stojkovic
2025-03-26 18:04:47 +01:00
parent 3a5f4bdb67
commit 77cebc3911
9 changed files with 89 additions and 24 deletions
@@ -280,8 +280,8 @@ public class ActionFactory {
}
public SummarizeNetlistAction createSummarizeNetlistAction(IPlugInPort plugInPort,
ISwingUI swingUI, INetlistAnalyzer summarizer) {
return new SummarizeNetlistAction(plugInPort, swingUI, summarizer);
ISwingUI swingUI, INetlistAnalyzer summarizer, boolean includeSwitches) {
return new SummarizeNetlistAction(plugInPort, swingUI, summarizer, includeSwitches);
}
public CheckProximityAction createCheckProximityAction(IPlugInPort plugInPort, ISwingUI swingUI) {
@@ -22,14 +22,21 @@ public class SummarizeNetlistAction extends AbstractAction {
private IPlugInPort plugInPort;
private ISwingUI swingUI;
private INetlistAnalyzer summarizer;
private final boolean includeSwitches;
public SummarizeNetlistAction(IPlugInPort plugInPort, ISwingUI swingUI,
INetlistAnalyzer summarizer) {
INetlistAnalyzer summarizer, boolean includeSwitches) {
super();
this.plugInPort = plugInPort;
this.swingUI = swingUI;
this.summarizer = summarizer;
putValue(AbstractAction.NAME, summarizer.getName());
this.includeSwitches = includeSwitches;
String name = summarizer.getName();
if (summarizer.getSwitchPreference().size() > 1) {
name += includeSwitches ?
" (incl. Switches)" : " (excl. Switches)";
}
putValue(AbstractAction.NAME, name);
putValue(AbstractAction.SMALL_ICON,
Enum.valueOf(IconLoader.class, summarizer.getIconName()).getIcon());
}
@@ -41,7 +48,7 @@ public class SummarizeNetlistAction extends AbstractAction {
@Override
public List<Summary> doInBackground() throws Exception {
List<Netlist> netlists = plugInPort.extractNetlists(true);
List<Netlist> netlists = plugInPort.extractNetlists(includeSwitches);
if (netlists == null || netlists.isEmpty()) {
throw new Exception("The generated netlist is empty, nothing to show.");
}
@@ -84,4 +91,4 @@ public class SummarizeNetlistAction extends AbstractAction {
}
}, true);
}
}
}
@@ -24,13 +24,9 @@ import java.util.EnumSet;
import java.util.List;
import org.apache.log4j.Logger;
import org.diylc.appframework.miscutils.ConfigurationManager;
import org.diylc.common.*;
import org.diylc.swing.IDynamicSubmenuHandler;
import org.diylc.common.EventType;
import org.diylc.common.INetlistAnalyzer;
import org.diylc.common.IPlugIn;
import org.diylc.common.IPlugInPort;
import org.diylc.common.ITask;
import org.diylc.swing.ActionFactory;
import org.diylc.swing.ISwingUI;
import org.diylc.utils.IconLoader;
@@ -108,10 +104,18 @@ public class FileMenuPlugin implements IPlugIn, IDynamicSubmenuHandler {
List<INetlistAnalyzer> summarizers = plugInPort.getNetlistAnalyzers();
if (summarizers != null) {
for (INetlistAnalyzer summarizer : summarizers)
swingUI.injectMenuAction(
actionFactory.createSummarizeNetlistAction(plugInPort, swingUI, summarizer),
ANALYZE_TITLE);
for (INetlistAnalyzer summarizer : summarizers) {
if (summarizer.getSwitchPreference().contains(NetlistSwitchPreference.WITH)) {
swingUI.injectMenuAction(
actionFactory.createSummarizeNetlistAction(plugInPort, swingUI, summarizer, true),
ANALYZE_TITLE);
}
if (summarizer.getSwitchPreference().contains(NetlistSwitchPreference.WITHOUT)) {
swingUI.injectMenuAction(
actionFactory.createSummarizeNetlistAction(plugInPort, swingUI, summarizer, false),
ANALYZE_TITLE);
}
}
}
swingUI.injectMenuAction(null, FILE_TITLE);