Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Tree -> panel = DragAndDrop


Автор: Ace Wentura 12.12.2008, 18:42
Кто-нибудь юзал rich:dragAndDrop ?
Делаю так:
DRAG
Код

                    <rich:tree>
                                    <rich:treeNodesAdaptor nodes="#{city.childs}" var="qwe">
                                        <rich:treeNode dragType="qwe" dragIndicator="indicator" dropValue="#{qwe.id}">
                                            <rich:dndParam name="qwe_label" value="#{qwe.name}"/>
                                            <h:outputText value="#{qwe.name}" id="indicator_#{qwe.id}" />
                                        </rich:treeNode>
                                    </rich:treeNodesAdaptor>
                    </rich:tree>


DROP
Код

                            <rich:dropSupport acceptedTypes="qwe" dropListener="#{listener.processDrop}">
...
                            </rich:dropSupport>


Отлавливатель (пытаюсь просто понять что приходит. Коменты - результат)
Код

 public void processDrop(DropEvent event){
        System.out.println("getDragValue "+event.getDragValue()); //null
        System.out.println("getDragType "+event.getDragType()); // null

        System.out.println("getDropValue "+event.getDropValue()); // null
        System.out.println("qweqweqwe"+event); // не null

        System.out.println("qweqweqwe"+event.getComponent().getAttributes().get("qwe")); // null
        
        System.out.println("qweqweqwe"+event.getComponent().getAttributes().size()); // 1

        for(Object obj:event.getComponent().getChildren()){
            System.out.println("qweqweqwe"+obj.getClass()); // javax.faces.component.html.HtmlPanelGrid
            System.out.println("qweqweqwe"+obj); // javax.faces.component.html.HtmlPanelGrid@18655e
        }
        for(Object obj:event.getComponent().getAttributes().values()){
            System.out.println("qweqweqwe"+obj.getClass()); // java.lang.String
            System.out.println("qweqweqwe"+obj); // 29b7ef5c
        }
        for(Object obj:event.getComponent().getAttributes().keySet()){
            System.out.println("qweqweqwe"+obj.getClass()); // java.lang.String
            System.out.println("qweqweqwe"+obj); // com.sun.facelets.MARK_ID
        }
    }

Не могу понять в чём затык...  smile 

Автор: Ace Wentura 16.12.2008, 01:54
Ладно, как всегда всё решается самостоятельно.
Секрет был в следующем.
Изначальна была такая структура:
Код

<h:panelGrid>
<ui:include src="тут тыкаем дерево с DRAG-ом">
</h:panelGrid>

<h:panelGrid>
<ui:include src="тут тыкаем панель с DROP-ом">
</h:panelGrid>

Не прокатило.
Прокатил только вариант, когда:
Код

<a4j:outputPanel>
<h:panelGrid>
<ui:include src="тут тыкаем дерево с DRAG-ом">
</h:panelGrid>
</a4j:outputPanel>

<a4j:outputPanel>
<h:panelGrid>
...
В чистом виде код панели с DROP-ом
...
</h:panelGrid>
</a4j:outputPanel>

В общем лажа какая-то. Причём проблема реально в том, что не передавались параметры в один и тот же кусок кода. Я в ауте. Всем спасибо  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)