override fun setPath()

in code/richediting/src/main/kotlin/org/fbme/ide/richediting/adapters/fbnetwork/FBConnectionPathSynchronizer.kt [266:296]


    override fun setPath(connection: NetworkConnectionView, path: FBConnectionPath) {
        val sourcePosition = path.sourcePosition
        val targetPosition = path.targetPosition

        val fbConnectionPathWithoutOffset = getFBConnectionPathWithoutOffset(connection, path)

        val modelSourcePosition = Point(
            (viewpoint.translateFromEditorX(sourcePosition.x) / scale).toInt(),
            (viewpoint.translateFromEditorY(sourcePosition.y) / scale).toInt()
        )
        val modelTargetPosition = Point(
            (viewpoint.translateFromEditorX(targetPosition.x) / scale).toInt(),
            (viewpoint.translateFromEditorY(targetPosition.y) / scale).toInt()
        )
        val bendPoints = FBConnectionController.deepCopy(fbConnectionPathWithoutOffset.bendPoints)
        val newBendPoints = bendPoints.map { point ->
            val x = (viewpoint.translateFromEditorX(point.x) / scale).toInt()
            val y = (viewpoint.translateFromEditorY(point.y) / scale).toInt()
            Point(x, y)
        }.toMutableList()
        val fbConnectionPath = FBConnectionPath(modelSourcePosition, modelTargetPosition, newBendPoints)

        val dx1 = fbConnectionPath.x1 - modelSourcePosition.x
        val dy = fbConnectionPath.y - modelSourcePosition.y
        val dx2 = modelTargetPosition.x - fbConnectionPath.x2
        if (path.pathKind == ConnectionPath.Kind.MoreThanFour) {
            connection.setPath(LongConnectionPath(dx1, dy, dx2, fbConnectionPath.bendPoints))
        } else {
            connection.setPath(ConnectionPath(fbConnectionPath.pathKind, dx1, dy, dx2))
        }
    }