API Reference 0.3.24dart_web_toolkit_utilSafeStylesUtils

SafeStylesUtils class

Utility class containing static methods for creating {@link SafeStyles}.

class SafeStylesUtils {

 static SafeStylesUtilsImpl _impl;

 /**
  * Sets the background-image CSS property.
  * 
  * @param uri the URI of the background image
  * @return a {@link SafeStyles} instance
  * @see #forTrustedBackgroundImage(String)
  */
 static SafeStyles forBackgroundImage(SafeUri uri) {
   return fromTrustedNameAndValue("background-image", "url(\"" + uri.asString() + "\")");
 }

 /**
  * Sets the border-style CSS property.
  */
 static SafeStyles forBorderStyle(BorderStyle value) {
   return fromTrustedNameAndValue("border-style", value.value);
 }

 /**
  * Set the border-width css property.
  */
 static SafeStyles forBorderWidth(double value, Unit unit) {
   return fromTrustedNameAndValue("border-width", value, unit);
 }

 /**
  * Set the bottom css property.
  */
 static SafeStyles forBottom(double value, Unit unit) {
   return fromTrustedNameAndValue("bottom", value, unit);
 }

 /**
  * Sets the 'clear' CSS property.
  */
 static SafeStyles forClear(Clear value) {
   return fromTrustedNameAndValue("clear", value.value);
 }

 /**
  * Sets the cursor CSS property.
  */
 static SafeStyles forCursor(Cursor value) {
   return fromTrustedNameAndValue("cursor", value.value);
 }

 /**
  * Sets the display CSS property.
  */
 static SafeStyles forDisplay(Display value) {
   return fromTrustedNameAndValue("display", value.value);
 }

 /**
  * Set the float css property.
  */
 static SafeStyles forFloat(Float value) {
   return fromTrustedNameAndValue("float", value.value);
 }

 /**
  * Set the font-size css property.
  */
 static SafeStyles forFontSize(double value, Unit unit) {
   return fromTrustedNameAndValue("font-size", value, unit);
 }

 /**
  * Sets the font-style CSS property.
  */
 static SafeStyles forFontStyle(FontStyle value) {
   return fromTrustedNameAndValue("font-style", value.value);
 }

 /**
  * Sets the font-weight CSS property.
  */
 static SafeStyles forFontWeight(FontWeight value) {
   return fromTrustedNameAndValue("font-weight", value.value);
 }

 /**
  * Set the height css property.
  */
 static SafeStyles forHeight(double value, Unit unit) {
   return fromTrustedNameAndValue("height", value, unit);
 }

 /**
  * Set the left css property.
  */
 static SafeStyles forLeft(double value, Unit unit) {
   return fromTrustedNameAndValue("left", value, unit);
 }

 /**
  * Set the line-height css property.
  */
 static SafeStyles forLineHeight(double value, Unit unit) {
   return fromTrustedNameAndValue("line-height", value, unit);
 }

 /**
  * Sets the list-style-type CSS property.
  */
 static SafeStyles forListStyleType(ListStyleType value) {
   return fromTrustedNameAndValue("list-style-type", value.value);
 }

 /**
  * Set the margin css property.
  */
 static SafeStyles forMargin(double value, Unit unit) {
   return fromTrustedNameAndValue("margin", value, unit);
 }

 /**
  * Set the margin-bottom css property.
  */
 static SafeStyles forMarginBottom(double value, Unit unit) {
   return fromTrustedNameAndValue("margin-bottom", value, unit);
 }

 /**
  * Set the margin-left css property.
  */
 static SafeStyles forMarginLeft(double value, Unit unit) {
   return fromTrustedNameAndValue("margin-left", value, unit);
 }

 /**
  * Set the margin-right css property.
  */
 static SafeStyles forMarginRight(double value, Unit unit) {
   return fromTrustedNameAndValue("margin-right", value, unit);
 }

 /**
  * Set the margin-top css property.
  */
 static SafeStyles forMarginTop(double value, Unit unit) {
   return fromTrustedNameAndValue("margin-top", value, unit);
 }

 /**
  * Set the opacity css property.
  */
 static SafeStyles forOpacity(double value) {
   return impl().forOpacity(value);
 }

 /**
  * Sets the outline-style CSS property.
  */
 static SafeStyles forOutlineStyle(OutlineStyle value) {
   return fromTrustedNameAndValue("outline-style", value.value);
 }

 /**
  * Set the outline-width css property.
  */
 static SafeStyles forOutlineWidth(double value, Unit unit) {
   return fromTrustedNameAndValue("outline-width", value, unit);
 }

