> zze-DAROUX Olivier FTRD/DIH/GRE wrote:
> > Hi!
> >
> > Maybe someone could help me to find out the problem :
> > I use some "use" elements refering to internal PNG
> (base64-ed) in my SVG document
> > (displayed by a canvas). The visibility attribute is
> hidden. When I set this
> > attribute to visible (using the update manager), the png
> doesn't appear, it
> > only does when (for example) I move the document (using arrows).
>
> Can you provide a reproducable test case (in particular
> use elements aren't allowed to reference PNG data directly).
> If you can't give a complete test case it might also be useful
> to see the code that you use to register the runnable with the
> update manager and change the attribute.
The svg document looks like :
<svg>
<defs>
<image xlink:href="data:;base64,random_letters"
other_attributes id="toto" />
</defs>
<g>
<use xlink:href="#toto" other_attributes/>
</g>
</svg>
for the code (hope it's not obscur) :
NodeList nodes = player.svgDoc.getElementsByTagName("use");
for (int i=0; i<nodes.getLength(); i++) {
Node node = nodes.item(i);
NamedNodeMap nodeAttributes = node.getAttributes();
Node nodeHref =
nodeAttributes.getNamedItemNS("http://www.w3.org/1999/xlink", "href");
if (nodeHref.getNodeValue().equals("#" + key)) {
final Node nodeVisibility =
nodeAttributes.getNamedItem("visibility");
RunnableQueue queueAction =
player.svgView.getUpdateManager().getUpdateRunnableQueue();
if (nodeVisibility.getNodeValue().equals("hidden")) {
queueAction.invokeLater(
new Runnable() {
public void run() {
nodeVisibility.setNodeValue("visible");
}
}
);
} else {
queueAction.invokeLater(
new Runnable() {
public void run() {
nodeVisibility.setNodeValue("hidden");
}
}
);
}
}
}
Thanks Thomas
O
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]