﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Hexise's Blog-随笔分类-GEF/EMF</title><link>http://www.blogjava.net/hexise/category/18794.html</link><description>业精于勤荒于嬉 行成于思毁于随</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 11:40:13 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 11:40:13 GMT</pubDate><ttl>60</ttl><item><title>GEF编辑器的区域及滚动条</title><link>http://www.blogjava.net/Hexise/archive/2006/12/29/90718.html</link><dc:creator>Hexise</dc:creator><author>Hexise</author><pubDate>Fri, 29 Dec 2006 05:16:00 GMT</pubDate><guid>http://www.blogjava.net/Hexise/archive/2006/12/29/90718.html</guid><wfw:comment>http://www.blogjava.net/Hexise/comments/90718.html</wfw:comment><comments>http://www.blogjava.net/Hexise/archive/2006/12/29/90718.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/Hexise/comments/commentRss/90718.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Hexise/services/trackbacks/90718.html</trackback:ping><description><![CDATA[
		<font face="Courier New">
		</font>
		<p>GEF编辑器是构架在Draw2D的FigureCanvas上的,而FigureCanvas是swt中Canvas的子类.</p>
		<p>当得到FigureCanvas之后,就可以得到GEF编辑器的区域和GEF编辑器内部画布的大小:</p>
		<p>编辑器区域大小:FigureCanvas.getBounds();<br />这是运用了FigureCanvas是Canvas子类的特点,调用SWT的Canvas的getBounds()方法,即调用Control的getBounds()方法.</p>
		<p>画布大小:FigureCanvas.getContents.getBounds();<br />这是运用了IFigure的getBounds()方法, 这两个区域矩形不可混淆.</p>
		<p>若要触发GEF编辑器的滚动条操作,仅需调用FigureCanvas的scrollToX(int hOffset)和scrollToY(int vOffset)即可.</p>
		<p>获取FigureCanvas的方法也比较简单.通过EditPart.getViewer()获得EditPartViewer,一般情况下EditPartViewer的Control就是FigureCanvas.</p>
		<p>列出代码如下:<br /><br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #000000">FigureCanvas canvas </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> (FigureCanvas)EditPart.getViewer().getControl();<br />canvas.scrollToX(</span>
				<span style="COLOR: #000000">500</span>
				<span style="COLOR: #000000">);<br />canvas.scrollToY(</span>
				<span style="COLOR: #000000">600</span>
				<span style="COLOR: #000000">);<br />System.out.println(canvas.getBounds());<br />System.out.println(canvas.getContents().getBounds());</span>
		</div>
<img src ="http://www.blogjava.net/Hexise/aggbug/90718.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Hexise/" target="_blank">Hexise</a> 2006-12-29 13:16 <a href="http://www.blogjava.net/Hexise/archive/2006/12/29/90718.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>