从非mxGraph源进行拖动时,如何在mxGraph中获取被拖动的数据

时间:2019-02-28 08:17:14

标签: angular primeng mxgraph

我有一些元素和mxGraph图/编辑器的PrimeNG树。 我为PrimeNg树定义了拖动处理程序

<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?

0 个答案:

没有答案