Automatic GWT ClientBundles на основе дисковых файлов
-
29-09-2019 - |
Вопрос
Я сейчас хорошо использую 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
Я закончил следовать Этот совет: Выполните файловые операции на сервере, а затем верните список данных файла (META) через вызов RPC.
Это оказывается довольно простым, а также позволяет мне возвращать легкие ссылки (имена файлов) в списке, которые я использую для заполнения Tree
сторона клиента; Когда пользователь нажимает TreeItem
Фактическое текстовое содержимое загружается.
Другие советы
Есть Автоматический генератор за CssResource
- Может быть, вы могли бы посмотреть его код и изменить его на ваши потребности?