xmlgraphics-batik-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peppe <peppe.de...@gmail.com>
Subject RE: insert a rect into JSVGCanvas
Date Wed, 08 Nov 2006 14:13:01 GMT

I use the last version of Batik, version 1.6. Perhaps i wrong something in
file loading?...see my post "appendchild, error?"...thanks

thomas.deweese wrote:
> 
> Hi Peppe,
> 
> Peppe <peppe.delia@gmail.com> wrote on 11/08/2006 04:07:02 AM:
> 
>> Thank you for answer. I use this code, wrote by another user to move my 
> rect,
>> but there is a problem: rect create in my JSVGCanvas don't move but the
>> elements in svg file loaded yes...why?
> 
>    Hmm, what Batik are you using?  Trunk?  If so you might be
> hitting a recently introduced bug in the animated transform support.
> You might try 'batik/branches/svg11' which is more stable but
> less feature right (most notably it lacks sXBL and animation
> support).
> 
>> in my code i do
>> svgRoot.appendChild(elem)....:
>> 
>> public JButton getProva() {
>>       if (prova == null) {
>>          prova = new JButton();
>>          prova.setBounds(new Rectangle(6, 139, 92, 31));
>>          prova.setText("rect");
>>          prova.addActionListener(new java.awt.event.ActionListener() {
>>             public void actionPerformed(java.awt.event.ActionEvent e) {  
> 
>> 
>> JSVGCanvas.getUpdateManager().getUpdateRunnableQueue().invokeLater(new
>> Runnable() {
>>                   public void run() {
>>                         SVGDocument doc = JSVGCanvas.getSVGDocument();
>>                             JSVGCanvas.setDocument(doc);
>>                         SVGElement svgRoot = doc.getRootElement();
>>                         Element elem = doc.createElementNS(svgNS, 
> "rect");
>>                         elem.setAttributeNS(null, "id", "bgrectangle");
>>                         elem.setAttributeNS(null, "x","200");
>>                         elem.setAttributeNS(null, "y","100");
>>                         elem.setAttributeNS(null, "width", "50");
>>                         elem.setAttributeNS(null, "height", "50");
>>                         elem.setAttributeNS(null, "pointer-events", 
> "fill");
>>                         elem.setAttributeNS(null, "style", 
> "fill:red;stroke:none"); 
>>                         svgRoot.appendChild(elem);
>>                   }
>>                     });
>>                JSVGCanvas.repaint();
>>             }
>> 
>>          });
>>       }
>>       return prova;
>>    }
>> 
>>    private SVGPoint localPt(Element elem, int x, int y) {
>>         SVGDocument svgDocument = JSVGCanvas.getSVGDocument();
>>         SVGMatrix mat = ((SVGLocatable)elem).getScreenCTM();
>>         SVGMatrix imat = mat.inverse();
>>         SVGPoint cPt = svgDocument.getRootElement().createSVGPoint();
>>         cPt.setX(x);
>>         cPt.setY(y);
>>         cPt = cPt.matrixTransform(imat);
>>         return cPt;
>>     }
>> 
>> 
>>     private class OnDownAction implements EventListener {
>>         public void handleEvent(Event evt) {
>>             DOMMouseEvent elEvt = (DOMMouseEvent)evt;
>>             actionNode = elEvt.getTarget();
>>             action = DRAG;
>>             Node n = ((Element)elEvt.getTarget()).getParentNode();
>>             startPt = localPt((Element)n, elEvt.getClientX(),
>> elEvt.getClientY
>> ());
>>             dragged = false;
>>         }
>>     }
>> 
>>     private class OnUpAction implements EventListener {
>>         public void handleEvent(Event evt) {
>>             if (actionNode != null) {
>>                 actionNode = null;
>>             }
>>         }
>>     }
>> 
>>     private class OnMoveAction implements EventListener {
>>         public void handleEvent(Event evt) {
>>             SVGDocument svgDocument = JSVGCanvas.getSVGDocument();
>>             if (actionNode == null)return;
>>             dragged = true;
>>             DOMMouseEvent elEvt = (DOMMouseEvent)evt;
>>             if (action == DRAG) {
>>                 Element ee = 
> (Element)((Element)actionNode).getParentNode();
>>                 if (ee.getParentNode() != null && ee.getParentNode()
>> instanceof Element) {
>>                     SVGPoint pt = localPt((Element)ee.getParentNode(),
>> elEvt.getClientX(), elEvt.getClientY());
>>                     float dx = pt.getX() - startPt.getX();
>>                     float dy = pt.getY() - startPt.getY();
>>                     ee.setAttribute("transform", "translate(" + dx + ", 
> " +
>> dy
>> + ")");
>>                 }
>>             }
>>         }
>>     }
>> 
>>    /**
>>     * This method initializes muovi 
>>     * 
>>     * @return javax.swing.JToggleButton 
>>     */
>>    private JToggleButton getMuovi() {
>>       if (muovi == null) {
>>          muovi = new JToggleButton();
>>          muovi.setBounds(new Rectangle(6, 178, 94, 30));
>>          muovi.setText("muovi");
>>          muovi.addItemListener(new MuoviItemListener());
>>       }
>>       return muovi;
>>    }
>> 
>> public class MuoviItemListener implements ItemListener { 
>>    public void itemStateChanged(ItemEvent e) {
>>       int status = e.getStateChange(); 
>>       if(status == ItemEvent.SELECTED){
>>          SVGElement svgRoot = 
> JSVGCanvas.getSVGDocument().getRootElement();
>>          EventTarget t = (EventTarget)svgRoot;
>>          t.addEventListener("mousemove", new OnMoveAction(), false);
>>          t.addEventListener("mousedown", new OnDownAction(), false);
>>          t.addEventListener("mouseup", new OnUpAction(), false);
>>       }
>>    }
>> } 
>> 
>> 
>> -- 
>> View this message in context: http://www.nabble.com/insert-a-rect-into-
>> JSVGCanvas-tf2578737.html#a7234967
>> Sent from the Batik - Users mailing list archive at Nabble.com.
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: batik-users-unsubscribe@xmlgraphics.apache.org
>> For additional commands, e-mail: batik-users-help@xmlgraphics.apache.org
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: batik-users-unsubscribe@xmlgraphics.apache.org
> For additional commands, e-mail: batik-users-help@xmlgraphics.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/insert-a-rect-into-JSVGCanvas-tf2578737.html#a7239182
Sent from the Batik - Users mailing list archive at Nabble.com.


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


Mime
View raw message