<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//AJAX4JSF//CDK Generator config/EN"  "https://ajax4jsf.dev.java.net/nonav/dtds/component-config.dtd"
[
<!ENTITY attributes SYSTEM "commonTreeAttributes.ent">
<!ENTITY listeners SYSTEM "commonTreeListeners.ent">
<!ENTITY commonTreeClientListeners SYSTEM "commonTreeClientListeners.ent">
]
>

<components>
	<component>
		<name>org.richfaces.TreeNode</name>
		<family>org.richfaces.TreeNode</family>
		<classname>org.richfaces.component.html.HtmlTreeNode</classname>
		<superclass>org.richfaces.component.UITreeNode</superclass>
		<test>
			<classname>org.richfaces.component.html.HtmlTreeNodeComponentTest</classname>
			<superclassname>org.ajax4jsf.tests.AbstractAjax4JsfTestCase</superclassname>
		</test>
		<description>
			<![CDATA[
    	]]>
		</description>
		<renderer generate="true" override="true">
			<name>org.richfaces.TreeNodeRenderer</name>
			<template>htmlTreeNode.jspx</template>
		</renderer>
		<tag>
			<name>treeNode</name>
			<classname>org.richfaces.taglib.TreeNodeTag</classname>
			<superclass>
				org.ajax4jsf.webapp.taglib.HtmlComponentTagBase
			</superclass>
		</tag>
		<taghandler generate="true">
			<classname>
				org.richfaces.taglib.TreeNodeTagHandler
			</classname>
			<superclass>
				org.richfaces.taglib.TreeListenersTagHandler
			</superclass>
		</taghandler>

		&attributes;
		&ui_component_attributes;
		
		<property>
			<name>type</name>
			<classname>java.lang.String</classname>
			<description>A node type</description>
		</property>
		<property>
			<name>ajaxSubmitSelection</name>
			<classname>java.lang.String</classname>
			<description>An algorithm of AJAX request submission. "inherit", "true", "false" values are possible</description>
			<defaultvalue>"inherit"</defaultvalue>
		</property>
        <property>
           <name>ondrop</name>
        	<classname>java.lang.String</classname>
		   <description>It's an event that is called when something is dropped on a drop zone</description>
		   <defaultvalue>getDefaultOndrop()</defaultvalue>
        </property>
        <property>
           <name>ondropend</name>
           <classname>java.lang.String</classname>
		   <description>A JavaScript handler for event fired on a drop even the drop for a given type is not available</description>
		   <defaultvalue>getDefaultOndropend()</defaultvalue>
        </property>
        <property>
           <name>ondragstart</name>
           <classname>java.lang.String</classname>
		   <description>A JavaScript event handler called before drag object</description>
		   <defaultvalue>getDefaultOndragstart()</defaultvalue>
        </property>
        <property>
           <name>ondragend</name>
           <classname>java.lang.String</classname>
		   <description>A JavaScript event handler called after a drag operation</description>
		   <defaultvalue>getDefaultOndragend()</defaultvalue>
        </property>
        <property>
           <name>ondragenter</name>
           <classname>java.lang.String</classname>
		   <description>A JavaScript event handler called on enter draggable object to zone</description>
		   <defaultvalue>getDefaultOndragenter()</defaultvalue>
        </property>
        <property>
           <name>ondragexit</name>
           <classname>java.lang.String</classname>
		   <description>A JavaScript event handler called after a drag object leaves zone</description>
		   <defaultvalue>getDefaultOndragexit()</defaultvalue>
        </property>

		<property>
           <name>oncontextmenu</name>
           <classname>java.lang.String</classname>
           <description>JavaScript handler to be called on right click.
		   Returning false prevents default browser context menu from being displayed</description>
		</property>
        <property>
            <name>nodeClass</name>
            <classname>java.lang.String</classname>
            <description>Name of node CSS class</description>
            <defaultvalue><![CDATA[""]]></defaultvalue>
        </property>

		<property>
			<name>changeExpandListener</name>
			<classname>javax.faces.el.MethodBinding</classname>
			<description>Listener called on expand/collapse event on the node</description>
		</property>
		<property>
			<name>dragListener</name>
			<classname>javax.faces.el.MethodBinding</classname>
			<description>MethodBinding representing an action listener method that will be notified after drag operation</description>
		</property>
		<property>
			<name>dropListener</name>
			<classname>javax.faces.el.MethodBinding</classname>
			<description>MethodBinding representing an action listener method that will be notified after drop operation</description>
		</property>
		<property>
			<name>nodeSelectListener</name>
			<classname>javax.faces.el.MethodBinding</classname>
			<description>MethodBinding representing an action listener method that will be notified after selection of node.   </description>
		</property>
		<property>
			<name>iconLeaf</name>
			<classname>java.lang.String</classname>
			<description>An icon for component leaves</description>
		</property>
		&commonTreeClientListeners;
		&ajax_component_attributes;

        <property>
        	<name>dragValue</name>        	
			<classname>java.lang.Object</classname>
			<description>
			Data to be sent to the drop zone after a drop event
			</description>			
			<defaultvalue>getUITree().getDragValue()</defaultvalue>
        </property>

        <property>
        	<name>dropValue</name>        	
			<classname>java.lang.Object</classname>
			<description>
			Data to be processed after a drop event
			</description>			
			<defaultvalue>getUITree().getDropValue()</defaultvalue>
        </property>
        
        &html_events;
        	<listener>
		<name>dropListener</name>
		<listenerclass>
			org.richfaces.event.DropListener
		</listenerclass>
		<componentclass>
			org.richfaces.event.DropSource
		</componentclass>
		<eventclass>
			org.richfaces.event.DropEvent
		</eventclass>
	</listener>

	<listener>
		<name>dragListener</name>
		<listenerclass>
			org.richfaces.event.DragListener
		</listenerclass>
		<componentclass>
			org.richfaces.component.Draggable
		</componentclass>
		<eventclass>
			org.richfaces.event.DragEvent
		</eventclass>
	</listener>


	<listener>
		<name>changeExpandListener</name>
		<listenerclass>
			org.richfaces.event.NodeExpandedListener
		</listenerclass>
		<componentclass>
			org.richfaces.event.TreeListenerEventsProducer
		</componentclass>
		<eventclass>
			org.richfaces.event.NodeExpandedEvent
		</eventclass>
	</listener>
	<listener>
		<name>nodeSelectListener</name>
		<listenerclass>
			org.richfaces.event.NodeSelectedListener
		</listenerclass>
		<componentclass>
			org.richfaces.event.TreeListenerEventsProducer
		</componentclass>
		<eventclass>
			org.richfaces.event.NodeSelectedEvent
		</eventclass>
	</listener>
        
    </component>
</components>
