Class DefaultXBLManager

java.lang.Object
org.apache.batik.bridge.svg12.DefaultXBLManager
All Implemented Interfaces:
XBLManager, XBLConstants

public class DefaultXBLManager extends Object implements XBLManager, XBLConstants
A full featured sXBL manager.
  • Field Details

    • isProcessing

      protected boolean isProcessing
      Whether XBL processing is currently taking place.
    • document

      protected Document document
      The document.
    • ctx

      protected BridgeContext ctx
      The BridgeContext.
    • definitionLists

      protected DoublyIndexedTable definitionLists
      Map of namespace URI/local name pairs to ordered sets of definition records.
    • definitions

      protected DoublyIndexedTable definitions
      Map of definition element/import element pairs to definition records.
    • contentManagers

      protected Map contentManagers
      Map of shadow trees to content managers.
    • imports

      protected Map imports
      Map of import elements to import records.
    • docInsertedListener

      protected DefaultXBLManager.DocInsertedListener docInsertedListener
      DOM node inserted listener for the document.
    • docRemovedListener

      protected DefaultXBLManager.DocRemovedListener docRemovedListener
      DOM node removed listener for the document.
    • docSubtreeListener

      protected DefaultXBLManager.DocSubtreeListener docSubtreeListener
      DOM subtree mutation listener for the document.
    • importAttrListener

      protected DefaultXBLManager.ImportAttrListener importAttrListener
      DOM attribute listener for import elements.
    • refAttrListener

      protected DefaultXBLManager.RefAttrListener refAttrListener
      DOM attribute listener for referencing definition elements.
    • bindingListenerList

      protected EventListenerList bindingListenerList
      Global event listener list for XBL binding related events.
    • contentSelectionChangedListenerList

      protected EventListenerList contentSelectionChangedListenerList
      Global event listener list for ContentSelectionChanged events.
  • Constructor Details

    • DefaultXBLManager

      public DefaultXBLManager(Document doc, BridgeContext ctx)
      Creates a new DefaultXBLManager for the given document.
  • Method Details

    • startProcessing

      public void startProcessing()
      Starts XBL processing on the document.
      Specified by:
      startProcessing in interface XBLManager
    • stopProcessing

      public void stopProcessing()
      Stops XBL processing on the document.
      Specified by:
      stopProcessing in interface XBLManager
    • isProcessing

      public boolean isProcessing()
      Returns whether XBL processing is currently enabled.
      Specified by:
      isProcessing in interface XBLManager
    • addDefinitionRef

      protected void addDefinitionRef(Element defRef)
      Adds a definition through its referring definition element (one with a 'ref' attribute).
    • removeDefinitionRef

      protected void removeDefinitionRef(Element defRef)
      Removes a definition through its referring definition element (one with a 'ref' attribute).
    • addImport

      protected void addImport(Element imp)
      Imports bindings from another document.
    • addImportedDefinitions

      protected void addImportedDefinitions(Element imp, Node n)
      Adds the definitions in the given imported subtree.
    • removeImport

      protected void removeImport(Element imp)
      Removes an import.
    • addDefinition

      protected void addDefinition(String namespaceURI, String localName, XBLOMDefinitionElement def, Element imp)
      Adds an xbl:definition element to the list of definitions that could possibly affect elements with the specified QName. This may or may not actually cause a new binding to come in to effect, as this new definition element may be added earlier in the document than another already in effect.
      Parameters:
      namespaceURI - the namespace URI of the bound elements
      localName - the local name of the bound elements
      def - the xbl:definition element
      imp - the xbl:import or xbl;definition element through which this definition is being added, or null if the binding is in the original document
    • addDefinitionElementListeners

      protected void addDefinitionElementListeners(XBLOMDefinitionElement def, DefaultXBLManager.ImportRecord ir)
      Adds DOM mutation listeners to the given definition element.
    • addTemplateElementListeners

      protected void addTemplateElementListeners(XBLOMTemplateElement template, DefaultXBLManager.ImportRecord ir)
      Adds DOM mutation listeners to the given template element.
    • removeDefinition

      protected void removeDefinition(DefaultXBLManager.DefinitionRecord defRec)
      Removes an xbl:definition element from the list of definitions that could possibly affect elements with the specified QName. This will only cause a new binding to come in to effect if it is currently active.
    • removeDefinitionElementListeners

      protected void removeDefinitionElementListeners(XBLOMDefinitionElement def, DefaultXBLManager.ImportRecord ir)
      Removes DOM mutation listeners from the given definition element.
    • removeTemplateElementListeners

      protected void removeTemplateElementListeners(XBLOMTemplateElement template, DefaultXBLManager.ImportRecord ir)
      Removes DOM mutation listeners from the given template element.
    • getActiveDefinition

      protected DefaultXBLManager.DefinitionRecord getActiveDefinition(String namespaceURI, String localName)
      Returns the definition record of the active definition for namespace URI/local name pair.
    • unbind

      protected void unbind(Element e)
      Unbinds each bindable element in the given element's subtree.
    • bind

      protected void bind(Element e)
      Binds each bindable element in the given element's subtree.
    • rebind

      protected void rebind(String namespaceURI, String localName, Element e)
      Rebinds each bindable element of the given name in the given element's subtree.
    • setActiveDefinition

      protected void setActiveDefinition(BindableElement elt, DefaultXBLManager.DefinitionRecord defRec)
      Sets the given definition as the active one for a particular bindable element.
    • setXblShadowTree

      protected void setXblShadowTree(BindableElement elt, XBLOMShadowTreeElement newShadow)
      Sets the shadow tree for the given bindable element.
    • fireShadowTreeEvent

      protected void fireShadowTreeEvent(BindableElement elt, String type, XBLShadowTreeElement e)
      Fires a ShadowTreeEvent of the given type on this element.
    • cloneTemplate

      protected XBLOMShadowTreeElement cloneTemplate(XBLOMTemplateElement template)
      Clones a template element for use as a shadow tree.
    • getXblParentNode

      public Node getXblParentNode(Node n)
      Get the parent of a node in the fully flattened tree.
      Specified by:
      getXblParentNode in interface XBLManager
    • getXblChildNodes

      public NodeList getXblChildNodes(Node n)
      Get the list of child nodes of a node in the fully flattened tree.
      Specified by:
      getXblChildNodes in interface XBLManager
    • getXblScopedChildNodes

      public NodeList getXblScopedChildNodes(Node n)
      Get the list of child nodes of a node in the fully flattened tree that are within the same shadow scope.
      Specified by:
      getXblScopedChildNodes in interface XBLManager
    • getXblFirstChild

      public Node getXblFirstChild(Node n)
      Get the first child node of a node in the fully flattened tree.
      Specified by:
      getXblFirstChild in interface XBLManager
    • getXblLastChild

      public Node getXblLastChild(Node n)
      Get the last child node of a node in the fully flattened tree.
      Specified by:
      getXblLastChild in interface XBLManager
    • getXblPreviousSibling

      public Node getXblPreviousSibling(Node n)
      Get the node which directly precedes a node in the xblParentNode's xblChildNodes list.
      Specified by:
      getXblPreviousSibling in interface XBLManager
    • getXblNextSibling

      public Node getXblNextSibling(Node n)
      Get the node which directly follows a node in the xblParentNode's xblChildNodes list.
      Specified by:
      getXblNextSibling in interface XBLManager
    • getXblFirstElementChild

      public Element getXblFirstElementChild(Node n)
      Get the first element child of a node in the fully flattened tree.
      Specified by:
      getXblFirstElementChild in interface XBLManager
    • getXblLastElementChild

      public Element getXblLastElementChild(Node n)
      Get the last element child of a node in the fully flattened tree.
      Specified by:
      getXblLastElementChild in interface XBLManager
    • getXblPreviousElementSibling

      public Element getXblPreviousElementSibling(Node n)
      Get the first element that precedes the a node in the xblParentNode's xblChildNodes list.
      Specified by:
      getXblPreviousElementSibling in interface XBLManager
    • getXblNextElementSibling

      public Element getXblNextElementSibling(Node n)
      Get the first element that follows a node in the xblParentNode's xblChildNodes list.
      Specified by:
      getXblNextElementSibling in interface XBLManager
    • getXblBoundElement

      public Element getXblBoundElement(Node n)
      Get the bound element whose shadow tree a node resides in.
      Specified by:
      getXblBoundElement in interface XBLManager
    • getXblShadowTree

      public Element getXblShadowTree(Node n)
      Get the shadow tree of a node.
      Specified by:
      getXblShadowTree in interface XBLManager
    • getXblDefinitions

      public NodeList getXblDefinitions(Node n)
      Get the xbl:definition elements currently binding an element.
      Specified by:
      getXblDefinitions in interface XBLManager
    • getRecord

      protected DefaultXBLManager.XBLRecord getRecord(Node n)
      Returns the XBL record for the given node.
    • updateLinks

      protected void updateLinks(Node n)
      Updates the xblPreviousSibling and xblNextSibling properties of the given XBL node.
    • getXblContentElement

      public XBLOMContentElement getXblContentElement(Node n)
      Returns the content element that caused the given node to be present in the flattened tree.
    • computeBubbleLimit

      public static int computeBubbleLimit(Node from, Node to)
      Determines the number of nodes events should bubble if the mouse pointer has moved from one element to another.
      Parameters:
      from - the element from which the mouse pointer moved
      to - the element to which the mouse pointer moved
    • getContentManager

      public ContentManager getContentManager(Node n)
      Returns the ContentManager that handles the shadow tree the given node resides in.
    • invalidateChildNodes

      public void invalidateChildNodes(Node n)
      Mark the xblChildNodes and xblScopedChildNodes variables as invalid.
    • addContentSelectionChangedListener

      public void addContentSelectionChangedListener(ContentSelectionChangedListener l)
      Adds the specified ContentSelectionChangedListener to the global listener list.
    • removeContentSelectionChangedListener

      public void removeContentSelectionChangedListener(ContentSelectionChangedListener l)
      Removes the specified ContentSelectionChangedListener from the global listener list.
    • getContentSelectionChangedListeners

      protected Object[] getContentSelectionChangedListeners()
      Returns an array of the gloabl ContentSelectionChangedListeners.
    • addBindingListener

      public void addBindingListener(BindingListener l)
      Adds the specified BindingListener to the global listener list.
    • removeBindingListener

      public void removeBindingListener(BindingListener l)
      Removes the specified BindingListener from the global listener list.
    • dispatchBindingChangedEvent

      protected void dispatchBindingChangedEvent(Element bindableElement, Element shadowTree)
      Dispatches a BindingEvent the registered listeners.
      Parameters:
      bindableElement - the bindable element whose binding has changed
      shadowTree - the new shadow tree of the bindable element
    • isActiveDefinition

      protected boolean isActiveDefinition(XBLOMDefinitionElement def, Element imp)
      Returns whether the given definition element is the active one for its element name.