ISharedImages übersicht

Status
Nicht offen für weitere Antworten.

Nud3l

Gesperrter Benutzer
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
 

Nud3l

Gesperrter Benutzer
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

Java:
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

Top Contributor
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

Gesperrter Benutzer
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
Java:
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

Java:
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
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
ARadauer ISharedImages Plattformprogrammierung 2

Ähnliche Java Themen


Oben