Images werden in jowidgets mit Hilfe einer Image Konstante auf
einem Widget gesetzt. Die Schnittstelle
IImageConstant
ist die Basisschnittstelle für
alle Image Konstanten. Sie hat selbst keine Methoden. [20]
Eine Image Konstante muss über die Image Registry verfügbar sein, um verwendet werden zu können. Dies ist der Fall, wenn:
Für die Image Konstante explizit ein Image Handle in der Image Registry registriert wurde.
Sie ein selbstbeschreibender ImageProvider ist.
Sie implizit von der Image Factory beim Erzeugen eines Images registriert wurde.
Die folgenden Beispiele demonstriert die Verwendung vom Image Konstanten, welche durch Enums definiert sind:
label.setIcon(IconsSmall.OK); button.setIcon(SilkIcons.HELP); tabItem.setIcon(SilkIcons.APPLICATION); actionBuilder.setIcon(IconsSmall.DISK);
Ein expliziter Zugriff auf die Image Registry ist bei der Verwendung nicht notwendig. Die Adapter Klassen der jeweiligen SPI Implementierung verwenden die Konstante, um aus der Image Registry das registrierte Image Handle zu erhalten.
Wenn eine Image Konstante die Schnittstelle
ICacheable
implementiert, wird diese aus
der Image Registry entfernt und das zugehörige
Image Handle disposed,
sobald auf dem ICacheable
die Methode:
void release();
aufgerufen wird. Das sollte jedoch nur dann gemacht werden, wenn man sich sicher ist, dass die Konstante aktuell nicht verwendet wird. Das Disposen von nativen Images, welche in Verwendung sind, kann andernfalls zu Fehlern führen.
[20]
Die Schnittstelle sollte treffender
IImageKey
heißen. Aufrund der zahlreichen
Verwendung von Images in abgeleiteten Projekten wurde bisher
jedoch von einem Refactoring abgesehen.