Кнопка закрытия GWT в строке заголовка DialogBox - PullRequest
13 голосов
/ 29 мая 2009

Есть ли способ, не поддерживающий JSNI, добавить кнопку закрытия в область строки заголовка DialogBox?

Ответы [ 14 ]

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

Проверить активный проект: http://code.google.com/p/gwt-mosaic/

Их благородная цель, как указано на их странице:

Цель состоит в том, чтобы предоставить полный набор виджетов, поддерживая API как можно ближе к стандартному API виджетов GWT.

Попали в ловушку вихря GXT. Совсем не фанат того, как они требуют от пользователей использовать совершенно разные API для слушателей и т. Д. Со своей стороны это имеет смысл. В конце концов, GXT - это просто порт их существующих библиотек JavaScript. Но я слишком долго искал этот проект MOSAIC ...

0 голосов
/ 06 сентября 2013

DIV верхнего уровня диалогового окна GWT имеет абсолютное позиционирование, поэтому вы можете сделать то же самое с помощью кнопки закрытия. Это позволяет поместить его в тело диалога, если речь идет о DOM, но сделать так, чтобы оно было физически отображено в заголовке.

В моем примере ниже я помещаю его точно в верхнем правом углу диалогового окна и центрирую его на заголовке, используя отступы.

<ui:style>
    .close {
        position: absolute;
        top: 0;
        right: 0;
        padding: 3px 3px 1px 3px !important;
        border-radius: 4px;
        margin: 5px;
    }
</ui:style>

<g:PushButton ui:field="closeButton" addStyleNames="{style.close}">
    <g:upFace image='{closeIcon}'/>
    <g:downFace image='{closeIcon}'/>
    <g:upHoveringFace image='{closeIcon}'/>
    <g:downHoveringFace image='{closeIcon}'/>
    <g:upDisabledFace image='{closeIcon}'/>
    <g:downDisabledFace image='{closeIcon}'/>
</g:PushButton>
0 голосов
/ 21 сентября 2012

Я думаю, что ButtonCaption из cavila является лучшим решением, но в реализации заголовка есть ошибка. Вызов одного из методов overidden вызывает бесконечный цикл, поскольку метод вызывает себя рекурсивно.

Чтобы предотвратить это, вы можете вызвать метод InlineLabel text вместо:

@Override
public HandlerRegistration addMouseDownHandler( MouseDownHandler handler ) {
    return text.addMouseDownHandler( handler );
}
0 голосов
/ 19 июля 2009

Вы можете найти закрываемое диалоговое окно в коде Google под проектом synthfuljava. На самом деле это называется прокручиваемое диалоговое окно с кнопкой закрытия X на заголовке.

В следующем блоге объясняются препятствия, которые необходимо было преодолеть, чтобы кнопка Caption X могла прослушивать событие click, чтобы оно заработало:

http://h2g2java.blessedgeek.com/2009/07/gwt-useable-closeable-scrollable.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...