 /**
  * Sets the overflow CSS property.
  */
 static SafeStyles forOverflow(Overflow value) {
   return fromTrustedNameAndValue("overflow", value.value);
 }

 /**
  * Sets the overflow-x CSS property.
  */
 static SafeStyles forOverflowX(Overflow value) {
   return fromTrustedNameAndValue("overflow-x", value.value);
 }

 /**
  * Sets the overflow-y CSS property.
  */
 static SafeStyles forOverflowY(Overflow value) {
   return fromTrustedNameAndValue("overflow-y", value.value);
 }

 /**
  * Set the padding css property.
  */
 static SafeStyles forPadding(double value, Unit unit) {
   return fromTrustedNameAndValue("padding", value, unit);
 }

 /**
  * Set the padding-bottom css property.
  */
 static SafeStyles forPaddingBottom(double value, Unit unit) {
   return fromTrustedNameAndValue("padding-bottom", value, unit);
 }

 /**
  * Set the padding-left css property.
  */
 static SafeStyles forPaddingLeft(double value, Unit unit) {
   return fromTrustedNameAndValue("padding-left", value, unit);
 }

 /**
  * Set the padding-right css property.
  */
 static SafeStyles forPaddingRight(double value, Unit unit) {
   return fromTrustedNameAndValue("padding-right", value, unit);
 }

 /**
  * Set the padding-top css property.
  */
 static SafeStyles forPaddingTop(double value, Unit unit) {
   return fromTrustedNameAndValue("padding-top", value, unit);
 }

 /**
  * Sets the position CSS property.
  */
 static SafeStyles forPosition(Position value) {
   return fromTrustedNameAndValue("position", value.value);
 }

 /**
  * Set the right css property.
  */
 static SafeStyles forRight(double value, Unit unit) {
   return fromTrustedNameAndValue("right", value, unit);
 }

 /**
  * Set the table-layout CSS property.
  */
 static SafeStyles forTableLayout(TableLayout value) {
   return fromTrustedNameAndValue("table-layout", value.value);
 }

 /**
  * Sets the 'text-align' CSS property.
  */
 static SafeStyles forTextAlign(TextAlign value) {
   return fromTrustedNameAndValue("text-align", value.value);
 }

 /**
  * Sets the 'text-decoration' CSS property.
  */
 static SafeStyles forTextDecoration(TextDecoration value) {
   return fromTrustedNameAndValue("text-decoration", value.value);
 }

 /**
  * Set the 'text-indent' CSS property.
  */
 static SafeStyles forTextIndent(double value, Unit unit) {
   return fromTrustedNameAndValue("text-indent", value + unit.value);
 }

 /**
  * Set the 'text-justify' CSS3 property.
  */
 static SafeStyles forTextJustify(TextJustify value) {
   return fromTrustedNameAndValue("text-justify", value.value);
 }

 /**
  * Set the 'text-overflow' CSS3 property.
  */
 static SafeStyles forTextOverflow(TextOverflow value) {
   return fromTrustedNameAndValue("text-overflow", value.value);
 }

 /**
  * Set the 'text-transform' CSS property.
  */
 static SafeStyles forTextTransform(TextTransform value) {
   return fromTrustedNameAndValue("text-transform", value.value);
 }

 /**
  * Set the top css property.
  */
 static SafeStyles forTop(double value, Unit unit) {
   return fromTrustedNameAndValue("top", value, unit);
 }

 /**
  * <p>
  * Returns a {@link SafeStyles} constructed from a trusted background color,
  * i.e., without escaping the value. No checks are performed. The calling code
  * should be carefully reviewed to ensure the argument will satisfy the
  * {@link SafeStyles} contract when they are composed into the form:
  * "&lt;name&gt;:&lt;value&gt;;".
  * 
  * <p>
  * {@link SafeStyles} may never contain literal angle brackets. Otherwise, it
  * could be unsafe to place a {@link SafeStyles} into a &lt;style&gt; tag
  * (where it can't be HTML escaped). For example, if the {@link SafeStyles}
  * containing "
  * <code>font: 'foo &lt;style&gt;&lt;script&gt;evil&lt;/script&gt;</code>'" is
  * used in a style sheet in a &lt;style&gt; tag, this could then break out of
  * the style context into HTML.
  * </p>
  * 
  * @param value the property value
  * @return a {@link SafeStyles} instance
  */
 static SafeStyles forTrustedBackgroundColor(String value) {
   return fromTrustedNameAndValue("background-color", value);
 }

 /**
  * <p>
  * Returns a {@link SafeStyles} constructed from a trusted background image,
  * i.e., without escaping the value. No checks are performed. The calling code
  * should be carefully reviewed to ensure the argument will satisfy the
  * {@link SafeStyles} contract when they are composed into the form:
  * "&lt;name&gt;:&lt;value&gt;;".
  * 
  * <p>
  * {@link SafeStyles} may never contain literal angle brackets. Otherwise, it
  * could be unsafe to place a {@link SafeStyles} into a &lt;style&gt; tag
  * (where it can't be HTML escaped). For example, if the {@link SafeStyles}
  * containing "
  * <code>font: 'foo &lt;style&gt;&lt;script&gt;evil&lt;/script&gt;</code>'" is
  * used in a style sheet in a &lt;style&gt; tag, this could then break out of
  * the style context into HTML.
  * </p>
  * 
  * @param value the property value
  * @return a {@link SafeStyles} instance
  * @see #forBackgroundImage(SafeUri)
  */
 static SafeStyles forTrustedBackgroundImage(String value) {
   return fromTrustedNameAndValue("background-image", value);
 }

 /**
  * <p>
  * Returns a {@link SafeStyles} constructed from a trusted border color, i.e.,
  * without escaping the value. No checks are performed. The calling code
  * should be carefully reviewed to ensure the argument will satisfy the
  * {@link SafeStyles} contract when they are composed into the form:
  * "&lt;name&gt;:&lt;value&gt;;".
  * 
  * <p>
  * {@link SafeStyles} may never contain literal angle brackets. Otherwise, it
  * could be unsafe to place a {@link SafeStyles} into a &lt;style&gt; tag
  * (where it can't be HTML escaped). For example, if the {@link SafeStyles}
  * containing "
  * <code>font: 'foo &lt;style&gt;&lt;script&gt;evil&lt;/script&gt;</code>'" is
  * used in a style sheet in a &lt;style&gt; tag, this could then break out of
  * the style context into HTML.
  * </p>
  * 
  * @param value the property value
  * @return a {@link SafeStyles} instance
  */
 static SafeStyles forTrustedBorderColor(String value) {
   return fromTrustedNameAndValue("border-color", value);
 }

 /**
  * <p>
  * Returns a {@link SafeStyles} constructed from a trusted font color, i.e.,
  * without escaping the value. No checks are performed. The calling code
  * should be carefully reviewed to ensure the argument will satisfy the
  * {@link SafeStyles} contract when they are composed into the form:
  * "&lt;name&gt;:&lt;value&gt;;".
  * 
  * <p>
  * {@link SafeStyles} may never contain literal angle brackets. Otherwise, it
  * could be unsafe to place a {@link SafeStyles} into a &lt;style&gt; tag
  * (where it can't be HTML escaped). For example, if the {@link SafeStyles}
  * containing "
  * <code>font: 'foo &lt;style&gt;&lt;script&gt;evil&lt;/script&gt;</code>'" is
  * used in a style sheet in a &lt;style&gt; tag, this could then break out of
  * the style context into HTML.
  * </p>
  * 
  * @param value the property value
  * @return a {@link SafeStyles} instance
  */
 static SafeStyles forTrustedColor(String value) {
   return fromTrustedNameAndValue("color", value);
 }

 /**
  * <p>
  * Returns a {@link SafeStyles} constructed from a trusted outline color,
  * i.e., without escaping the value. No checks are performed. The calling code
  * should be carefully reviewed to ensure the argument will satisfy the
  * {@link SafeStyles} contract when they are composed into the form:
  * "&lt;name&gt;:&lt;value&gt;;".
  * 
  * <p>
  * {@link SafeStyles} may never contain literal angle brackets. Otherwise, it
  * could be unsafe to place a {@link SafeStyles} into a &lt;style&gt; tag
  * (where it can't be HTML escaped). For example, if the {@link SafeStyles}
  * containing "
  * <code>font: 'foo &lt;style&gt;&lt;script&gt;evil&lt;/script&gt;</code>'" is
  * used in a style sheet in a &lt;style&gt; tag, this could then break out of
  * the style context into HTML.
  * </p>
  * 
  * @param value the property value
  * @return a {@link SafeStyles} instance
  */
 static SafeStyles forTrustedOutlineColor(String value) {
   return fromTrustedNameAndValue("outline-color", value);
 }

 /**
  * Sets the vertical-align CSS property.
  */
 static SafeStyles forVerticalAlign(value, [Unit unit = null]) {
   if (value is VerticalAlign) {
     return fromTrustedNameAndValue("vertical-align", (value as VerticalAlign).value);
   } else {
     return fromTrustedNameAndValue("vertical-align", value, unit);
   }
 }

 /**
  * Sets the visibility CSS property.
  */
 static SafeStyles forVisibility(Visibility value) {
   return fromTrustedNameAndValue("visibility", value.value);
 }

 /**
  * Set the 'white-space' CSS property.
  */
 static SafeStyles forWhiteSpace(WhiteSpace value) {
   return fromTrustedNameAndValue("white-space", value.value);
 }

 /**
  * Set the width css property.
  */
 static SafeStyles forWidth(double value, Unit unit) {
   return fromTrustedNameAndValue("width", value, unit);
 }

 /**
  * Set the z-index css property.
  */
 static SafeStyles forZIndex(int value) {
   return new SafeStylesString("z-index: %value;");
 }

 /**
  * <p>
  * Returns a {@link SafeStyles} constructed from a trusted name and a trusted
  * value, i.e., without escaping the name and value. No checks are performed.
  * The calling code should be carefully reviewed to ensure the argument will
  * satisfy the {@link SafeStyles} contract when they are composed into the
  * form: "&lt;name&gt;:&lt;value&gt;;".
  * 
  * <p>
  * {@link SafeStyles} may never contain literal angle brackets. Otherwise, it
  * could be unsafe to place a {@link SafeStyles} into a &lt;style&gt; tag
  * (where it can't be HTML escaped). For example, if the {@link SafeStyles}
  * containing "
  * <code>font: 'foo &lt;style&gt;&lt;script&gt;evil&lt;/script&gt;</code>'" is
  * used in a style sheet in a &lt;style&gt; tag, this could then break out of
  * the style context into HTML.
  * </p>
  * 
  * <p>
  * The name should be in hyphenated format, not camelCase format.
  * </p>
  * 
  * @param name the property name
  * @param value the value
  * @param unit the units of the value
  * @return a {@link SafeStyles} instance
  */
 static SafeStyles fromTrustedNameAndValue(String name, value, [Unit unit = null]) {
   //SafeStylesHostedModeUtils.maybeCheckValidStyleName(name);
   if (unit != null) {
     return new SafeStylesString(name + ":" + value + unit.value + ";");
   } else {
     return fromTrustedString(name + ":" + value + ";");
   }
 }

 /**
  * <p>
  * Returns a {@link SafeStyles} constructed from a trusted string, i.e.,
  * without escaping the string. No checks are performed. The calling code
  * should be carefully reviewed to ensure the argument meets the
  * {@link SafeStyles} contract.
  * 
  * <p>
  * Generally, {@link SafeStyles} should be of the form
  * {@code cssPropertyName:value;}, where neither the name nor the value
  * contain malicious scripts.
  * 
  * <p>
  * {@link SafeStyles} may never contain literal angle brackets. Otherwise, it
  * could be unsafe to place a {@link SafeStyles} into a &lt;style&gt; tag
  * (where it can't be HTML escaped). For example, if the {@link SafeStyles}
  * containing "
  * <code>font: 'foo &lt;style&gt;&lt;script&gt;evil&lt;/script&gt;</code>'" is
  * used in a style sheet in a &lt;style&gt; tag, this could then break out of
  * the style context into HTML.
  * 
  * <p>
  * The following example values comply with this type's contract:
  * <ul>
  * <li><code>width: 1em;</code></li>
  * <li><code>height:1em;</code></li>
  * <li><code>width: 1em;height: 1em;</code></li>
  * <li><code>background:url('http://url');</code></li>
  * </ul>
  * In addition, the empty string is safe for use in a CSS attribute.
  * 
  * <p>
  * The following example values do <em>not</em> comply with this type's
  * contract:
  * <ul>
  * <li><code>background: red</code> (missing a trailing semi-colon)</li>
  * <li><code>background:</code> (missing a value and a trailing semi-colon)</li>
  * <li><code>1em</code> (missing an attribute name, which provides context for
  * the value)</li>
  * </ul>
  * 
  * @param s the input String
  * @return a {@link SafeStyles} instance
  */
 static SafeStyles fromTrustedString(String s) {
   return new SafeStylesString(s);
 }

 /**
  * Verify that the basic constraints of a {@link SafeStyles} are met. This
  * method is not a guarantee that the specified css is safe for use in a CSS
  * style attribute. It is a minimal set of assertions to check for common
  * errors.
  * 
  * @param styles the CSS properties string
  * @throws NullPointerException if the css is null
  * @throws AssertionError if the css does not meet the contraints
  */
 static void verifySafeStylesConstraints(String styles) {
   if (styles == null) {
     throw new Exception("css is null");
   }

   // CSS properties must end in a semi-colon or they cannot be safely
   // composed with other properties.
   assert ((styles.trim().length == 0) || styles.endsWith(";"));
//    : "Invalid CSS Property: '"
//        + styles + "'. CSS properties must be an empty string or end with a semi-colon (;).";
   assert (!styles.contains("<") && !styles.contains(">"));
//    : "Invalid CSS Property: '" + styles
//        + "'. CSS should not contain brackets (< or >).";
 }

 static SafeStylesUtilsImpl impl() {
   if (_impl == null) {
//      if (GWT.isClient()) {
       _impl = new SafeStylesUtilsImpl(); //GWT.create(SafeStylesUtilsImpl.class);
//      } else {
//        _impl = new ImplServer();
//      }
   }
   return _impl;
 }

 // prevent instantiation
 SafeStylesUtils() {
 }
}

Static Methods

SafeStyles forBackgroundImage(SafeUri uri) #

Sets the background-image CSS property.

@param uri the URI of the background image @return a {@link SafeStyles} instance @see #forTrustedBackgroundImage(String)

static SafeStyles forBackgroundImage(SafeUri uri) {
 return fromTrustedNameAndValue("background-image", "url(\"" + uri.asString() + "\")");
}

SafeStyles forBorderStyle(BorderStyle value) #

Sets the border-style CSS property.

static SafeStyles forBorderStyle(BorderStyle value) {
 return fromTrustedNameAndValue("border-style", value.value);
}

SafeStyles forBorderWidth(double value, Unit unit) #

Set the border-width css property.

static SafeStyles forBorderWidth(double value, Unit unit) {
 return fromTrustedNameAndValue("border-width", value, unit);
}

SafeStyles forBottom(double value, Unit unit) #

Set the bottom css property.

static SafeStyles forBottom(double value, Unit unit) {
 return fromTrustedNameAndValue("bottom", value, unit);
}

SafeStyles forClear(Clear value) #

Sets the 'clear' CSS property.

static SafeStyles forClear(Clear value) {
 return fromTrustedNameAndValue("clear", value.value);
}

SafeStyles forCursor(Cursor value) #

Sets the cursor CSS property.

static SafeStyles forCursor(Cursor value) {
 return fromTrustedNameAndValue("cursor", value.value);
}

SafeStyles forDisplay(Display value) #

Sets the display CSS property.

static SafeStyles forDisplay(Display value) {
 return fromTrustedNameAndValue("display", value.value);
}

SafeStyles forFloat(Float value) #

Set the float css property.

static SafeStyles forFloat(Float value) {
 return fromTrustedNameAndValue("float", value.value);
}

SafeStyles forFontSize(double value, Unit unit) #

Set the font-size css property.

static SafeStyles forFontSize(double value, Unit unit) {
 return fromTrustedNameAndValue("font-size", value, unit);
}

SafeStyles forFontStyle(FontStyle value) #

Sets the font-style CSS property.

static SafeStyles forFontStyle(FontStyle value) {
 return fromTrustedNameAndValue("font-style", value.value);
}

SafeStyles forFontWeight(FontWeight value) #

Sets the font-weight CSS property.

static SafeStyles forFontWeight(FontWeight value) {
 return fromTrustedNameAndValue("font-weight", value.value);
}

SafeStyles forHeight(double value, Unit unit) #

Set the height css property.

static SafeStyles forHeight(double value, Unit unit) {
 return fromTrustedNameAndValue("height", value, unit);
}

SafeStyles forLeft(double value, Unit unit) #

Set the left css property.

static SafeStyles forLeft(double value, Unit unit) {
 return fromTrustedNameAndValue("left", value, unit);
}

SafeStyles forLineHeight(double value, Unit unit) #

Set the line-height css property.

static SafeStyles forLineHeight(double value, Unit unit) {
 return fromTrustedNameAndValue("line-height", value, unit);
}

SafeStyles forListStyleType(ListStyleType value) #

Sets the list-style-type CSS property.

static SafeStyles forListStyleType(ListStyleType value) {
 return fromTrustedNameAndValue("list-style-type", value.value);
}

SafeStyles forMargin(double value, Unit unit) #

Set the margin css property.

static SafeStyles forMargin(double value, Unit unit) {
 return fromTrustedNameAndValue("margin", value, unit);
}

SafeStyles forMarginBottom(double value, Unit unit) #

Set the margin-bottom css property.

static SafeStyles forMarginBottom(double value, Unit unit) {
 return fromTrustedNameAndValue("margin-bottom", value, unit);
}

SafeStyles forMarginLeft(double value, Unit unit) #

Set the margin-left css property.

static SafeStyles forMarginLeft(double value, Unit unit) {
 return fromTrustedNameAndValue("margin-left", value, unit);
}

SafeStyles forMarginRight(double value, Unit unit) #

Set the margin-right css property.

static SafeStyles forMarginRight(double value, Unit unit) {
 return fromTrustedNameAndValue("margin-right", value, unit);
}

SafeStyles forMarginTop(double value, Unit unit) #

Set the margin-top css property.

static SafeStyles forMarginTop(double value, Unit unit) {
 return fromTrustedNameAndValue("margin-top", value, unit);
}

SafeStyles forOpacity(double value) #

Set the opacity css property.

static SafeStyles forOpacity(double value) {
 return impl().forOpacity(value);
}

SafeStyles forOutlineStyle(OutlineStyle value) #

Sets the outline-style CSS property.

static SafeStyles forOutlineStyle(OutlineStyle value) {
 return fromTrustedNameAndValue("outline-style", value.value);
}

SafeStyles forOutlineWidth(double value, Unit unit) #

Set the outline-width css property.

static SafeStyles forOutlineWidth(double value, Unit unit) {
 return fromTrustedNameAndValue("outline-width", value, unit);
}

SafeStyles forOverflow(Overflow value) #

Sets the overflow CSS property.

static SafeStyles forOverflow(Overflow value) {
 return fromTrustedNameAndValue("overflow", value.value);
}

SafeStyles forOverflowX(Overflow value) #

Sets the overflow-x CSS property.

static SafeStyles forOverflowX(Overflow value) {
 return fromTrustedNameAndValue("overflow-x", value.value);
}

SafeStyles forOverflowY(Overflow value) #

Sets the overflow-y CSS property.

static SafeStyles forOverflowY(Overflow value) {
 return fromTrustedNameAndValue("overflow-y", value.value);
}

SafeStyles forPadding(double value, Unit unit) #

Set the padding css property.

static SafeStyles forPadding(double value, Unit unit) {
 return fromTrustedNameAndValue("padding", value, unit);
}

SafeStyles forPaddingBottom(double value, Unit unit) #

Set the padding-bottom css property.

static SafeStyles forPaddingBottom(double value, Unit unit) {
 return fromTrustedNameAndValue("padding-bottom", value, unit);
}

SafeStyles forPaddingLeft(double value, Unit unit) #

Set the padding-left css property.

static SafeStyles forPaddingLeft(double value, Unit unit) {
 return fromTrustedNameAndValue("padding-left", value, unit);
}

SafeStyles forPaddingRight(double value, Unit unit) #

Set the padding-right css property.

static SafeStyles forPaddingRight(double value, Unit unit) {
 return fromTrustedNameAndValue("padding-right", value, unit);
}

SafeStyles forPaddingTop(double value, Unit unit) #

Set the padding-top css property.

static SafeStyles forPaddingTop(double value, Unit unit) {
 return fromTrustedNameAndValue("padding-top", value, unit);
}

SafeStyles forPosition(Position value) #

Sets the position CSS property.

static SafeStyles forPosition(Position value) {
 return fromTrustedNameAndValue("position", value.value);
}

SafeStyles forRight(double value, Unit unit) #

Set the right css property.

static SafeStyles forRight(double value, Unit unit) {
 return fromTrustedNameAndValue("right", value, unit);
}

SafeStyles forTableLayout(TableLayout value) #

Set the table-layout CSS property.

static SafeStyles forTableLayout(TableLayout value) {
 return fromTrustedNameAndValue("table-layout", value.value);
}

SafeStyles forTextAlign(TextAlign value) #

Sets the 'text-align' CSS property.

static SafeStyles forTextAlign(TextAlign value) {
 return fromTrustedNameAndValue("text-align", value.value);
}

SafeStyles forTextDecoration(TextDecoration value) #

Sets the 'text-decoration' CSS property.

static SafeStyles forTextDecoration(TextDecoration value) {
 return fromTrustedNameAndValue("text-decoration", value.value);
}

SafeStyles forTextIndent(double value, Unit unit) #

Set the 'text-indent' CSS property.

static SafeStyles forTextIndent(double value, Unit unit) {
 return fromTrustedNameAndValue("text-indent", value + unit.value);
}

SafeStyles forTextJustify(TextJustify value) #

Set the 'text-justify' CSS3 property.

static SafeStyles forTextJustify(TextJustify value) {
 return fromTrustedNameAndValue("text-justify", value.value);
}

SafeStyles forTextOverflow(TextOverflow value) #

Set the 'text-overflow' CSS3 property.

static SafeStyles forTextOverflow(TextOverflow value) {
 return fromTrustedNameAndValue("text-overflow", value.value);
}

SafeStyles forTextTransform(TextTransform value) #

Set the 'text-transform' CSS property.

static SafeStyles forTextTransform(TextTransform value) {
 return fromTrustedNameAndValue("text-transform", value.value);
}

SafeStyles forTop(double value, Unit unit) #

Set the top css property.

static SafeStyles forTop(double value, Unit unit) {
 return fromTrustedNameAndValue("top", value, unit);
}

SafeStyles forTrustedBackgroundColor(String value) #

Returns a {@link SafeStyles} constructed from a trusted background color, i.e., without escaping the value. No checks are performed. The calling code should be carefully reviewed to ensure the argument will satisfy the {@link SafeStyles} contract when they are composed into the form: "<name>:<value>;".

{@link SafeStyles} may never contain literal angle brackets. Otherwise, it could be unsafe to place a {@link SafeStyles} into a <style> tag (where it can't be HTML escaped). For example, if the {@link SafeStyles} containing " font: 'foo <style><script>evil</script>'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

@param value the property value @return a {@link SafeStyles} instance

static SafeStyles forTrustedBackgroundColor(String value) {
 return fromTrustedNameAndValue("background-color", value);
}

SafeStyles forTrustedBackgroundImage(String value) #

Returns a {@link SafeStyles} constructed from a trusted background image, i.e., without escaping the value. No checks are performed. The calling code should be carefully reviewed to ensure the argument will satisfy the {@link SafeStyles} contract when they are composed into the form: "<name>:<value>;".

{@link SafeStyles} may never contain literal angle brackets. Otherwise, it could be unsafe to place a {@link SafeStyles} into a <style> tag (where it can't be HTML escaped). For example, if the {@link SafeStyles} containing " font: 'foo <style><script>evil</script>'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

@param value the property value @return a {@link SafeStyles} instance @see #forBackgroundImage(SafeUri)

static SafeStyles forTrustedBackgroundImage(String value) {
 return fromTrustedNameAndValue("background-image", value);
}

SafeStyles forTrustedBorderColor(String value) #

Returns a {@link SafeStyles} constructed from a trusted border color, i.e., without escaping the value. No checks are performed. The calling code should be carefully reviewed to ensure the argument will satisfy the {@link SafeStyles} contract when they are composed into the form: "<name>:<value>;".

{@link SafeStyles} may never contain literal angle brackets. Otherwise, it could be unsafe to place a {@link SafeStyles} into a <style> tag (where it can't be HTML escaped). For example, if the {@link SafeStyles} containing " font: 'foo <style><script>evil</script>'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

@param value the property value @return a {@link SafeStyles} instance

static SafeStyles forTrustedBorderColor(String value) {
 return fromTrustedNameAndValue("border-color", value);
}

SafeStyles forTrustedColor(String value) #

Returns a {@link SafeStyles} constructed from a trusted font color, i.e., without escaping the value. No checks are performed. The calling code should be carefully reviewed to ensure the argument will satisfy the {@link SafeStyles} contract when they are composed into the form: "<name>:<value>;".

{@link SafeStyles} may never contain literal angle brackets. Otherwise, it could be unsafe to place a {@link SafeStyles} into a <style> tag (where it can't be HTML escaped). For example, if the {@link SafeStyles} containing " font: 'foo <style><script>evil</script>'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

@param value the property value @return a {@link SafeStyles} instance

static SafeStyles forTrustedColor(String value) {
 return fromTrustedNameAndValue("color", value);
}

SafeStyles forTrustedOutlineColor(String value) #

Returns a {@link SafeStyles} constructed from a trusted outline color, i.e., without escaping the value. No checks are performed. The calling code should be carefully reviewed to ensure the argument will satisfy the {@link SafeStyles} contract when they are composed into the form: "<name>:<value>;".

{@link SafeStyles} may never contain literal angle brackets. Otherwise, it could be unsafe to place a {@link SafeStyles} into a <style> tag (where it can't be HTML escaped). For example, if the {@link SafeStyles} containing " font: 'foo <style><script>evil</script>'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

@param value the property value @return a {@link SafeStyles} instance

static SafeStyles forTrustedOutlineColor(String value) {
 return fromTrustedNameAndValue("outline-color", value);
}

SafeStyles forVerticalAlign(value, [Unit unit = null]) #

Sets the vertical-align CSS property.

static SafeStyles forVerticalAlign(value, [Unit unit = null]) {
 if (value is VerticalAlign) {
   return fromTrustedNameAndValue("vertical-align", (value as VerticalAlign).value);
 } else {
   return fromTrustedNameAndValue("vertical-align", value, unit);
 }
}

SafeStyles forVisibility(Visibility value) #

Sets the visibility CSS property.

static SafeStyles forVisibility(Visibility value) {
 return fromTrustedNameAndValue("visibility", value.value);
}

SafeStyles forWhiteSpace(WhiteSpace value) #

Set the 'white-space' CSS property.

static SafeStyles forWhiteSpace(WhiteSpace value) {
 return fromTrustedNameAndValue("white-space", value.value);
}

SafeStyles forWidth(double value, Unit unit) #

Set the width css property.

static SafeStyles forWidth(double value, Unit unit) {
 return fromTrustedNameAndValue("width", value, unit);
}

SafeStyles forZIndex(int value) #

Set the z-index css property.

static SafeStyles forZIndex(int value) {
 return new SafeStylesString("z-index: %value;");
}

SafeStyles fromTrustedNameAndValue(String name, value, [Unit unit = null]) #

Returns a {@link SafeStyles} constructed from a trusted name and a trusted value, i.e., without escaping the name and value. No checks are performed. The calling code should be carefully reviewed to ensure the argument will satisfy the {@link SafeStyles} contract when they are composed into the form: "<name>:<value>;".

{@link SafeStyles} may never contain literal angle brackets. Otherwise, it could be unsafe to place a {@link SafeStyles} into a <style> tag (where it can't be HTML escaped). For example, if the {@link SafeStyles} containing " font: 'foo <style><script>evil</script>'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

The name should be in hyphenated format, not camelCase format.

@param name the property name @param value the value @param unit the units of the value @return a {@link SafeStyles} instance

static SafeStyles fromTrustedNameAndValue(String name, value, [Unit unit = null]) {
 //SafeStylesHostedModeUtils.maybeCheckValidStyleName(name);
 if (unit != null) {
   return new SafeStylesString(name + ":" + value + unit.value + ";");
 } else {
   return fromTrustedString(name + ":" + value + ";");
 }
}

SafeStyles fromTrustedString(String s) #

Returns a {@link SafeStyles} constructed from a trusted string, i.e., without escaping the string. No checks are performed. The calling code should be carefully reviewed to ensure the argument meets the {@link SafeStyles} contract.

Generally, {@link SafeStyles} should be of the form {@code cssPropertyName:value;}, where neither the name nor the value contain malicious scripts.

{@link SafeStyles} may never contain literal angle brackets. Otherwise, it could be unsafe to place a {@link SafeStyles} into a <style> tag (where it can't be HTML escaped). For example, if the {@link SafeStyles} containing " font: 'foo <style><script>evil</script>'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

The following example values comply with this type's contract:

  • width: 1em;
  • height:1em;
  • width: 1em;height: 1em;
  • background:url('http://url');
In addition, the empty string is safe for use in a CSS attribute.

The following example values do not comply with this type's contract:

  • background: red (missing a trailing semi-colon)
  • background: (missing a value and a trailing semi-colon)
  • 1em (missing an attribute name, which provides context for the value)

@param s the input String @return a {@link SafeStyles} instance

static SafeStyles fromTrustedString(String s) {
 return new SafeStylesString(s);
}

void verifySafeStylesConstraints(String styles) #

Verify that the basic constraints of a {@link SafeStyles} are met. This method is not a guarantee that the specified css is safe for use in a CSS style attribute. It is a minimal set of assertions to check for common errors.

@param styles the CSS properties string @throws NullPointerException if the css is null @throws AssertionError if the css does not meet the contraints

static void verifySafeStylesConstraints(String styles) {
 if (styles == null) {
   throw new Exception("css is null");
 }

 // CSS properties must end in a semi-colon or they cannot be safely
 // composed with other properties.
 assert ((styles.trim().length == 0) || styles.endsWith(";"));
//    : "Invalid CSS Property: '"
//        + styles + "'. CSS properties must be an empty string or end with a semi-colon (;).";
 assert (!styles.contains("<") && !styles.contains(">"));
//    : "Invalid CSS Property: '" + styles
//        + "'. CSS should not contain brackets (< or >).";
}

SafeStylesUtilsImpl impl() #

static SafeStylesUtilsImpl impl() {
 if (_impl == null) {
//      if (GWT.isClient()) {
     _impl = new SafeStylesUtilsImpl(); //GWT.create(SafeStylesUtilsImpl.class);
//      } else {
//        _impl = new ImplServer();
//      }
 }
 return _impl;
}

Constructors

new SafeStylesUtils() #

Creates a new Object instance.

Object instances have no meaningful state, and are only useful through their identity. An Object instance is equal to itself only.

docs inherited from Object
SafeStylesUtils() {
}