2012-04-16 48 views
1

我有兩個面板,一個是源,另一個是sink。Richface 4.2 DragandDrop不工作

enter image description here

現在我想從源移動物體PHP面板

代碼:

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文件:

<!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是請求範圍,dragDropBean是視圖範圍。

我無法將面板源對象移動到PHP。

感謝

+0

我嘗試在rich:dropTarget上添加之後。但它仍然不起作用。 – user811602 2012-04-17 10:42:32

回答

0

設法得到充分DragAndDrop例如herehere

這些鏈接與您使用的代碼相同,但是完整。我明白了,對我有好處。也許你脫掉了一些重要的代碼。

除此之外,您可以在頁面中插入<a4j:log/>以顯示調試信息並檢查是否有某種異常。

相關問題