From adb0844dd4b03fe0483c3eab3e1d53a0829d4d62 Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Mon, 25 Feb 2008 10:59:18 +0000 Subject: [PATCH] fixes #1444 svn changeset:3912/svn branch:trunk --- .../toolkit/terminal/gwt/client/Caption.java | 19 +++++- .../toolkit/terminal/gwt/client/Util.java | 58 +++++++++++-------- 2 files changed, 51 insertions(+), 26 deletions(-) diff --git a/src/com/itmill/toolkit/terminal/gwt/client/Caption.java b/src/com/itmill/toolkit/terminal/gwt/client/Caption.java index 06d502696f..36de42b338 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/Caption.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/Caption.java @@ -38,7 +38,10 @@ public class Caption extends HTML { setStyleName(getElement(), "i-disabled", uidl.hasAttribute("disabled")); + boolean isEmpty = true; + if (uidl.hasAttribute("error")) { + isEmpty = false; final UIDL errorUidl = uidl.getErrors(); if (errorIndicatorElement == null) { @@ -64,6 +67,7 @@ public class Caption extends HTML { DOM.appendChild(getElement(), icon.getElement()); } icon.setUri(uidl.getStringAttribute("icon")); + isEmpty = false; } else { if (icon != null) { DOM.removeChild(getElement(), icon.getElement()); @@ -77,7 +81,13 @@ public class Caption extends HTML { 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 } @@ -90,6 +100,13 @@ public class Caption extends HTML { 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"); + } } diff --git a/src/com/itmill/toolkit/terminal/gwt/client/Util.java b/src/com/itmill/toolkit/terminal/gwt/client/Util.java index 4e1e125a87..5ada1ee52e 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/Util.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/Util.java @@ -18,40 +18,43 @@ public class Util { * 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 @@ -60,9 +63,10 @@ public class Util { * * @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 @@ -100,4 +104,8 @@ public class Util { } return null; } + + public static boolean isIE7() { + return isIE() && !isIE6(); + } } -- 2.39.5