srecord noeq G22RegionPanel(IImageRegion region) > MetaWithChangeListeners is Swingable { settable transient G22Utils g22utils; settable BufferedImage originalImage; settableWithVar bool showOriginalColors = true; transient ImageSurface is; cachedVisualize { is = g22utils.stdImageSurface(); varShowOriginalColors().onChangeAndNow(l0 updateImage); ret northAndCenterWithMargins( jcenteredline(liveValueCheckBox(varShowOriginalColors(), "Show original colors")), g22utils.wrap(is)); } void updateImage { if (showOriginalColors) is.setImage(new CutOutRegionFromImage(region) .margin(10).fullImage(originalImage)!); else is.setImage(regionToBinaryImage(region)); } }