Class ImageLoader
java.lang.Object
com.biglybt.ui.swt.imageloader.ImageLoader
- All Implemented Interfaces:
AEDiagnosticsEvidenceGenerator
Loads images from a skinProperty object.
Will look for special suffixes (over, down, disabled) and try to load resources using base key and suffix. ie. loadImage("foo-over") when foo=image.png, will load image-over.png
Will also create own disabled images if base image found and no disabled image found. Disabled opacity can be set via imageloader.disabled-opacity key
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ConcurrentHashMap<String, ImageLoaderRefInfo> private Fileprivate static final booleanprivate static final booleanprivate intprivate org.eclipse.swt.widgets.Displayprivate static final intprivate static ImageLoaderstatic org.eclipse.swt.graphics.Imagestatic org.eclipse.swt.graphics.Imageprivate final TimerEventPeriodicprivate CopyOnWriteArrayList<SkinProperties> private final String[] -
Constructor Summary
ConstructorsConstructorDescriptionImageLoader(org.eclipse.swt.widgets.Display display, SkinProperties skinProperties) -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds image to repository.voidvoidaddImageNoDipose(String key, org.eclipse.swt.graphics.Image image) voidaddSkinProperties(SkinProperties skinProperties) booleanvoiddispose()static voidprivate org.eclipse.swt.graphics.ImagefadeImage(org.eclipse.swt.graphics.Image imgToFade) findImageID(org.eclipse.swt.graphics.Image imageToFind) private org.eclipse.swt.graphics.Image[]findResources(String sKey) static Object[]findWidgetWithDisposedImage(org.eclipse.swt.widgets.Composite c) voidgenerate(IndentWriter writer) intgetAnimationDelay(String sKey) static StringgetBadDisposalDetails(Throwable e, org.eclipse.swt.widgets.Composite startAt) voidgetFileImage(File file, org.eclipse.swt.graphics.Point maxSize, ImageLoader.ImageDownloaderListener l) org.eclipse.swt.graphics.Imageprotected org.eclipse.swt.graphics.ImagegetImageFromMap(String sKey) org.eclipse.swt.graphics.Image[]protected org.eclipse.swt.graphics.Image[]getImagesFromMap(String sKey) getImageStream(String sKey) private org.eclipse.swt.graphics.ImagegetImageSupport(String sKey) static ImageLoaderstatic org.eclipse.swt.graphics.Imageprivate static org.eclipse.swt.graphics.ImagegetNoImage(String key) private org.eclipse.swt.graphics.Imageprivate ImageLoaderRefInfovoidvoidgetUrlImage(String url, org.eclipse.swt.graphics.Point maxSize, ImageLoader.ImageDownloaderListener l) Get anImagefrom an url.private voidgetUrlImageSupport(String url, String baseImageKey, org.eclipse.swt.graphics.Point maxSize, ImageLoader.ImageDownloaderListener l) booleanimageAdded(String name) org.eclipse.swt.graphics.Image[]imageAdded_NoSWT(String name) booleanimageExists(String name) static booleanisRealImage(org.eclipse.swt.graphics.Image image) private org.eclipse.swt.graphics.ImageloadImage(org.eclipse.swt.widgets.Display display, ClassLoader cl, String res, String sKey) private voidlogRefCount(String key, ImageLoaderRefInfo info, boolean inc) private org.eclipse.swt.graphics.Image[]parseValuesString(ClassLoader cl, String sKey, String[] values, String suffix) private ImageLoaderRefInfoputIfAbsentRefInfoToImageMap(String key, ImageLoaderRefInfo info) private voidputRefInfoToImageMap(String key, ImageLoaderRefInfo info) longreleaseImage(String sKey) org.eclipse.swt.graphics.ImageresizeImageIfLarger(org.eclipse.swt.graphics.Image image, org.eclipse.swt.graphics.Point maxSize) voidsetBackgroundImage(org.eclipse.swt.widgets.Control control, String key) org.eclipse.swt.graphics.ImagesetButtonImage(org.eclipse.swt.widgets.Button btn, String key) voidsetLabelImage(org.eclipse.swt.widgets.Label label, String key) org.eclipse.swt.graphics.ImagesetToolItemImage(org.eclipse.swt.widgets.ToolItem btn, String key) voidprivate voidwriteEvidenceLine(IndentWriter writer, String key, ImageLoaderRefInfo info, long[] totalSizeEstimate, long[] sizeCouldBeFree)
-
Field Details
-
instance
-
DEBUG_UNLOAD
private static final boolean DEBUG_UNLOAD- See Also:
-
DEBUG_REFCOUNT
private static final boolean DEBUG_REFCOUNT- See Also:
-
GC_INTERVAL
private static final int GC_INTERVAL- See Also:
-
sSuffixChecks
-
periodicEvent
-
display
private org.eclipse.swt.widgets.Display display -
noImage
public static org.eclipse.swt.graphics.Image noImage -
nullImage
public static org.eclipse.swt.graphics.Image nullImage -
_mapImages
-
notFound
-
skinProperties
-
disabledOpacity
private int disabledOpacity -
cached_resources
-
cache_dir
-
-
Constructor Details
-
ImageLoader
-
-
Method Details
-
getInstance
-
disposeInstance
public static void disposeInstance() -
dispose
public void dispose() -
findResources
-
parseValuesString
private org.eclipse.swt.graphics.Image[] parseValuesString(ClassLoader cl, String sKey, String[] values, String suffix) - Parameters:
values-suffix-- Returns:
- Since:
- 3.1.1.1
-
loadImage
private org.eclipse.swt.graphics.Image loadImage(org.eclipse.swt.widgets.Display display, ClassLoader cl, String res, String sKey) -
fadeImage
private org.eclipse.swt.graphics.Image fadeImage(org.eclipse.swt.graphics.Image imgToFade) -
unLoadImages
public void unLoadImages() -
getRefInfoFromImageMap
-
putRefInfoToImageMap
-
putIfAbsentRefInfoToImageMap
-
getImageFromMap
-
getImagesFromMap
-
getImages
-
getImage
-
getImageSupport
-
releaseImage
-
addImage
Adds image to repository. refcount will be 1, or if key already exists, refcount will increase.- Parameters:
key-image-- Since:
- 4.0.0.5
-
addImage
-
logRefCount
-
addImageNoDipose
-
getNoImage
public static org.eclipse.swt.graphics.Image getNoImage() -
getNoImage
-
getNullImage
private org.eclipse.swt.graphics.Image getNullImage() -
imageExists
-
imageAdded_NoSWT
-
imageAdded
-
isRealImage
public static boolean isRealImage(org.eclipse.swt.graphics.Image image) -
getAnimationDelay
-
getUrlImage
-
getUrlImage
public void getUrlImage(String url, org.eclipse.swt.graphics.Point maxSize, ImageLoader.ImageDownloaderListener l) Get anImagefrom an url. URL will be the key, which you can use later toreleaseImage(String) -
getFileImage
public void getFileImage(File file, org.eclipse.swt.graphics.Point maxSize, ImageLoader.ImageDownloaderListener l) - Parameters:
file-maxSize- non-null -> image will be resized if requiredl-lastModified- > 0 -> image key will include this for caching purposes
-
getUrlImageSupport
private void getUrlImageSupport(String url, String baseImageKey, org.eclipse.swt.graphics.Point maxSize, ImageLoader.ImageDownloaderListener l) -
resizeImageIfLarger
public org.eclipse.swt.graphics.Image resizeImageIfLarger(org.eclipse.swt.graphics.Image image, org.eclipse.swt.graphics.Point maxSize) -
getImageStream
-
generate
- Specified by:
generatein interfaceAEDiagnosticsEvidenceGenerator
-
writeEvidenceLine
private void writeEvidenceLine(IndentWriter writer, String key, ImageLoaderRefInfo info, long[] totalSizeEstimate, long[] sizeCouldBeFree) - Parameters:
writer-info-
-
addSkinProperties
-
collectGarbage
public boolean collectGarbage()- Since:
- 4.0.0.5
-
setLabelImage
- Parameters:
label-key-- Since:
- 4.0.0.5
-
setButtonImage
public org.eclipse.swt.graphics.Image setButtonImage(org.eclipse.swt.widgets.Button btn, String key) -
setToolItemImage
public org.eclipse.swt.graphics.Image setToolItemImage(org.eclipse.swt.widgets.ToolItem btn, String key) -
setBackgroundImage
-
getSkinProperties
-
findImageID
-
findWidgetWithDisposedImage
-
getBadDisposalDetails
-