Вопрос о smartgwt setIcon (String url) - PullRequest
       14

Вопрос о smartgwt setIcon (String url)

0 голосов
/ 22 ноября 2010

У меня есть значки изображений в том же каталоге в моем проекте, что и исходный файл. Из исходного файла я вызываю button.setIcon ("image.png") или button.setIcon ("/ image.png") или button.setIcon ("full / path / to / image.png"), но это не показать мое изображение. Мой вопрос: как Smart Gwt разрешает пути URL для изображений? Я посмотрел на документацию, и это не ясно. Может кто-нибудь помочь с этим? Спасибо.

Ответы [ 3 ]

3 голосов
/ 23 ноября 2010

Я успешно использую следующую процедуру для получения изображений с работающим SmartGWT.

На том же уровне, что и пакет client вашего модуля GWT, я создаю папку с именем public. (В Eclipse вы не можете создать пакет с именем public, поскольку это недопустимое имя пакета. Вы должны явно создать его как папку.) Этот каталог с именем public обрабатывается GWT специально. Компилятор GWT копирует все включенное содержимое в результирующий каталог основного модуля. Поэтому я обычно создаю подкаталог images в public и помещаю туда все изображения, принадлежащие моему модулю GWT.

Например:

com/stuff
    client
        Main.java
        ...
    public
        images
            a.png
            b.png
    mainmodule.gwt.xml

Затем в самом начале точки входа я говорю SmartGWT посмотреть на подкаталог images для изображений (в данном примере это mainmodule имя моего основного модуля GWT):

public void onModuleLoad() {
    Page.setAppImgDir("[APP]/mainmodule/images/");
    ...
}

Часть пути [APP] имеет специальный синтаксис SmartGWT.

Позже я могу создать IButton следующим образом:

final IButton aBtn = new IButton("A Button");
aBtn.setIcon("a.png");

Иногда необходимо создать URL-адрес изображения не для SmartGWT, а для простого GWT или простого HTML. Для этих случаев вы можете создать URL с

final String bUrl = GWT.getModuleBaseURL() + "images/b.png";
2 голосов
/ 08 июня 2011

Иногда вы также можете повторно использовать существующие значки из темы. Чтобы использовать их, попробуйте путь [SKIN]/{ComponentName}/image.png где {ComponentName} - это одна из существующих папок в вашей теме или стандартной теме.

* * 1004 пример: * * 1005
node.setIcon("[SKIN]/TreeGrid/folder_open.png");
0 голосов
/ 12 декабря 2015

Я помог таким образом.

  1. Попробуйте скомпилировать свой проект.
  2. Найдите папку в вашем проекте WAR: load-skin.js
  3. Добавьте путь в ModuleName.html к нему после:

<script>
     var isomorphicDir = "ModuleName/sc/";
</script>

Например, для моего проекта

<!--load skin-->
<script src="/ModuleName/sc/skins/Enterprise/load_skin.js"/>
...