<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    GEF中同時使用兩個Router

           gef中經常會有很多連線,這些連線如何和每個node連接,允不允許交叉等等都是用router來控制的.網上有篇文章對這個做了一些介紹:
    http://www-128.ibm.com/developerworks/cn/opensource/os-ecl-gef/part2/
           我現在做的這個項目需要在兩個node之間同時存在多根線,如果不使用router的話就只能看見一根,在diagram的 figure里面set一個FanRouter作為缺省的router就可以解決這個問題.兩個node之間如果存在多根連線的話,FanRouter會把它們分布成扇形,每根連線都可以看見.但是FanRouter好像只能在diagram的figure里面設置,如果每根connection你都設置成FanRouter,反而不會啟效果,這可能跟它的handlecollision方法的算法有關.
            但是設置成FanRouter之后有一個問題:我的項目中還有那種自連接的connection(該connection的source和target是同一個node),原先我是把這種connection的router設置為bendconnectionrouter,但是后來設置了FanRouter之后BendConnectionRouter好像就失效了,不管你的connection上面有多少個bendpoint都看不出來效果.
            后來終于找到了讓這兩張router和平共處的辦法,只要加一行:fanRouter.setNextRouter(new BendPointConnectionRouter());setNextRouter這個方法有點怪,按照字面的理解,應該是fanrouter的下一個router,按理說應該是先用fanrouter來layout 連線,然后再使用BendPointConnectionRouter來layout 連線,但是它實際上是先用BendPointConnectionRouter來layout 連線,然后再使用fanRouter.

    posted on 2008-08-12 18:06 小牛小蝦 閱讀(1788) 評論(2)  編輯  收藏

    評論

    # re: GEF中同時使用兩個Router 2008-08-12 20:37 Always BaNg.

    其實在Logic Example就有這個實例。

    參見 LogicDiagramEditPart.refreshVisuals

    protected void refreshVisuals() {
    Animation.markBegin();
    ConnectionLayer cLayer = (ConnectionLayer) getLayer(CONNECTION_LAYER);
    if ((getViewer().getControl().getStyle() & SWT.MIRRORED ) == 0)
    cLayer.setAntialias(SWT.ON);

    if (getLogicDiagram().getConnectionRouter().equals(LogicDiagram.ROUTER_MANUAL)) {
    AutomaticRouter router = new FanRouter();
    router.setNextRouter(new BendpointConnectionRouter());
    cLayer.setConnectionRouter(router);
    } else if (getLogicDiagram().getConnectionRouter().equals(LogicDiagram.ROUTER_MANHATTAN))
    cLayer.setConnectionRouter(new ManhattanConnectionRouter());
    else
    cLayer.setConnectionRouter(new ShortestPathConnectionRouter(getFigure()));
    Animation.run(400);
    }

    }  回復  更多評論   

    # re: GEF中同時使用兩個Router 2008-08-13 17:24 yes1983

    @Always BaNg.
    不好意思,沒有完整的看過logic那個例子的源碼,這些都是平常做GEF項目的時候慢慢積累的一些經驗,貽笑大方了,赫赫  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2008年8月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    導航

    統計

    常用鏈接

    留言簿(6)

    隨筆檔案

    文章檔案

    eclipse

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成电影网站色| 久久久久久久国产免费看| 免费人成在线观看网站视频| ssswww日本免费网站片| 亚洲日本视频在线观看| 四虎亚洲国产成人久久精品| 免费视频成人片在线观看| 99亚洲乱人伦aⅴ精品| 久久亚洲成a人片| 国产又大又长又粗又硬的免费视频| 精品久久久久久国产免费了 | 国产91色综合久久免费| 色欲aⅴ亚洲情无码AV| 亚洲第一视频网站| 国产jizzjizz免费视频| 99久久精品免费视频| 自拍偷自拍亚洲精品播放| 亚洲视频在线观看一区| 亚洲国产视频网站| 亚洲无线一二三四区手机| 国产免费久久精品99re丫y| 国产成人免费AV在线播放| 亚洲熟妇久久精品| 亚洲视屏在线观看| 亚洲精品~无码抽插| 国产区卡一卡二卡三乱码免费| 真人做人试看60分钟免费视频| 91av免费在线视频| 亚洲va中文字幕| 亚洲宅男天堂a在线| 亚洲精品无码专区久久久| 免费一级毛片女人图片| 精品福利一区二区三区免费视频| 中文字幕免费观看全部电影| 久久精品国产亚洲AV| 亚洲人成网站色在线观看| 久久精品国产亚洲AV香蕉| 亚洲AV无码专区电影在线观看| 亚洲熟伦熟女新五十路熟妇| 日韩激情无码免费毛片| 欧洲黑大粗无码免费|