Util.componentSizeUpdated(widgets);
}
+ public static native int getRequiredWidth(
+ com.google.gwt.dom.client.Element element)
+ /*-{
+ var width;
+ if (element.getBoundingClientRect != null) {
+ var rect = element.getBoundingClientRect();
+ width = Math.ceil(rect.right - rect.left);
+ } else {
+ width = elem.offsetWidth;
+ }
+ return width;
+ }-*/;
+
+ public static native int getRequiredHeight(
+ com.google.gwt.dom.client.Element element)
+ /*-{
+ var height;
+ if (element.getBoundingClientRect != null) {
+ var rect = element.getBoundingClientRect();
+ height = Math.ceil(rect.bottom - rect.top);
+ } else {
+ height = elem.offsetHeight;
+ }
+ return height;
+ }-*/;
+
+ public static int getRequiredWidth(Widget widget) {
+ return getRequiredWidth(widget.getElement());
+ }
+
+ public static int getRequiredHeight(Widget widget) {
+ return getRequiredHeight(widget.getElement());
+ }
+
}
* div so the popupopener won't wrap to the next line and also so
* the size of the combobox won't change over time.
*/
- int w = tb.getOffsetWidth() + popupOpener.getOffsetWidth();
+ int w = Util.getRequiredWidth(tb)
+ + Util.getRequiredWidth(popupOpener);
if (suggestionPopupMinWidth > w) {
setTextboxWidth(suggestionPopupMinWidth);
w = suggestionPopupMinWidth;
* Widget wrapper includes margin which the widget offsetWidth/Height
* does not include
*/
- int w = getRequiredWidth(widgetDIV);
- int h = getRequiredHeight(widgetDIV);
+ int w = Util.getRequiredWidth(widgetDIV);
+ int h = Util.getRequiredHeight(widgetDIV);
widgetSize.setWidth(w);
widgetSize.setHeight(h);
}
- public static native int getRequiredWidth(
- com.google.gwt.dom.client.Element element)
- /*-{
- var width;
- if (element.getBoundingClientRect != null) {
- var rect = element.getBoundingClientRect();
- width = Math.ceil(rect.right - rect.left);
- } else {
- width = elem.offsetWidth;
- }
- return width;
- }-*/;
-
- public static native int getRequiredHeight(
- com.google.gwt.dom.client.Element element)
- /*-{
- var height;
- if (element.getBoundingClientRect != null) {
- var rect = element.getBoundingClientRect();
- height = Math.ceil(rect.bottom - rect.top);
- } else {
- height = elem.offsetHeight;
- }
- return height;
- }-*/;
-
public void setMarginLeft(int marginLeft) {
containerMarginLeft = marginLeft;
getElement().getStyle().setPropertyPx("paddingLeft", marginLeft);