diff --git a/src/main/java/ui/syscams/SysCAMSPortConnector.java b/src/main/java/ui/syscams/SysCAMSPortConnector.java index c31109b0af0b282a2a9501cc3ebf861625cdd509..5ab3af122240f3fbd17de0fb070a699e8d415517 100644 --- a/src/main/java/ui/syscams/SysCAMSPortConnector.java +++ b/src/main/java/ui/syscams/SysCAMSPortConnector.java @@ -42,9 +42,11 @@ import ui.*; import ui.util.IconManager; import java.awt.*; -import java.awt.geom.Line2D; +import java.awt.geom.Point2D; import java.util.Vector; +import myutil.GraphicLib; + /** * Class SysCAMSPortConnector * Connector used in SystemC-AMS Component task diagrams @@ -104,27 +106,10 @@ public class SysCAMSPortConnector extends TGConnector implements ScalableTGComp g.setFont(fold); } } - double phi = Math.toRadians(40); - int barb = 20; - int lineSize = 3; - - Point begin = new Point(x1, y1-(lineSize/3)); - Point end = new Point(x2, y2-(lineSize/3)); - - g.setStroke(new BasicStroke(lineSize - 1)); - g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - g.drawLine(begin.x, begin.y, end.x, end.y); - - double dy = end.y - begin.y; - double dx = end.x - begin.x; - double theta = Math.atan2(dy, dx); - double x, y, rho = theta + phi; - for (int j = 0; j < 2; j++) { - x = end.x - barb * Math.cos(rho); - y = end.y - barb * Math.sin(rho); - g.setStroke(new BasicStroke(lineSize - 1)); - g.draw(new Line2D.Double(end.x, end.y, x, y)); - rho = theta - phi; + if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) { + g.drawLine(x1, y1, x2, y2); + } else { + GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true); } return; } catch (Exception e) {