簡體   English   中英

如何在GEF編輯器中實現自定義FlowLayout?

[英]How to implement custom FlowLayout in a GEF editor?

我正在實現GEF編輯器,並且面臨以下問題。

有兩種類型的EditPart:1)GraphEditPart,2)NodeEditPart。 我的編輯器擴展了GraphicalEditor ,因為我根本不需要調色板。 我將SimpleRootEditPart用於GraphicalViewer

GraphEditPart具有一個類型為Layer的圖形,該圖形使用FlowLayout 它的模型子節點是Nodes,當節點圖形( Label )移動到GraphicalViewer的可見部分之外時,應根據FlowLayout進行顯示,即一個接一個地顯示“換行符”。 這通常是水平滾動條出現的地方。 為了取消滾動條,我設置了layer.setPreferredSize(new Dimension(getViewer().getControl().getSize())) 這已經足夠好了,所以當我將應用程序窗口調整為較小的尺寸時,編輯器將變得更小,並且節點圖形執行FlowLayout的“換行”。

但是,如果圖形中有很多節點,我想顯示垂直滾動條,因為到現在為止,這些節點僅在屏幕底部下方消失。

所以基本上,我想要實現的行為就像一個文本編輯器,如果您只輸入足夠的文本,它就會向下滾動(例如,在stackoverflow上的WYSIWYG文本編輯器)...

我試圖通過調用((FigureCanvas) getViewer()).getControl.setVerticalScrollbarVisibility(FigureCanvas.AUTOMATIC))將滾動條設置為可見,但無濟於事。

我認為問題在於您使用的是SimpleRootEditPart ,它不支持滾動。 嘗試將其更改為ScalableRootEditPart甚至ScalableFreeformRootEditPart (這就是我正在使用的)。 您正在執行的調用會影響包含編輯部分的控件,但是由於GEF管理着它自己的視圖,因此您的調用無效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM