|
Java example source code file (LabelView.java)
The LabelView.java Java example source code/* * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package javax.swing.text; import java.awt.*; import javax.swing.event.*; /** * A <code>LabelView is a styled chunk of text * that represents a view mapped over an element in the * text model. It caches the character level attributes * used for rendering. * * @author Timothy Prinzing */ public class LabelView extends GlyphView implements TabableView { /** * Constructs a new view wrapped on an element. * * @param elem the element */ public LabelView(Element elem) { super(elem); } /** * Synchronize the view's cached values with the model. * This causes the font, metrics, color, etc to be * re-cached if the cache has been invalidated. */ final void sync() { if (font == null) { setPropertiesFromAttributes(); } } /** * Sets whether or not the view is underlined. * Note that this setter is protected and is really * only meant if you need to update some additional * state when set. * * @param u true if the view is underlined, otherwise * false * @see #isUnderline */ protected void setUnderline(boolean u) { underline = u; } /** * Sets whether or not the view has a strike/line * through it. * Note that this setter is protected and is really * only meant if you need to update some additional * state when set. * * @param s true if the view has a strike/line * through it, otherwise false * @see #isStrikeThrough */ protected void setStrikeThrough(boolean s) { strike = s; } /** * Sets whether or not the view represents a * superscript. * Note that this setter is protected and is really * only meant if you need to update some additional * state when set. * * @param s true if the view represents a * superscript, otherwise false * @see #isSuperscript */ protected void setSuperscript(boolean s) { superscript = s; } /** * Sets whether or not the view represents a * subscript. * Note that this setter is protected and is really * only meant if you need to update some additional * state when set. * * @param s true if the view represents a * subscript, otherwise false * @see #isSubscript */ protected void setSubscript(boolean s) { subscript = s; } /** * Sets the background color for the view. This method is typically * invoked as part of configuring this <code>View. If you need * to customize the background color you should override * <code>setPropertiesFromAttributes and invoke this method. A * value of null indicates no background should be rendered, so that the * background of the parent <code>View will show through. * * @param bg background color, or null * @see #setPropertiesFromAttributes * @since 1.5 */ protected void setBackground(Color bg) { this.bg = bg; } /** * Sets the cached properties from the attributes. */ protected void setPropertiesFromAttributes() { AttributeSet attr = getAttributes(); if (attr != null) { Document d = getDocument(); if (d instanceof StyledDocument) { StyledDocument doc = (StyledDocument) d; font = doc.getFont(attr); fg = doc.getForeground(attr); if (attr.isDefined(StyleConstants.Background)) { bg = doc.getBackground(attr); } else { bg = null; } setUnderline(StyleConstants.isUnderline(attr)); setStrikeThrough(StyleConstants.isStrikeThrough(attr)); setSuperscript(StyleConstants.isSuperscript(attr)); setSubscript(StyleConstants.isSubscript(attr)); } else { throw new StateInvariantError("LabelView needs StyledDocument"); } } } /** * Fetches the <code>FontMetrics used for this view. * @deprecated FontMetrics are not used for glyph rendering * when running in the JDK. */ @Deprecated protected FontMetrics getFontMetrics() { sync(); Container c = getContainer(); return (c != null) ? c.getFontMetrics(font) : Toolkit.getDefaultToolkit().getFontMetrics(font); } /** * Fetches the background color to use to render the glyphs. * This is implemented to return a cached background color, * which defaults to <code>null. * * @return the cached background color * @since 1.3 */ public Color getBackground() { sync(); return bg; } /** * Fetches the foreground color to use to render the glyphs. * This is implemented to return a cached foreground color, * which defaults to <code>null. * * @return the cached foreground color * @since 1.3 */ public Color getForeground() { sync(); return fg; } /** * Fetches the font that the glyphs should be based upon. * This is implemented to return a cached font. * * @return the cached font */ public Font getFont() { sync(); return font; } /** * Determines if the glyphs should be underlined. If true, * an underline should be drawn through the baseline. This * is implemented to return the cached underline property. * * <p>When you request this property, Other Java examples (source code examples)Here is a short list of links related to this Java LabelView.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.