Hi,

I would like to submit enhancement for batik SVG DOM  in regards default
attribute.

Because batik always (for certain element) add default attribute, this
enhancement allows whether the default attribute is/are generated or not
by setting the flag on
ExtensibleSVGDOMImplementation.setInitializeAttribute(boolean).
The default value is true to keep backward compatible

Here is the bugzilla (enhancement) id:28081

I also include the diff attached to this email.


Regards
Tonny Kohar
-- 
Sketsa 
SVG Graphics Editor
http://www.kiyut.com
? .nbattrs
Index: AbstractElement.java
===================================================================
RCS file: /home/cvspublic/xml-batik/sources/org/apache/batik/dom/svg/AbstractElement.java,v
retrieving revision 1.10
diff -u -r1.10 AbstractElement.java
--- AbstractElement.java	8 Aug 2003 11:38:59 -0000	1.10
+++ AbstractElement.java	31 Mar 2004 09:53:06 -0000
@@ -91,7 +91,7 @@
     protected AbstractElement(String prefix, AbstractDocument owner) {
         ownerDocument = owner;
         setPrefix(prefix);
-	initializeAttributes();
+	//initializeAttributes();
     }
 
     // NodeEventTarget ////////////////////////////////////////////////////
@@ -144,7 +144,7 @@
     /**
      * Initializes the attributes of this element to their default value.
      */
-    protected void initializeAttributes() {
+    public void initializeAttributes() {
         AttributeInitializer ai = getAttributeInitializer();
         if (ai != null) {
             ai.initializeAttributes(this);
Index: ExtensibleSVGDOMImplementation.java
===================================================================
RCS file: /home/cvspublic/xml-batik/sources/org/apache/batik/dom/svg/ExtensibleSVGDOMImplementation.java,v
retrieving revision 1.8
diff -u -r1.8 ExtensibleSVGDOMImplementation.java
--- ExtensibleSVGDOMImplementation.java	8 Aug 2003 11:38:59 -0000	1.8
+++ ExtensibleSVGDOMImplementation.java	31 Mar 2004 09:53:08 -0000
@@ -114,6 +114,12 @@
     public static DOMImplementation getDOMImplementation() {
         return DOM_IMPLEMENTATION;
     }
+    
+    /** 
+     * flag indicating wheter the new created attribute will be initialized with default value
+     * the default value = true to keep backward compatible 
+     */
+    protected boolean initializeAttribute = true;
 
     /**
      * Creates a new DOMImplementation.
@@ -229,8 +235,9 @@
     /**
      * Implements the behavior of Document.createElementNS() for this
      * DOM implementation.
+     * This is the original method
      */
-    public Element createElementNS(AbstractDocument document,
+    public Element createElementNSOriginal(AbstractDocument document,
                                    String           namespaceURI,
                                    String           qualifiedName) {
         if (SVG_NAMESPACE_URI.equals(namespaceURI)) {
@@ -263,6 +270,29 @@
         }
     }
 
+    public void setInitializeAttribute(boolean flag) {
+        this.initializeAttribute = flag;
+    }
+    
+    /** This is the overiden method
+     */
+    public Element createElementNS(AbstractDocument document,
+                                   String           namespaceURI,
+                                   String           qualifiedName) {
+        Element elt = createElementNSOriginal(document, namespaceURI, qualifiedName);
+        // special case for SVGElement 
+        if (elt instanceof SVGOMSVGElement) {
+            ((AbstractElement)elt).initializeAttributes();
+            return elt;
+        }
+        if (initializeAttribute == true) {
+            if (elt instanceof AbstractElement) {
+                ((AbstractElement)elt).initializeAttributes();
+            }
+      }
+      return elt;
+    }
+    
     // Service /////////////////////////////////////////////////////////
 
     protected static List extensions = null;

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to