com.vaadin.client
Class Util

java.lang.Object
  extended by com.vaadin.client.Util

public class Util
extends java.lang.Object


Nested Class Summary
static class Util.CssSize
          Wrap a css size value and its unit and translate back and forth to the string representation.
Eg.
 
Constructor Summary
Util()
           
 
Method Summary
static void alert(java.lang.String string)
           
static void browserDebugger()
          Helper method for debugging purposes.
static com.google.gwt.user.client.Element cloneNode(Element element, boolean deep)
          Clones given element as in JavaScript.
static boolean collectionsEquals(java.util.Collection collection1, java.util.Collection collection2)
          Performs a shallow comparison of the collections.
static void detachAttach(Element element)
          Detaches and re-attaches the element from its parent.
static boolean equals(java.lang.Object a, java.lang.Object b)
          Deprecated. As of 7.1 use Object.equals(Object) instead
static java.lang.String escapeAttribute(java.lang.String attribute)
          Escapes the string so it is safe to write inside an HTML attribute.
static java.lang.String escapeHTML(java.lang.String html)
          Converts html entities to text.
static ComponentConnector findConnectorFor(Widget widget)
           
static ComponentConnector findPaintable(ApplicationConnection client, Element element)
          Helper method to find the nearest parent paintable instance by traversing the DOM upwards from given element.
static
<T> T
findWidget(Element element, java.lang.Class<? extends Widget> class1)
          Helper method to find first instance of given Widget type found by traversing DOM upwards from given element.
static void focus(Element el)
          Will (attempt) to focus the given DOM Element.
static void forceIE8Redraw(Element e)
          Performs a hack to trigger a re-layout in the IE8.
static void forceIERedraw(Element e)
          Performs a hack to trigger a re-layout in the IE browser.
static void forceWebkitRedraw(Element element)
          Force webkit to redraw an element
static java.lang.String getAbsoluteUrl(java.lang.String url)
          Resolve a relative URL to an absolute URL based on the current document's location.
static int getChildElementIndex(Element childElement)
          Returns the index of the childElement within its parent.
static ComponentConnector getConnectorForElement(ApplicationConnection client, Widget parent, Element element)
          Locates the nested child component of parent which contains the element element.
static java.lang.String getConnectorString(ServerConnector p)
           
static com.google.gwt.user.client.Element getElementFromPoint(int clientX, int clientY)
          Returns the topmost element of from given coordinates.
static com.google.gwt.user.client.Element getElementUnderMouse(NativeEvent event)
          Find the element corresponding to the coordinates in the passed mouse event.
static com.google.gwt.user.client.Element getFocusedElement()
          Gets the currently focused element.
static com.google.gwt.user.client.Element getIEFocusedElement()
          Deprecated. Use #getFocusedElement instead
static int getKeyCode( event)
          Helper method for a bug fix #14041.
static int getNativeScrollbarSize()
           
static int getRequiredHeight(com.google.gwt.dom.client.Element element)
          Gets the border-box height for the given element, i.e.
static int getRequiredHeight(Widget widget)
           
static int getRequiredHeightBoundingClientRect(com.google.gwt.dom.client.Element element)
           
static int getRequiredHeightComputedStyle(com.google.gwt.dom.client.Element element)
           
static int getRequiredWidth(com.google.gwt.dom.client.Element element)
          Gets the border-box width for the given element, i.e.
static int getRequiredWidth(Widget widget)
           
static int getRequiredWidthBoundingClientRect(com.google.gwt.dom.client.Element element)
           
static int getRequiredWidthComputedStyle(com.google.gwt.dom.client.Element element)
           
static java.lang.String getSimpleName(java.lang.Object widget)
           
static int getTouchOrMouseClientX(Event event)
          A helper method to return the client position from an event.
static int getTouchOrMouseClientX(NativeEvent event)
           
static int getTouchOrMouseClientY(Event event)
          A helper method to return the client position from an event.
static int getTouchOrMouseClientY(NativeEvent currentGwtEvent)
           
static boolean isAttachedAndDisplayed(Widget widget)
          Kind of stronger version of isAttached().
