Hexise's Blog

          業(yè)精于勤荒于嬉 行成于思毀于隨
          posts - 13, comments - 12, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          GEF編輯器的區(qū)域及滾動條

          Posted on 2006-12-29 13:16 Hexise 閱讀(2600) 評論(2)  編輯  收藏 所屬分類: Eclipse PluginGEF/EMF

          GEF編輯器是構(gòu)架在Draw2D的FigureCanvas上的,而FigureCanvas是swt中Canvas的子類.

          當?shù)玫紽igureCanvas之后,就可以得到GEF編輯器的區(qū)域和GEF編輯器內(nèi)部畫布的大小:

          編輯器區(qū)域大小:FigureCanvas.getBounds();
          這是運用了FigureCanvas是Canvas子類的特點,調(diào)用SWT的Canvas的getBounds()方法,即調(diào)用Control的getBounds()方法.

          畫布大小:FigureCanvas.getContents.getBounds();
          這是運用了IFigure的getBounds()方法, 這兩個區(qū)域矩形不可混淆.

          若要觸發(fā)GEF編輯器的滾動條操作,僅需調(diào)用FigureCanvas的scrollToX(int hOffset)和scrollToY(int vOffset)即可.

          獲取FigureCanvas的方法也比較簡單.通過EditPart.getViewer()獲得EditPartViewer,一般情況下EditPartViewer的Control就是FigureCanvas.

          列出代碼如下:

          FigureCanvas?canvas? = ?(FigureCanvas)EditPart.getViewer().getControl();
          canvas.scrollToX(
          500 );
          canvas.scrollToY(
          600 );
          System.out.println(canvas.getBounds());
          System.out.println(canvas.getContents().getBounds());

          評論

          # re: GEF編輯器的區(qū)域及滾動條  回復(fù)  更多評論   

          2006-12-31 10:19 by lautsie
          剛教會我就在這里發(fā)了篇文章啊,哈哈

          # re: GEF編輯器的區(qū)域及滾動條  回復(fù)  更多評論   

          2007-01-04 10:02 by Hexise
          @lautsie
          剛發(fā)就被你找到了。。。
          主站蜘蛛池模板: 察隅县| 新野县| 巴林左旗| 金堂县| 久治县| 刚察县| 师宗县| 大石桥市| 新竹县| 盘锦市| 北碚区| 彰武县| 渑池县| 蕉岭县| 洛浦县| 绥滨县| 饶平县| 富宁县| 紫云| 普陀区| 阿城市| 金门县| 漳平市| 洞头县| 昌图县| 临汾市| 衢州市| 曲周县| 中阳县| 天津市| 凤山县| 乌审旗| 毕节市| 庆元县| 雅江县| 奉新县| 工布江达县| 贵港市| 克拉玛依市| 龙口市| 洛川县|