!7 // TODO: update when image changes sclass ImagePreview extends DynSCP { new DynModuleRef mate; JComponent visualize2() { Image image = getImage(); if (image == null) ret jcenteredlabel("Need image"); ret jimage(image); } Image getImage() { ret castCall(mate!, 'getImage); } void update { lock lock; if (mate! != null && !dm_moduleStillThere(mate!)) mate.set(null); if (mate! == null) if (setField(mate := DynModuleRef(dm_findMateOfType(this, 'ImageInfo)))) revisualize2(); } }