我的GEF图形查看器有一个MyTemplateTransferDropTargetListener。
MyTemplateTransferDropTargetListener覆盖drop()方法:
@Override
public void drop(DropTargetEvent event) {
Point eventDropLocationPoint = this.getDropLocation();
}
当编辑器的屏幕较小或等于eclipse编辑器页面的大小时,getDropLocation()运行正常。但是当GEF编辑器的屏幕较大而我向下或向右滚动时,getDropLocation()将无法获得相对于我的GEF查看器的特定位置。
你知道解决这个问题的方法吗?
答案 0 :(得分:0)
您的Canvas控件应占用编辑器组合提供给它的所有空间。调整编辑器窗口的大小时,画布大小应该等于窗口的大小(编辑器合成),然后根图的大小应该等于画布的大小。 从屏幕截图看,Canvas控件看起来没有窗口/编辑器组合的大小,或者根图没有正确的大小。灰色矩形边框可能限制根图或画布。 我调试了Draw2D LightweightSystem#controlResized()(第118行),看看在调整编辑器窗口大小时它是否被调用,检查画布大小和根图大小是否正确并且等于窗口大小。 (另请注意,放置目标侦听器仅在画布控件上。)