<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>

<f:subview id="dataDefinitionListSubviewID">	
		
	<a4j:outputPanel ajaxRendered="true">
		<h:messages />
	</a4j:outputPanel>
	
	<script>
		DnD.CLIENT_VALIDATION_OFF = false;
	</script>
	
		<h:panelGroup id="dragValueText">
			<h:outputText value="#{dndBean.dragValue}" />
		</h:panelGroup>

		<h:panelGrid columns="2">
			<h:dataTable var="type" value="#{dndBean.types}">
				<h:column>
					<h:panelGrid styleClass="dropzoneDecoration" id="drag1">
						<h:outputText value="#{type} - drag" />
						<rich:dragSupport dragType="#{type}" dragValue="#{type} - value" oncomplete="showEvent('oncompleteInputID', 'oncomplete work!')"
							ondragend="showEvent('ondragendInputID', 'ondragend work!')" ondragstart="showEvent('ondragstartInputID', 'ondragstart work!')"
							onsubmit="showEvent('onsubmitInputID', 'onsubmit work!')" action="#{dndBean.dragAction}" dragListener="#{dndBean.processDrag}">
						</rich:dragSupport>
					</h:panelGrid>
				</h:column>
			</h:dataTable>

			<h:dataTable var="type" value="#{dndBean.types}">
				<h:column>
					<h:panelGrid styleClass="dropzoneDecoration" id="drop2">
						<h:outputText value="#{type} - drop" />
						<rich:dropSupport reRender="dragValueText" ondragenter="showEvent('InputID', ' work!')" ondragexit="showEvent('InputID', ' work!')"
							ondrop="showEvent('InputID', ' work!')" ondropend="showEvent('InputID', ' work!')"
							oncomplete="showEvent('oncompleteInputID', 'oncomplete work!')" 
							onsubmit="showEvent('onsubmitInputID', 'onsubmit work!')"
							action="#{dndBean.dropAction}" acceptedTypes="#{type}" dropListener="#{dndBean.processDrop}" dropValue="#{type} - value">
						</rich:dropSupport>
					</h:panelGrid>
				</h:column>
			</h:dataTable>
		</h:panelGrid>

		<rich:dragIndicator id="indicator" acceptClass="accept" rejectClass="reject">
			<f:facet name="single">
				<f:verbatim>{marker} <b>{testDrag}</b> {label}</f:verbatim>
			</f:facet>
			<rich:dndParam name="accept" value="ACCEPT:" />
			<rich:dndParam name="reject">
				<f:verbatim>
					<i style="text-decoration: line-through;">REJECT:</i>
				</f:verbatim>
			</rich:dndParam>
		</rich:dragIndicator>

		<rich:dragIndicator id="dIndicator" acceptClass="defaultIndicator" rejectClass="reject">
			<f:facet name="single">
				<f:verbatim>{marker} <b>{testDrag}</b> {label}</f:verbatim>
			</f:facet>
			<rich:dndParam name="accept" value="ACCEPT:" />
			<rich:dndParam name="reject">
				<f:verbatim>
					<i style="text-decoration: line-through;">REJECT:</i>
				</f:verbatim>
			</rich:dndParam>
		</rich:dragIndicator>

		<h:panelGrid columns="1" style="position: relative; left: 140px;">
			<h:panelGrid columns="1" style="position: absolute; top: 30px; left: 300px;">
				<rich:dragIndicator id="defaultIndicator">
				</rich:dragIndicator>
			</h:panelGrid>
		</h:panelGrid>

		<h:panelGrid columns="4" cellspacing="20">
			<h:panelGrid styleClass="dropzoneDecoration" id="grid1">
				<f:verbatim>Accepts file and folder... Customizes</f:verbatim>
				<rich:dropSupport id="zone1"
					oncomplete="showEvent('oncompleteInputID', 'oncomplete work!')" 
					onsubmit="showEvent('onsubmitInputID', 'onsubmit work!')" ondragenter="showEvent('ondragenterInputID', 'ondragenter work!')" 
					ondragexit="showEvent('ondragexitInputID', 'ondragexit work!')" ondropend="showEvent('ondropendInputID', 'ondropend work!')"
					ondrop="showEvent('ondropInputID', 'ondrop work!')"
					acceptedTypes="file, folder" typeMapping="{file: testDrop}">
					<rich:dndParam name="testDrop">
						<h:graphicImage height="16" width="16"
							value="#{icon.iconFileManager}" />
					</rich:dndParam>
				</rich:dropSupport>
			</h:panelGrid>

			<h:panelGrid styleClass="dropzoneDecoration" id="grid2">
				<f:verbatim>Accepts none</f:verbatim>
				<rich:dropSupport>
				</rich:dropSupport>
			</h:panelGrid>

			<h:panelGrid styleClass="dropzoneDecoration" id="grid3">
				<f:verbatim>Accepts none... Customizes</f:verbatim>
				<rich:dropSupport typeMapping="{file: testDrop}" oncomplete="showEvent('oncompleteInputID', 'oncomplete work!')" 
				ondragenter="showEvent('ondragenterInputID', 'ondragenter work!')" 
				ondragexit="showEvent('ondragexitInputID', 'ondragexit work!')" 
				ondrop="showEvent('ondropInputID', 'ondrop work!')" ondropend="showEvent('ondropendInputID', 'ondropend work!')" 
				onsubmit="showEvent('onsubmitInputID', 'onsubmit work!')">
					<rich:dndParam name="testDrop">
						<h:graphicImage height="16" width="16" value="#{icon.iconFileManagerReject}" />
					</rich:dndParam>
				</rich:dropSupport>
			</h:panelGrid>

			<h:panelGrid styleClass="dropzoneDecoration" id="grid4">
				<f:verbatim>Accepts file and folder</f:verbatim>
				<rich:dropSupport acceptedTypes="file, folder" oncomplete="showEvent('oncompleteInputID', 'oncomplete work!')" 
				ondragenter="showEvent('ondragenterInputID', 'ondragenter work!')"
				ondragexit="showEvent('ondragexitInputID', 'ondragexit work!')" 
				ondrop="showEvent('ondropInputID', 'ondrop work!')" ondropend="showEvent('ondropendInputID', 'ondropend work!')" 
				onsubmit="showEvent('onsubmitInputID', 'onsubmit work!')">
					<rich:dndParam name="testDrop" value="testDropValue" />
				</rich:dropSupport>
			</h:panelGrid>

			<h:panelGrid id="grid5">
				<rich:dragSupport dragType="file" oncomplete="showEvent('oncompleteInputID', 'oncomplete work!')"
							ondragend="showEvent('ondragendInputID', 'ondragend work!')" ondragstart="showEvent('ondragstartInputID', 'ondragstart work!')"
							onsubmit="showEvent('onsubmitInputID', 'onsubmit work!')">
					<rich:dndParam name="label" value="Label" />
					<rich:dndParam name="testDrag" value="testDragValue" />
				</rich:dragSupport>
				<f:verbatim>File Draggable - no indicator</f:verbatim>
			</h:panelGrid>

			<h:panelGrid id="grid6">
				<rich:dragSupport dragType="file" dragIndicator="indicator" oncomplete="showEvent('oncompleteInputID', 'oncomplete work!')"
							ondragend="showEvent('ondragendInputID', 'ondragend work!')" ondragstart="showEvent('ondragstartInputID', 'ondragstart work!')"
							onsubmit="showEvent('onsubmitInputID', 'onsubmit work!')">
					<rich:dndParam name="label" value="Label" />
					<rich:dndParam name="testDrag" value="testDragValue" />
				</rich:dragSupport>
				<f:verbatim>File Draggable with indicator</f:verbatim>
			</h:panelGrid>

			<h:panelGrid id="grid7">
				<rich:dragSupport dragType="folder" dragIndicator="indicator" oncomplete="showEvent('oncompleteInputID', 'oncomplete work!')"
							ondragend="showEvent('ondragendInputID', 'ondragend work!')" ondragstart="showEvent('ondragstartInputID', 'ondragstart work!')"
							onsubmit="showEvent('onsubmitInputID', 'onsubmit work!')">
					<rich:dndParam name="label" value="Label" />
					<rich:dndParam name="testDrag" value="testDragValue for Folder" />
				</rich:dragSupport>
				<f:verbatim>Folder Draggable with indicator</f:verbatim>
			</h:panelGrid>

			<h:outputText />

			<h:panelGrid id="grid8">
				<rich:dragSupport dragType="folder" oncomplete="showEvent('oncompleteInputID', 'oncomplete work!')"
							ondragend="showEvent('ondragendInputID', 'ondragend work!')" ondragstart="showEvent('ondragstartInputID', 'ondragstart work!')"
							onsubmit="showEvent('onsubmitInputID', 'onsubmit work!')">
					<rich:dndParam name="label" value="Label" />
					<rich:dndParam name="testDrag" value="testDragValue for Folder" />
				</rich:dragSupport>
				<f:verbatim>Folder Draggable - no indicator</f:verbatim>
			</h:panelGrid>

			<h:panelGrid id="grid9">
				<rich:dragSupport dragType="file" dragIndicator="defaultIndicator" oncomplete="showEvent('oncompleteInputID', 'oncomplete work!')"
							ondragend="showEvent('ondragendInputID', 'ondragend work!')" ondragstart="showEvent('ondragstartInputID', 'ondragstart work!')"
							onsubmit="showEvent('onsubmitInputID', 'onsubmit work!')">
					<rich:dndParam name="testDrag" value="testDragValue" />
					<rich:dndParam name="marker" value="testMarkerValue" />
					<rich:dndParam name="label" value="testDragValue" />
				</rich:dragSupport>
				<f:verbatim>File Draggable with defaultIndicator</f:verbatim>
			</h:panelGrid>

			<h:panelGrid id="grid10">
				<rich:dragSupport dragType="folder" dragIndicator="defaultIndicator" oncomplete="showEvent('oncompleteInputID', 'oncomplete work!')"
							ondragend="showEvent('ondragendInputID', 'ondragend work!')" ondragstart="showEvent('ondragstartInputID', 'ondragstart work!')"
							onsubmit="showEvent('onsubmitInputID', 'onsubmit work!')">
					<rich:dndParam name="label" value="testDragValue for Folder" />
				</rich:dragSupport>
				<f:verbatim>Folder Draggable with defaultIndicator</f:verbatim>
			</h:panelGrid>
			<h:outputText />
		</h:panelGrid>

		<h:panelGrid id="renderedId">
			<rich:dragSupport dragType="file" dragIndicator="defaultIndicator" oncomplete="showEvent('oncompleteInputID', 'oncomplete work!')"
							ondragend="showEvent('ondragendInputID', 'ondragend work!')" ondragstart="showEvent('ondragstartInputID', 'ondragstart work!')"
							onsubmit="showEvent('onsubmitInputID', 'onsubmit work!')">
				<rich:dndParam name="marker" value="testMarkerValue" />
				<rich:dndParam name="label" value="testDragValue" />
			</rich:dragSupport>

			<h:graphicImage id="dragImage" value="/pics/masshtaby_01.jpg" width="200px" height="200px" />
			<f:verbatim>dragSupport</f:verbatim>
		</h:panelGrid>
</f:subview>
