bella 01/07/04 23:34:52 Modified: sources/org/apache/batik/gvt/text TextHit.java TextLayoutAdapter.java TextPath.java TextSpanLayout.java Log: small changes and added some javadoc Revision Changes Path 1.7 +41 -1 xml-batik/sources/org/apache/batik/gvt/text/TextHit.java Index: TextHit.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/gvt/text/TextHit.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- TextHit.java 2001/06/12 23:49:49 1.6 +++ TextHit.java 2001/07/05 06:34:51 1.7 @@ -17,7 +17,7 @@ * @see org.apache.batik.gvt.text.TextSpanLayout. * * @author <a href="[EMAIL PROTECTED]>Bill Haneman</a> - * @version $Id: TextHit.java,v 1.6 2001/06/12 23:49:49 bella Exp $ + * @version $Id: TextHit.java,v 1.7 2001/07/05 06:34:51 bella Exp $ */ public class TextHit { @@ -26,31 +26,71 @@ private TextNode textNode; private FontRenderContext frc; + /** + * Constructs a TextHit with the specified values. + * + * @param charIndex The index of the character that has been hit. In the + * case of bidirectional text this will be the logical character index not + * the visual index. The index is relative to whole text within the selected + * TextNode. + * @param leadingEdge Indicates which side of the character has been hit. + */ public TextHit(int charIndex, boolean leadingEdge) { this.charIndex = charIndex; this.leadingEdge = leadingEdge; } + /** + * Returns the index of the character that has been hit. + * + * @return The character index. + */ public int getCharIndex() { return charIndex; } + /** + * Returns whether on not the character has been hit on its leading edge. + * + * @return Whether on not the character has been hit on its leading edge. + */ public boolean isLeadingEdge() { return leadingEdge; } + /** + * Sets the TextNode that is associated with this hit. + * + * @param textNode The textNode that has been hit. + */ public void setTextNode(TextNode textNode) { this.textNode = textNode; } + + /** + * Sets the font render context at the time of the hit. + * + * @param frc The current font render context. + */ public void setFontRenderContext(FontRenderContext frc) { this.frc = frc; } + /** + * Returns the text node associated with this text hit. + * + * @return The text node that has been hit. + */ public TextNode getTextNode() { return textNode; } + /** + * Returns the font render context at the time of the text hit. + * + * @return The font render context. + */ public FontRenderContext getFontRenderContext() { return frc; } 1.8 +3 -19 xml-batik/sources/org/apache/batik/gvt/text/TextLayoutAdapter.java Index: TextLayoutAdapter.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/gvt/text/TextLayoutAdapter.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- TextLayoutAdapter.java 2001/06/12 23:49:49 1.7 +++ TextLayoutAdapter.java 2001/07/05 06:34:51 1.8 @@ -34,7 +34,7 @@ * @see org.apache.batik.gvt.TextPainter. * * @author <a href="[EMAIL PROTECTED]>Bill Haneman</a> - * @version $Id: TextLayoutAdapter.java,v 1.7 2001/06/12 23:49:49 bella Exp $ + * @version $Id: TextLayoutAdapter.java,v 1.8 2001/07/05 06:34:51 bella Exp $ */ public class TextLayoutAdapter implements TextSpanLayout { @@ -56,17 +56,6 @@ * @param g2d the Graphics2D to use */ public void draw(Graphics2D g2d, GraphicsNodeRenderContext ctx) { - /* AffineTransform t; - if (transform != null) { - t = g2d.getTransform(); - g2d.transform(transform); - layout.draw(g2d, 0f, 0f); - g2d.setTransform(t); - } else { - layout.draw(g2d, 0f, 0f); - } - - */ Shape outline = getOutline(); @@ -87,9 +76,6 @@ g2d.setPaint(paint); g2d.draw(outline); } - - - } /** @@ -182,7 +168,7 @@ * @return The index of the matching glyph in this layout's glyph vector, * or -1 if a matching glyph could not be found. */ - private int getGlyphIndex(int charIndex) { + public int getGlyphIndex(int charIndex) { int currentChar = aci.getBeginIndex(); int numGlyphs = getGlyphCount(); for (int i = 0; i < numGlyphs; i++) { @@ -204,12 +190,10 @@ * * @param beginCharIndex the index of the first char in the contiguous selection. * @param endCharIndex the index of the last char in the contiguous selection. - * @param selectionLeftToRight Indicates the selection direction. * @return The highlight shape or null if the spacified char range does not * overlap with the chars in this layout. */ - public Shape getHighlightShape(int beginCharIndex, int endCharIndex, - boolean selectionLeftToRight) { + public Shape getHighlightShape(int beginCharIndex, int endCharIndex) { return transform.createTransformedShape( layout.getLogicalHighlightShape(Math.max(0,getGlyphIndex(beginCharIndex)), Math.max(getGlyphCount()-1, getGlyphIndex(endCharIndex)))); 1.3 +12 -3 xml-batik/sources/org/apache/batik/gvt/text/TextPath.java Index: TextPath.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/gvt/text/TextPath.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- TextPath.java 2001/05/14 16:47:18 1.2 +++ TextPath.java 2001/07/05 06:34:51 1.3 @@ -16,13 +16,18 @@ * A text path describes a path along which some text will be rendered. * * @author <a href="mailto:[EMAIL PROTECTED]">Bella Robinson</a> - * @version $Id: TextPath.java,v 1.2 2001/05/14 16:47:18 tkormann Exp $ + * @version $Id: TextPath.java,v 1.3 2001/07/05 06:34:51 bella Exp $ */ public class TextPath { private PathLength pathLength; private float startOffset; + /** + * Constructs a TextPath based on the specified path. + * + * @param path The general path along which text is to be laid. + */ public TextPath(GeneralPath path) { pathLength = new PathLength(path); startOffset = 0; @@ -39,6 +44,8 @@ /** * Returns the start offset of this text path. + * + * @return The start offset of this text path. */ public float getStartOffset() { return startOffset; @@ -46,13 +53,15 @@ /** * Returns the total length of the path. + * + * @return The lenght of the path. */ public float lengthOfPath() { return pathLength.lengthOfPath(); } /** - * Return the angle at the specified length + * Returns the angle at the specified length * along the path. * * @param length The length along the path. @@ -63,7 +72,7 @@ } /** - * Return the point that is at the specified length + * Returns the point that is at the specified length * along the path. * * @param length The length along the path. 1.9 +11 -2 xml-batik/sources/org/apache/batik/gvt/text/TextSpanLayout.java Index: TextSpanLayout.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/gvt/text/TextSpanLayout.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- TextSpanLayout.java 2001/06/12 23:49:49 1.8 +++ TextSpanLayout.java 2001/07/05 06:34:51 1.9 @@ -26,7 +26,7 @@ * @see org.apache.batik.gvt.TextPainter. * * @author <a href="[EMAIL PROTECTED]>Bill Haneman</a> - * @version $Id: TextSpanLayout.java,v 1.8 2001/06/12 23:49:49 bella Exp $ + * @version $Id: TextSpanLayout.java,v 1.9 2001/07/05 06:34:51 bella Exp $ */ public interface TextSpanLayout { @@ -102,7 +102,7 @@ * @param begin the index of the first glyph in the contiguous selection. * @param end the index of the last glyph in the contiguous selection. */ - public Shape getHighlightShape(int beginCharIndex, int endCharIndex, boolean selectionLeftToRight); + public Shape getHighlightShape(int beginCharIndex, int endCharIndex); /** * Perform hit testing for coordinate at x, y. @@ -138,6 +138,15 @@ */ public int getCharacterCount(int startGlyphIndex, int endGlyphIndex); + /** + * Returns the glyph index of the glyph that has the specified char index. + * + * @param charIndex The original index of the character in the text node's + * text string. + * @return The index of the matching glyph in this layout's glyph vector, + * or -1 if a matching glyph could not be found. + */ + public int getGlyphIndex(int charIndex); /** * Returns true if the text direction in this layout is from left to right. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]