You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-dev@xmlgraphics.apache.org by tk...@apache.org on 2002/04/22 16:59:45 UTC

cvs commit: xml-batik/sources/org/apache/batik/bridge AbstractGraphicsNodeBridge.java BridgeContext.java BridgeUpdateHandler.java

tkormann    02/04/22 07:59:44

  Modified:    sources/org/apache/batik/bridge
                        AbstractGraphicsNodeBridge.java BridgeContext.java
                        BridgeUpdateHandler.java
  Log:
  - add a new global listener for DOMCharacterDataModified event
  
  - add a new method handleDOMCharacterDataModified on
  BridgeUpdateHandler that is automatically called on the enclosing SVG
  element.
  
  Revision  Changes    Path
  1.22      +9 -2      xml-batik/sources/org/apache/batik/bridge/AbstractGraphicsNodeBridge.java
  
  Index: AbstractGraphicsNodeBridge.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/AbstractGraphicsNodeBridge.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- AbstractGraphicsNodeBridge.java	15 Apr 2002 10:16:12 -0000	1.21
  +++ AbstractGraphicsNodeBridge.java	22 Apr 2002 14:59:44 -0000	1.22
  @@ -44,7 +44,7 @@
    * </ul>
    *
    * @author <a href="mailto:tkormann@apache.org">Thierry Kormann</a>
  - * @version $Id: AbstractGraphicsNodeBridge.java,v 1.21 2002/04/15 10:16:12 hillion Exp $
  + * @version $Id: AbstractGraphicsNodeBridge.java,v 1.22 2002/04/22 14:59:44 tkormann Exp $
    */
   public abstract class AbstractGraphicsNodeBridge extends AbstractSVGBridge
       implements SVGContext, 
  @@ -184,6 +184,13 @@
       }
   
       /**
  +     * Invoked when an MutationEvent of type 'DOMCharacterDataModified' 
  +     * is fired.
  +     */
  +    public void handleDOMCharacterDataModified(MutationEvent evt) {
  +    }
  +
  +    /**
        * Disposes this BridgeUpdateHandler and releases all resources.
        */
       public void dispose() {
  @@ -202,7 +209,7 @@
               BridgeUpdateHandler h = (BridgeUpdateHandler)elt.getSVGContext();
               h.dispose();
           }
  -        for (Node n = node.getFirstChild(); n != null; n = n.getNextSibling()) {
  +        for (Node n = node.getFirstChild(); n!=null; n = n.getNextSibling()) {
               disposeTree(n);
           }
       }
  
  
  
  1.45      +42 -3     xml-batik/sources/org/apache/batik/bridge/BridgeContext.java
  
  Index: BridgeContext.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/BridgeContext.java,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- BridgeContext.java	17 Apr 2002 09:47:38 -0000	1.44
  +++ BridgeContext.java	22 Apr 2002 14:59:44 -0000	1.45
  @@ -66,7 +66,7 @@
    * a SVG DOM tree such as the current viewport or the user agent.
    *
    * @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
  - * @version $Id: BridgeContext.java,v 1.44 2002/04/17 09:47:38 tkormann Exp $
  + * @version $Id: BridgeContext.java,v 1.45 2002/04/22 14:59:44 tkormann Exp $
    */
   public class BridgeContext implements ErrorConstants, CSSContext {
   
  @@ -704,6 +704,11 @@
       // dynamic support ////////////////////////////////////////////////////////
   
       /**
  +     * The DOM EventListener to receive 'DOMCharacterDataModified' event.
  +     */
  +    protected EventListener domCharacterDataModifiedListener;
  +
  +    /**
        * The DOM EventListener to receive 'DOMAttrModified' event.
        */
       protected EventListener domAttrModifiedEventListener;
  @@ -729,19 +734,29 @@
        * properties and update the GVT tree in response.
        */
       public void addDOMListeners() {
  -        domAttrModifiedEventListener = new DOMAttrModifiedEventListener();
           EventTarget evtTarget = (EventTarget)document;
  +
  +        domAttrModifiedEventListener = new DOMAttrModifiedEventListener();
           evtTarget.addEventListener("DOMAttrModified",
                                      domAttrModifiedEventListener,
                                      true);
  +
           domNodeInsertedEventListener = new DOMNodeInsertedEventListener();
           evtTarget.addEventListener("DOMNodeInserted",
                                      domNodeInsertedEventListener,
                                      true);
  +
           domNodeRemovedEventListener = new DOMNodeRemovedEventListener();
           evtTarget.addEventListener("DOMNodeRemoved",
                                      domNodeRemovedEventListener,
                                      true);
  +
  +        domCharacterDataModifiedListener = 
  +            new DOMCharacterDataModifiedListener();
  +        evtTarget.addEventListener("DOMCharacterDataModified",
  +                                   domCharacterDataModifiedListener,
  +                                   true);
  +
           SVGOMDocument svgDocument = (SVGOMDocument)document;
           CSSEngine cssEngine = svgDocument.getCSSEngine();
           cssPropertiesChangedListener = new CSSPropertiesChangedListener();
  @@ -762,6 +777,9 @@
           evtTarget.removeEventListener("DOMNodeRemoved",
                                         domNodeRemovedEventListener, 
                                         true);
  +        evtTarget.removeEventListener("DOMCharacterDataModified",
  +                                      domCharacterDataModifiedListener, 
  +                                      true);
   
           SVGOMDocument svgDocument = (SVGOMDocument)document;
           CSSEngine cssEngine = svgDocument.getCSSEngine();
  @@ -814,7 +832,8 @@
            */
           public void handleEvent(Event evt) {
               MutationEvent me = (MutationEvent)evt;
  -            BridgeUpdateHandler h = getBridgeUpdateHandler(me.getRelatedNode());
  +            BridgeUpdateHandler h = 
  +                getBridgeUpdateHandler(me.getRelatedNode());
               if (h != null) {
                   h.handleDOMNodeInsertedEvent(me);
               }
  @@ -834,6 +853,26 @@
               BridgeUpdateHandler h = getBridgeUpdateHandler(node);
               if (h != null) {
                   h.handleDOMNodeRemovedEvent((MutationEvent)evt);
  +            }
  +        }
  +    }
  +
  +    /**
  +     * The DOM EventListener invoked when a character data is changed.
  +     */
  +    protected class DOMCharacterDataModifiedListener implements EventListener {
  +
  +        /**
  +         * Handles 'DOMNodeRemoved' event type.
  +         */
  +        public void handleEvent(Event evt) {
  +            Node node = (Node)evt.getTarget();
  +            while (node != null && !(node instanceof SVGOMElement)) {
  +                node = node.getParentNode();
  +            }
  +            BridgeUpdateHandler h = getBridgeUpdateHandler(node);
  +            if (h != null) {
  +                h.handleDOMCharacterDataModified((MutationEvent)evt);
               }
           }
       }
  
  
  
  1.5       +7 -1      xml-batik/sources/org/apache/batik/bridge/BridgeUpdateHandler.java
  
  Index: BridgeUpdateHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/BridgeUpdateHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- BridgeUpdateHandler.java	21 Mar 2002 11:04:56 -0000	1.4
  +++ BridgeUpdateHandler.java	22 Apr 2002 14:59:44 -0000	1.5
  @@ -16,7 +16,7 @@
    * 
    * @author <a href="mailto:vincent.hardy@apache.org">Vincent Hardy</a>
    * @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
  - * @version $Id: BridgeUpdateHandler.java,v 1.4 2002/03/21 11:04:56 tkormann Exp $
  + * @version $Id: BridgeUpdateHandler.java,v 1.5 2002/04/22 14:59:44 tkormann Exp $
    */
   public interface BridgeUpdateHandler {
       
  @@ -34,6 +34,12 @@
        * Invoked when an MutationEvent of type 'DOMNodeRemoved' is fired.
        */
       void handleDOMNodeRemovedEvent(MutationEvent evt);
  +
  +    /**
  +     * Invoked when an MutationEvent of type 'DOMCharacterDataModified' 
  +     * is fired.
  +     */
  +    void handleDOMCharacterDataModified(MutationEvent evt);
   
       /**
        * Invoked when an CSSEngineEvent is fired.
  
  
  

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