override fun executeInEDT()

in robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt [272:288]


            override fun executeInEDT(): Result<ByteArray> {
                val componentContext =
                    componentContextCache[componentId] ?: throw IllegalStateException("Unknown component id $componentId")
                return getResult(componentContext) {
                    val component = componentContext.component
                    val capturedImage = BufferedImage(
                        component.bounds.width,
                        component.bounds.height,
                        BufferedImage.TYPE_INT_ARGB
                    )
                    component.paint(capturedImage.graphics)
                    return@getResult ByteArrayOutputStream().use { b ->
                        ImageIO.write(capturedImage, "png", b)
                        b.toByteArray()
                    }
                }
            }