Есть ли способ не JSNI для добавления кнопки закрытия в область заголовка диалогового окна DialogBox?Кнопка GWT Close в строке заголовка DialogBox
ответ
Более проще решение использовать GWT-Ext (http://code.google.com/p/gwt-ext/). Он бесплатный и простой в использовании и интеграции. Вы можете увидеть свою витрину http://www.gwt-ext.com/demo/. Я думаю, что вам нужно окно MessageBox или Layout Window (они относятся к категории витрин Windows).
С уважением.
Да нет
Нет нет - по крайней мере, не возиться с GWT в самом DialogBox классе или воссоздании DialogBox с использованием общих виджетов. Это известная проблема в GWT, ака issue 1405 (Звезда, чтобы показать ваш интерес).
Однако; DialogBox не дает нам инструментов для этого, поэтому нам необходимо расширить его. - Редактировать:это не работает.
Если вы хотите заменить замену на DialogBox, вы можете назвать свой класс DialogBox и импортировать его вместо того, который включен в GWT. This thread на форуме GWT дает более подробную информацию о том, как это можно сделать (устаревшее, использует прослушиватели) Устаревшие внутренние элементы DialogBox сильно изменились с тех пор, как этот поток - он не работает.
Вот код, который я взломал, чтобы получить те же результаты (используется связанная нить для руководства). Это не работает:
MyDialogBox:
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.MouseOutEvent;
import com.google.gwt.event.dom.client.MouseOutHandler;
import com.google.gwt.event.dom.client.MouseOverEvent;
import com.google.gwt.event.dom.client.MouseOverHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
public class MyDialogBox extends DialogBox {
private class crossHandler implements ClickHandler, MouseOverHandler, MouseOutHandler
{
@Override
public void onClick(ClickEvent event) {
hide();
Window.alert("Click!");
}
@Override
public void onMouseOver(MouseOverEvent event) {
DOM.setStyleAttribute(cross.getElement(), "font-weight", "bold");
}
@Override
public void onMouseOut(MouseOutEvent event) {
DOM.setStyleAttribute(cross.getElement(), "font-weight", "normal");
}
}
Label cross = new Label("X"); // The close button
crossHandler crosshandler = new crossHandler();
HTML caption = new HTML(); // The caption aka title
HorizontalPanel captionPanel = new HorizontalPanel(); // Contains caption and cross
/**
* Creates an empty dialog box. It should not be shown until its child widget
* has been added using {@link #add(Widget)}.
*/
public MyDialogBox()
{
this(false);
}
/**
* Creates an empty dialog box specifying its "auto-hide" property. It should
* not be shown until its child widget has been added using
* {@link #add(Widget)}.
*
* @param autoHide <code>true</code> if the dialog should be automatically
* hidden when the user clicks outside of it
*/
public MyDialogBox(boolean autoHide) {
this(autoHide, true);
}
/**
* Creates an empty dialog box specifying its "auto-hide" property. It should
* not be shown until its child widget has been added using
* {@link #add(Widget)}.
*
* @param autoHide <code>true</code> if the dialog should be automatically
* hidden when the user clicks outside of it
* @param modal <code>true</code> if keyboard and mouse events for widgets not
* contained by the dialog should be ignored
*/
public MyDialogBox(boolean autoHide, boolean modal)
{
super(autoHide, modal);
cross.addClickHandler(crosshandler);
cross.addMouseOutHandler(crosshandler);
cross.addMouseOverHandler(crosshandler);
captionPanel.add(caption);
captionPanel.add(cross);
captionPanel.setStyleName("caption");
Element td = getCellElement(0, 1); // Get the cell element that holds the caption
td.setInnerHTML(""); // Remove the old caption
td.appendChild(captionPanel.getElement());
}
@Override
public void setText(String text)
{
caption.setText(text);
}
public String getText()
{
return caption.getText();
}
public void setHtml(String html)
{
caption.setHTML(html);
}
public String getHtml()
{
return caption.getHTML();
}
Примечание: Этот код не работает. ClickEvent не отправляется с cross
, но вместо этого из MyDialogBox, независимо от того, добавляете ли вы ClickHandlers в cross
или нет, IOW MyDialogBox является отправителем/источником, и поэтому невозможно проверить его с cross
. При нажатии на крест он не запускает ClickEvent по некоторым причинам.
Edit: Оказывается, это не может быть сделано без хаков, если вы либо не писать свой собственный DialogBox (почти) с нуля или исправить проблему 1405. Конечно, есть ряд существующих библиотек, которые уже решили эту проблему, т.е. SmartGWT и GWT-Ext, но их реализация производится в основном с нуля.
Так, чтобы ответить на ваш вопрос в одном предложении: Да, есть способ, но ты не собираешься это нравится :)
Это общий комментарий, который я видел в Интернете, хотя некоторые люди говорят, что это возможно, поэтому я все еще надеюсь. – Organiccat
Если вы узнаете, почему только DialogBox запускает ClickEvents (не крест), вы можете использовать мой метод. – hannson
Вы можете найти диалоговое окно с возможностью закрытия в коде google под проектом synthfuljava. На самом деле это называется прокручиваемым диалоговым окном с закрытой кнопкой X в заголовке.
Следующий блог объясняет препятствия, которые пришлось преодолеть для того, чтобы кнопки thecaption X, чтобы иметь возможность прослушивать событие щелчка, чтобы она работает:
http://h2g2java.blessedgeek.com/2009/07/gwt-useable-closeable-scrollable.html
Мы использовали GWT-вн от начало нашего проекта. Это была плохая идея. У них много классных виджетов, но они не являются виджетами GWT, и у них нет совместимости с виджетами GWT. Как только вы выберете GWT-Ext, все, даже механизм событий, должно быть в GWT-Ext, а не в GWT. Эта библиотека не будет обновлена для новейшей версии GWT, потому что библиотека JavaScript для JavaScript больше не бесплатна. Сейчас мы удаляем GWT-Ext из нашего проекта.
Невозможно добавить другой виджет внутри заголовка GWT DialogBox, но вы можете расширить «DecoratedPanel» (это родительский интерфейс DialogBox). Посмотрите на источник DialogBox, чтобы изучить методы, особенно, как он добавляет объект Caption к панели и как выполняется перетаскивание окна.
Это то, что мы здесь сделали, и это работает очень хорошо. Мы создали собственный класс Caption, который расширяет FocusablePanel (SimplePanel, который захватывает все события мыши), и мы добавили к нему HorizontalPanel с кнопками и текстом. Нам пришлось переопределить onAttach() и onDetach(), просто вызвав метод super (они защищены).
Я считаю, что мне не разрешено размещать наш исходный код здесь, поэтому я просто могу дать вам эти советы.
Вы можете сделать это путем добавления кнопки на центральной панели DialogBox:
Image closeButton = new Image("");
closeButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
registerBox.hide();
}
});
closeButton.setStyleName("TopRight");
Затем поместите его с помощью CSS:
.TopRight {
float:right;
margin-top:-22px;
width:16px;
height:16px;
display:block;
background-image: url(images/cancel_16.png);
}
Hum, вы должны добавить его в качестве первого элемента панели или вам придется изменить css. – BimboJones
Я думаю, что это самое простое решение. Прекрасно работает! – Charmin
ЗАКАНЧИВАТЬ активный проект: http://code.google.com/p/gwt-mosaic/
Их благородный гол, как указано на их странице:
Целью является предоставление полного набора виджета, поддерживающего API как можно ближе к стандартным API-интерфейсам GWT.
Были в ловушке вихря GXT. Совсем не поклонник того, как они требуют от пользователей использования совершенно разных API для слушателей и т. Д. С их стороны это имеет смысл. В конце концов, GXT - это просто порт существующих библиотек javascript. Но я слишком долго искал этот проект MOSAIC ...
Просто используя GWT и внешние библиотеки, вы можете перехватить события щелчка на элементе caption и выполнить тест на попадание, чтобы увидеть, есть ли x, y mouse Координация находится в пределах анкерного элемента (или другого элемента, используемого вами как ClickHandler).
// Create anchor we want to accept click events
final Anchor myAnchor = new Anchor("My Anchor");
// Add handler to anchor
myAnchor.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Window.alert("Anchor was clicked");
}
});
// Create dialog
final DialogBox myDialog = new DialogBox();
myDialog.setText("My Dialog");
// Get caption element
final HTML caption = ((HTML)myDialog.getCaption());
// Add anchor to caption
caption.getElement().appendChild(myAnchor.getElement());
// Add click handler to caption
caption.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// Get x,y caption click relative to the anchor
final int x = event.getRelativeX(myAnchor.getElement());
final int y = event.getRelativeY(myAnchor.getElement());
// Check click was within bounds of anchor
if(x >= 0 && y >= 0 &&
x <= myAnchor.getOffsetWidth() &&
y <= myAnchor.getOffsetHeight()) {
// Raise event on anchor
myAnchor.fireEvent(event);
}
}
});
// Show the dialog
myDialog.show();
Я понимаю, что это смешно старый, но вы можете просто использовать абсолютное позиционирование с верхней и справа от 0, чтобы получить виджет в правом верхнем углу. Диалоговое окно само по себе абсолютно позиционируется, поэтому позиционирование вашего виджета будет против него.
Вы можете попробовать это, слегка улучшенное решение по fungus1487:
import com.google.gwt.dom.client.EventTarget;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.i18n.client.HasDirection;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.*;
/**
* @author Andrey Talnikov
*/
public class ClosablePopup extends DialogBox {
private Anchor closeAnchor;
/**
* Instantiates new closable popup.
*
* @param title the title
* @param defaultClose it {@code true}, hide popup on 'x' click
*/
public ClosablePopup(String title, boolean defaultClose) {
super(true);
closeAnchor = new Anchor("x");
FlexTable captionLayoutTable = new FlexTable();
captionLayoutTable.setWidth("100%");
captionLayoutTable.setText(0, 0, title);
captionLayoutTable.setWidget(0, 1, closeAnchor);
captionLayoutTable.getCellFormatter().setHorizontalAlignment(0, 1,
HasHorizontalAlignment.HorizontalAlignmentConstant.endOf(HasDirection.Direction.LTR));
HTML caption = (HTML) getCaption();
caption.getElement().appendChild(captionLayoutTable.getElement());
caption.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
EventTarget target = event.getNativeEvent().getEventTarget();
Element targetElement = (Element) target.cast();
if (targetElement == closeAnchor.getElement()) {
closeAnchor.fireEvent(event);
}
}
});
if (defaultClose) {
addCloseHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
hide();
}
});
}
}
public void addCloseHandler(ClickHandler handler) {
closeAnchor.addClickHandler(handler);
}
}
Я создал этот заголовок класс:
public class DialogBoxCaptionWithCancel extends Composite
implements Caption, HasClickHandlers {
@UiField
HTMLPanel mainPanel;
@UiField
HTML captionLabel;
@UiField
PushButton cancelButton;
private HandlerManager handlerManager = null;
private static final Binder binder = GWT.create(Binder.class);
interface Binder extends UiBinder<Widget, DialogBoxCaptionWithCancel> {
}
public DialogBoxCaptionWithCancel() {
initWidget(binder.createAndBindUi(this));
mainPanel.setStyleName("Caption");
Image upImage = new Image("images/closeWindow.png");
Image hoverImage = new Image("images/closeWindowFocus.png");
cancelButton.getUpFace().setImage(upImage);
cancelButton.getUpHoveringFace().setImage(hoverImage);
cancelButton.setStylePrimaryName("none");
}
/*
* (non-Javadoc)
*
* @see com.google.gwt.user.client.ui.Widget#onLoad()
*/
@Override
protected void onLoad() {
super.onLoad();
handlerManager = new HandlerManager(this);
}
@UiHandler("cancelButton")
public void cancelButtonOnClick(ClickEvent event) {
handlerManager.fireEvent(event);
}
@Override
public HandlerRegistration addMouseDownHandler(MouseDownHandler handler) {
return handlerManager.addHandler(MouseDownEvent.getType(), handler);
}
@Override
public HandlerRegistration addMouseUpHandler(MouseUpHandler handler) {
return handlerManager.addHandler(MouseUpEvent.getType(), handler);
}
@Override
public HandlerRegistration addMouseOutHandler(MouseOutHandler handler) {
return handlerManager.addHandler(MouseOutEvent.getType(), handler);
}
@Override
public HandlerRegistration addMouseOverHandler(MouseOverHandler handler) {
return handlerManager.addHandler(MouseOverEvent.getType(), handler);
}
@Override
public HandlerRegistration addMouseMoveHandler(MouseMoveHandler handler) {
return handlerManager.addHandler(MouseMoveEvent.getType(), handler);
}
@Override
public HandlerRegistration addMouseWheelHandler(MouseWheelHandler handler) {
return handlerManager.addHandler(MouseWheelEvent.getType(), handler);
}
@Override
public String getHTML() {
return "";
}
@Override
public void setHTML(String html) {
}
@Override
public String getText() {
return this.captionLabel.getText();
}
@Override
public void setText(String text) {
this.captionLabel.setText(text);
}
@Override
public void setHTML(SafeHtml html) {
}
@Override
public HandlerRegistration addClickHandler(ClickHandler handler) {
return handlerManager.addHandler(ClickEvent.getType(), handler);
}
}
Изображения только захваченный из поведения IE8 при наведении курсора мыши на кнопка отмены.
Вот код UiBinder:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:style>
.htmlField {
width: 100%;
}
.pushButton {
border: none;
padding: 0px;
width: 49px;
height: 21px;
}
</ui:style>
<g:HTMLPanel ui:field="mainPanel">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="100%">
<g:HTML ui:field="captionLabel" addStyleNames="{style.htmlField}"></g:HTML>
</td>
<td>
<g:PushButton ui:field="cancelButton" addStyleNames="{style.pushButton}"></g:PushButton>
</td>
</tr>
</table>
</g:HTMLPanel>
</ui:UiBinder>
Тогда мой класс, который расширяет DialogBox имеет следующее:
public class MyDialogBox extends DialogBox implements ClickHandler {
...
// instantiate the caption with the cancel button
private static DialogBoxCaptionWithCancel caption = new DialogBoxCaptionWithCancel();
...
public MyDialogBox() {
// construct the dialog box with the custom caption
super(false, false, caption);
setWidget(binder.createAndBindUi(this));
// set the caption's text
caption.setText("My Caption");
}
....
protected void onLoad() {
super.onLoad();
// let us react to the captions cancel button
caption.addClickHandler(this);
}
...
@Override
public void onClick(ClickEvent event) {
// the caption's cancel button was clicked
this.hide();
}
Это работает, если вы просто wan't простого решения вопроса спросил:
Image button = new Image("images/cancel.png");
button.addClickHandler(new ClickHandler(){
public void onClick(ClickEvent event) {
hide();
}
});
button.setStyleName("dialog-close");
HorizontalPanel header = new HorizontalPanel();
header.add(new HTML("Example Tool"));
header.add(button);
setHTML(header.getElement().getInnerHTML());
Я предполагаю, что простой ответ на это заключается в создании экземпляра виджета для замены стандарта Виджет Caption из DialogBox. Я создал надпись, в которой есть кнопка справа, и вы можете выбрать ссылку на нее. Затем вы можете добавить любое событие click, которое вы желаете.
В GWT 2.4 я использовал следующее решение:
import com.google.gwt.event.dom.client.MouseDownHandler;
import com.google.gwt.event.dom.client.MouseMoveHandler;
import com.google.gwt.event.dom.client.MouseOutHandler;
import com.google.gwt.event.dom.client.MouseOverHandler;
import com.google.gwt.event.dom.client.MouseUpHandler;
import com.google.gwt.event.dom.client.MouseWheelHandler;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.PushButton;
import com.google.gwt.user.client.ui.DialogBox.Caption;
/**
* @author Cristiano Sumariva
*/
public class ButtonCaption extends HorizontalPanel implements Caption
{
protected InlineLabel text;
protected PushButton closeDialog;
/**
* @return the button at caption
*/
public PushButton getCloseButton()
{
return closeDialog;
}
public ButtonCaption(String label)
{
super();
setWidth("100%");
setStyleName("Caption"); // so you have same styling as standard caption widget
closeDialog = new PushButton();
add(text = new InlineLabel(label));
add(closeDialog);
setCellWidth(closeDialog, "1px"); // to make button cell minimal enough to it
}
/* (non-Javadoc)
* @see com.google.gwt.event.dom.client.HasMouseDownHandlers#addMouseDownHandler(com.google.gwt.event.dom.client.MouseDownHandler)
*/
@Override
public HandlerRegistration addMouseDownHandler(MouseDownHandler handler)
{
return addMouseDownHandler(handler);
}
/* (non-Javadoc)
* @see com.google.gwt.event.dom.client.HasMouseUpHandlers#addMouseUpHandler(com.google.gwt.event.dom.client.MouseUpHandler)
*/
@Override
public HandlerRegistration addMouseUpHandler(MouseUpHandler handler)
{
return addMouseUpHandler(handler);
}
/* (non-Javadoc)
* @see com.google.gwt.event.dom.client.HasMouseOutHandlers#addMouseOutHandler(com.google.gwt.event.dom.client.MouseOutHandler)
*/
@Override
public HandlerRegistration addMouseOutHandler(MouseOutHandler handler)
{
return addMouseOutHandler(handler);
}
/* (non-Javadoc)
* @see com.google.gwt.event.dom.client.HasMouseOverHandlers#addMouseOverHandler(com.google.gwt.event.dom.client.MouseOverHandler)
*/
@Override
public HandlerRegistration addMouseOverHandler(MouseOverHandler handler)
{
return addMouseOverHandler(handler);
}
/* (non-Javadoc)
* @see com.google.gwt.event.dom.client.HasMouseMoveHandlers#addMouseMoveHandler(com.google.gwt.event.dom.client.MouseMoveHandler)
*/
@Override
public HandlerRegistration addMouseMoveHandler(MouseMoveHandler handler)
{
return addMouseMoveHandler(handler);
}
/* (non-Javadoc)
* @see com.google.gwt.event.dom.client.HasMouseWheelHandlers#addMouseWheelHandler(com.google.gwt.event.dom.client.MouseWheelHandler)
*/
@Override
public HandlerRegistration addMouseWheelHandler(MouseWheelHandler handler)
{
return addMouseWheelHandler(handler);
}
/* (non-Javadoc)
* @see com.google.gwt.user.client.ui.HasHTML#getHTML()
*/
@Override
public String getHTML()
{
return getElement().getInnerHTML();
}
/* (non-Javadoc)
* @see com.google.gwt.user.client.ui.HasHTML#setHTML(java.lang.String)
*/
@Override
public void setHTML(String html)
{
remove(text);
insert(text, 1);
}
/* (non-Javadoc)
* @see com.google.gwt.user.client.ui.HasText#getText()
*/
@Override
public String getText()
{
return text.getText();
}
/* (non-Javadoc)
* @see com.google.gwt.user.client.ui.HasText#setText(java.lang.String)
*/
@Override
public void setText(String text)
{
this.text.setText(text);
}
/* (non-Javadoc)
* @see com.google.gwt.safehtml.client.HasSafeHtml#setHTML(com.google.gwt.safehtml.shared.SafeHtml)
*/
@Override
public void setHTML(SafeHtml html)
{
setHTML(html.asString());
}
}
Расширяет DialogBox использовать новую доступную ButtonCaption
class CaptionCloseableDialogBox extends DialogBox
{
public CaptionCloseableDialogBox()
{
super(new ButtonCaption("dialog box title"));
setAutoHideEnabled(false);
ButtonCaption ref = (ButtonCaption) this.getCaption();
PushButton closeButton = ref.getCloseButton();
// apply button face here closeButton;
closeButton.addClickHandler(/* attach any click handler here like close this dialog */);
}
}
Надеется, что это помогает любому.
Я думаю, что ButtonCaption of cavila - лучшее решение, но есть ошибка в реализации надписи. Вызов одного из скрытых методов вызывает цикл инфинитива, потому что метод вызывает себя рекурсивно.
Чтобы предотвратить это, вы можете вызвать метод по тексту InlineLabel вместо: верхнего ДИВА уровня
@Override
public HandlerRegistration addMouseDownHandler(MouseDownHandler handler) {
return text.addMouseDownHandler(handler);
}
диалогового окна 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>
- 1. Событие Onclick в пользовательской кнопке GWT в строке заголовка DialogBox
- 2. GWT: Отключить перетаскивание в DialogBox
- 3. GWT Предотвращение перетаскивания DialogBox
- 4. GWT DialogBox auto resize
- 5. Отображение GWT DialogBox изнутри eventHandler
- 6. OK Кнопка Dialogbox не работает
- 7. Центр GWT DialogBox при масштабировании
- 8. GWT-Google web Toolkit-DialogBox
- 9. Почему мой GWT DialogBox Transparent
- 10. GWT Activity - Places => DialogBox?
- 11. gwt dialogbox не будет перемещаться
- 12. Панель всплывает над GWT DialogBox
- 13. Анимировать виджет внутри DialogBox в GWT
- 14. GWT DialogBox, возвращающий значения обратно в «открыватель»
- 15. кнопка ShowModalDialog помощь в строке заголовка
- 16. Кнопка в строке заголовка, как ее достичь
- 17. Назад кнопка в строке заголовка второй Activity
- 18. Как создать GWT DialogBox, но не показывают
- 19. GWT DialogBox - проклейки проблема, когда анимация включена
- 20. GWT DialogBox порождает несколько копий самого себя
- 21. Как отменить регистрацию обработчиков событий GWT в Popup/DialogBox?
- 22. Удалить стиль из заголовка диалогового окна gwt
- 23. Как добавить кнопку закрытия в панель заголовка диалогового окна GWT DialogBox
- 24. Липкая кнопка в GWT
- 25. Добавить изображение в строке заголовка в диалоговом окне
- 26. Почему я не могу скрыть DialogBox в UiBinder в GWT?
- 27. Могу ли я использовать DockLayoutPanel в DialogBox в GWT
- 28. выровнять текст с изображением в строке заголовка в диалоговом окне
- 29. Кнопка заголовка в заголовке
- 30. Сделать DialogBox ждать действия пользователя и возвращать boolean в GWT
Они на самом деле занимаются созданием собственной коробки, что, безусловно, удобно. К сожалению, это не дает возможности сделать это с помощью кода GWT, и я не могу использовать эту библиотеку в своем продукте в это время. Мой сайт почти завершен, и интеграция библиотеки такого размера в настоящее время не будет лучшей идеей для меня. – Organiccat
Но вы можете интегрировать библиотеку и использовать ее для этой конкретной ситуации, а остальные будут выполняться с использованием стандартных виджетов GWT. Но да, если вы использовали GWT-ext с самого начала, вы можете воспользоваться большим преимуществом своих классных и полезных виджетов. Использование библиотеки такого размера, чтобы крепить только крест, чтобы закрыть окно, возможно, это не лучшее решение. Почему бы вам не взглянуть на свой код на виджет, который вы хотите? Возможно, вы можете использовать его отдельно ... –