Hi Thomas.

I'd like to submit the code I've written for the sXBL support.  There
are three major modifications to existing code that I want to point
out:

  - Rather than having a set of XBL DOM classes that inherit from the
    Abstract* classes to add the XBL functionality, the Abstract*
    classes now implement the NodeXBL interface.  The actual
    implementation of these methods, though, is deferred to an
    XBLManager.  There is an org.apache.batik.dom.xbl.GenericXBLManager
    that is used by default, which does not perform any XBL processing
    at all.  The org.apache.batik.bridge.svg12.DefaultXBLManager is the
    XBL manager that does the real work, and it is installed into the
    AbstractDocument by the UpdateManager when the document is started.

  - To handle the differences in event processing under XBL, an
    XBLEventSupport class that extends the standard EventSupport class
    is used.  It does two things: performs XBL specific event
    propagation (i.e., events crossing shadow trees, events being routed
    through a definition's handlerGroup) and allows the registration of
    implementation event listeners.  The implementation event listeners
    are listeners that are called even if they would not be under the
    normal rules of XBL event propagation (e.g., DOM mutation events
    that are only dispatched within a shadow tree).  These are needed
    any time document-wide events are to be captured (e.g.,
    DOMAttrModified events caught by the AbstractGraphicsNodeBridge)
    that should also handle events in any shadow tree.

  - The CSSNavigableDocument interface is used to provide
    document-specific traversal behaviour for the CSSEngine.  This wraps
    up use element shadow trees (previously handled by a CSSImportNode)
    and CSS inheritance on the XBL fully flattened tree.  Documents that
    don't implement the interface still just use the standard DOM
    traversal methods.

The full patch is at http://mcc.id.au/temp/2005/batik-sxbl-1.diff.  Let
me know if there's anything you object to, or ask me to summarise
anything more succinctly than the 450KB patch. :)

Thanks,

Cameron

-- 
  e-mail : cam (at) mcc.id.au           icq : 26955922
     web : http://mcc.id.au/            msn : cam-msn (at) aka.mcc.id.au
  office : +61399055779              jabber : heycam (at) jabber.org

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

Reply via email to