Sonntag, 15. Mai 2011

Eclipse RCP - Bild laden

Angenommen das Bild java.png befindet sich im Verzeichnis pluginprojekt/icons. Das Verzeichniss pluginprojekt ist dabei das Projektverzeichniss. Um dieses Bild in einem org.eclipse.swt.graphics.Image Objekt zu erzeugen werden fogende Zeilen Code benötigt:


import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
import org.osgi.framework.Bundle;

// ... 

Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID); 
ImageDescriptor imgDescr = ImageDescriptor.createFromURL(
    FileLocator.find(bundle,new Path("icons/java.png"),null)); 
Image img = imgDescr.createImage();


Die Activator.PLUGIN_ID ist die ID des Plugins. Die Klasse Activator wudre mit der Erzeugung des Mail Template erzeugt.

Dies ist eine einfach Lösung, bei der das Bild in den Speicher geladen wird. Prinzipiell sollen die Bilder in einer Anwendung verwaltet werden. Ein Hands-On Tutoiral wie Bilder mit der ImageRegistry geladen und angezeigt werden können findet ihr im Posting Eclipse RCP - Bilder für Fortgeschrittene.

Eclipse - Debugger hält nicht an

Was machen wenn der verflixte Debuger nicht anhält und Breakpoints überspringt. Das Motto ist wie immer: "Einfach wenn man es kennt!"
Hier zwei Tips zu möglichen Ursachen:
Zu aller erst ist es wichtig wie der Breakpoint angezeigt wird. 

Ist es ein blauer durchgestrichener Punkt, dann sind alle Breakpoints deaktiviert. Diese können in der Debug Perspective wieder aktiviert werden. In der Debug Perspective befindet sich die View Breakpoints. Dort muss der Button mit diesem einem Zeichen (durchgestrichener Punkt) deaktiviert werden und schon sind die Breakpoints aktiv. 

Ist der Breakpoint hingegen ein weißer punkt, dann ist er deaktiviert. Um diesen Breakpoint zu aktivieren muss in der Debug Perspective in der Breakpoint View dieser Breakpoint aktiviert werden. Dazu muss in der Breakpoint View, in der Zeile mit dem Breakpoint, ein Häckchen gesetzt werden.