使用GEF ScalableFreeformRootEditPart的注意事項

我在學習GEF過程中,實例程序默認使用的是ScalableRootEditPart,  GraphicalViewer默認提供的RootEditPart也是.具體的代碼實現在org.eclipse.gef.ui.parts.GraphicalViewerImpl


/**
     * Creates the default root editpart. Called during construction.
     */
    protected void createDefaultRoot() {
        setRootEditPart(new ScalableRootEditPart());
    }


如果你僅僅是將ScalableRootEditPart()改爲ScalableFreeformRootEditPart,會出現primary layer主層隱藏的情況.

需要進行額外的修改.

將ContentEditPart(包含Model的ContentModel對應的EditPart)中的createFigure中生成的函數.

 @Override
    protected IFigure createFigure()
    {
        FreeformLayer layer= new FreeformLayer();
        layer.setLayoutManager(new FreeformLayout());
        return layer;
    }


1.返回的layer 的類型是FreeformLayer 

2.layoutManager是FreeformLayout

用子類應該也行

修改1, 可以使得primary layer展現  但當拖動model到左側/上側時,就會陷入死循環

修改2. 解決死循環問題

參考 :http://blog.csdn.net/dollyn/article/details/1574985 


第一次寫博客  希望能夠幫助遇到類似情況的人.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章