/*
Jaxe - Editeur XML en Java
Copyright (C) 2003 Observatoire de Paris-Meudon
Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier conformment aux dispositions de la Licence Publique Gnrale GNU, telle que publie par la Free Software Foundation ; version 2 de la licence, ou encore ( votre choix) toute version ultrieure.
Ce programme est distribu dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans mme la garantie implicite de COMMERCIALISATION ou D'ADAPTATION A UN OBJET PARTICULIER. Pour plus de dtail, voir la Licence Publique Gnrale GNU .
Vous devez avoir reu un exemplaire de la Licence Publique Gnrale GNU en mme temps que ce programme ; si ce n'est pas le cas, crivez la Free Software Foundation Inc., 675 Mass Ave, Cambridge, MA 02139, Etats-Unis.
*/
package jaxe.equations.element;
import java.awt.Graphics;
/**
* This class presents text in a equation
*
* @author <a href="mailto:stephan@vern.chem.tu-berlin.de">Stephan Michels</a>
* @author <a href="mailto:sielaff@vern.chem.tu-berlin.de">Marco Sielaff</a>
* @version %I%, %G%
*/
public class MathText extends MathElement
{
/** The XML element from this class */
public final static String ELEMENT = "mtext";
/**
* Paints this element
*
* @param g The graphics context to use for painting
* @param posX The first left position for painting
* @param posY The position of the baseline
*/
@Override
public void paint(final Graphics g, final int posX, final int posY)
{
g.setFont(getFont());
g.drawString(getText(), posX, posY);
}
/**
* Return the current width of this element
*
* @param dynamicParts Should be true, if the calculation consider the elements,
* which has not fixed sizes
*
* @return Width of this element
*/
@Override
public int getWidth(final boolean dynamicParts)
{
return getFontMetrics().stringWidth(getText().replace(' ', 'A'));
// return base.getFontMetrics(fontsize).stringWidth(text.toString());
}
/**
* Return the current height of this element
*
* @param dynamicParts Should be true, if the calculation consider the elements,
* which has not fixed sizes
*
* @return Height of this element
*/
@Override
public int getHeight(final boolean dynamicParts)
{
return getFontMetrics().getAscent() + getFontMetrics().getDescent();
}
/**
* Return the current height of the upper part
* of this component from the baseline
*
* @param dynamicParts Should be true, if the calculation consider the elements,
* which has not fixed sizes
*
* @return Height of the upper part
*/
@Override
public int getAscentHeight(final boolean dynamicParts)
{
return getFontMetrics().getAscent();
}
/**
* Return the current height of the lower part
* of this component from the baseline
*
* @param dynamicParts Should be true, if the calculation consider the elements,
* which has not fixed sizes
*
* @return Height of the lower part
*/
@Override
public int getDescentHeight(final boolean dynamicParts)
{
return getFontMetrics().getDescent();
}
}
|