package nus.font; import java.awt.font.TextAttribute; import java.text.AttributedCharacterIterator.Attribute; import static java.awt.font.TextAttribute.*; public enum EAttribute { EFAMILY(FAMILY), EWEIGHT(WEIGHT), EWIDTH(WIDTH), EPOSTURE(POSTURE), ESIZE(SIZE), ETRANSFORM(TRANSFORM), ESUPERSCRIPT(SUPERSCRIPT), EFONT(FONT), ECHAR_REPLACEMENT(CHAR_REPLACEMENT), EFOREGROUND(FOREGROUND), EBACKGROUND(BACKGROUND), EUNDERLINE(UNDERLINE), ESTRIKETHROUGH(STRIKETHROUGH), ERUN_DIRECTION(RUN_DIRECTION), EBIDI_EMBEDDING(BIDI_EMBEDDING), EJUSTIFICATION(JUSTIFICATION), EINPUT_METHOD_HIGHLIGHT(INPUT_METHOD_HIGHLIGHT), EINPUT_METHOD_UNDERLINE(INPUT_METHOD_UNDERLINE), ESWAP_COLORS(SWAP_COLORS), ENUMERIC_SHAPING(NUMERIC_SHAPING), EKERNING(KERNING), ELIGATURES(LIGATURES), ETRACKING(TRACKING), EBASELINE_TRANSFORM(null); /* package */ final int mask; /* package */ final TextAttribute att; EAttribute(TextAttribute ta) { mask = 1 << ordinal(); att = ta; } /* package */ static final EAttribute[] atts = EAttribute.class.getEnumConstants(); public static EAttribute forAttribute(Attribute ta) { for (EAttribute ea: atts) { if (ea.att == ta) { return ea; } } return null; } public String toString() { return name().substring(1).toLowerCase(); } }