Package com.biglybt.ui.swt.imageloader
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) org.eclipse.swt.graphics.ImagegetFileImage(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 ImageLoaderRefInfoorg.eclipse.swt.graphics.Imageorg.eclipse.swt.graphics.ImagegetUrlImage(String url, org.eclipse.swt.graphics.Point maxSize, ImageLoader.ImageDownloaderListener l) Get anImagefrom an url.private org.eclipse.swt.graphics.ImagegetUrlImageSupport(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
public org.eclipse.swt.graphics.Image getUrlImage(String url, ImageLoader.ImageDownloaderListener l) -
getUrlImage
public org.eclipse.swt.graphics.Image 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 org.eclipse.swt.graphics.Image getFileImage(File file, org.eclipse.swt.graphics.Point maxSize, ImageLoader.ImageDownloaderListener l) - Parameters:
file-lastModified- > 0 -> image key will include this for caching purposesmaxSize- non-null -> image will be resized if requiredl-- Returns:
-
getUrlImageSupport
private org.eclipse.swt.graphics.Image 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
-