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 File
private static final boolean
private static final boolean
private int
private org.eclipse.swt.widgets.Display
private static final int
private static ImageLoader
static org.eclipse.swt.graphics.Image
static org.eclipse.swt.graphics.Image
private final TimerEventPeriodic
private CopyOnWriteArrayList
<SkinProperties> private final String[]
-
Constructor Summary
ConstructorsConstructorDescriptionImageLoader
(org.eclipse.swt.widgets.Display display, SkinProperties skinProperties) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds image to repository.void
void
addImageNoDipose
(String key, org.eclipse.swt.graphics.Image image) void
addSkinProperties
(SkinProperties skinProperties) boolean
void
dispose()
static void
private org.eclipse.swt.graphics.Image
fadeImage
(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) void
generate
(IndentWriter writer) int
getAnimationDelay
(String sKey) static String
getBadDisposalDetails
(Throwable e, org.eclipse.swt.widgets.Composite startAt) void
getFileImage
(File file, org.eclipse.swt.graphics.Point maxSize, ImageLoader.ImageDownloaderListener l) org.eclipse.swt.graphics.Image
protected org.eclipse.swt.graphics.Image
getImageFromMap
(String sKey) org.eclipse.swt.graphics.Image[]
protected org.eclipse.swt.graphics.Image[]
getImagesFromMap
(String sKey) getImageStream
(String sKey) private org.eclipse.swt.graphics.Image
getImageSupport
(String sKey) static ImageLoader
static org.eclipse.swt.graphics.Image
private static org.eclipse.swt.graphics.Image
getNoImage
(String key) private org.eclipse.swt.graphics.Image
private ImageLoaderRefInfo
void
void
getUrlImage
(String url, org.eclipse.swt.graphics.Point maxSize, ImageLoader.ImageDownloaderListener l) Get anImage
from an url.private void
getUrlImageSupport
(String url, String baseImageKey, org.eclipse.swt.graphics.Point maxSize, ImageLoader.ImageDownloaderListener l) boolean
imageAdded
(String name) org.eclipse.swt.graphics.Image[]
imageAdded_NoSWT
(String name) boolean
imageExists
(String name) static boolean
isRealImage
(org.eclipse.swt.graphics.Image image) private org.eclipse.swt.graphics.Image
loadImage
(org.eclipse.swt.widgets.Display display, ClassLoader cl, String res, String sKey) private void
logRefCount
(String key, ImageLoaderRefInfo info, boolean inc) private org.eclipse.swt.graphics.Image[]
parseValuesString
(ClassLoader cl, String sKey, String[] values, String suffix) private ImageLoaderRefInfo
putIfAbsentRefInfoToImageMap
(String key, ImageLoaderRefInfo info) private void
putRefInfoToImageMap
(String key, ImageLoaderRefInfo info) long
releaseImage
(String sKey) org.eclipse.swt.graphics.Image
resizeImageIfLarger
(org.eclipse.swt.graphics.Image image, org.eclipse.swt.graphics.Point maxSize) void
setBackgroundImage
(org.eclipse.swt.widgets.Control control, String key) org.eclipse.swt.graphics.Image
setButtonImage
(org.eclipse.swt.widgets.Button btn, String key) void
setLabelImage
(org.eclipse.swt.widgets.Label label, String key) org.eclipse.swt.graphics.Image
setToolItemImage
(org.eclipse.swt.widgets.ToolItem btn, String key) void
private void
writeEvidenceLine
(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 anImage
from 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:
generate
in 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
-