| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| /** |
| * @author Ilya S. Okomin |
| * @version $Revision$ |
| */ |
| package java.awt.font; |
| |
| import java.io.InvalidObjectException; |
| import java.text.AttributedCharacterIterator.Attribute; |
| import java.util.HashMap; |
| import java.util.Map; |
| |
| /** |
| * The TextAttribute class defines attribute keys and attribute values |
| * for text rendering. Each TextAttributes should have the following |
| * information: |
| * <ul> |
| * <li>key name;</li> |
| * <li>valid values;</li> |
| * <li>relevant constants;</li> |
| * <li>default action if the attribute is absent;</li> |
| * <li>default action's description.</li> |
| * </ul> |
| */ |
| public final class TextAttribute extends Attribute { |
| |
| /** The Constant serialVersionUID. */ |
| private static final long serialVersionUID = 7744112784117861702L; |
| |
| // set of available text attributes |
| /** The Constant attrMap. */ |
| private static final Map<String, TextAttribute> attrMap = new HashMap<String, TextAttribute>(); |
| |
| /** |
| * Instantiates a new TextAttribute with the specified name. |
| * |
| * @param name the name of TextAttribute. |
| */ |
| protected TextAttribute(String name) { |
| super(name); |
| attrMap.put(name, this); |
| } |
| |
| /** |
| * Resolves the instance being deserialized. |
| * |
| * @return the Object. |
| * |
| * @throws InvalidObjectException the InvalidObjectException. |
| */ |
| @Override |
| protected Object readResolve() throws InvalidObjectException { |
| TextAttribute result = attrMap.get(this.getName()); |
| if (result != null) { |
| return result; |
| } |
| throw new InvalidObjectException("Unknown attribute name"); |
| } |
| |
| /** |
| * The BACKGROUND text attribute. |
| */ |
| public static final TextAttribute BACKGROUND = new TextAttribute("background"); |
| |
| /** The BIDI_EMBEDDING text attribute key. */ |
| public static final TextAttribute BIDI_EMBEDDING = new TextAttribute("bidi_embedding"); |
| |
| /** The CHAR_REPLACEMENT text attribute key. */ |
| public static final TextAttribute CHAR_REPLACEMENT = new TextAttribute("char_replacement"); |
| |
| /** The FAMILY text attribute key. */ |
| public static final TextAttribute FAMILY = new TextAttribute("family"); |
| |
| /** The FONT text attribute key. */ |
| public static final TextAttribute FONT = new TextAttribute("font"); |
| |
| /** The FOREGROUND text attribute key. */ |
| public static final TextAttribute FOREGROUND = new TextAttribute("foreground"); |
| |
| /** The INPUT_METHOD_HIGHLIGHT text attribute key. */ |
| public static final TextAttribute INPUT_METHOD_HIGHLIGHT = new TextAttribute( |
| "input method highlight"); |
| |
| /** The INPUT_METHOD_UNDERLINE text attribute key. */ |
| public static final TextAttribute INPUT_METHOD_UNDERLINE = new TextAttribute( |
| "input method underline"); |
| |
| /** The JUSTIFICATION text attribute key. */ |
| public static final TextAttribute JUSTIFICATION = new TextAttribute("justification"); |
| |
| /** The Constant JUSTIFICATION_indicates the full requested width. */ |
| public static final Float JUSTIFICATION_FULL = new Float(1.0f); |
| |
| /** |
| * The Constant JUSTIFICATION_NONE indicates that line is not |
| * allowed for justification. |
| */ |
| public static final Float JUSTIFICATION_NONE = new Float(0.0f); |
| |
| /** |
| * The KERNING text attribute key. |
| * |
| * @since 1.6 |
| */ |
| public static final TextAttribute KERNING = new TextAttribute("kerning"); |
| |
| /** @since 1.6 */ |
| public static final Integer KERNING_ON = 1; |
| |
| /** |
| * The LIGATURES text attribute key. |
| * |
| * @since 1.6 |
| */ |
| public static final TextAttribute LIGATURES = new TextAttribute("ligatures"); |
| |
| /** @since 1.6 */ |
| public static final Integer LIGATURES_ON = 1; |
| |
| /** The NUMERIC_SHAPING text attribute. */ |
| public static final TextAttribute NUMERIC_SHAPING = new TextAttribute("numeric_shaping"); |
| |
| /** The POSTURE text attribute. */ |
| public static final TextAttribute POSTURE = new TextAttribute("posture"); |
| |
| /** The Constant POSTURE_REGULAR indicates regular posture. */ |
| public static final Float POSTURE_REGULAR = new Float(0.0f); |
| |
| /** The Constant POSTURE_OBLIQUE indicates italic posture. */ |
| public static final Float POSTURE_OBLIQUE = new Float(0.20f); |
| |
| /** The RUN_DIRECTION text attribute. */ |
| public static final TextAttribute RUN_DIRECTION = new TextAttribute("run_direction"); |
| |
| /** |
| * The Constant RUN_DIRECTION_LTR indicates left-to-right run |
| * direction. |
| */ |
| public static final Boolean RUN_DIRECTION_LTR = false; |
| |
| /** |
| * The Constant RUN_DIRECTION_RTL indicates right-to-left run |
| * direction. |
| */ |
| public static final Boolean RUN_DIRECTION_RTL = true; |
| |
| /** The SIZE text attribute. */ |
| public static final TextAttribute SIZE = new TextAttribute("size"); |
| |
| /** The STRIKETHROUGH text attribute. */ |
| public static final TextAttribute STRIKETHROUGH = new TextAttribute("strikethrough"); |
| |
| /** The Constant STRIKETHROUGH_ON indicates a single strikethrough. */ |
| public static final Boolean STRIKETHROUGH_ON = true; |
| |
| /** The SUPERSCRIPT text attribute. */ |
| public static final TextAttribute SUPERSCRIPT = new TextAttribute("superscript"); |
| |
| /** The Constant SUPERSCRIPT_SUB indicates a standard subscript. */ |
| public static final Integer SUPERSCRIPT_SUB = -1; |
| |
| /** The Constant SUPERSCRIPT_SUPER indicates a standard superscript. */ |
| public static final Integer SUPERSCRIPT_SUPER = 1; |
| |
| /** The SWAP_COLORS text attribute. */ |
| public static final TextAttribute SWAP_COLORS = new TextAttribute("swap_colors"); |
| |
| /** |
| * The Constant SWAP_COLORS_ON indicates a swap of foreground |
| * and background. |
| */ |
| public static final Boolean SWAP_COLORS_ON = true; |
| |
| /** |
| * The TRACKING text attribute key. |
| * |
| * @since 1.6 |
| */ |
| public static final TextAttribute TRACKING = new TextAttribute("tracking"); |
| |
| /** @since 1.6 */ |
| public static final Float TRACKING_LOOSE = -1f; |
| /** @since 1.6 */ |
| public static final Float TRACKING_TIGHT = -1f; |
| |
| /** The TRANSFORM text attribute. */ |
| public static final TextAttribute TRANSFORM = new TextAttribute("transform"); |
| |
| /** The Constant UNDERLINE text attribute. */ |
| public static final TextAttribute UNDERLINE = new TextAttribute("underline"); |
| |
| /** |
| * The Constant UNDERLINE_ON indicates a standard underline |
| * at the roman baseline for roman text. |
| */ |
| public static final Integer UNDERLINE_ON = 0; |
| |
| /** |
| * The Constant UNDERLINE_LOW_ONE_PIXEL indicates a single |
| * pixel solid low underline. |
| */ |
| public static final Integer UNDERLINE_LOW_ONE_PIXEL = 1; |
| |
| /** |
| * The Constant UNDERLINE_LOW_TWO_PIXEL indicates a double |
| * pixel solid low underline. |
| */ |
| public static final Integer UNDERLINE_LOW_TWO_PIXEL = 2; |
| |
| /** |
| * The Constant UNDERLINE_LOW_DOTTED indicates a |
| * single pixel dotted low underline. |
| */ |
| public static final Integer UNDERLINE_LOW_DOTTED = 3; |
| |
| /** |
| * The Constant UNDERLINE_LOW_GRAY indicates double pixel |
| * gray low underline. |
| */ |
| public static final Integer UNDERLINE_LOW_GRAY = 4; |
| |
| /** |
| * The Constant UNDERLINE_LOW_DASHED indicates single pixel dashed |
| * low underline. |
| */ |
| public static final Integer UNDERLINE_LOW_DASHED = 5; |
| |
| /** The WEIGHT text attribute. */ |
| public static final TextAttribute WEIGHT = new TextAttribute("weight"); |
| |
| /** |
| * The Constant WEIGHT_EXTRA_LIGHT indicates the lightest |
| * predefined weight. |
| */ |
| public static final Float WEIGHT_EXTRA_LIGHT = new Float(0.5f); |
| |
| /** |
| * The Constant WEIGHT_LIGHT indicates the standard light weight. |
| */ |
| public static final Float WEIGHT_LIGHT = new Float(0.75f); |
| |
| /** |
| * The Constant WEIGHT_DEMILIGHT indicates an intermediate weight |
| * between LIGHT and STANDARD. |
| */ |
| public static final Float WEIGHT_DEMILIGHT = new Float(0.875f); |
| |
| /** |
| * The Constant WEIGHT_REGULAR indicates the standart weight. |
| */ |
| public static final Float WEIGHT_REGULAR = new Float(1.0f); |
| |
| /** |
| * The Constant WEIGHT_SEMIBOLD indicates a semi weight |
| * of REGULAR. |
| */ |
| public static final Float WEIGHT_SEMIBOLD = new Float(1.25f); |
| |
| /** The Constant WEIGHT_MEDIUM indicates average weight |
| * between the REGULAR and BOLD. */ |
| public static final Float WEIGHT_MEDIUM = new Float(1.5f); |
| |
| /** The Constant WEIGHT_DEMIBOLD indicates |
| * a lighter weight than BOLD. */ |
| public static final Float WEIGHT_DEMIBOLD = new Float(1.75f); |
| |
| /** The Constant WEIGHT_BOLD indicates the standard bold weight. */ |
| public static final Float WEIGHT_BOLD = new Float(2.0f); |
| |
| /** The Constant WEIGHT_HEAVY indicates a heavier weight than BOLD. */ |
| public static final Float WEIGHT_HEAVY = new Float(2.25f); |
| |
| /** The Constant WEIGHT_EXTRABOLD indicates an extra heavy weight. */ |
| public static final Float WEIGHT_EXTRABOLD = new Float(2.5f); |
| |
| /** |
| * The Constant WEIGHT_ULTRABOLD indicates the heaviest predefined |
| * weight. |
| */ |
| public static final Float WEIGHT_ULTRABOLD = new Float(2.75f); |
| |
| /** The WIDTH text attribute. */ |
| public static final TextAttribute WIDTH = new TextAttribute("width"); |
| |
| /** |
| * The Constant WIDTH_CONDENSED indicates the most condensed |
| * predefined width. |
| */ |
| public static final Float WIDTH_CONDENSED = new Float(0.75f); |
| |
| /** |
| * The Constant WIDTH_SEMI_CONDENSED indicates |
| * a semi condensed width. |
| */ |
| public static final Float WIDTH_SEMI_CONDENSED = new Float(0.875f); |
| |
| /** |
| * The Constant WIDTH_REGULAR indicates the standard width. |
| */ |
| public static final Float WIDTH_REGULAR = new Float(1.0f); |
| |
| /** |
| * The Constant WIDTH_SEMI_EXTENDED indicates semi extended width. |
| */ |
| public static final Float WIDTH_SEMI_EXTENDED = new Float(1.25f); |
| |
| /** |
| * The Constant WIDTH_EXTENDED indicates extended width. |
| */ |
| public static final Float WIDTH_EXTENDED = new Float(1.5f); |
| |
| } |