# ISharedImages übersicht



## Nud3l (22. Jul 2009)

Hallo 

ich bin auf der suche nach einer Übersicht wo ich alle Icons mit Namen vom ISharedImages Interface bekomme. Irgendwie finde ich nicht die richtige Icons ... 

Zum Beispiel wie bekomme ich das import_wiz.gif .. das Icon finde ich zum Beispiel nicht

Ich bin schon am Überlegen ob ich nicht einfach den Bundles Ordner in mein Workspace reinpacke und dort die teile importiere nur wäre es mit Sicherheit geschickter sie direkt zu benutzen..

MFG


----------



## Wildcard (22. Jul 2009)

Die meisten images sind nicht in den Shared Images (das sind nur wenige). Es gab mal eine Eclipse Icon Sammlung die aber leider down ist. Siehe hier wie man Icons direkt aus dem CVS pulled:
Eclipse-Icons - Nur Scheuer Blog


----------



## Nud3l (23. Jul 2009)

Jetzt habe ich ein Problem mit der Verfügbarkeit der Icon im exportierten Plugin 

In der Testumgebung klappt es nur eben nicht wenn ich das Plugin exportiere


```
private URL makeImageURL(String prefix, String name) {
    Bundle bundle = Platform.getBundle("myOcitSimulation");
    String location = bundle.getLocation();

    location = location.substring(location.indexOf(":") + 1, location.length());

    URL url = null;
    try {
        url = new URL(location + prefix + name);
    }
    catch (MalformedURLException e) {
        return null;
    }
    return url;
}
```

ich weiß das in dieser Funktion der Fehler liegt

Durch Ausgaben habe ich heraus gefunden das beim Testen den Kompletten Pfad bekomme und beim exportierten ist der Startpunkt der Eclipse Ordner...

nur weiß ich nicht wie ich das umgehe.

Die andere Möglichkeit ist das das Bild nicht wie vorher im Icon Ordner zu finden ist. Auf Jedenfall ist das Bild in der Jar Datei, das habe ich schon überprüft


----------



## Wildcard (23. Jul 2009)

Solche URLs baut man sich nicht selbst. Zu umständlich und fehleranfällig.
Am einfachsten geht es über die statische Methode AbstractUIPlugIn.getImageDescriptorFromPlugin
Oder mit dem FileLocator.


----------



## Nud3l (24. Jul 2009)

Oh danke für den Tip mit dem AbstractUIPlugIn

Irgenwie fehlt mir immer ein Ansatz, naja ist schließlich mein erstes Plugin ich denke das es beim 2. besser wird.

ich habe es jetzt wie folgend gemacht:

in der Activator habe ich die funktion initializeImageRegistry erweitert

```
protected void initializeImageRegistry(ImageRegistry registry) {
    super.initializeImageRegistry(registry);
    Bundle bundle = Platform.getBundle(PLUGIN_ID);

    ImageDescriptor myImage = ImageDescriptor.createFromURL(FileLocator.find(bundle, new Path("icons/export_wiz.gif"), null));
    registry.put(MY_IMAGE_ID, myImage);
  }
```

jetzt kann ich mit 


```
AbstractUIPlugin plugin = Activator.getDefault();
    ImageRegistry imageRegistry = plugin.getImageRegistry();
    Image myImage = imageRegistry.get(Activator.MY_IMAGE_ID);
    ImageDescriptor image = ImageDescriptor.createFromImage(myImage);
    projektanlegenaction.setImageDescriptor(image);
```

auf jedes Icon oder Image zugreifen was ich vorher im Activator registriere. 

Ich hoffe das es der richtig Weg ist


----------

