2012-04-09 7 views
3

Ich möchte Bilder zu den Elementen in einer Liste in Eclipse RCP hinzufügen. Ich biete einen benutzerdefinierten LabelProvider, die wie folgt aussieht:Eclipse RCP: Bild zur Liste hinzufügen

package com.puresol; 

import org.eclipse.jface.viewers.LabelProvider; 
import org.eclipse.swt.graphics.Image; 
import org.eclipse.ui.ISharedImages; 
import org.eclipse.ui.PlatformUI; 

public class MyListLabelProvider extends LabelProvider { 

    private final Image folderImage = PlatformUI.getWorkbench() 
     .getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER); 

    @Override 
    public void dispose() { 
     folderImage.dispose(); 
    } 

    @Override 
    public String getText(Object element) { 
     return element.toString(); 
    } 

    @Override 
     public Image getImage(Object element) { 
     return folderImage; 
    } 
} 

ich diesen Label-Anbieter hinzufügen von:

listViewer.setLabelProvider(new MyListLabelProvider()); 

mir den richtigen Text bekommen, aber kein Bild. Ich bin sicher, dass mein Label-Provider aufgrund des Debuggens des Codes verwendet wird und ich auch den mitgelieferten Etikettentext ändern kann. Ich sehe nur kein Bild. Das Bild ist geladen und nicht null.

Was muss ich einschalten, damit das Etikett angezeigt wird? Was vermisse ich hier?

Antwort

1

Ich bin mir nicht sicher, ob die ListViewer Bilder anzeigen kann. Versuchen Sie, zu einer einspaltigen TableViewer wechseln und sehen, ob das hilft.

+0

Ja, tatsächlich hilft es. Warum sollte der ListViewer keine Bilder anzeigen können? Gibt es dafür einen praktischen Grund? Ich habe List zu Table und ListViewer zu TableViewer geändert. Alles andere ist gleich geblieben ... –

+0

Der 'ListViewer' ist recht eingeschränkt in seiner Funktionalität. Ich denke, es kann sein, weil es mehr native Widgets aus dem Betriebssystem verwendet, während der 'TableViewer' (oder ich' Table' eher) eine vollständigere Reimplementierung ist. Aber das ist nur meine Theorie ... – Krumelur