【发布时间】:2014-06-27 19:53:56
【问题描述】:
我正在实现一个 GEF 编辑器,并面临以下问题。
EditPart 有两种类型:1) GraphEditPart,2) NodeEditPart。
我的编辑器扩展了GraphicalEditor,因为我根本不需要调色板。我使用SimpleRootEditPart 作为GraphicalViewer。
GraphEditPart 有一个类型为Layer 的图形,其布局为FlowLayout。它的模型子节点是节点,应根据FlowLayout 显示,即一个接一个地显示,当节点图形(Label)超出GraphicalViewer 的可见部分时,会出现“换行符”。这通常是水平滚动条出现的地方。为了抑制滚动条,我设置了layer.setPreferredSize(new Dimension(getViewer().getControl().getSize()))。这工作得很好,所以当我将应用程序窗口调整为更小的尺寸时,编辑器会变小,并且节点图形会像 FlowLayout 一样执行准“换行”。
但是,如果图表中有很多节点,我想显示垂直滚动条,因为就像现在一样,节点只是在屏幕底部下方消失。
所以基本上,我想要实现的行为就像一个文本编辑器,如果你输入足够多的文本,它会向下滚动(就像 stackoverflow 上的 WYSIWYG 文本编辑器)...
我尝试通过调用((FigureCanvas) getViewer()).getControl.setVerticalScrollbarVisibility(FigureCanvas.AUTOMATIC)) 设置滚动条可见,但无济于事。
【问题讨论】:
标签: java swt eclipse-gef flowlayout draw2d