| /* TextAttribute.java -- | |
| Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. | |
| This file is part of GNU Classpath. | |
| GNU Classpath is free software; you can redistribute it and/or modify | |
| it under the terms of the GNU General Public License as published by | |
| the Free Software Foundation; either version 2, or (at your option) | |
| any later version. | |
| GNU Classpath is distributed in the hope that it will be useful, but | |
| WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| General Public License for more details. | |
| You should have received a copy of the GNU General Public License | |
| along with GNU Classpath; see the file COPYING. If not, write to the | |
| Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | |
| 02110-1301 USA. | |
| Linking this library statically or dynamically with other modules is | |
| making a combined work based on this library. Thus, the terms and | |
| conditions of the GNU General Public License cover the whole | |
| combination. | |
| As a special exception, the copyright holders of this library give you | |
| permission to link this library with independent modules to produce an | |
| executable, regardless of the license terms of these independent | |
| modules, and to copy and distribute the resulting executable under | |
| terms of your choice, provided that you also meet, for each linked | |
| independent module, the terms and conditions of the license of that | |
| module. An independent module is a module which is not derived from | |
| or based on this library. If you modify this library, you may extend | |
| this exception to your version of the library, but you are not | |
| obligated to do so. If you do not wish to do so, delete this | |
| exception statement from your version. */ | |
| package java.awt.font; | |
| import java.io.InvalidObjectException; | |
| import java.text.AttributedCharacterIterator; | |
| /** | |
| * Attributes (and associated values) that can be used to define an | |
| * {@link java.text.AttributedString}. | |
| */ | |
| public final class TextAttribute extends AttributedCharacterIterator.Attribute | |
| { | |
| private static final long serialVersionUID = 7744112784117861702L; | |
| /** A key for the background paint attribute. */ | |
| public static final TextAttribute BACKGROUND = | |
| new TextAttribute("background"); | |
| /** A key for the BIDI_EMBEDDING attribute. */ | |
| public static final TextAttribute BIDI_EMBEDDING = | |
| new TextAttribute("bidi_embedding"); | |
| /** A key for the CHAR_REPLACEMENT attribute. */ | |
| public static final TextAttribute CHAR_REPLACEMENT = | |
| new TextAttribute("char_replacement"); | |
| /** A key for the FAMILY attribute. */ | |
| public static final TextAttribute FAMILY = new TextAttribute("family"); | |
| /** A key for the font attribute. */ | |
| public static final TextAttribute FONT = new TextAttribute("font"); | |
| /** A key for the foreground paint attribute. */ | |
| public static final TextAttribute FOREGROUND = | |
| new TextAttribute("foreground"); | |
| /** A key for the INPUT_METHOD_HIGHLIGHT attribute. */ | |
| public static final TextAttribute INPUT_METHOD_HIGHLIGHT = | |
| new TextAttribute("input method highlight"); | |
| /** A key for the INPUT_METHOD_UNDERLINE attribute. */ | |
| public static final TextAttribute INPUT_METHOD_UNDERLINE = | |
| new TextAttribute("input method underline"); | |
| /** A key for the text justification attribute. */ | |
| public static final TextAttribute JUSTIFICATION = | |
| new TextAttribute("justification"); | |
| /** | |
| * A value that can be used with the {@link #JUSTIFICATION} attribute to | |
| * indicate full justification of the text. | |
| */ | |
| public static final Float JUSTIFICATION_FULL = new Float(1.0); | |
| /** | |
| * A value that can be used with the {@link #JUSTIFICATION} attribute to | |
| * indicate no justification of the text. | |
| */ | |
| public static final Float JUSTIFICATION_NONE = new Float(0.0); | |
| /** A key for the NUMERIC_SHAPING attribute. */ | |
| public static final TextAttribute NUMERIC_SHAPING = | |
| new TextAttribute("numeric_shaping"); | |
| /** A key for the POSTURE attribute. */ | |
| public static final TextAttribute POSTURE = new TextAttribute("posture"); | |
| /** A value that can be used with the {@link #POSTURE} attribute. */ | |
| public static final Float POSTURE_OBLIQUE = new Float(0.2); | |
| /** A value that can be used with the {@link #POSTURE} attribute. */ | |
| public static final Float POSTURE_REGULAR = new Float(0.0); | |
| /** A key for the RUN_DIRECTION attribute. */ | |
| public static final TextAttribute RUN_DIRECTION = | |
| new TextAttribute("run_direction"); | |
| /** A value that can be used with the {@link #RUN_DIRECTION} attribute. */ | |
| public static final Boolean RUN_DIRECTION_LTR = Boolean.FALSE; | |
| /** A value that can be used with the {@link #RUN_DIRECTION} attribute. */ | |
| public static final Boolean RUN_DIRECTION_RTL = Boolean.TRUE; | |
| /** A key for the text size attribute. */ | |
| public static final TextAttribute SIZE = new TextAttribute("size"); | |
| /** A key for the STRIKETHROUGH attribute. */ | |
| public static final TextAttribute STRIKETHROUGH = | |
| new TextAttribute("strikethrough"); | |
| /** A value that can be used with the {@link #STRIKETHROUGH} attribute. */ | |
| public static final Boolean STRIKETHROUGH_ON = Boolean.TRUE; | |
| /** A key for the SUPERSCRIPT attribute. */ | |
| public static final TextAttribute SUPERSCRIPT = | |
| new TextAttribute("superscript"); | |
| /** A value that can be used with the {@link #SUPERSCRIPT} attribute. */ | |
| public static final Integer SUPERSCRIPT_SUB = new Integer(-1); | |
| /** A value that can be used with the {@link #SUPERSCRIPT} attribute. */ | |
| public static final Integer SUPERSCRIPT_SUPER = new Integer(1); | |
| /** A key for the SWAP_COLORS attribute. */ | |
| public static final TextAttribute SWAP_COLORS = | |
| new TextAttribute("swap_colors"); | |
| /** A value that can be used with the {@link #SWAP_COLORS} attribute. */ | |
| public static final Boolean SWAP_COLORS_ON = Boolean.TRUE; | |
| /** A key for the TRANFORM attribute. */ | |
| public static final TextAttribute TRANSFORM = new TextAttribute("transform"); | |
| /** A key for the UNDERLINE attribute. */ | |
| public static final TextAttribute UNDERLINE = new TextAttribute("underline"); | |
| /** A value that can be used with the {@link #UNDERLINE} attribute. */ | |
| public static final Integer UNDERLINE_LOW_DASHED = new Integer(5); | |
| /** A value that can be used with the {@link #UNDERLINE} attribute. */ | |
| public static final Integer UNDERLINE_LOW_DOTTED = new Integer(3); | |
| /** A value that can be used with the {@link #UNDERLINE} attribute. */ | |
| public static final Integer UNDERLINE_LOW_GRAY = new Integer(4); | |
| /** A value that can be used with the {@link #UNDERLINE} attribute. */ | |
| public static final Integer UNDERLINE_LOW_ONE_PIXEL = new Integer(1); | |
| /** A value that can be used with the {@link #UNDERLINE} attribute. */ | |
| public static final Integer UNDERLINE_LOW_TWO_PIXEL = new Integer(2); | |
| /** A value that can be used with the {@link #UNDERLINE} attribute. */ | |
| public static final Integer UNDERLINE_ON = new Integer(0); | |
| /** A key for the WEIGHT attribute. */ | |
| public static final TextAttribute WEIGHT = new TextAttribute("weight"); | |
| /** A value that can be used with the {@link #WEIGHT} attribute. */ | |
| public static final Float WEIGHT_BOLD = new Float(2.0); | |
| /** A value that can be used with the {@link #WEIGHT} attribute. */ | |
| public static final Float WEIGHT_DEMIBOLD = new Float(1.75); | |
| /** A value that can be used with the {@link #WEIGHT} attribute. */ | |
| public static final Float WEIGHT_DEMILIGHT = new Float(0.875); | |
| /** A value that can be used with the {@link #WEIGHT} attribute. */ | |
| public static final Float WEIGHT_EXTRA_LIGHT = new Float(0.5); | |
| /** A value that can be used with the {@link #WEIGHT} attribute. */ | |
| public static final Float WEIGHT_EXTRABOLD = new Float(2.5); | |
| /** A value that can be used with the {@link #WEIGHT} attribute. */ | |
| public static final Float WEIGHT_HEAVY = new Float(2.25); | |
| /** A value that can be used with the {@link #WEIGHT} attribute. */ | |
| public static final Float WEIGHT_LIGHT = new Float(0.75); | |
| /** A value that can be used with the {@link #WEIGHT} attribute. */ | |
| public static final Float WEIGHT_MEDIUM = new Float(1.5); | |
| /** A value that can be used with the {@link #WEIGHT} attribute. */ | |
| public static final Float WEIGHT_REGULAR = new Float(1.0); | |
| /** A value that can be used with the {@link #WEIGHT} attribute. */ | |
| public static final Float WEIGHT_SEMIBOLD = new Float(1.25); | |
| /** A value that can be used with the {@link #WEIGHT} attribute. */ | |
| public static final Float WEIGHT_ULTRABOLD = new Float(2.75); | |
| /** A key for the WIDTH attribute. */ | |
| public static final TextAttribute WIDTH = new TextAttribute("width"); | |
| /** A value that can be used with the {@link #WIDTH} attribute. */ | |
| public static final Float WIDTH_CONDENSED = new Float(0.75); | |
| /** A value that can be used with the {@link #WIDTH} attribute. */ | |
| public static final Float WIDTH_EXTENDED = new Float(1.5); | |
| /** A value that can be used with the {@link #WIDTH} attribute. */ | |
| public static final Float WIDTH_REGULAR = new Float(1.0); | |
| /** A value that can be used with the {@link #WIDTH} attribute. */ | |
| public static final Float WIDTH_SEMI_CONDENSED = new Float(0.875); | |
| /** A value that can be used with the {@link #WIDTH} attribute. */ | |
| public static final Float WIDTH_SEMI_EXTENDED = new Float(1.25); | |
| /** | |
| * Creates a new attribute. | |
| * | |
| * @param name the name. | |
| */ | |
| protected TextAttribute(String name) | |
| { | |
| super(name); | |
| } | |
| /** | |
| * After deserialization, this method ensures that only one instance of | |
| * each attribute is used. | |
| * | |
| * @return The (single) attribute instance. | |
| * | |
| * @throws InvalidObjectException if the attribute is not recognised. | |
| */ | |
| protected Object readResolve() | |
| throws InvalidObjectException | |
| { | |
| if (this.getName().equals("background")) | |
| return BACKGROUND; | |
| if (this.getName().equals("bidi_embedding")) | |
| return BIDI_EMBEDDING; | |
| if (this.getName().equals("char_replacement")) | |
| return CHAR_REPLACEMENT; | |
| if (this.getName().equals("family")) | |
| return FAMILY; | |
| if (this.getName().equals("font")) | |
| return FONT; | |
| if (this.getName().equals("foreground")) | |
| return FOREGROUND; | |
| if (this.getName().equals("input method highlight")) | |
| return INPUT_METHOD_HIGHLIGHT; | |
| if (this.getName().equals("input method underline")) | |
| return INPUT_METHOD_UNDERLINE; | |
| if (this.getName().equals("justification")) | |
| return JUSTIFICATION; | |
| if (this.getName().equals("numeric_shaping")) | |
| return NUMERIC_SHAPING; | |
| if (this.getName().equals("posture")) | |
| return POSTURE; | |
| if (this.getName().equals("run_direction")) | |
| return RUN_DIRECTION; | |
| if (this.getName().equals("size")) | |
| return SIZE; | |
| if (this.getName().equals("strikethrough")) | |
| return STRIKETHROUGH; | |
| if (this.getName().equals("superscript")) | |
| return SUPERSCRIPT; | |
| if (this.getName().equals("swap_colors")) | |
| return SWAP_COLORS; | |
| if (this.getName().equals("transform")) | |
| return TRANSFORM; | |
| if (this.getName().equals("underline")) | |
| return UNDERLINE; | |
| if (this.getName().equals("weight")) | |
| return WEIGHT; | |
| if (this.getName().equals("width")) | |
| return WIDTH; | |
| throw new InvalidObjectException("Can't resolve Attribute: " + getName()); | |
| } | |
| } |