blob: e00f3af252f60784043d716a87bad30ec02f8263 [file] [log] [blame]
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<ui:composition template="/sections/sectionTemplate.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:hx="http://myfaces.apache.org/html5/html"
xmlns:fx="http://myfaces.apache.org/html5/core"
xmlns:sh="http://java.sun.com/jsf/composite/components/sh"
xmlns:bs="http://java.sun.com/jsf/composite/components/browserSupport"
xmlns:common="http://java.sun.com/jsf/composite/components/common">
<ui:define name="title">
Drag and Drop
</ui:define>
<ui:define name="browserSupport">
<bs:browserSupport webkitSupport="false" mozillaSupport="true">
<f:facet name="webkit">
Does not work in Chrome because of <a href="http://code.google.com/p/chromium/issues/detail?id=50009" style="text-decoration: underline;">Chromium Issue-50009</a>
</f:facet>
</bs:browserSupport>
</ui:define>
<ui:define name="viewChangeLinks">
<common:viewChange singlePageName="dnd" slideId="dnd02" />
</ui:define>
<ui:define name="sectionContent">
<h:outputStylesheet id="dnd02Style" target="head">
.dropZone, .dropZone02, .dropZone03, .dragSource01, .dragSource02 {text-align: center; color:green; font-size:30px; }
.dragSource01 { width: 210px; height: 100px; background-image: url("#{request.contextPath}/resources/image/MyFaces_logo.jpg"); }
.dragSource02 { width: 210px; height: 100px; background-image: url("#{request.contextPath}/resources/image/MyFaces_logo.jpg"); }
.dropZone, .dropZone02, .dropZone03 { float: right; border: 2px dashed gray;}
.dropZone { width: 219px; height: 213px; background-image: url("#{request.contextPath}/resources/image/apache_feather.png"); }
.dropZone02 { width: 219px; height: 213px;}
.dropZone03 { min-width: 300px; min-height: 300px; float: none;}
.dragStarted { border: 2px solid yellow;}
.dragEntered { border: 4px dashed green; background-color: #88FF00;}
</h:outputStylesheet>
<p class="sectionManual">
In this example, anything can be dragged and dropped on the drop zone.
</p>
<h:form prependId="false">
<table width="100%">
<tr>
<td>
<hx:div styleClass="dragSource01">
<fx:effects event="dragstart" additionalStyleClassToActivate="dragStarted" duration="0.5"/>
<fx:dragSource action="move" param="MyFaces"/>
<h:outputText value="DRAG ME"/>
</hx:div>
</td>
<td align="center" style="font-size:medium;">
<h3 style="color:blue;">
Text To Drag and drop
</h3>
<br/>
<img src="#{request.contextPath}/resources/image/duke.jpg" alt="Duke" width="100" height="80"/> -> Image to drag and drop
<br/>
<a href="http://www.apache.org" style="text-decoration: underline;">apache.org</a> -> link to drag and drop
<br/>
Try dragging an image from any page, any text, any link etc...
</td>
<td>
<hx:div id="dropZone02" styleClass="dropZone02">
<fx:effects event="dragenter" additionalStyleClassToActivate="dragEntered" duration="0.5"/>
<fx:dropTarget acceptMimeTypes="text/x-myfaces-html5-dnd-source, text/plain, URL, text/uri-list"
dropListener="#{dndBean.processDragAnything}" rerender="dragAnythingOutput"/>
<div style="padding-top:45%; text-align: center;">
<h:outputText value="DROP HERE" />
</div>
</hx:div>
</td>
</tr>
<tr>
<td colspan="3" align="center">
<span>Output of drop listener : </span><br/>
<h:outputText value="#{dndBean.dragAnythingOutput}" id="dragAnythingOutput" escape="false" style="color:green; font-size:medium;"/>
</td>
</tr>
<tr>
<td colspan="3">
<sh:sh><![CDATA[
<hx:div ...>
<fx:dropTarget acceptMimeTypes="text/x-myfaces-html5-dnd-source, text/plain, text/uri-list"
dropListener="#_{dndBean.processDragAnything}" rerender="dragAnythingOutput"/> ...
</div>
</hx:div>
]]></sh:sh>
<sh:sh lang="java"><![CDATA[
public void processDragAnything(DropEvent event) throws AbortProcessingException{
String param = event.getParam();
Map<String, String> dropDataMap = event.getDropDataMap();
String text = dropDataMap.get("text/plain");
...
}
]]></sh:sh>
</td>
</tr>
</table>
</h:form>
</ui:define>
</ui:composition>