diff --git a/src/main/java/ui/TDiagramPanel.java b/src/main/java/ui/TDiagramPanel.java index bef4f42778b5c9a997dd913ffc1255d906a4476e..b685f7d39dae0a6ad55a268f1d089ad553dbd700 100644 --- a/src/main/java/ui/TDiagramPanel.java +++ b/src/main/java/ui/TDiagramPanel.java @@ -1138,7 +1138,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { // true if connector not added public void stopAddingConnector(boolean b) { - if (p1 != null) { + if ((p1 != null) && b) { p1.setFree(true); } x1 = -1; diff --git a/src/main/java/ui/TGComponent.java b/src/main/java/ui/TGComponent.java index 8bfa5cbdba9bd9cc5ccd3faa494abeb179b80cf8..ab8b0928262c3e6b33ccf1cc0005979d172426ca 100644 --- a/src/main/java/ui/TGComponent.java +++ b/src/main/java/ui/TGComponent.java @@ -3443,6 +3443,7 @@ public abstract class TGComponent extends AbstractCDElement implements /*CDElem TGConnector connector = pt.getReferenceToConnector(); TGConnectingPoint cp; if (connector != null) { + //TraceManager.addDev("Non null reference"); if (out) { cp = connector.getTGConnectingPointP1(); } else { @@ -3451,6 +3452,10 @@ public abstract class TGComponent extends AbstractCDElement implements /*CDElem if (cp == pt) { cpt++; } + } else { + if (!pt.isFree()) { + //TraceManager.addDev("Null reference on non free cp"); + } } } return cpt; diff --git a/src/main/java/ui/TGConnectingPoint.java b/src/main/java/ui/TGConnectingPoint.java index d4581765403a147b90a738be99ef69a1a0385104..f03d4a9357267d3d76e86d0800e67d146204efc2 100644 --- a/src/main/java/ui/TGConnectingPoint.java +++ b/src/main/java/ui/TGConnectingPoint.java @@ -40,6 +40,7 @@ package ui; import myutil.GraphicLib; +import myutil.TraceManager; import java.awt.*; @@ -88,7 +89,7 @@ public class TGConnectingPoint extends AbstractCDElement /*implements CDElement* public static final int SOUTH=2; public static final int WEST=3; - protected TGConnector referenceToConnector; + private TGConnector referenceToConnector; private boolean source = false; @@ -277,9 +278,9 @@ public class TGConnectingPoint extends AbstractCDElement /*implements CDElement* } public void setFree(boolean b) { - /*TraceManager.addDev("Setting connecting point as free=" + b + " point=" + this); + //TraceManager.addDev("Setting connecting point as free=" + b + " point=" + this); - for (StackTraceElement ste : Thread.currentThread().getStackTrace()) { + /*for (StackTraceElement ste : Thread.currentThread().getStackTrace()) { TraceManager.addDev(ste.toString()); }*/ @@ -289,6 +290,7 @@ public class TGConnectingPoint extends AbstractCDElement /*implements CDElement* } if (free) { + //TraceManager.addDev("Setting ref to connector to null"); referenceToConnector = null; } @@ -334,6 +336,7 @@ public class TGConnectingPoint extends AbstractCDElement /*implements CDElement* //fin DG public void setReferenceToConnector( TGConnector _ref ) { + //TraceManager.addDev("Setting ref to connector to " + _ref); referenceToConnector = _ref; } diff --git a/src/main/java/ui/TGConnector.java b/src/main/java/ui/TGConnector.java index a949393331bf47ae08675b07ee8f17dcd7640ce0..4bc7d7eead4afc4dde6290e6b1df6a02b62e4249 100644 --- a/src/main/java/ui/TGConnector.java +++ b/src/main/java/ui/TGConnector.java @@ -251,6 +251,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent { } public void setP1(TGConnectingPoint p) { + //TraceManager.addDev("Setting p1"); p1 = p; p1.setReferenceToConnector(this); } diff --git a/src/main/java/ui/avatarad/AvatarADConnectingPoint.java b/src/main/java/ui/avatarad/AvatarADConnectingPoint.java index 3608dda1b5fec7575e80e57c18720af03ad8d40f..e9f497e0b0b13b0ce47155c5da19ce179344f297 100644 --- a/src/main/java/ui/avatarad/AvatarADConnectingPoint.java +++ b/src/main/java/ui/avatarad/AvatarADConnectingPoint.java @@ -38,6 +38,7 @@ package ui.avatarad; +import myutil.TraceManager; import ui.CDElement; import ui.TGComponentManager; import ui.TGConnectingPoint; @@ -63,9 +64,13 @@ public class AvatarADConnectingPoint extends TGConnectingPointWidthHeight { } public boolean isCompatibleWith(int type, TGConnectingPoint outPoint) { + //TraceManager.addDev("isCompatibleWithExtended"); + + if (getFather() instanceof AvatarADActivity) { AvatarADActivity act = (AvatarADActivity)getFather(); int nb = act.getNbOfOccupiedPoints(outPoint == null); + //TraceManager.addDev("Nb of occupied points " + nb + " in case out? " + (outPoint == null)); if (nb > 0) { return false; }