diff --git a/diylc/diylc-core/src/org/diylc/netlist/ContinuityGraph.java b/diylc/diylc-core/src/org/diylc/netlist/ContinuityGraph.java
index 5a99b139..6bd11aab 100644
--- a/diylc/diylc-core/src/org/diylc/netlist/ContinuityGraph.java
+++ b/diylc/diylc-core/src/org/diylc/netlist/ContinuityGraph.java
@@ -20,6 +20,7 @@ package org.diylc.netlist;
import java.awt.geom.Area;
import java.awt.geom.Point2D;
+import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -45,14 +46,19 @@ public class ContinuityGraph {
}
public List findAreasFor(Point2D point) {
- Optional first = groupTree.search(point, NetlistBuilder.eps).stream()
- .filter(node -> node.getArea().getArea().contains(point)).findFirst();
-
- return first.map(node ->
- areaGroupMap.get(node.getGroupId())
+ List matchingNodes = groupTree.search(point, NetlistBuilder.eps)
+ .stream()
+ .filter(node -> node.getArea().getArea().contains(point))
+ .sorted(Comparator.comparing(x -> x.getArea().getZIndex(), Comparator.reverseOrder()))
+ .collect(Collectors.toList());
+
+ if (matchingNodes.isEmpty())
+ return null;
+
+ return areaGroupMap.get(matchingNodes.get(0).getGroupId())
.stream()
.map(x -> x.getArea())
- .collect(Collectors.toList())).orElse(null);
+ .collect(Collectors.toList());
}
public static class ContinuityNode {
diff --git a/diylc/diylc-swing/dict.txt b/diylc/diylc-swing/dict.txt
index 5f715562..7c7e3f0d 100644
--- a/diylc/diylc-swing/dict.txt
+++ b/diylc/diylc-swing/dict.txt
@@ -49,6 +49,7 @@ AWG
Alternate
And
Angle Offset
+Apply Model
B-C-E BJT
Background
Box
@@ -93,6 +94,7 @@ G-D-S MOSFET
G-O-I REGULATOR
G-S-D JFET
G-S-D MOSFET
+GF1
Generate DIYLC Netlist (excl. Switches)
Generate DIYLC Netlist (incl. Switches)
Gray