У меня есть дерево PrimeNG с некоторыми элементами и mxGraph Diagram / Editor.Я определяю обработчик перетаскивания для PrimeNg Tree
<p-tree [value]="files" draggableNodes="True" (drag)="onDragStart($event);" ></p-tree>
и пытаюсь добавить свои данные к объекту DataTransfer
onDragStart(event){
event.preventDefault();
console.log('Start dragging')
event.dataTransfer.setData("text/plain","s1b1");
}
В MxGraph я регистрирую обработчики для событий перетаскивания и отбрасывания
mxEvent.addListener(container, 'dragover', function(evt)
{
if (container.graph.isEnabled())
{
evt.stopPropagation();
evt.preventDefault();
console.log(mxEvent.getSource(evt));
}
});
mxEvent.addListener(container, 'drop', function(this,evt)
{
if (container.graph.isEnabled())
{
evt.stopPropagation();
evt.preventDefault();
// Gets drop location point for vertex
var pt = mxUtils.convertPoint(container, mxEvent.getClientX(evt), mxEvent.getClientY(evt));
var tr = container.graph.view.translate;
var scale = container.graph.view.scale;
var x = pt.x / scale - tr.x;
var y = pt.y / scale - tr.y;
if (evt.dataTransfer != null){
var items = evt.dataTransfer.items;
for (let item of items)
{
console.log('DATATYPE ' + item.type);
console.log('data ' + evt.dataTransfer.getData("text/plain"));
}
}
// Insert default vertex to check drop working
container.graph.insertVertex(container.graph.getDefaultParent(),null,'label1',x,y,100,100);
}
});
Проблема в том, что передача данных evt объектов в mxGraph отличается от передачи данных, генерируемой PrimeNg Tree.
Есть ли какое-либо решение для передачи данных через события из primengtree в mxgraph?