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

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

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

    GEF中同時(shí)使用兩個(gè)Router

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

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

    評(píng)論

    # re: GEF中同時(shí)使用兩個(gè)Router 2008-08-12 20:37 Always BaNg.

    其實(shí)在Logic Example就有這個(gè)實(shí)例。

    參見(jiàn) 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);
    }

    }  回復(fù)  更多評(píng)論   

    # re: GEF中同時(shí)使用兩個(gè)Router 2008-08-13 17:24 yes1983

    @Always BaNg.
    不好意思,沒(méi)有完整的看過(guò)logic那個(gè)例子的源碼,這些都是平常做GEF項(xiàng)目的時(shí)候慢慢積累的一些經(jīng)驗(yàn),貽笑大方了,赫赫  回復(fù)  更多評(píng)論   


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    <2008年8月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(6)

    隨筆檔案

    文章檔案

    eclipse

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 好爽…又高潮了毛片免费看| 一个人免费观看在线视频www| 成人免费一区二区三区在线观看| 在线免费观看亚洲| 日韩中文字幕免费视频| 久久精品国产亚洲av四虎| 久久99免费视频| 亚洲色图综合网站| 无人影院手机版在线观看免费| 亚洲日本国产综合高清| 大陆一级毛片免费视频观看| 亚洲成av人在线观看网站| 国产福利免费在线观看| 一级美国片免费看| 亚洲欧洲日产国码av系列天堂| 少妇无码一区二区三区免费| 久久青青草原亚洲av无码app| 67pao强力打造高清免费| 亚洲日日做天天做日日谢| 免费看大黄高清网站视频在线| 免费的黄色网页在线免费观看| 亚洲中文无韩国r级电影| 欧洲人免费视频网站在线| 亚洲熟妇无码久久精品| 女人毛片a级大学毛片免费| 粉色视频在线观看www免费| AV在线播放日韩亚洲欧| 久久久久久夜精品精品免费啦| 亚洲一区在线视频| 久久亚洲色一区二区三区| 久久久久国色av免费看| 亚洲大码熟女在线观看| 亚洲人成77777在线播放网站| 亚州免费一级毛片| 日韩成人精品日本亚洲| 亚洲精品你懂的在线观看| 思思re热免费精品视频66 | 免费久久人人爽人人爽av| 亚洲视频国产视频| 免费在线观看你懂的| 99视频免费观看|