setStyleName(getElement(), "i-disabled", uidl.hasAttribute("disabled"));
+ boolean isEmpty = true;
+
if (uidl.hasAttribute("error")) {
+ isEmpty = false;
final UIDL errorUidl = uidl.getErrors();
if (errorIndicatorElement == null) {
DOM.appendChild(getElement(), icon.getElement());
}
icon.setUri(uidl.getStringAttribute("icon"));
+ isEmpty = false;
} else {
if (icon != null) {
DOM.removeChild(getElement(), icon.getElement());
captionText = DOM.createSpan();
DOM.appendChild(getElement(), captionText);
}
- DOM.setInnerText(captionText, uidl.getStringAttribute("caption"));
+ String c = uidl.getStringAttribute("caption");
+ if (c == null) {
+ c = "";
+ } else {
+ isEmpty = false;
+ }
+ DOM.setInnerText(captionText, c);
} else {
// TODO should span also be removed
}
setTitle(uidl.getStringAttribute("description"));
}
}
+ // Workaround for IE7 weirdness, returns bad height in some
+ // circumstances when Caption is empty. See #1444
+ // IE6 works perfectly without them. I wonder what happens when
+ // IE8 arrives...
+ if (isEmpty && Util.isIE7()) {
+ setHeight("0px");
+ }
}
* Stops execution on firefox browsers on a breakpoint.
*
*/
- public static native void browserDebugger() /*-{
- if(window.console)
- debugger;
- }-*/;
+ public static native void browserDebugger()
+ /*-{
+ if(window.console)
+ debugger;
+ }-*/;
/**
* Detects if current browser is IE.
*
* @return true if IE
*/
- public static native boolean isIE() /*-{
- var browser=$wnd.navigator.appName;
- if (browser=="Microsoft Internet Explorer") {
- return true;
- }
- return false;
- }-*/;
+ public static native boolean isIE()
+ /*-{
+ var browser=$wnd.navigator.appName;
+ if (browser=="Microsoft Internet Explorer") {
+ return true;
+ }
+ return false;
+ }-*/;
/**
* Detects if current browser is IE6.
*
* @return true if IE6
*/
- public static native boolean isIE6() /*-{
- var browser=$wnd.navigator.appName;
- if (browser=="Microsoft Internet Explorer") {
- var ua = navigator.userAgent;
- var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
- if (re.exec(ua) != null)
- rv = parseFloat(RegExp.$1);
- if(rv == 6) return true;
- }
- return false;
- }-*/;
+ public static native boolean isIE6()
+ /*-{
+ var browser=$wnd.navigator.appName;
+ if (browser=="Microsoft Internet Explorer") {
+ var ua = navigator.userAgent;
+ var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
+ if (re.exec(ua) != null)
+ rv = parseFloat(RegExp.$1);
+ if(rv == 6) return true;
+ }
+ return false;
+ }-*/;
/**
* Nulls oncontextmenu function on given element. We need to manually clear
*
* @param el
*/
- public native static void removeContextMenuEvent(Element el) /*-{
- el.oncontextmenu = null;
- }-*/;
+ public native static void removeContextMenuEvent(Element el)
+ /*-{
+ el.oncontextmenu = null;
+ }-*/;
/**
* Traverses recursively ancestors until ContainerResizedListener child
}
return null;
}
+
+ public static boolean isIE7() {
+ return isIE() && !isIE6();
+ }
}