Как да използвате 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;
}

}

Използвах го както по-долу:

елемент = нов бутон() DynamicImagePrototype изображение = нов DynamicImagePrototype("C:/temp/icons/reporting.gif"); item.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