Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   treeviewdragdrop добавление в пустой элемент дерева. (https://javascript.ru/forum/extjs/58334-treeviewdragdrop-dobavlenie-v-pustojj-ehlement-dereva.html)

XAPuTOH 16.09.2015 12:33

treeviewdragdrop добавление в пустой элемент дерева.
 
Всем привет.

Есть такая задачка - сформировать дерево объектов путем перетаскивания новых объектов из другого дерева.

И столкнулся с такой проблемкой. Родной плагин treeviewdragdrop не дает добавлять новые элементы в узел дерева с leaf = true.

Т.е. элемент можно добавить только в узел который уже имеет дочерние узлы.

Наверное какая то логика в этом есть. Но не в моем случае. У меня изначально дерева вообще нету и задача быстренько накидать элементов в изначально пустую панель.

Как я понял из сенчевского форума - это фича а не баг и не отключается.

Кто нибудь сталкивался с такой проблемкой? Как решить?

novikov 17.09.2015 09:14

У дерева всегда есть корневой узел, даже если он не объявлен явно. Даже в пустой панели.

siber-biber 21.09.2015 17:14

вот такую штуку я делал на работе:
plugins     : {
                    ptype               : 'treeviewdragdrop',
                    allowContainerDrops : true,
                    dropZone            : {
                        // we want to always append child node to the hovered one
                        // this behavior isn't supported out of the box by the plugin
                        // so we override a template "onNodeDrop" method
                        onNodeDrop : function (node) {
                            this.valid              = true;
                            this.currentPosition    = 'append';
                            this.overRecord         = this.view.getRecord(node);
                            // call overridden method
                            return this.self.prototype.onNodeDrop.apply(this, arguments);
                        }
                    }
                },

дальше поиграетесь и допилите до нужного я думаю ;)

AirGraph 24.09.2015 23:07

Действительно, если node.leaf === true, то к нему ничего уже добавить нельзя именно потому, что он не узел, сиречь не node, а именно leaf. novikov справедливо отметил, что у любого дерева есть root, который можно скрыть и не показывать в панели, но в который и можно добавить все что угодно. Рекомендую посмотреть события beforedrop и drop и описать их во viewConfig->listeners.

XAPuTOH 30.09.2015 09:59

Спасибо всем ответившим! Буду пробовать ваши советы.


Часовой пояс GMT +3, время: 19:03.