Уменьшение сложности кода для GWT - PullRequest
9 голосов
/ 15 сентября 2009

Я начал изучать 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?

Ответы [ 5 ]

11 голосов
/ 15 сентября 2009

Хороший пример (упрощенно, но концептуально чисто) дизайна пользовательского интерфейса GWT с использованием CSS и HTML: Теги First GWT .

Я согласен с вами, что если следовать общим примерам из документации Google, это не очень приятный опыт. В последнее время все изменилось, но они еще не полностью отражены в документах Google. Попробуйте следующее: прежде чем приступить к разработке GWT, посмотрите эти 2 презентации: Best Practices и Советы по повышению производительности .

Без использования основанного на CSS дизайна пользовательского интерфейса, шины событий, GWT-RPC на основе шаблонов команд, уровня представления MVP и google-gin (реализация Guice в GWT) сложно преодолеть сложность в GWT, как любой другой тяжелый графический интерфейс.

Если вам понравились эти идеи (описанные в презентациях выше), вы можете рассмотреть gwt-dispatch и gwt-Presenter , которые реализуют некоторые из этих шаблонов.

Несколько примеров: Пример GWT MVP и Веб-почта Apache Labs Hupa на основе GWT

UPDATE: для последних разработок MVP для GWT ищите GWT MVP в GWT 2.1 и / или платформа gwt (среди прочих, которые могут работать для вас).

7 голосов
/ 15 сентября 2009

UiBinder (GWT 2.0) может быть полезным

1 голос
/ 15 сентября 2009

Боже может вам помочь.

Geez предоставляет простые в использовании макеты стилей для GWT и ряд статических методов для создания часто используемых виджетов.

0 голосов
/ 16 января 2010

Выезд http://code.google.com/p/gwt-pectin/ в сочетании с UiBinder

0 голосов
/ 16 сентября 2009

Мы используем класс 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 framework.

...