this.autoHideTimeout = notification.autoCloseDelay();
String imageStyle = notification.imageStyle();
boolean hasImage = imageStyle != null;
DivElement box = DOM.createDiv().cast();
box.setClassName("gtx-tray-notification-box");
if (!hasImage) {
box.addClassName("gtx-no-image");
}
if (notification.boxStyle() != null) {
box.addClassName(notification.boxStyle());
}
AnchorElement btn = DOM.createAnchor().cast();
btn.setClassName("gtx-tray-notification-btn");
EventUtils.addOnClickHandler(btn, new Handler<Event>() {
@Override
public void handle(Event event) {
close();
}
});
box.appendChild(btn);
if (hasImage) {
DivElement img = DOM.createDiv().cast();
img.setClassName("gtx-tray-notification-img");
img.addClassName(imageStyle);
box.appendChild(img);
}
DivElement titleDiv = DOM.createDiv().cast();
titleDiv.setClassName("gtx-tray-notification-title");
titleDiv.setInnerText(notification.title());
box.appendChild(titleDiv);
DivElement body = DOM.createDiv().cast();
body.setClassName("gtx-tray-notification-body");
body.setInnerHTML(notification.body());
box.appendChild(body);
// starting transparent and fading in.
box.getStyle().setOpacity(0);