static boolean isCached(UIDL uidl)
          Deprecated. 
static boolean isTouchEvent(Event event)
           
static boolean isTouchEvent(NativeEvent event)
           
static boolean isTouchEventOrLeftMouseButton(Event event)
          Checks if the given event is either a touch event or caused by the left mouse button
static boolean mayHaveScrollBars(com.google.gwt.dom.client.Element pe)
          Detects what is currently the overflow style attribute in given element.
static int measureHorizontalBorder(Element element)
           
static int measureHorizontalPaddingAndBorder(Element element, int paddingGuess)
           
static int measureMarginLeft(Element element)
           
static int measureVerticalBorder(Element element)
           
static int measureVerticalPaddingAndBorder(Element element, int paddingGuess)
           
static void notifyParentOfSizeChange(Widget widget, boolean lazy)
          Deprecated. As of 7.0, use LayoutManager.setNeedsMeasure(ComponentConnector) instead
static RenderInformation.FloatSize parseRelativeSize(com.vaadin.shared.AbstractComponentState state)
          Parses shared state and fetches the relative size of the component.
static float parseRelativeSize(java.lang.String size)
           
static void runWebkitOverflowAutoFix(Element elem)
          Run workaround for webkits overflow auto issue.
static void runWebkitOverflowAutoFixDeferred(Element elem)
          Defers the execution of runWebkitOverflowAutoFix(Element)
static void scrollIntoViewVertically(Element elem)
          Scrolls an element into view vertically only.
static void setFloat(Element element, java.lang.String value)
           
static int setHeightExcludingPaddingAndBorder(Element element, int requestedHeight, int verticalPaddingBorderGuess, boolean requestedHeightIncludesPaddingBorder)
           
static int setHeightExcludingPaddingAndBorder(Widget widget, java.lang.String height, int paddingBorderGuess)
           
static void setSelectionRange(Element elem, int pos, int length, java.lang.String direction)
          Sets the selection range of an input element.
static void setStyleTemporarily(Element element, java.lang.String styleProperty, java.lang.String tempValue)
          Temporarily sets the styleProperty to tempValue and then resets it to its current value.
static int setWidthExcludingPaddingAndBorder(Element element, int requestedWidth, int horizontalPaddingBorderGuess, boolean requestedWidthIncludesPaddingBorder)
           
static int setWidthExcludingPaddingAndBorder(Widget widget, java.lang.String width, int paddingBorderGuess)
           
static void simulateClickFromTouchEvent(Event touchevent, Widget widget)
           
static void sinkOnloadForImages(Element element)
           
static void updateRelativeChildrenAndSendSizeUpdateEvent(ApplicationConnection client, HasWidgets container, Widget widget)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Util

public Util()
Method Detail

browserDebugger

public static void browserDebugger()
Helper method for debugging purposes. Stops execution on firefox browsers on a breakpoint.


getKeyCode

public static int getKeyCode( event)
Helper method for a bug fix #14041. For mozilla getKeyCode return 0 for space bar (because space is considered as char). If return 0 use getCharCode.

Parameters:
event -
Returns:
return key code
Since:
7.2.4

getElementFromPoint

public static com.google.gwt.user.client.Element getElementFromPoint(int clientX,
                                                                     int clientY)
Returns the topmost element of from given coordinates. TODO fix crossplat issues clientX vs pageX. See quircksmode. Not critical for vaadin as we scroll div istead of page.

Parameters:
x -
y -
Returns:
the element at given coordinates

notifyParentOfSizeChange

@Deprecated
public static void notifyParentOfSizeChange(Widget widget,
                                                       boolean lazy)
Deprecated. As of 7.0, use LayoutManager.setNeedsMeasure(ComponentConnector) instead

This helper method can be called if components size have been changed outside rendering phase. It notifies components parent about the size change so it can react. When using this method, developer should consider if size changes could be notified lazily. If lazy flag is true, method will save widget and wait for a moment until it notifies parents in chunks. This may vastly optimize layout in various situation. Example: if component have a lot of images their onload events may fire "layout phase" many times in a short period.

