diff --git a/diylc/diylc-core/src/org/diylc/common/INetlistProcessor.java b/diylc/diylc-core/src/org/diylc/common/INetlistProcessor.java index 1707482e..9709ddea 100644 --- a/diylc/diylc-core/src/org/diylc/common/INetlistProcessor.java +++ b/diylc/diylc-core/src/org/diylc/common/INetlistProcessor.java @@ -35,9 +35,10 @@ public interface INetlistProcessor { /** * Finds all {@link Netlist}s for each switch position combination. * + * @param includeSwitches * @return */ - List extractNetlists(); + List extractNetlists(boolean includeSwitches); /** * Finds all available {@link INetlistAnalyzer} implementations. diff --git a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java index 92198eee..2cccb1e2 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java @@ -1906,7 +1906,7 @@ public class Presenter implements IPlugInPort { public void expandSelection(ExpansionMode expansionMode) { LOG.info(String.format("expandSelection(%s)", expansionMode)); List> newSelection = new ArrayList>(this.selectedComponents); - List netlists = extractNetlists(); + List netlists = extractNetlists(false); List>> allGroups = NetlistAnalyzer.extractComponentGroups(netlists); // Find control points of all selected components and all types Set selectedNamePrefixes = new HashSet(); @@ -2699,29 +2699,30 @@ public class Presenter implements IPlugInPort { @SuppressWarnings("unchecked") @Override - public List extractNetlists() { + public List extractNetlists(boolean includeSwitches) { Map result = new HashMap(); List nodes = new ArrayList(); List switches = new ArrayList(); + for (IDIYComponent c : currentProject.getComponents()) { ComponentType type = ComponentProcessor.getInstance().extractComponentTypeFrom((Class>) c.getClass()); - + // extract nodes if (!(c instanceof IContinuity)) { for (int i = 0; i < c.getControlPointCount(); i++) { String nodeName = c.getControlPointNodeName(i); - if (nodeName != null) { + if (nodeName != null && (!includeSwitches || !ISwitch.class.isAssignableFrom(type.getInstanceClass()))) { nodes.add(new Node(c, i)); } } } - + // extract switches - if (ISwitch.class.isAssignableFrom(type.getInstanceClass())) - switches.add((ISwitch)c); - } + if (includeSwitches && ISwitch.class.isAssignableFrom(type.getInstanceClass())) + switches.add((ISwitch) c); + } // save us the trouble if (nodes.isEmpty()) diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 62e5773e..76ef488d 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/components/AbstractLeadedComponent.java b/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java index 6e7ada67..cd83e195 100644 --- a/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java +++ b/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java @@ -338,7 +338,7 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp drawCenteredText(g2d, label, offset, 0, HorizontalAlignment.CENTER, VerticalAlignment.CENTER); g2d.setTransform(oldTransform); } else { - if (getLabelOriantation() == LabelOriantation.Horizontal) { + if (isStanding() || getLabelOriantation() == LabelOriantation.Horizontal) { g2d.setTransform(oldTransform); double x = (getNewPoints()[0].x + getNewPoints()[1].x - length) / 2.0; double y = (getNewPoints()[0].y + getNewPoints()[1].y - width) / 2.0; diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java index ce0fd32a..397801d4 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java @@ -393,12 +393,12 @@ public class MiniToggleSwitch extends AbstractTransparentComponent implements IS body = null; } - @Override - public String getControlPointNodeName(int index) { - // we don't want the switch to produce any nodes, it just makes connections - return null; - } - +// @Override +// public String getControlPointNodeName(int index) { +// // we don't want the switch to produce any nodes, it just makes connections +// return null; +// } +// // switch stuff @Override diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java b/diylc/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java index 1193e0d3..2f626c05 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java @@ -428,11 +428,11 @@ public class LeverSwitch extends AbstractTransparentComponent implements } } - @Override - public String getControlPointNodeName(int index) { - // we don't want the switch to produce any nodes, it just makes connections - return null; - } +// @Override +// public String getControlPointNodeName(int index) { +// // we don't want the switch to produce any nodes, it just makes connections +// return null; +// } // switch stuff diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 62e5773e..76ef488d 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 234e77da..09d41c53 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/src/org/diylc/swing/ActionFactory.java b/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java index 6df0f673..554523bd 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java +++ b/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java @@ -1667,7 +1667,7 @@ public class ActionFactory { @Override public List doInBackground() throws Exception { - return plugInPort.extractNetlists(); + return plugInPort.extractNetlists(true); } @Override @@ -1722,7 +1722,7 @@ public class ActionFactory { @Override public List doInBackground() throws Exception { - List netlists = plugInPort.extractNetlists(); + List netlists = plugInPort.extractNetlists(true); if (netlists == null || netlists.isEmpty()) { throw new Exception("The generated netlist is empty, nothing to show."); }