From 2ee71c428b4ad5adbbedb3ba3d7ddee7495b8c02 Mon Sep 17 00:00:00 2001
From: Kityan <irina.lee@etu.upmc.fr>
Date: Sat, 8 Sep 2018 16:38:00 +0200
Subject: [PATCH] fix tgconnector problem

---
 src/main/java/ui/TGConnector.java | 129 ++++++++++--------------------
 1 file changed, 41 insertions(+), 88 deletions(-)

diff --git a/src/main/java/ui/TGConnector.java b/src/main/java/ui/TGConnector.java
index c8cfd70edf..cb2c5ca63f 100755
--- a/src/main/java/ui/TGConnector.java
+++ b/src/main/java/ui/TGConnector.java
@@ -113,7 +113,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent {
             if (getTDiagramPanel().getName().equals("ELN Diagram")) {
             	tgcomponent[i] = new ELNMidPortTerminal(p.x, p.y, minX, maxX, minY, maxY, false, this, tdp );
             } else {
-            	tgcomponent[i] = new TGCPointOfConnector(p.x, p.y, minX, maxX, minY, maxY, false, this, tdp );
+            	tgcomponent[i] = new TGCPointOfConnector(p.x, p.y, minX, maxX, minY, maxY, false, this, tdp );	
             }
         }
     }
