GEF查看器放置位置

时间:2015-06-29 18:44:28

标签: eclipse-rcp eclipse-gef

我的GEF图形查看器有一个MyTemplateTransferDropTargetListener。

MyTemplateTransferDropTargetListener覆盖drop()方法:

@Override
public void drop(DropTargetEvent event) {
        Point eventDropLocationPoint = this.getDropLocation();
        }
当编辑器的屏幕较小或等于eclipse编辑器页面的大小时,

getDropLocation()运行正常。但是当GEF编辑器的屏幕较大而我向下或向右滚动时,getDropLocation()将无法获得相对于我的GEF查看器的特定位置。

你知道解决这个问题的方法吗?

Scrrenshot with highlighted scrollbar

1 个答案:

答案 0 :(得分:0)

您的Canvas控件应占用编辑器组合提供给它的所有空间。调整编辑器窗口的大小时,画布大小应该等于窗口的大小(编辑器合成),然后根图的大小应该等于画布的大小。 从屏幕截图看,Canvas控件看起来没有窗口/编辑器组合的大小,或者根图没有正确的大小。灰色矩形边框可能限制根图或画布。 我调试了Draw2D LightweightSystem#controlResized()(第118行),看看在调整编辑器窗口大小时它是否被调用,检查画布大小和根图大小是否正确并且等于窗口大小。 (另请注意,放置目标侦听器仅在画布控件上。)