3.14.3. Image Descriptor

Mit Hilfe eines Image Descriptor kann ein Image Handle erzeugt werden. Normalerweise registriert man in der Image Registry nicht direkt ein Image Handle, sondern verwendet für die Registrierung zum Beispiel einen Image Descriptor. Derzeit werden zwei Descriptor Typen unterstützt, IUrlImageDescriptor und IStreamFactoryImageDescriptor. [21]

Url Image Descriptor

Die Schnittstelle IUrlImageDescriptor hat die folgende Methode:

    URL getImageUrl();

Diese liefert die URL, über welche man das Image einlesen kann. Die Methode darf nicht null zurückgeben. Die Klasse UrlImageDescriptor liefert eine Implementierung der Schnittstelle IUrlImageDescriptor.

Das folgende Beispiel zeigt eine Methode, welche eine Image Konstante mit Hilfe eines UrlImageDescriptor in der Image Registry registriert:

  1      final void registerImage(final IImageConstant imageConstant, final String relativePath) {
  2          final String path = rootPath + relativePath;
  3          final URL url = getClass().getClassLoader().getResource(path);
  4          final IImageDescriptor descriptor = new UrlImageDescriptor(url);
  5          Toolkit.getImageRegistry().registerImageConstant(imageConstant, descriptor);
  6      }
Stream Factory Image Descriptor

Die Schnittstelle IStreamFactoryImageDescriptor hat die folgende Methode:

    InputStream createInputStream();

Der Input Stream wird genau dann erzeugt, wenn ein natives Image benötigt wird. Jeder Aufruf muss einen neuen Input Stream liefern, der insbesondere nicht null sein darf. Der Stream wird vom Aufrufer der Methode geschlossen (close()), wenn er nicht mehr benötigt wird.



[21] Die Schnittstelle IStreamImageDescriptor wird auch unterstützt, ist aber wegen des missverständlichen Methodennamens getInputStream() deprecated und soll langfristig entfernt werden.


Siehe auch PDF Version dieses Dokuments, Jowidgets API Spezifikation