Parameters:
widget -
lazy - run componentSizeUpdated lazyly

findConnectorFor

public static ComponentConnector findConnectorFor(Widget widget)

parseRelativeSize

public static float parseRelativeSize(java.lang.String size)

escapeHTML

public static java.lang.String escapeHTML(java.lang.String html)
Converts html entities to text.

Parameters:
html -
Returns:
escaped string presentation of given html

escapeAttribute

public static java.lang.String escapeAttribute(java.lang.String attribute)
Escapes the string so it is safe to write inside an HTML attribute.

Parameters:
attribute - The string to escape
Returns:
An escaped version of attribute.

cloneNode

public static com.google.gwt.user.client.Element cloneNode(Element element,
                                                           boolean deep)
Clones given element as in JavaScript. Deprecate this if there appears similar method into GWT someday.

Parameters:
element -
deep - clone child tree also
Returns:

measureHorizontalPaddingAndBorder

public static int measureHorizontalPaddingAndBorder(Element element,
                                                    int paddingGuess)

measureVerticalPaddingAndBorder

public static int measureVerticalPaddingAndBorder(Element element,
                                                  int paddingGuess)

measureHorizontalBorder

public static int measureHorizontalBorder(Element element)

measureVerticalBorder

public static int measureVerticalBorder(Element element)

measureMarginLeft

public static int measureMarginLeft(Element element)

setHeightExcludingPaddingAndBorder

public static int setHeightExcludingPaddingAndBorder(Widget widget,
                                                     java.lang.String height,
                                                     int paddingBorderGuess)

setWidthExcludingPaddingAndBorder

public static int setWidthExcludingPaddingAndBorder(Widget widget,
                                                    java.lang.String width,
                                                    int paddingBorderGuess)

setWidthExcludingPaddingAndBorder

public static int setWidthExcludingPaddingAndBorder(Element element,
                                                    int requestedWidth,
                                                    int horizontalPaddingBorderGuess,
                                                    boolean requestedWidthIncludesPaddingBorder)

setHeightExcludingPaddingAndBorder

public static int setHeightExcludingPaddingAndBorder(Element element,
                                                     int requestedHeight,
                                                     int verticalPaddingBorderGuess,
                                                     boolean requestedHeightIncludesPaddingBorder)

getSimpleName

public static java.lang.String getSimpleName(java.lang.Object widget)

setFloat

public static void setFloat(Element element,
                            java.lang.String value)

getNativeScrollbarSize

public static int getNativeScrollbarSize()

runWebkitOverflowAutoFixDeferred

public static void runWebkitOverflowAutoFixDeferred(Element elem)
Defers the execution of runWebkitOverflowAutoFix(Element)

Parameters:
elem - with overflow auto
Since:
7.2.6

runWebkitOverflowAutoFix

public static void runWebkitOverflowAutoFix(Element elem)
Run workaround for webkits overflow auto issue. See: our bug #2138 and https://bugs.webkit.org/show_bug.cgi?id=21462

Parameters:
elem - with overflow auto

parseRelativeSize

public static RenderInformation.FloatSize parseRelativeSize(com.vaadin.shared.AbstractComponentState state)
Parses shared state and fetches the relative size of the component. If a dimension is not specified as relative it will return -1. If the shared state does not contain width or height specifications this will return null.

Parameters:
state -
Returns:

isCached

@Deprecated
public static boolean isCached(UIDL uidl)
Deprecated. 


alert

public static void alert(java.lang.String string)

equals

@Deprecated
public static boolean equals(java.lang.Object a,
                                        java.lang.Object b)
Deprecated. As of 7.1 use Object.equals(Object) instead

Checks if a and b are equals using Object.equals(Object). Handles null values as well. Does not ensure that objects are of the same type. Assumes that the first object's equals method handle equals properly.

Parameters:
a - The first value to compare
b - The second value to compare
Returns:

updateRelativeChildrenAndSendSizeUpdateEvent

