Перетаскивание проблемы с richfaces - PullRequest
2 голосов
/ 13 декабря 2010

этот кусок кода доставляет мне проблемы (richfaces 3.3.2.GA):

<rich:dragIndicator id="indicator"> </rich:dragIndicator>


                     <h:dataTable id="myData" value="#{resultArray}" var="data" >
                         <h:column>
                             <a4j:outputPanel>

                                <rich:dragSupport id="myDrag" dragIndicator="indicator" dragType="sug" dragValue="#{data}" >
                                    <rich:dndParam name="name" value="#{data.name}" >
                                        </rich:dndParam>                              
                                </rich:dragSupport>
                                <h:outputText value="#{data.name}"></h:outputText>



                            </a4j:outputPanel>
                         </h:column>
                     </h:dataTable>

        <rich:panel id="myPanel">
            <f:facet name="header">Drop Zone</f:facet>
                <rich:dropSupport id="dropZone" acceptedTypes="sug" dropListener="#{dropSuggestion}" reRender="box"/>
            </rich:panel>             


        <rich:dataTable  id="box" value="#{nameList}" var="cap2">
            <f:facet name="caption">Concepts chosen</f:facet>
                <h:column>
                    <h:outputText value="#{cap2.name}"/>
                </h:column>
        </rich:dataTable>

Действие называется:

public void dropSuggestion(DropEvent event)


             System.out.println("OntologyActions.dropSuggestions");
            FacesContext context = FacesContext.getCurrentInstance();


            OntologyActions dropItem = new OntologyActions();
            String dropItemString=event.getDragValue().toString();

           //Get request items
            dropItem= (OntologyActions) event.getDragValue();

           //Locate the position of the dropped element
           int index = dropItem.resultArray.indexOf(dropItemString);

           System.out.println("String: " + dropItemString + " DropItem: " + dropItem.resultArray.get(index).name + " Index: " + index);

           //Add the element to the selected array
               selectedSuggestionsArray.add(dropItem.resultArray.get(index));
            nameList.add(dropItemString);

           //resultArray.remove(dropItem);
     }

Проблема в том, что когда я опускаюэлемент в зону сброса, никаких действий не происходит, но я уверен, что он может видеть эту зону сброса, потому что я вижу зеленый или красный цвета, в зависимости от acceptTypes.

Но концепция не удаляется из контейнера,и не добавляется в зону удаления.

Когда я захожу на эту страницу, я получаю эту ошибку:

drop: Элемент с [form1: j_id640: _form: myPanel]Идентификатор не был найден в дереве DOM.

Возможно, элемент не имеет идентификатора клиента или идентификатор клиента не был записан.DnD отключен.Проверьте пожалуйста!

И в консоли JSF (но только с первой попытки) отладка с помощью firebug:

Узел не найден "code:" 8

Это кому-нибудь знакомо?

Заранее спасибо

1 Ответ

1 голос
/ 02 апреля 2011

Я думаю, что вы определили метод dropListener неправильно.Это должно быть dropListener="#{beanName.dropSuggestion}", а не только название метода, я думаю.Это объясняет, почему не выполняются никакие действия.Я не уверен насчет других ошибок, которые вы получаете.

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