xmlgraphics-batik-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bibek Sahu <scor...@dodds.net>
Subject text index
Date Tue, 03 Feb 2004 22:03:53 GMT

Howdy all,

Question for anyone: how do I find the index of a character in a
SVGTextContentElement just-prior to a sub-element?

I'm working on an SVG-Editor, and when the user clicks on a text element,
it becomes the active text element and is where characters get inserted /
removed.  I'm stuck on what to do at border-conditions when the user moves
the caret by hitting the left arrow-key or right arrow-key.

For example: suppose I have

<text xml:space="default" id="main-elt">This <tspan id="sub-elt-1"
style="color:blue">  is </tspan>  ---  <tspan id="sub-elt-2"
style="color:red">    My </tspan> --- example.</text>

... and the user clicks on the 'M' in "My".  I set the active element to
be "sub-elt-2", and the current index to be '0'.  If a user types, it goes
inside "sub-elt-2".

But suppose the user hits the Left-Arrow, to back up a step and type after
"is".  Moving up to the parent element is easy; but what should the cursor
index be?  (Note that I've left extra spaces in there, and set the
xml:space to "default" -- the SVG spec says that character indices should
be calculated after text is compressed, which is the wrench in this

If I didn't have to worry about character-compression, I'd just walk the
parent's tree until I found "sub-elt-2", keeping track of lengths along
the way.  But this falls apart when doing character-compression; are there
easy ways to calculate the character-index just prior to element
"sub-elt-2"?  Or even just get the text prior to it, compressed if


- Bibek

PS: sorry 'bout the confusing item on DOM Click events in 1.5.1.  I'm not
exactly sure what the problem is, but I know it's in my code somewhere.
It looks like nodes are being added wrong when pulled from another
document...  but I know how to work around it for now, so 'tis fine ATM.

To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org

View raw message