public static void updateRelativeChildrenAndSendSizeUpdateEvent(ApplicationConnection client,
                                                                HasWidgets container,
                                                                Widget widget)

getRequiredWidth

public static int getRequiredWidth(com.google.gwt.dom.client.Element element)
Gets the border-box width for the given element, i.e. element width + border + padding. Always rounds up to nearest integer.

Parameters:
element - The element to check
Returns:
The border-box width for the element

getRequiredHeight

public static int getRequiredHeight(com.google.gwt.dom.client.Element element)
Gets the border-box height for the given element, i.e. element height + border + padding. Always rounds up to nearest integer.

Parameters:
element - The element to check
Returns:
The border-box height for the element

getRequiredWidthBoundingClientRect

public static int getRequiredWidthBoundingClientRect(com.google.gwt.dom.client.Element element)

getRequiredHeightComputedStyle

public static int getRequiredHeightComputedStyle(com.google.gwt.dom.client.Element element)

getRequiredWidthComputedStyle

public static int getRequiredWidthComputedStyle(com.google.gwt.dom.client.Element element)

getRequiredHeightBoundingClientRect

public static int getRequiredHeightBoundingClientRect(com.google.gwt.dom.client.Element element)

getRequiredWidth

public static int getRequiredWidth(Widget widget)

getRequiredHeight

public static int getRequiredHeight(Widget widget)

mayHaveScrollBars

public static boolean mayHaveScrollBars(com.google.gwt.dom.client.Element pe)
Detects what is currently the overflow style attribute in given element.

Parameters:
pe - the element to detect
Returns:
true if auto or scroll

getConnectorForElement

public static ComponentConnector getConnectorForElement(ApplicationConnection client,
                                                        Widget parent,
                                                        Element element)
Locates the nested child component of parent which contains the element element. The child component is also returned if "element" is part of its caption. If element is not part of any child component, null is returned. This method returns the deepest nested VPaintableWidget.

Parameters:
client - A reference to ApplicationConnection
parent - The widget that contains element.
element - An element that is a sub element of the parent
Returns:
The VPaintableWidget which the element is a part of. Null if the element does not belong to a child.

focus

public static void focus(Element el)
Will (attempt) to focus the given DOM Element.

Parameters:
el - the element to focus

findPaintable

public static ComponentConnector findPaintable(ApplicationConnection client,
                                               Element element)
Helper method to find the nearest parent paintable instance by traversing the DOM upwards from given element.

Parameters:
element - the element to start from

findWidget

public static <T> T findWidget(Element element,
                               java.lang.Class<? extends Widget> class1)
Helper method to find first instance of given Widget type found by traversing DOM upwards from given element.

Parameters:
element - the element where to start seeking of Widget
class1 - the Widget type to seek for

forceWebkitRedraw

public static void forceWebkitRedraw(Element element)
Force webkit to redraw an element

Parameters:
element - The element that should be redrawn

forceIE8Redraw

public static final void forceIE8Redraw(Element e)
Performs a hack to trigger a re-layout in the IE8. This is usually necessary in cases where IE8 "forgets" to update child elements when they resize.

Parameters:
e - The element to perform the hack on

forceIERedraw

public static void forceIERedraw(Element e)
Performs a hack to trigger a re-layout in the IE browser. This is usually necessary in cases where IE "forgets" to update child elements when they resize.

Parameters:
e - The element to perform the hack on
Since:
7.3

detachAttach

public static void detachAttach(Element element)
Detaches and re-attaches the element from its parent. The element is reattached at the same position in the DOM as it was before. Does nothing if the element is not attached to the DOM.

Parameters:
element - The element to detach and re-attach

sinkOnloadForImages

public static void sinkOnloadForImages(Element element)

getChildElementIndex

public static int getChildElementIndex(Element childElement)
Returns the index of the childElement within its parent.

Parameters:
subElement -
Returns:

setStyleTemporarily

public static void setStyleTemporarily(Element element,
                                       java.lang.String styleProperty,
                                       java.lang.String tempValue)
Temporarily sets the styleProperty to tempValue and then resets it to its current value. Used mainly to work around rendering issues in IE (and possibly in other browsers)

