com.virtualweaver.xotics.editing.renderer
Interface XoDMRenderer

All Known Implementing Classes:
XoPathRenderer, XoTreeRenderer

public interface XoDMRenderer

This interface is implemented by classes providing a (generally visual) rendering of an XML document represented by an XoDMInstance object. Rendering is very permissive.

Version:
4.1

Method Summary
 void addDropTargetListener(java.awt.dnd.DropTargetListener dtl)
          Xotics Editor manages DnD feature between renderers to add, move or remove nodes.
 void addXoDMEditListener(XoDMEditListener l)
          Renderer can send an XoDMEditEvent when node is selected by an external way (any other way than select(XoNode) and selectOver(int, int)).
 com.virtualweaver.xotics.datamodel.XoDMInstance getDMInstance()
          Returns document currently rendered.
 com.virtualweaver.xotics.datamodel.XoNode getSelected()
          Returns currently selected node in the renderer.
 void removeDropTargetListener(java.awt.dnd.DropTargetListener dtl)
          Opposite method of addDropTargetListener(DropTargetListener).
 void removeXoDMEditListener(XoDMEditListener l)
          Renderer can send an XoDMEditEvent when node is selected by an external way (any other way than select(XoNode) and selectOver(int, int)).
 void select(com.virtualweaver.xotics.datamodel.XoNode xo)
          Forces the renderer to select a specific node xo.
 void selectOver(int x, int y)
          Forces the renderer to select (if possible) the closest node to position defined by (x, y) params.
 void setDMInstance(com.virtualweaver.xotics.datamodel.XoDMInstance dm)
          Sets the document to render.
 

Method Detail

setDMInstance

public void setDMInstance(com.virtualweaver.xotics.datamodel.XoDMInstance dm)
Sets the document to render. This method can be called at any time for different documents.

Parameters:
dm - the DM instance representing an XML document to render.

getDMInstance

public com.virtualweaver.xotics.datamodel.XoDMInstance getDMInstance()
Returns document currently rendered.

Returns:
DM instance as rendered document.

getSelected

public com.virtualweaver.xotics.datamodel.XoNode getSelected()
Returns currently selected node in the renderer. A null value means that there is currently no selected node.

Returns:
the currently selected node, or null if there is no selected node.

select

public void select(com.virtualweaver.xotics.datamodel.XoNode xo)
Forces the renderer to select a specific node xo. This node can belongs to another DM instance than currently rendered one, or can be unselectable by this renderer because it doesn't render such node ; in these cases, like in any other case where xo is not renderable, currently selected node must be set to null, in order for getSelected() to return null. This method must not fire any XoDMEditEvent.

Parameters:
xo - the new selected node, can be null to mean "unselect".

selectOver

public void selectOver(int x,
                       int y)
Forces the renderer to select (if possible) the closest node to position defined by (x, y) params. If there is no node near the position, currently selected node must be set to null, in order for getSelected() to return null. This method must not fire any XoDMEditEvent.

Parameters:
x - x position of a node to select
y - y position of a node to select

addDropTargetListener

public void addDropTargetListener(java.awt.dnd.DropTargetListener dtl)
                           throws java.util.TooManyListenersException
Xotics Editor manages DnD feature between renderers to add, move or remove nodes. By this method, The Editor provides to the renderer a listener to be informed of drop operation over it. A renderer can choose to support or not DnD feature.

Parameters:
dtl - a drop listener provided by Xotics Editor
Throws:
java.util.TooManyListenersException

removeDropTargetListener

public void removeDropTargetListener(java.awt.dnd.DropTargetListener dtl)
Opposite method of addDropTargetListener(DropTargetListener).

Parameters:
dtl - a drop listener to remove, previously provided by Xotics Editor

addXoDMEditListener

public void addXoDMEditListener(XoDMEditListener l)
Renderer can send an XoDMEditEvent when node is selected by an external way (any other way than select(XoNode) and selectOver(int, int)). This method registers a listener interested in such events.

Parameters:
l - an edit event listener to add.

removeXoDMEditListener

public void removeXoDMEditListener(XoDMEditListener l)
Renderer can send an XoDMEditEvent when node is selected by an external way (any other way than select(XoNode) and selectOver(int, int)). This method unregisters a listener interested in such events.

Parameters:
l - an edit event listener to remove.