Java GEF:在拖放过程中自动滚动

Java GEF:在拖放过程中自动滚动,java,eclipse,eclipse-gef,Java,Eclipse,Eclipse Gef,我有一个用GEF编写的图形编辑器。在该编辑器中,可以在周围拖放元素,并通过拖放特定的锚定点来创建连接 一切正常,只是当用户拖动内容时,图表不会自动滚动 我希望当用户在拖动某个对象时到达图表的一侧时,图表会自动滚动 全球环境基金是否支持这种功能?应该调用哪个类/设置器来启用它 如果没有直接支持,如何继续实现 我已经有一段时间没有和GEF玩过了 拖放根本不起作用,还是只在负坐标方向上起作用? 你用的是什么布局 IIRC,有不同的布局,其中一个(自由形式?)支持负坐标,因此,如果您在负坐标方面遇到问题

我有一个用GEF编写的图形编辑器。在该编辑器中,可以在周围拖放元素,并通过拖放特定的锚定点来创建连接

一切正常,只是当用户拖动内容时,图表不会自动滚动

我希望当用户在拖动某个对象时到达图表的一侧时,图表会自动滚动

全球环境基金是否支持这种功能?应该调用哪个类/设置器来启用它


如果没有直接支持,如何继续实现

我已经有一段时间没有和GEF玩过了

拖放根本不起作用,还是只在负坐标方向上起作用? 你用的是什么布局

IIRC,有不同的布局,其中一个(自由形式?)支持负坐标,因此,如果您在负坐标方面遇到问题,您可以尝试更改布局

下面是一个(作者说;)的例子,它可能会给你一个很好的提示

还有一个名为org.eclipse.gef.ui.parts.ScrollingGraphicalViewer的类可能也会有所帮助


不过,因为我不知道您的代码,所以只有一些提示。

第一步是使画布可滚动。第96-101页对此进行了解释

假设您已经在
FigureCanvas
上绘制图形,并且正在使用
FreeformFigure
s和
FreeformLayer
,则可以执行以下操作:

在其
EditPart
中的
Figure
上添加一个
MouseMoveListener
。每次检测到拖动时,在
mouseDragEvent
方法中,使用
getViewer().reveal(EditPart.this)
显示您的图形


这将导致您的
图形在拖动时总是不断显示。

您还可以说出书名和作者吗?上面的链接不再有效。@Simon“Eclipse图形编辑框架(GEF)”,作者:Dan Rubel、Jaime Wren和Eric Clayberg。这是“日食系列”的一部分。这本书的封面是白底深紫色的。