code/richediting/src/main/kotlin/org/fbme/ide/richediting/adapters/fbnetwork/BrokenPortController.kt [22:82]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - private val myOpposite: FunctionBlockPortView = myView.opposite override fun getPortCoordinates(port: NetworkPortView, position: Point): Point { assertSelf(port) return getCoordinates(position) } override fun getPortBounds(port: NetworkPortView, position: Point): Rectangle { assertSelf(port) return getBounds(position) } override fun getCoordinates(position: Point): Point { val oppositePortCoordinates = myComponentController.getPortCoordinates(myOpposite, position) return Point(oppositePortCoordinates.x - OPPOSITE_PORT_PADDING, oppositePortCoordinates.y) } override fun getBounds(position: Point): Rectangle { val oppositePortCoordinates = myComponentController.getPortCoordinates(myOpposite, position) val anchor = Point( oppositePortCoordinates.x - OPPOSITE_PORT_PADDING - 2 * INNER_BORDER_PADDING - componentCell.width, oppositePortCoordinates.y - componentCell.height / 2 ) return Rectangle(anchor, dimension) } override fun isSource(port: NetworkPortView): Boolean { return true } private fun assertSelf(port: NetworkPortView) { require(port == myView) { "invalid port" } } override fun updateCellWithForm(form: Point) { val oppositePortCoordinates = myComponentController.getPortCoordinates(myOpposite, form) componentCell.moveTo( oppositePortCoordinates.x - OPPOSITE_PORT_PADDING - INNER_BORDER_PADDING - componentCell.width, oppositePortCoordinates.y - componentCell.height / 2 ) componentCell.relayout() } override fun updateCellSelection(selected: Boolean) { // do nothing } override fun paintTrace(g: Graphics, form: Point) { // do nothing } private val dimension: Dimension get() = Dimension(2 * INNER_BORDER_PADDING + componentCell.width, componentCell.height) override fun canBeSourcedAt(port: NetworkPortView, position: Point): Boolean { return false } companion object { const val OPPOSITE_PORT_PADDING = 20 const val INNER_BORDER_PADDING = 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - code/richediting/src/main/kotlin/org/fbme/ide/richediting/adapters/fbnetwork/InlineValueController.kt [21:81]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - private val myOpposite: FunctionBlockPortView = myView.opposite override fun getPortCoordinates(port: NetworkPortView, position: Point): Point { assertSelf(port) return getCoordinates(position) } override fun getPortBounds(port: NetworkPortView, position: Point): Rectangle { assertSelf(port) return getBounds(position) } override fun getCoordinates(position: Point): Point { val oppositePortCoordinates = myComponentController.getPortCoordinates(myOpposite, position) return Point(oppositePortCoordinates.x - OPPOSITE_PORT_PADDING, oppositePortCoordinates.y) } override fun getBounds(position: Point): Rectangle { val oppositePortCoordinates = myComponentController.getPortCoordinates(myOpposite, position) val anchor = Point( oppositePortCoordinates.x - OPPOSITE_PORT_PADDING - 2 * INNER_BORDER_PADDING - componentCell.width, oppositePortCoordinates.y - componentCell.height / 2 ) return Rectangle(anchor, dimension) } override fun isSource(port: NetworkPortView): Boolean { return true } private fun assertSelf(port: NetworkPortView) { require(port == myView) { "invalid port" } } override fun updateCellWithForm(form: Point) { val oppositePortCoordinates = myComponentController.getPortCoordinates(myOpposite, form) componentCell.moveTo( oppositePortCoordinates.x - OPPOSITE_PORT_PADDING - INNER_BORDER_PADDING - componentCell.width, oppositePortCoordinates.y - componentCell.height / 2 ) componentCell.relayout() } override fun updateCellSelection(selected: Boolean) { // do nothing } override fun paintTrace(g: Graphics, form: Point) { // do nothing } private val dimension: Dimension get() = Dimension(2 * INNER_BORDER_PADDING + componentCell.width, componentCell.height) override fun canBeSourcedAt(port: NetworkPortView, position: Point): Boolean { return false } companion object { const val OPPOSITE_PORT_PADDING = 20 const val INNER_BORDER_PADDING = 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -