Снижение сложности кода для GWT
-
07-07-2019 - |
Вопрос
Я начал изучать GWT на примере Google и мой первый вывод таков: слишком много кода
Вот так:
stocks.add(symbol);
stocksFlexTable.setText(row, 0, symbol);
stocksFlexTable.setWidget(row, 2, new Label());
stocksFlexTable.getCellFormatter().addStyleName(row, 1,
"watchListNumericColumn");
stocksFlexTable.getCellFormatter().addStyleName(row, 2,
"watchListNumericColumn");
stocksFlexTable.getCellFormatter().addStyleName(row, 3,
"watchListRemoveColumn");
Есть ли у GWT какие-либо расширения для уменьшения размера кода и упрощения создания форм GWT?
Решение
Хорошим примером (упрощенного, но чистого концептуально) дизайна пользовательского интерфейса GWT с использованием CSS и HTML является Теги Первый GWT.
Я согласен с вами, что если следовать общим примерам из документации Google, то это не самый приятный опыт.Однако в последнее время ситуация изменилась, но они еще не полностью отражены в Google Docs.Попробуйте следующее:прежде чем приступить к разработке GWT, посмотрите эти 2 презентации: Лучшие практики и Советы по производительности.
Без использования дизайна пользовательского интерфейса на основе CSS, шины событий, GWT-RPC на основе шаблонов команд, уровня презентации MVP и google-джин (GWT-реализация Guice) в GWT трудно преодолеть сложность, как и в любом другом тяжелом графическом фреймворке.
Если вам понравились эти идеи (описанные в презентациях выше), возможно, вы захотите рассмотреть gwt-отправка и gwt-ведущий которые реализуют некоторые из этих шаблонов.
Вот несколько примеров: Пример MVP GWT и Веб-почта на базе Apache Labs Hupa GWT
Обновить:для получения дополнительной информации о дизайне MVP для GWT обратите внимание на GWT MVP в GWT 2.1 и/или gwt-платформа фреймворки (среди прочих, которые могут подойти вам).
Другие советы
UiBinder (GWT 2.0) может быть полезным р>
Geez может вам помочь.
Geez предоставляет простые в использовании макеты стилей для GWT и ряд статических методов для создания часто используемых виджетов. Р>
Мы используем FormBuilder для простого и компактного построения форм в коде:
ListBox type = ...
TextBox notes = ...
FormBuilder b = new FormBuilder();
b.label("Chart type").field(type).endRow();
b.label("Notes").field(notes).wrap().endRow();
b.add("Some help text").style("help").wrap().endRow();
FlexTable form = b.getForm();
...
Он отслеживает текущую строку и столбец, последовательно изменяет стили ячеек в зависимости от метода, используемого для их добавления (метка, поле и т. д.), обеспечивает согласованный интервал и т. д. и т. д. Каждый метод возвращает FormBuilder для поддержки вызовов цепочки. Такие вещи, как wrap ()
применяются к ранее добавленной ячейке.
Этот класс является частью GWT Portlets .
Ознакомьтесь с http://code.google.com/p/gwt-pectin/ в сочетании с UiBinder