我需要在对话框的标题栏中添加一个关闭按钮。我可以在标题栏中放置一个小部件,但无法获取它的事件。
答案 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接口,然后为隐藏对话框的包含关闭按钮的标题实现添加事件处理程序,显示了执行此操作的正确方法。
这对我有用。