Class ImageLoader

java.lang.Object
com.biglybt.ui.swt.imageloader.ImageLoader
All Implemented Interfaces:
AEDiagnosticsEvidenceGenerator

public class ImageLoader extends Object implements 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

  • Field Details

  • Constructor Details

    • ImageLoader

      public ImageLoader(org.eclipse.swt.widgets.Display display, SkinProperties skinProperties)
  • Method Details

    • getInstance

      public static ImageLoader getInstance()
    • disposeInstance

      public static void disposeInstance()
    • dispose

      public void dispose()
    • findResources

      private org.eclipse.swt.graphics.Image[] findResources(String sKey)
    • 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

      private ImageLoaderRefInfo getRefInfoFromImageMap(String key)
    • putRefInfoToImageMap

      private void putRefInfoToImageMap(String key, ImageLoaderRefInfo info)
    • putIfAbsentRefInfoToImageMap

      private ImageLoaderRefInfo putIfAbsentRefInfoToImageMap(String key, ImageLoaderRefInfo info)
    • getImageFromMap

      protected org.eclipse.swt.graphics.Image getImageFromMap(String sKey)
    • getImagesFromMap

      protected org.eclipse.swt.graphics.Image[] getImagesFromMap(String sKey)
    • getImages

      public org.eclipse.swt.graphics.Image[] getImages(String sKey)
    • getImage

      public org.eclipse.swt.graphics.Image getImage(String sKey)
    • getImageSupport

      private org.eclipse.swt.graphics.Image getImageSupport(String sKey)
    • releaseImage

      public long releaseImage(String sKey)
    • addImage

      public void addImage(String key, org.eclipse.swt.graphics.Image image)
      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

      public void addImage(String key, org.eclipse.swt.graphics.Image[] images)
    • logRefCount

      private void logRefCount(String key, ImageLoaderRefInfo info, boolean inc)
    • addImageNoDipose

      public void addImageNoDipose(String key, org.eclipse.swt.graphics.Image image)
    • getNoImage

      public static org.eclipse.swt.graphics.Image getNoImage()
    • getNoImage

      private static org.eclipse.swt.graphics.Image getNoImage(String key)
    • getNullImage

      private org.eclipse.swt.graphics.Image getNullImage()
    • imageExists

      public boolean imageExists(String name)
    • imageAdded_NoSWT

      public org.eclipse.swt.graphics.Image[] imageAdded_NoSWT(String name)
    • imageAdded

      public boolean imageAdded(String name)
    • isRealImage

      public static boolean isRealImage(org.eclipse.swt.graphics.Image image)
    • getAnimationDelay

      public int getAnimationDelay(String sKey)
    • 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 an Image from an url. URL will be the key, which you can use later to releaseImage(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 purposes
      maxSize - non-null -> image will be resized if required
      l -
      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

      public InputStream getImageStream(String sKey)
    • generate

      public void generate(IndentWriter writer)
      Specified by:
      generate in interface AEDiagnosticsEvidenceGenerator
    • writeEvidenceLine

      private void writeEvidenceLine(IndentWriter writer, String key, ImageLoaderRefInfo info, long[] totalSizeEstimate, long[] sizeCouldBeFree)
      Parameters:
      writer -
      info -
    • addSkinProperties

      public void addSkinProperties(SkinProperties skinProperties)
    • collectGarbage

      public boolean collectGarbage()
      Since:
      4.0.0.5
    • setLabelImage

      public void setLabelImage(org.eclipse.swt.widgets.Label label, String key)
      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

      public void setBackgroundImage(org.eclipse.swt.widgets.Control control, String key)
    • getSkinProperties

      public SkinProperties[] getSkinProperties()
    • findImageID

      public String findImageID(org.eclipse.swt.graphics.Image imageToFind)
    • findWidgetWithDisposedImage

      public static Object[] findWidgetWithDisposedImage(org.eclipse.swt.widgets.Composite c)
    • getBadDisposalDetails

      public static String getBadDisposalDetails(Throwable e, org.eclipse.swt.widgets.Composite startAt)