- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在实现一个 GEF 编辑器并面临以下问题。
有两种EditPart:1)GraphEditPart,2)NodeEditPart。我的编辑器扩展了 GraphicalEditor
,因为我根本不需要调色板。我将 SimpleRootEditPart
用于 GraphicalViewer
。
GraphEditPart
有一个 Layer
类型的图形,它是用 FlowLayout
布局的。它的模型子节点是节点,应该按照FlowLayout
显示,即一个接一个,节点图形(一个Label
)移动时“换行”超出 GraphicalViewer
的可见部分。这通常是水平滚动条出现的地方。为了抑制滚动条,我设置了 layer.setPreferredSize(new Dimension(getViewer().getControl().getSize()))
。这工作得很好,所以当我将应用程序窗口调整为更小的尺寸时,编辑器变得更小,并且节点图形执行类似“换行符”的 la FlowLayout。
但是,如果我在图表中有很多节点,我想显示垂直滚动条,因为就像现在一样,节点刚好消失在屏幕底端下方。
所以基本上,我想要实现的行为就像文本编辑器的行为,如果您输入足够的文本,它就会向下滚动(就像 stackoverflow 上的 WYSIWYG 文本编辑器)...
我尝试通过调用 ((FigureCanvas) getViewer()).getControl.setVerticalScrollbarVisibility(FigureCanvas.AUTOMATIC))
来设置滚动条可见,但无济于事。
最佳答案
我认为问题在于您使用的是 SimpleRootEditPart
,它不支持滚动。尝试将其更改为 ScalableRootEditPart
甚至 ScalableFreeformRootEditPart
(这就是我正在使用的)。您正在进行的调用会影响包含编辑部分的控件,但由于 GEF 管理它自己的 View ,因此您的调用没有任何效果。
关于java - 如何在 GEF 编辑器中实现自定义 FlowLayout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23575378/
我是一名优秀的程序员,十分优秀!