Как использовать GXT Button.setIcon / AbstractImagePrototype

Я пытаюсь расширить AbstractImagePrototype, как показано ниже:

открытый класс DynamicImagePrototype расширяет AbstractImagePrototype { private String imagePath = null;

public DynamicImagePrototype (String imagePath) {
    this.imagePath = imagePath;
}

@Override
public void applyTo(Image image) 
{

}

@Override
public Image createImage() {
    // TODO Auto-generated method stub
    Image image = new Image(imagePath);

    return image;
}

@Override
public String getHTML() {
    return null;
}

}

Я использовал его, как показано ниже:

item = new Button() DynamicImagePrototype image = new DynamicImagePrototype("C:/temp/icons/reporting.gif"); элемент.setIcon (изображение);

Однако это вызывает исключение.

Моя цель состоит в том, что, учитывая имя файла изображения, я хочу вернуть AbstractImagePrototype, чтобы я мог перейти к Button.setIcon();

Большое спасибо за помощь!


gxt
person Peter    schedule 06.07.2011    source источник
comment
Если просто установить значок на кнопку, используйте IconHelper.create() нет необходимости реализовывать свою собственную версию ... есть ли какие-либо другие требования, которые отсутствуют?   -  person AbstractChaos    schedule 07.07.2011


Ответы (2)


Ваш класс должен быть таким:

public interface ReefDesktopIconShortcuts extends ClientBundle {

public static final ReefDesktopIconShortcuts INSTANCE = (ReefDesktopIconShortcuts) GWT.create(ReefDesktopIconShortcuts.class);

public ImageResource anImage();
}

Просто вызовите эту строку:

yourBtn.setIcon(AbstractImagePrototype.create(ReefDesktopIconShortcuts.INSTANCE.anImage()));
person Luis Branco    schedule 18.05.2012

До сих пор я не нашел ответа для динамического получения AbstractImagePrototype. Я должен использовать статическую отложенную привязку, как показано ниже:

public interface ReefDesktopIconsShortcuts
extends ImageBundle
{
   AbstractImagePrototype anImage();
}

В каталоге, где находится этот интерфейс, у меня есть изображение с именем «anImage.gif».

Ваше здоровье.

person Peter    schedule 15.07.2011