- Pods
- Quick Flux 0.0.8
- API
- IconSrc
- Src
sourceafQuickFlux::IconSrc.fan
using afConcurrent
using gfx::Image
using afIoc::RegistryShutdownHub
const class IconSrc {
private const AtomicMap images := AtomicMap()
new make(RegistryShutdownHub shutdownHub) {
icons := this
shutdownHub.addRegistryShutdownListener("disposeIcons", [,]) |->| {
images.vals.each { it->dispose }
images.clear
}
}
@Operator
Image? get(Uri? icoUri) {
if (icoUri == null)
return null
return images.getOrAdd(icoUri) {
Image(icoUri)
}
}
}