@@ -124,9 +124,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent {
 
     public int getIndexOfFirstTGCPointOfConnector() {
 		for(int i=0; i<nbInternalTGComponent; i++) {
-			if (tgcomponent[i] instanceof ELNMidPortTerminal) {
-		    	return i;
-		    } else if (tgcomponent[i] instanceof TGCPointOfConnector) {
+		    if (tgcomponent[i] instanceof TGCPointOfConnector) {
 		    	return i;
 		    }
 		}
@@ -145,10 +143,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent {
 		TGCPointOfConnector []tab = new TGCPointOfConnector[nb];
 		nb = 0;
 		for(int i=0; i<nbInternalTGComponent; i++) {
-			if (tgcomponent[i] instanceof ELNMidPortTerminal) {
-				tab[nb] = (ELNMidPortTerminal)(tgcomponent[i]);
-				nb++;
-			} else if (tgcomponent[i] instanceof TGCPointOfConnector) {
+			if (tgcomponent[i] instanceof TGCPointOfConnector) {
 				tab[nb] = (TGCPointOfConnector)(tgcomponent[i]);
 				nb++;
 			}
@@ -161,9 +156,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent {
         Vector<Point> v = new Vector<Point>();
 	
         for(int i=0; i<nbInternalTGComponent; i++) {
-        	if (tgcomponent[i] instanceof ELNMidPortTerminal) {
-        		v.add(new Point(tgcomponent[i].getX(), tgcomponent[i].getY()));
-        	} else if (tgcomponent[i] instanceof TGCPointOfConnector) {
+        	if (tgcomponent[i] instanceof TGCPointOfConnector) {
         		v.add(new Point(tgcomponent[i].getX(), tgcomponent[i].getY()));
         	}
         }
@@ -175,9 +168,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent {
         if (nbInternalTGComponent == 0) { return -1;}
         int index;
         for(index = 0; index<tgcomponent.length; index++) {
-        	if (!(tgcomponent[index] instanceof ELNMidPortTerminal)) {
-                break;
-            } else if (!(tgcomponent[index] instanceof TGCPointOfConnector)) {
+            if (!(tgcomponent[index] instanceof TGCPointOfConnector)) {
                 break;
             }
         }
@@ -265,10 +256,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent {
             return new Point((p1.getX()+p2.getX())/2, (p1.getY()+p2.getY())/2);
         }
 
-        if (tgcomponent[0] instanceof ELNMidPortTerminal) {
-            //TraceManager.addDev("TGCPointOfConnector");
-            return new Point((p1.getX()+tgcomponent[0].getX())/2, (p1.getY()+tgcomponent[0].getY())/2);
-        } else if (tgcomponent[0] instanceof TGCPointOfConnector) {
+        if (tgcomponent[0] instanceof TGCPointOfConnector) {
             //TraceManager.addDev("TGCPointOfConnector");
             return new Point((p1.getX()+tgcomponent[0].getX())/2, (p1.getY()+tgcomponent[0].getY())/2);
         }
@@ -504,62 +492,34 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent {
 
     public CDElement[] getPointedSegment(int x1, int y1) {
         TGCPointOfConnector p3, p4;
-        ELNMidPortTerminal p3a, p4a;
         CDElement [] pt = new CDElement[2];
         try {
 
             if (hasTGCPointOfConnector()) {
-            	if (tgcomponent[0] instanceof ELNMidPortTerminal) {
-            		p3a = (ELNMidPortTerminal)tgcomponent[0];
-                    p4a = p3a; 
+                p3 = (TGCPointOfConnector)tgcomponent[0];
+                p4 = p3;
+                if ((int)(Line2D.ptSegDistSq(p1.getX(), p1.getY(), p3.getX(), p3.getY(), x1, y1)) < distanceSelected) {
+                    pt[0] = p1;
+                    pt[1] = p3;
+                    return pt;
+                }
+                for(int i=0; i<getIndexOfLastTGCPointOfConnector(); i++) {
+                    p3 = (TGCPointOfConnector)(tgcomponent[i]);
+                    p4 = (TGCPointOfConnector)(tgcomponent[i+1]);
 
-                    if ((int)(Line2D.ptSegDistSq(p1.getX(), p1.getY(), p3a.getX(), p3a.getY(), x1, y1)) < distanceSelected) {
-                        pt[0] = p1;
-                        pt[1] = p3a;
+                    if ((int)(Line2D.ptSegDistSq(p3.getX(), p3.getY(), p4.getX(), p4.getY(), x1, y1)) < distanceSelected) {
+                        pt[0] = p3;
+                        pt[1] = p4;
                         return pt;
                     }
-                    for(int i=0; i<getIndexOfLastTGCPointOfConnector(); i++) {
-                        p3a = (ELNMidPortTerminal)(tgcomponent[i]);
-                        p4a = (ELNMidPortTerminal)(tgcomponent[i+1]);
-
-                        if ((int)(Line2D.ptSegDistSq(p3a.getX(), p3a.getY(), p4a.getX(), p4a.getY(), x1, y1)) < distanceSelected) {
-                            pt[0] = p3a;
-                            pt[1] = p4a;
-                            return pt;
-                        }
-                    }
+                }
+
+                if ((int)(Line2D.ptSegDistSq(p4.getX(), p4.getY(), p2.getX(), p2.getY(), x1, y1)) < distanceSelected) {
+                    pt[0] = p4;
+                    pt[1] = p2;
+                    return pt;
+                }
 
-                    if ((int)(Line2D.ptSegDistSq(p4a.getX(), p4a.getY(), p2.getX(), p2.getY(), x1, y1)) < distanceSelected) {
-                        pt[0] = p4a;
-                        pt[1] = p2;
-                        return pt;
-                    }
-            	} else {
-            		p3 = (TGCPointOfConnector)tgcomponent[0];
-                    p4 = p3;
-
-                    if ((int)(Line2D.ptSegDistSq(p1.getX(), p1.getY(), p3.getX(), p3.getY(), x1, y1)) < distanceSelected) {
-            			pt[0] = p1;
-            			pt[1] = p3;
-            			return pt;
-            		}
-            		for(int i=0; i<getIndexOfLastTGCPointOfConnector(); i++) {
-            			p3 = (TGCPointOfConnector)(tgcomponent[i]);
-            			p4 = (TGCPointOfConnector)(tgcomponent[i+1]);
-
-            			if ((int)(Line2D.ptSegDistSq(p3.getX(), p3.getY(), p4.getX(), p4.getY(), x1, y1)) < distanceSelected) {
-            				pt[0] = p3;
-            				pt[1] = p4;
-            				return pt;
-            			}
-            		}
-
-            		if ((int)(Line2D.ptSegDistSq(p4.getX(), p4.getY(), p2.getX(), p2.getY(), x1, y1)) < distanceSelected) {
-            			pt[0] = p4;
-            			pt[1] = p2;
-            			return pt;
-            		}
-            	}
             } else {
                 if (p2 != null) {
                     if ((int)(Line2D.ptSegDistSq(p1.getX(), p1.getY(), p2.getX(), p2.getY(), x1, y1)) < distanceSelected) {
@@ -669,21 +629,18 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent {
         return;
     }
 
-    public void pointHasBeenRemoved(ELNMidPortTerminal tgc) {
-        return;
-    }
 
     // indexCon indicates from which points the potential connecitng point is the closer
     public void pointHasBeenAdded(TGCPointOfConnector tgc, int index, int indexCon) {
         return;
     }
-    
-    public void pointHasBeenAdded(ELNMidPortTerminal tgc, int index, int indexCon) {
-        return;
-    }
 
-    private boolean addELNMidPortTerminal(int x, int y) {
+    private boolean addTGCPointOfConnector(int x, int y) {
+        //TraceManager.addDev("Adding point of connector at "+  x + "," + y);
         CDElement [] pt = getPointedSegment(x, y);
+        /*TraceManager.addDev("Two pts");
+          TraceManager.addDev("p1  x=" + pt[0].x + " y=" + pt[0].y);
+          TraceManager.addDev("p2  x=" + pt[1].x + " y=" + pt[1].y);*/
         if (pt != null) {
             Point p = new Point((pt[0].getX() + pt[1].getX()) / 2, (pt[0].getY() + pt[1].getY()) / 2);
             int distance1 = (int)(new Point(x, y).distance(pt[0].getX(), pt[0].getY()));
@@ -696,22 +653,21 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent {
             } else {
                 indexCon = 1;
             }
+            //TraceManager.addDev("tgcpoint of connector added at index " + index + " indexCon=" + indexCon);
 
-            ELNMidPortTerminal t = new ELNMidPortTerminal(p.x, p.y, minX, maxX, minY, maxY, false, this, tdp);
+            TGCPointOfConnector t = new TGCPointOfConnector(p.x, p.y, minX, maxX, minY, maxY, false, this, tdp);
             if (addInternalComponent(t, index) ) {
                 pointHasBeenAdded(t, index, indexCon);
+                //TraceManager.addDev("Return true");
                 return true;
             }
         }
+        //TraceManager.addDev("Return false");
         return false;
     }
-
-    private boolean addTGCPointOfConnector(int x, int y) {
-        //TraceManager.addDev("Adding point of connector at "+  x + "," + y);
+    
+    private boolean addELNMidPortTerminal(int x, int y) {
         CDElement [] pt = getPointedSegment(x, y);
-        /*TraceManager.addDev("Two pts");
-          TraceManager.addDev("p1  x=" + pt[0].x + " y=" + pt[0].y);
-          TraceManager.addDev("p2  x=" + pt[1].x + " y=" + pt[1].y);*/
         if (pt != null) {
             Point p = new Point((pt[0].getX() + pt[1].getX()) / 2, (pt[0].getY() + pt[1].getY()) / 2);
             int distance1 = (int)(new Point(x, y).distance(pt[0].getX(), pt[0].getY()));
@@ -724,16 +680,13 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent {
             } else {
                 indexCon = 1;
             }
-            //TraceManager.addDev("tgcpoint of connector added at index " + index + " indexCon=" + indexCon);
 
-            TGCPointOfConnector t = new TGCPointOfConnector(p.x, p.y, minX, maxX, minY, maxY, false, this, tdp);
+            ELNMidPortTerminal t = new ELNMidPortTerminal(p.x, p.y, minX, maxX, minY, maxY, false, this, tdp);
             if (addInternalComponent(t, index) ) {
                 pointHasBeenAdded(t, index, indexCon);
-                //TraceManager.addDev("Return true");
                 return true;
             }
         }
-        //TraceManager.addDev("Return false");
         return false;
     }
 
@@ -812,9 +765,9 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent {
     public StringBuffer translatePoints() {
         StringBuffer sb = new StringBuffer();
         for(int i=0; i<getIndexOfLastTGCPointOfConnector()+1; i++) {
-        	if (tgcomponent[i] instanceof TGCPointOfConnector || tgcomponent[i] instanceof ELNMidPortTerminal) {
-        		sb.append("<Point x=\"" + tgcomponent[i].getX() + "\" y=\"" + tgcomponent[i].getY() + "\" type=\"" + tgcomponent[i].getType() + "\" />\n");
-        	}
+            if (tgcomponent[i] instanceof TGCPointOfConnector) {
+                sb.append("<Point x=\"" + tgcomponent[i].getX() + "\" y=\"" + tgcomponent[i].getY() + "\" />\n");
+            }
         }
         return sb;
     }
-- 
GitLab