0

这是撤消/重做的示例:Undo_Redo_Delete

我做了以下步骤:

  1. 拖放开始和结束节点。
  2. 通过端口连接它们。
  3. 删除结束节点。
  4. 现在再次拖动结束节点。
  5. 这次我再次尝试连接开始和结束节点,但它显示

类型错误:this.parent.getCanvas() 为空

在 port.js 的 this.parent.getCanvas().connectionLine.setGlow(false) 处。

如果有人知道如何解决这个问题,请帮助我。在此先感谢:)

4

1 回答 1

1

已在 0.9.38 版本中修复

如果您需要快速修复,可以使用下面的代码替换 onDragEnd 方法。

/**
 * @inheritdoc
 **/
onDragEnd:function()
{
  this.parent.getCanvas().setSnapToGrid(this.originalSnapToGrid );
  this.parent.getCanvas().setSnapToGeometry( this.originalSnapToGeometry );

  // Don't call the parent implementation. This will create an CommandMove object
  // and store them o the CommandStack for the undo operation. This makes no sense for a
  // port.
  // graphiti.shape.basic.Rectangle.prototype.onDragEnd.call(this); DON'T call the super implementation!!!

  this.setAlpha(1.0);

  // 1.) Restore the old Position of the node
  //
  this.setPosition(this.ox,this.oy);

  // 2.) Remove the bounding line from the canvas
  //
  this.parent.getCanvas().hideConnectionLine();
  this.isInDragDrop =false;

  // Reset the drag&drop flyover information 
  //
  this.currentTarget = null; // <<== this is the missing line to fix the bug
},
于 2012-08-20T16:34:22.110 回答