getImage labelprovider не вызывается в ListViewer - PullRequest
3 голосов
/ 15 июня 2011

У меня есть ListViewer с пользовательским LabelProvider.Часть getText работает нормально, но метод getImage LabelProvider никогда не вызывается.

Я также пытался использовать DecoratedLabelProvider, но это тоже не сработало.

class RadioLabelProvider extends LabelProvider{

    Display d;
    public RadioLabelProvider(Display d)
    {
        this.d = d;
    }

    @Override
    public Image getImage(Object element)
    {
        Image image = d.getSystemImage(SWT.ICON_INFORMATION);
        return image;
    }

    @Override
    public String getText(Object element)
    {
        RadioElement re = (RadioElement) element;
        return re.getIP();
    }
}

Использование:

availableDevicesList = new ListViewer(this, SWT.SINGLE | SWT.BORDER);
availableDevicesList.setContentProvider(new ArrayContentProvider());
availableDevicesList.setLabelProvider(new RadioLabelProvider(getDisplay()));
availableDevicesList.setInput(devices);

Что я делаю не так?Или ListViewer не поддерживает изображения?Спасибо

Ответы [ 2 ]

3 голосов
/ 30 июня 2011

В комментарии к заголовку исходного кода JFace класса ListViewer вы обнаружите, что ListViewer является

Конкретным средством просмотра на основе элемента управления SWT List.

и

Обратите внимание, что элемент управления SWT List поддерживает только отображение строк, , а не значков.Если вам нужно показать значки для предметов, используйте TableViewer.

3 голосов
/ 16 июня 2011

Я обнаружил, что в ListViewers getImage действительно не будет вызываться.

Вместо этого я использовал TableViewer с одним столбцом. Также работает DecoratingLableProvider, поэтому я могу установить изображение в зависимости от состояния объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...