如何将关闭按钮添加到GWT DialogBox的标题栏

时间:2010-08-30 03:44:11

标签: gwt

我需要在对话框的标题栏中添加一个关闭按钮。我可以在标题栏中放置一个小部件,但无法获取它的事件。

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

以下是amal给出的示例的修改。此代码保留gwt-DialogBox标题样式。

public class CloseButtonDialogBox extends DialogBox {

private Node closeEventTarget = null;

public CloseButtonDialogBox() {
    // get the "dialogTopRight" class td
    Element dialogTopRight = getCellElement(0, 2);

    // close button image html
    dialogTopRight.setInnerHTML(
            "<div style=\"margin-left:-25px;margin-top: 7px;\">" + 
            "<img src=\"images/closebutton.png\" height=\"20px\"/>" + 
            "</div>");

    // set the event target
    closeEventTarget = dialogTopRight.getChild(0).getChild(0);
}

@Override
protected void onPreviewNativeEvent(NativePreviewEvent event) {
    NativeEvent nativeEvent = event.getNativeEvent();

    if (!event.isCanceled() 
            && (event.getTypeInt() == Event.ONCLICK)
            && isCloseEvent(nativeEvent))
    {
        this.hide();
    }
    super.onPreviewNativeEvent(event);
}

// see if the click target is the close button
private boolean isCloseEvent(NativeEvent event) {
    return event.getEventTarget().equals(closeEventTarget); //compares equality of the underlying DOM elements
}   

答案 2 :(得分:0)

查看链接问题中发布的答案。 它通过实现DialogBox.Caption接口,然后为隐藏对话框的包含关闭按钮的标题实现添加事件处理程序,显示了执行此操作的正确方法。

这对我有用。

https://stackoverflow.com/a/7960172/458426