автоматические GWT ClientBundles на основе дисковых файлов - PullRequest
3 голосов
/ 09 октября 2010

В настоящее время я хорошо использую GWT ClientBundles в моем приложении.Он работает нормально, но у меня есть большое количество ресурсов, и становится утомительно вручную создавать интерфейсы Java для каждого файла:

@ClientBundle.Source("world_war_ii.txt")
public ExternalTextResource worldWarII();

@ClientBundle.Source("spain.txt")
public ExternalTextResource spain();

@ClientBundle.Source("france.txt")
public ExternalTextResource france();

Я хотел бы иметь возможность (возможно, во время компиляции) динамически перечислятькаждый файл * .txt в данном каталоге, а затем имеет к ним доступ во время выполнения, возможно, в виде массива ExternalTextResource[], вместо того, чтобы явно указывать их в моем коде.Таких ресурсов может быть сотни, и перечислять их вручную, так как код будет очень болезненным и не поддерживаемым.

Документация ClientBundle прямо говорит, что "предоставлять абстракцию файловой системы" не цель,поэтому, к сожалению, это, кажется, запрещает то, что я пытаюсь сделать.

Какой лучший способ справиться с большим количеством внешних ресурсов, которые должны быть доступны во время выполнения? Будет липомощь генератора?

Ответы [ 2 ]

1 голос
/ 09 октября 2010

Существует автоматический генератор для CssResource - может быть, вы могли бы взглянуть на его код и изменить его под свои нужды?

0 голосов
/ 09 октября 2010

В итоге я следовал этому совету : выполните файловые операции на сервере, а затем верните список файловых (мета) данных посредством вызова RPC.

Это оказывается довольно простым, а также позволяет мне возвращать облегченные ссылки (имена файлов) в списке, который я использую для заполнения Tree клиентской части;когда пользователь нажимает на TreeItem, фактическое текстовое содержимое загружается.

...