我正在实施一个GEF编辑器,面临以下问题。
EditPart有两种类型:1)GraphEditPart,2)NodeEditPart。
我的编辑器扩展了GraphicalEditor
,因为我根本不需要调色板。我对SimpleRootEditPart
使用GraphicalViewer
。
GraphEditPart
的数字为Layer
,其格式为FlowLayout
。它的模型子节点是节点,应该根据FlowLayout
显示,即一个接一个地显示节点图(a Label
)超出可见部分的“换行符”。 GraphicalViewer
。这将是通常出现水平滚动条的点。为了抑制滚动条,我设置了layer.setPreferredSize(new Dimension(getViewer().getControl().getSize()))
。这非常有效,因此当我将应用程序窗口调整为较小的大小时,编辑器会变小,并且节点数字会在FlowLayout中执行准“换行”。
但是,如果图中有很多节点,我想显示垂直滚动条,因为现在,节点只是消失在屏幕的下端。
基本上,我想要实现的行为就像文本编辑器一样,只要输入足够的文本就会向下滚动(就像stackoverflow上的WYSIWYG文本编辑器一样)......
我试图通过调用((FigureCanvas) getViewer()).getControl.setVerticalScrollbarVisibility(FigureCanvas.AUTOMATIC))
来设置滚动条,但无济于事。
答案 0 :(得分:0)
我认为问题是您使用的是SimpleRootEditPart
,它不支持滚动。尝试将其更改为ScalableRootEditPart
甚至ScalableFreeformRootEditPart
(这就是我正在使用的)。您正在进行的调用会影响包含编辑部分的控件,但由于GEF管理自己的视图,因此您的调用无效。