Parameters:
element - The target element
styleProperty - The name of the property to set
tempValue - The temporary value

getTouchOrMouseClientX

public static int getTouchOrMouseClientX(Event event)
A helper method to return the client position from an event. Returns position from either first changed touch (if touch event) or from the event itself.

Parameters:
event -
Returns:

getElementUnderMouse

public static com.google.gwt.user.client.Element getElementUnderMouse(NativeEvent event)
Find the element corresponding to the coordinates in the passed mouse event. Please note that this is not always the same as the target of the event e.g. if event capture is used.

Parameters:
event - the mouse event to get coordinates from
Returns:
the element at the coordinates of the event

getTouchOrMouseClientY

public static int getTouchOrMouseClientY(Event event)
A helper method to return the client position from an event. Returns position from either first changed touch (if touch event) or from the event itself.

Parameters:
event -
Returns:

getTouchOrMouseClientY

public static int getTouchOrMouseClientY(NativeEvent currentGwtEvent)
Parameters:
currentGwtEvent -
Returns:
See Also:
getTouchOrMouseClientY(Event)

getTouchOrMouseClientX

public static int getTouchOrMouseClientX(NativeEvent event)
Parameters:
event -
Returns:
See Also:
getTouchOrMouseClientX(Event)

isTouchEvent

public static boolean isTouchEvent(Event event)

isTouchEvent

public static boolean isTouchEvent(NativeEvent event)

simulateClickFromTouchEvent

public static void simulateClickFromTouchEvent(Event touchevent,
                                               Widget widget)

getFocusedElement

public static com.google.gwt.user.client.Element getFocusedElement()
Gets the currently focused element.

Returns:
The active element or null if no active element could be found.

getIEFocusedElement

@Deprecated
public static com.google.gwt.user.client.Element getIEFocusedElement()
Deprecated. Use #getFocusedElement instead

Gets the currently focused element for Internet Explorer.

Returns:
The currently focused element

isAttachedAndDisplayed

public static boolean isAttachedAndDisplayed(Widget widget)
Kind of stronger version of isAttached(). In addition to std isAttached, this method checks that this widget nor any of its parents is hidden. Can be e.g used to check whether component should react to some events or not.

Parameters:
widget -
Returns:
true if attached and displayed

scrollIntoViewVertically

public static void scrollIntoViewVertically(Element elem)
Scrolls an element into view vertically only. Modified version of Element.scrollIntoView.

Parameters:
elem - The element to scroll into view

isTouchEventOrLeftMouseButton

public static boolean isTouchEventOrLeftMouseButton(Event event)
Checks if the given event is either a touch event or caused by the left mouse button

Parameters:
event -
Returns:
true if the event is a touch event or caused by the left mouse button, false otherwise

collectionsEquals

public static boolean collectionsEquals(java.util.Collection collection1,
                                        java.util.Collection collection2)
Performs a shallow comparison of the collections.

Parameters:
collection1 - The first collection
collection2 - The second collection
Returns:
true if the collections contain the same elements in the same order, false otherwise

getConnectorString

public static java.lang.String getConnectorString(ServerConnector p)

getAbsoluteUrl

public static java.lang.String getAbsoluteUrl(java.lang.String url)
Resolve a relative URL to an absolute URL based on the current document's location.

Parameters:
url - a string with the relative URL to resolve
Returns:
the corresponding absolute URL as a string

setSelectionRange

public static void setSelectionRange(Element elem,
                                     int pos,
                                     int length,
                                     java.lang.String direction)
Sets the selection range of an input element. We need this JSNI function to set selection range so that we can use the optional direction attribute to set the anchor to the end and the focus to the start. This makes Firefox work the same way as other browsers (#13477)

Parameters:
elem - the html input element.
pos - the index of the first selected character.
length - the selection length.
direction - a string indicating the direction in which the selection was performed. This may be "forward" or "backward", or "none" if the direction is unknown or irrelevant.
Since:
7.3


Copyright © 2000-2014 Vaadin Ltd. All Rights Reserved.