DnD Panel
jberdat Apr 14, 2008 4:59 PMHi,
I'm trying to build an example to drag and drop one panel in another.
With the code below I can drag it, I'm catching the drop event, unfortunatly, it's not rendering correctly. Anyone can see what I'm doing wrong?
RichFace 3.2.0
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich"> <style> .panelc { width:100%; vertical-align:top; } .dropTargetPanel { width: 90%; } .footerClass { text-align: center; padding-top: 5px; } </style> <rich:dragIndicator id="indicator" /> <h:form id="form"> <h:panelGrid columnClasses="panelc" columns="3" width="100%"> <a4j:outputPanel id="in1" layout="block" ajaxRendered="true"> <rich:panel id="ina" width="50%"> <rich:dragSupport dragType="singleItems"> </rich:dragSupport> <f:facet name="header">TOP</f:facet> </rich:panel> </a4j:outputPanel> <a4j:outputPanel id="out1" layout="block" ajaxRendered="true"> <rich:dropSupport reRender="in1,toto" acceptedTypes="singleItems" dropListener="#{portfolio.addEvent}"> </rich:dropSupport> <rich:panel id="toto" width="50%"> <f:facet name="header">TOP</f:facet> </rich:panel> </a4j:outputPanel> </h:panelGrid> </h:form> <a4j:outputPanel ajaxRendered="true"> <h:messages></h:messages> </a4j:outputPanel> </ui:composition>
And bean event:
public void addEvent(DropEvent arg0) { UIComponent targetPanel = ((UIComponentBase)arg0.getComponent()).getParent(); UIComponent sourcePanel = ((UIComponentBase)arg0.getDraggableSource()).getParent(); /** Add source in target panel */ targetPanel.getChildren().add(sourcePanel); sourcePanel.getParent().getChildren().remove(sourcePanel); //Object a = arg0.getSource(); //Object d = arg0.getDraggableSource(); //Object e = arg0.getDraggableSource().getDragValue(); //System.out.println("sss"); }