net.sourceforge.jeuclid.elements
Class AbstractElementWithDelegates

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.AbstractContainer
                      extended by net.sourceforge.jeuclid.elements.AbstractElementWithDelegates
All Implemented Interfaces:
ChangeTrackingInterface, DisplayableNode, JEuclidElement, JEuclidNode, Element, MathMLContainer, MathMLElement, Node
Direct Known Subclasses:
Maction, Menclose, Mfenced

public abstract class AbstractElementWithDelegates
extends AbstractContainer

Generic class for all mathobjects that can be represented using other Math objects. These math objects use a delegates for the actual display and calculations.

To use this class, overwrite createDelegates() to create the delegate objects.

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.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
AbstractElementWithDelegates(MathBase base)
          default constructor.
 
Method Summary
 float calculateAscentHeight(Graphics2D g)
          Returns the current height of the upper part (over the base line).
 float calculateDescentHeight(Graphics2D g)
          Calculates descent height (under the base line) of the element.
 float calculateWidth(Graphics2D g)
          Caculates width of the element.
protected  void changeHook()
          Called on any change.
protected abstract  List<JEuclidElement> createDelegates()
          Overwrite this function in your implementation.
 void paint(Graphics2D g, float posX, float posY)
          Paints this element.
 
Methods inherited from class net.sourceforge.jeuclid.elements.presentation.AbstractContainer
deleteArgument, deleteDeclaration, getArgument, getArguments, getDeclaration, getDeclarations, getNArguments, insertArgument, insertDeclaration, removeArgument, removeDeclaration, setArgument, setDeclaration
 
Methods inherited from class net.sourceforge.jeuclid.elements.AbstractJEuclidElement
addMathElement, addText, calculateHeight, 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, hasChildPostscripts, hasChildPrescripts, isCalculatingSize, isChildBlock, 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.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

AbstractElementWithDelegates

public AbstractElementWithDelegates(MathBase base)
default constructor.

Parameters:
base - the MathBase to use.
Method Detail

createDelegates

protected abstract List<JEuclidElement> createDelegates()
Overwrite this function in your implementation.

Returns:
a MathObject representing the real contents.

calculateAscentHeight

public float calculateAscentHeight(Graphics2D g)
Returns the current height of the upper part (over the base line).

Specified by:
calculateAscentHeight in interface JEuclidElement
Specified by:
calculateAscentHeight in class AbstractJEuclidElement
Parameters:
g - Graphics2D context to use.
Returns:
Height of the upper part.

calculateDescentHeight

public float calculateDescentHeight(Graphics2D g)
Calculates descent height (under the base line) of the element.

Specified by:
calculateDescentHeight in interface JEuclidElement
Specified by:
calculateDescentHeight in class AbstractJEuclidElement
Parameters:
g - Graphics2D context to use.
Returns:
Descent height value.

calculateWidth

public float calculateWidth(Graphics2D g)
Caculates width of the element.

Specified by:
calculateWidth in class AbstractJEuclidElement
Parameters:
g - Graphics2D context to use.
Returns:
Width of the element.

paint

public void paint(Graphics2D g,
                  float posX,
                  float posY)
Paints this element.

Specified by:
paint in interface DisplayableNode
Overrides:
paint in class AbstractJEuclidElement
Parameters:
g - The graphics context to use for painting
posX - The first left position for painting
posY - The position of the baseline

changeHook

protected void changeHook()
Called on any change. Please override!

Overrides:
changeHook in class AbstractJEuclidElement


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