Перетаскивание из p: tree Выпадает на панель p: - PullRequest
0 голосов
/ 09 февраля 2020

Я использую Primefaces 6.2 и хочу перетащить что-то из p:tree и поместить его куда-нибудь еще, например, на p:panel

<h:form id="fTree" >
  <p:tree id="tTree" value="#{bean.tree}" var="node" 
      selection="#{bean.node}" selectionMode="single"
      draggable="true" droppable="true" dragdropScope="demo">
    <p:ajax event="dragdrop" listener="#{bean.onDragDrop}">
    <p:ajax event="select" listener="#{bean.onNodeSelect}"/>
    <p:ajax event="expand" listener="#{bean.onNodeExpand}" />
    <p:ajax event="collapse" listener="#{bean.onNodeCollapse}" />
    <p:treeNode id="tn">
      <h:outputText value="#{node.code}" />
      <h:outputText id="otText" value="#{node.name}" />
      <p:draggable for="otText" helper="clone" appendTo="@(body)" zindex="5" />
    </p:treeNode>
  </p:tree>
</h:form>

<h:form id="fEvent">
  <p:panel id="pEvent" header="Panel" >
    some content
  </p:panel>
  <p:droppable for=":fEvent:pEvent" tolerance="touch" datasource=":fTree:tTree" onDrop="handleDrop">
    <p:ajax listener="#{bean.onDrop}" update="@form" />  
  </p:droppable>
</h:form>

Метод бина следующий:

public void onDrop(DragDropEvent ddEvent)
{
    logger.info("DROP ");
}

С этим кодом я получаю следующую ошибку

java.lang.ClassCastException: org.primefaces.component.tree.Tree
cannot be cast to javax.faces.component.UIData

Я предполагаю, что я использую неправильный datasource = ": fTree: tTree" in droppable. Даже для отвратительного я не совсем уверен, что это хороший подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...