net.sourceforge.jeuclid.elements.presentation.script
Class AbstractSubSuper

java.lang.Object
  extended by net.sourceforge.jeuclid.dom.AbstractPartialNodeImpl
      extended by net.sourceforge.jeuclid.dom.AbstractPartialElementImpl
          extended by net.sourceforge.jeuclid.dom.AbstractChangeTrackingElement
              extended by net.sourceforge.jeuclid.elements.AbstractJEuclidElement
                  extended by net.sourceforge.jeuclid.elements.presentation.script.AbstractScriptElement
                      extended by net.sourceforge.jeuclid.elements.presentation.script.AbstractSubSuper
All Implemented Interfaces:
ChangeTrackingInterface, DisplayableNode, JEuclidElement, JEuclidNode, Element, MathMLElement, MathMLPresentationElement, MathMLScriptElement, Node
Direct Known Subclasses:
Msub, Msubsup, Msup

public abstract class AbstractSubSuper
extends AbstractScriptElement
implements MathMLScriptElement

Generic support for all elements that have a subscript or a superscript attribute.

Supported elements: msub, msup, msubsup.

Version:
$Revision: 310 $
Author:
Max Berger

Nested Class Summary
 
Nested classes/interfaces inherited from class net.sourceforge.jeuclid.dom.AbstractPartialElementImpl
AbstractPartialElementImpl.AttributeNodeMap, AbstractPartialElementImpl.AttrImpl
 
Nested classes/interfaces inherited from class net.sourceforge.jeuclid.dom.AbstractPartialNodeImpl
AbstractPartialNodeImpl.NodeList
 
Field Summary
 
Fields inherited from class net.sourceforge.jeuclid.elements.presentation.script.AbstractScriptElement
ATTR_SUBSCRIPTSHIFT, ATTR_SUPERSCRIPTSHIFT
 
Fields inherited from class net.sourceforge.jeuclid.elements.AbstractJEuclidElement
ALIGN_AXIS, ALIGN_BASELINE, ALIGN_BOTTOM, ALIGN_CENTER, ALIGN_LEFT, ALIGN_RIGHT, ALIGN_TOP, ATTR_CLASS, ATTR_DEPRECATED_BACKGROUND, ATTR_DEPRECATED_COLOR, ATTR_DEPRECATED_FONTFAMILY, ATTR_DEPRECATED_FONTSIZE, ATTR_DEPRECATED_FONTSTYLE, ATTR_DEPRECATED_FONTWEIGHT, ATTR_HREF, ATTR_ID, ATTR_MATHBACKGROUND, ATTR_MATHCOLOR, ATTR_MATHSIZE, ATTR_MATHVARIANT, ATTR_STYLE, ATTR_XREF, TRIVIAL_SPACE_MAX, URI
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Constructor Summary
AbstractSubSuper(MathBase base)
          Default constructor.
 
Method Summary
protected  float caclulateAscentHeightWithSuper(Graphics2D g)
          Calculate the ascent height, taking a super element into account.
protected  float caclulateDescentHeightWithSub(Graphics2D g)
          Calculate the descent height, taking a sub element into account.
abstract  JEuclidElement getBase()
          A MathMLElement representing the base of the script.
protected  float getSubBaseLineShift(Graphics2D g)
          Retrieve the amount of pts by which the baseline of the sub element is shifted.
abstract  JEuclidElement getSubscript()
          A MathMLElement representing the subscript of the script.
protected  float getSuperBaseLineShift(Graphics2D g)
          Retrieve the amount of pts by which the baseline of the super element is shifted.
abstract  JEuclidElement getSuperscript()
          A MathMLElement representing the superscript of the script.
 boolean hasChildPostscripts(JEuclidElement child)
          returns true is the child has postscripts attached to it.
 
Methods inherited from class net.sourceforge.jeuclid.elements.presentation.script.AbstractScriptElement
getSubscriptshift, getSuperscriptshift, setSubscriptshift, setSuperscriptshift
 
Methods inherited from class net.sourceforge.jeuclid.elements.AbstractJEuclidElement
addMathElement, addText, calculateAscentHeight, calculateDescentHeight, calculateHeight, calculateWidth, changeHook, debug, getAbsoluteScriptLevel, getAscentHeight, getBackgroundColor, getClassName, getContents, getDescentHeight, getFont, getFontMetrics, getFontsizeInPoint, getForegroundColor, getGlobalLineCorrector, getHeight, getHref, getId, getIndexOfMathElement, getInheritedScriptlevel, getMathAttribute, getMathbackground, getMathBase, getMathcolor, getMathElement, getMathElementCount, getMathElementStyle, getMathsize, getMathsizeInPoint, getMathvariant, getMathvariantAsVariant, getMiddleShift, getOwnerMathElement, getPaintedPosX, getPaintedPosY, getParent, getScriptlevelForChild, getScriptSizeMultiplier, getText, getWidth, getXCenter, getXref, hasChildPrescripts, isCalculatingSize, isChildBlock, paint, recalculateSize, setCalculatingSize, setClassName, setDefaultMathAttribute, setFakeParent, setGlobalLineCorrector, setHref, setId, setMathAttributes, setMathbackground, setMathBase, setMathcolor, setMathElement, setMathElementStyle, setMathsize, setMathvariant, setScriptSizeMultiplier, setXref
 
Methods inherited from class net.sourceforge.jeuclid.dom.AbstractChangeTrackingElement
addListener, appendChild, fireChanged, fireChangeForSubTree, replaceChild, setAttribute, setTextContent
 
Methods inherited from class net.sourceforge.jeuclid.dom.AbstractPartialElementImpl
getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getElementsByTagName, getElementsByTagNameNS, getLocalName, getNodeName, getNodeType, getSchemaTypeInfo, hasAttribute, hasAttributeNS, removeAttribute, removeAttributeNode, removeAttributeNS, setAttributeNode, setAttributeNodeNS, setAttributeNS, setIdAttribute, setIdAttributeNode, setIdAttributeNS, toString
 
Methods inherited from class net.sourceforge.jeuclid.dom.AbstractPartialNodeImpl
cloneNode, compareDocumentPosition, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getNamespaceURI, getNextSibling, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, setNodeValue, setPrefix, setUserData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.w3c.dom.mathml.MathMLScriptElement
getSubscriptshift, getSuperscriptshift, setBase, setSubscript, setSubscriptshift, setSuperscript, setSuperscriptshift
 
Methods inherited from interface org.w3c.dom.mathml.MathMLElement
getClassName, getHref, getId, getMathElementStyle, getOwnerMathElement, getXref, setClassName, setHref, setId, setMathElementStyle, setXref
 
Methods inherited from interface org.w3c.dom.Element
getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getElementsByTagName, getElementsByTagNameNS, getSchemaTypeInfo, getTagName, hasAttribute, hasAttributeNS, removeAttribute, removeAttributeNode, removeAttributeNS, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setIdAttribute, setIdAttributeNode, setIdAttributeNS
 
Methods inherited from interface org.w3c.dom.Node
appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
 
Methods inherited from interface net.sourceforge.jeuclid.dom.ChangeTrackingInterface
addListener, fireChanged, fireChangeForSubTree
 

Constructor Detail

AbstractSubSuper

public AbstractSubSuper(MathBase base)
Default constructor.

Parameters:
base - MathBase to link to.
Method Detail

getBase

public abstract JEuclidElement getBase()
A MathMLElement representing the base of the script. This is the first child of the element.

Specified by:
getBase in interface MathMLScriptElement
Returns:
value of the base attribute.

getSuperscript

public abstract JEuclidElement getSuperscript()
A MathMLElement representing the superscript of the script. This is the second child of a msup or the third child of a msubsup; retrieval must return null for an msub.

Specified by:
getSuperscript in interface MathMLScriptElement
Returns:
value of the superscript attribute.

getSubscript

public abstract JEuclidElement getSubscript()
A MathMLElement representing the subscript of the script. This is the second child of a msub or msubsup; retrieval must return null for an msup.

Specified by:
getSubscript in interface MathMLScriptElement
Returns:
value of the subscript attribute.

getSuperBaseLineShift

protected float getSuperBaseLineShift(Graphics2D g)
Retrieve the amount of pts by which the baseline of the super element is shifted.

Parameters:
g - Graphics context to use
Returns:
baseline shift for super elements

getSubBaseLineShift

protected float getSubBaseLineShift(Graphics2D g)
Retrieve the amount of pts by which the baseline of the sub element is shifted.

Parameters:
g - Graphics context to use
Returns:
baseline shift for super elements

caclulateAscentHeightWithSuper

protected float caclulateAscentHeightWithSuper(Graphics2D g)
Calculate the ascent height, taking a super element into account.

Parameters:
g - Graphics context to use
Returns:
ascent height

caclulateDescentHeightWithSub

protected float caclulateDescentHeightWithSub(Graphics2D g)
Calculate the descent height, taking a sub element into account.

Parameters:
g - Graphics context to use
Returns:
descent height

hasChildPostscripts

public boolean hasChildPostscripts(JEuclidElement child)
returns true is the child has postscripts attached to it. In this case, there should be no extra space on the left.

Specified by:
hasChildPostscripts in interface JEuclidElement
Overrides:
hasChildPostscripts in class AbstractJEuclidElement
Parameters:
child - child to test
Returns:
true if there are attached postscripts


Copyright © 2002-2008 The JEuclid project. All Rights Reserved.