Как к использованию виджетов расположения DockLayoutPanel и UiBinder в GWT 2.0?

Я пытаюсь получить простой макет, работающий при использовании GWT 2.0 UiBinder. Расположение, которое я пытаюсь получить, является тем, которые подражают BorderLayout Java в том, где можно определить различные панели на севере, юге, востоке, западных и центральных направлениях; для этого я использую DockLayoutPanel. Я хотел бы получить заголовок и нижний колонтитул, обоих с фиксированной шириной. Остающееся место области просмотра было бы занято виджетом, присвоенным слоту центра DockLayoutPanel.

Текущий файл .ui.xml, который я имею:

<g:DockLayoutPanel unit='EM'>
    <g:north size='2'>
        <g:HTML>HEADER</g:HTML> 
    </g:north>

    <g:south size='2'>
        <g:HTML>FOOTER</g:HTML> 
    </g:south>

    <g:center>
        <g:HTML>
            <div id='loginform'>Hello!</div>
        </g:HTML>
    </g:center>
</g:DockLayoutPanel>

Браузер только представляет ЗАГОЛОВОК в главном левом углу. Как я могу достигнуть расположения, которое я ищу? Кажется, что существует больше CSS, который Вы узнали, прежде чем можно будет использовать панели расположения GWT, но такие поражения цель создать UI с ним.

16
задан Cesar 21 December 2009 в 04:09
поделиться

3 ответа

У меня это не работает ни с одним из хаков, предложенных RaphaelO.

В примере Javadoc на DockLayoutPanel ширина 192 используется для West. Это неправильно - автор, вероятно, думал, что использует PX, но он использовал EM. Итак, если вы уменьшите масштаб, вы увидите, что Центр находится далеко вправо.

Вы проверяли, используете ли вы стандартный режим? Это требуется для DockLayoutPanel.

Кроме того, забыл упомянуть, что вы должны использовать RootLayoutPanel при добавлении DockLayout в свой класс точки входа - не используйте RootPanel.

30
ответ дан 30 November 2019 в 17:27
поделиться

Использование недавно представленных панелей компоновки действительно сбивает с толку. Есть способ сделать так, чтобы макет занимал всю клиентскую зону. Для этого требуется немного кода Java в дополнение к файлу ui.xml.

В вашем классе EntryPoint добавьте определение UiBinder с аннотацией к файлу ui.xml, который объявляет макет:

@UiTemplate("LayoutDeclarationFile.ui.xml")
interface DockLayoutUiBinder extends
        UiBinder<DockLayoutPanel, TheEntryPointChildClass> {
}

private static DockLayoutUiBinder uiBinder = GWT
        .create(DockLayoutUiBinder.class);

в функции onModuleLoad создайте экземпляр UiBinder, извлеките его корень и напрямую добавьте его в DOM:

public void onModuleLoad() {
    DockLayoutPanel layout = uiBinder.createAndBindUi(this);
    // Make sure we use the whole client area
    Window.setMargin("0px");

    // Add the panel to the DOM
    RootLayoutPanel.get().add(layout);
 }
2
ответ дан 30 November 2019 в 17:27
поделиться

Я попробовал ваш блок кода, а также образец блока на странице javadoc для DockLayoutPanel и получаю похожие результаты. Похоже, что отображены только данные в разделе North DockLayoutPanel. Однако, когда я ищу страницу (используя firefox и сафари на Mac), другие элементы находят, но нигде не показывают. Похоже, что с этой панелью и UiBinder может быть ошибка.

.
0
ответ дан 30 November 2019 в 17:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: