Example usage for com.google.gwt.dom.client Style clearFontStyle

List of usage examples for com.google.gwt.dom.client Style clearFontStyle

Introduction

In this page you can find the example usage for com.google.gwt.dom.client Style clearFontStyle.

Prototype

public void clearFontStyle() 

Source Link

Usage

From source file:com.sencha.gxt.chart.client.draw.engine.VML.java

License:sencha.com license

/**
 * Applies the attributes of the passed {@link TextSprite} to its VML element.
 * //from w  ww .j  a  v a2  s .c  o m
 * @param sprite the sprite whose attributes to use
 */
private void setTextAttributes(TextSprite sprite, XElement element) {
    Element textPath = element.childElement("textPath").cast();
    Style textStyle = textPath.getStyle();
    textBBoxCache.remove(sprite);

    if (sprite.isFontSizeDirty() || ignoreOptimizations) {
        if (sprite.getFontSize() > 0) {
            textStyle.setFontSize(sprite.getFontSize(), Unit.PX);
        } else {
            textStyle.clearFontSize();
        }
    }
    if (sprite.isFontStyleDirty() || ignoreOptimizations) {
        if (sprite.getFontStyle() != null) {
            textStyle.setFontStyle(sprite.getFontStyle());
        } else {
            textStyle.clearFontStyle();
        }
    }
    if (sprite.isFontWeightDirty() || ignoreOptimizations) {
        if (sprite.getFontWeight() != null) {
            textStyle.setFontWeight(sprite.getFontWeight());
        } else {
            textStyle.clearFontWeight();
        }
    }
    if (sprite.isFontDirty() || ignoreOptimizations) {
        if (sprite.getFont() != null) {
            textStyle.setProperty("fontFamily", sprite.getFont());
        } else {
            textStyle.clearProperty("fontFamily");
        }
    }

    // text-anchor emulation
    if (sprite.isTextAnchorDirty() || ignoreOptimizations) {
        if (sprite.getTextAnchor() == TextAnchor.MIDDLE) {
            setTextAlign(textStyle, "center");
        } else if (sprite.getTextAnchor() == TextAnchor.END) {
            setTextAlign(textStyle, "right");
        } else {
            setTextAlign(textStyle, "left");
        }
    }

    if (sprite.isTextDirty() || ignoreOptimizations) {
        if (sprite.getText() != null) {
            textPath.setPropertyString("string", sprite.getText());
        } else {
            textPath.setPropertyString("string", "");
        }
    }

    if (sprite.isTextBaselineDirty() || sprite.isXDirty() || sprite.isYDirty() || ignoreOptimizations) {
        double height = sprite.getFontSize();
        if (sprite.getTextBaseline() == TextBaseline.MIDDLE) {
            height = 0;
        } else if (sprite.getTextBaseline() == TextBaseline.BOTTOM) {
            height *= -1;
        }
        Element path = element.childElement("path").cast();
        path.setPropertyString("v",
                new StringBuilder().append("m").append(Math.round(sprite.getX() * zoom)).append(",")
                        .append(Math.round((sprite.getY() + (height / 2.0)) * zoom)).append(" l")
                        .append(Math.round(sprite.getX() * zoom) + 1).append(",")
                        .append(Math.round((sprite.getY() + (height / 2.0)) * zoom)).toString());
        textRenderedPoints.put(sprite, new PrecisePoint(sprite.getX(), sprite.getY()));
        textRenderedBaseline.put(sprite, sprite.getTextBaseline());
    }
}