1 Reply Latest reply on Apr 17, 2012 7:23 AM by Rishi gautam

    Richface 4.2 DragandDrop not working

    Rishi gautam Newbie

      Hi,

      I have two panel, one is source and other is sink.

      RF.JPG

      Now i want to move object from Source to PHP Panel

       

      Code :

       

      public class DragDropBean{

          private List<String> source;

          private List<String> target;

       

      // ----------> NOW getter and setter of all three element

          public DragDropBean() {

              initList();

          }

          private void initList() {

              source = Lists.newArrayList();

              target = Lists.newArrayList();

              source.add("A");

              source.add("B");

              source.add("C");

              source.add("D");

          }

          public void moveItem(String obj) {

              source.remove(obj);

              target.add(obj);

          }

       

      public class DragDropEventBean implements DropListener {

          @ManagedProperty(value = "#{dragDropBean}")

          private DragDropBean dragDropBean;

      // NOW getter setter of  dragDropBean

       

          public void processDrop(DropEvent event) {

              dragDropBean.moveItem((String) event.getDragValue());

          }

       

       

      xhtml file:

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

       

      <ui:composition xmlns="http://www.w3.org/1999/xhtml"

          xmlns:h="http://java.sun.com/jsf/html"

          xmlns:f="http://java.sun.com/jsf/core"

          xmlns:ui="http://java.sun.com/jsf/facelets"

          xmlns:a4j="http://richfaces.org/a4j"

          xmlns:rich="http://richfaces.org/rich">

          <f:view>

         <h:head></h:head>

          <h:outputStylesheet>

              .panelc { width:25%; }

              .valign { vertical-align:top; }

              .dropTargetPanel { width: 90%; }

              .footerClass {

                  text-align: center;

                  padding-top: 5px;

              }

              .rf-ind-drag{

                  font-size:11px;

                  cursor:pointer;

                  width:100px;

                  border:1px solid gray;

                  padding:2px

              }

              .rf-ind-acpt{border:2px solid green}

              .rf-ind-rejt{border:2px solid red}

          </h:outputStylesheet>

          <h:form id="form">

              <h:panelGrid columnClasses="panelc valign, valign, valign, valign" columns="4" width="100%">

                  <rich:panel style="width:133px">

                      <f:facet name="header">

                          <h:outputText value="Source List" />

                      </f:facet>

                      <h:dataTable

                          id="src"

                          columns="1"

                          value="#{dragDropBean.source}"

                          var="fm1"

                          footerClass="footerClass">

                          <h:column>

                              <a4j:outputPanel layout="block" styleClass="rf-ind-drag">

                                  <rich:dragSource

                                      type="PHP"

                                      dragValue="#{fm1}" />

                                  <h:outputText value="#{fm1}"></h:outputText>

                              </a4j:outputPanel>

                          </h:column>

                      </h:dataTable>

                  </rich:panel>

       

                  <rich:panel>

                      <f:facet name="header">

                          <h:outputText value="PHP Frameworks" />

                      </f:facet>

                      <rich:dropTarget

                          acceptedTypes="PHP"

                          dropListener="#{dragDropEventBean.processDrop}"

                          render="phptable, src" />

                      <h:dataTable

                          id="phptable"

                          columns="1"

                          value="#{dragDropBean.target}"

                          var="fm2">

                          <h:column>

                              <h:outputText value="#{fm2}"></h:outputText>

                          </h:column>

                      </h:dataTable>

                  </rich:panel>

       

              </h:panelGrid>

           </h:form>

          </f:view>

      </ui:composition>

       

       

       

       

      dragDropEventBean is request scope and dragDropBean is view scope.

       

      I am not able to move object from panel Source to PHP.

       

      Thanks