Class FontInfo

java.lang.Object
com.iizigo.panel.FontInfo
All Implemented Interfaces:
IFontInfo

public class FontInfo extends Object implements IFontInfo
Font information class for the UI. The values are the styles that govern the font information and contains the font family, weight, style and line height.
Author:
Christopher Mindus
  • Field Details

    • DEFAULT_DESKTOP

      public static final FontInfo DEFAULT_DESKTOP
      The default font information for desktop.
    • DEFAULT_MOBILE

      public static final FontInfo DEFAULT_MOBILE
      The default font information for mobile.
    • DEFAULT_WINDOWS_MOBILE

      public static final FontInfo DEFAULT_WINDOWS_MOBILE
      The default font information for Windows Mobile.
  • Constructor Details

    • FontInfo

      public FontInfo(String family, String size)
      Constructor from family and size.
      Parameters:
      family - Font family, null for default.
      size - Font size with unit as in CSS, e.g. 12px, 110% or 14pt, null for default.
    • FontInfo

      public FontInfo(String family, String size, String weight, String style, String lineHeight, String letterSpacing)
      Constructor from discrete values.
      Parameters:
      family - Font family, null for default.
      size - Font size with unit as in CSS, e.g. 12px, 110% or 14pt, null for default.
      weight - Font weight as in CSS, e.g. bold, thin or 800, null for default.
      style - Font style as in CSS, e.g. italic or oblique, null for default.
      lineHeight - Line height as in CSS, null for default.
      letterSpacing - Letter spacing as in CSS, null for default.
  • Method Details

    • initialize

      public static void initialize()
      Initializes the resolver.
    • shutdown

      public static void shutdown()
      Shuts down the instance, saves current data in workspace properties.
    • from

      public static FontInfo from(UIComp comp)
      Gets the font information from a component.

      The font information is extracted from the component's styles and/or the parents of the component.

      Returns:
      The font information.
    • from

      public static FontInfo from(UIComp comp, boolean recurseParents)
      Gets the font information from a component.

      The font information is extracted from the component's styles and/or the parents of the component.

      Parameters:
      comp - The component.
      recurseParents - The recurse flag, if the parent(s) should be requested to fill in missing/inherited values.
      Returns:
      The font information.
    • getFamily

      public String getFamily()
      The font family, null for default.
      Specified by:
      getFamily in interface IFontInfo
      Returns:
      The family name, null for default.
    • getSize

      public String getSize()
      The font size with unit as in CSS, e.g. 12px, 110% or 14pt, null for default.
      Specified by:
      getSize in interface IFontInfo
      Returns:
      e.g. 12px, 110% or 14pt, null for default.
    • getWeight

      public String getWeight()
      The font weight as in CSS, e.g. bold, thin or 800, null for default.
      Specified by:
      getWeight in interface IFontInfo
      Returns:
      e.g. bold, thin or 800, null for default.
    • getStyle

      public String getStyle()
      The font style as in CSS, e.g. italic or oblique, null for default.
      Specified by:
      getStyle in interface IFontInfo
      Returns:
      e.g. italic or oblique, null for default.
    • getLineHeight

      public String getLineHeight()
      Line height as in CSS, null for default.
      Specified by:
      getLineHeight in interface IFontInfo
      Returns:
      Line height, null for default.
    • getLetterSpacing

      public String getLetterSpacing()
      Letter spacing as in CSS, null for default.
      Specified by:
      getLetterSpacing in interface IFontInfo
      Returns:
      Letter spacing, null for default.
    • equals

      public boolean equals(Object o)
      If two font informations are equal.
      Overrides:
      equals in class Object
      Parameters:
      o - The other object to compare with.
      Returns:
      The equals flag.
    • hashCode

      public int hashCode()
      The hash code.
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Debug output string.
      Overrides:
      toString in class Object
    • getHeight

      public double getHeight()
      Gets the font height.
      Specified by:
      getHeight in interface IFontInfo
      Returns:
      The font height.
    • getMaxWidth

      public double getMaxWidth()
      Gets the maximum character width.
    • getAverageWidth

      public double getAverageWidth()
      Gets the font average character width.
      Specified by:
      getAverageWidth in interface IFontInfo
      Returns:
      The average width.
    • getEM

      public double getEM()
      Gets the EM size.
      Specified by:
      getEM in interface IFontInfo
      Returns:
      EM size.
    • getEX

      public double getEX()
      Gets the EX size.
      Specified by:
      getEX in interface IFontInfo
      Returns:
      EX size.
    • getPT

      public double getPT()
      Gets the PT size.
      Specified by:
      getPT in interface IFontInfo
      Returns:
      The point size.
    • getInputCharWidth

      public double getInputCharWidth()
      Gets the input character width used in calculations of HTML elements that are "input" tag based.
      Specified by:
      getInputCharWidth in interface IFontInfo
      Returns:
      The input character width.
    • getLineHeightPX

      public double getLineHeightPX()
      Gets the line height in pixels.
    • getStringWidth

      public int getStringWidth(KString text)
      Gets the string width of the specified unwrapped string (no line breaks).
      Specified by:
      getStringWidth in interface IFontInfo
      Parameters:
      text - The text to measure.
      Returns:
      The width in pixels in the current font.