mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-10 17:22:09 +10:00
netlist analyzer enhancements
This commit is contained in:
@@ -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) {
|
||||
|
||||
+11
-4
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user