/** * */ package org.javabuilders.swt.handler.type; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.widgets.Display; import org.javabuilders.BuildException; import org.javabuilders.BuildProcess; import org.javabuilders.Node; import org.javabuilders.handler.ITypeAsValueHandler; import org.javabuilders.swt.cache.FontCache; /** * Font handler. Caches the fonts to avoid re-creating them * @author Jacek Furmankiewicz * */ public class FontAsValueHandler implements ITypeAsValueHandler<Font> { /* (non-Javadoc) * @see org.javabuilders.handler.ITypeAsValueHandler#getInputValueSample() */ public String getInputValueSample() { return "Monospaced 12 bold"; } public String getRegex() { return FontCache.REGEX; } /* (non-Javadoc) * @see org.javabuilders.handler.ITypeAsValueHandler#getValue(org.javabuilders.BuildProcess, org.javabuilders.Node, java.lang.String, java.lang.Object) */ public Font getValue(BuildProcess process, Node node, String key, Object inputValue) throws BuildException { Font font = FontCache.getFont(Display.getCurrent(), String.valueOf(inputValue)); return font; } /* (non-Javadoc) * @see org.javabuilders.IApplicable#getApplicableClass() */ public Class<Font> getApplicableClass() { return Font.class; } }