﻿<?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-学无止境-随笔分类-Eclipse GEF</title><link>http://www.blogjava.net/lucia/category/3261.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 08 Mar 2007 02:40:28 GMT</lastBuildDate><pubDate>Thu, 08 Mar 2007 02:40:28 GMT</pubDate><ttl>60</ttl><item><title>How to add zoom function into your eclipse plugin?</title><link>http://www.blogjava.net/lucia/archive/2005/10/25/16814.html</link><dc:creator>lucia</dc:creator><author>lucia</author><pubDate>Tue, 25 Oct 2005 15:38:00 GMT</pubDate><guid>http://www.blogjava.net/lucia/archive/2005/10/25/16814.html</guid><wfw:comment>http://www.blogjava.net/lucia/comments/16814.html</wfw:comment><comments>http://www.blogjava.net/lucia/archive/2005/10/25/16814.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lucia/comments/commentRss/16814.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lucia/services/trackbacks/16814.html</trackback:ping><description><![CDATA[You have implemented your own graphical editor as a new eclipse plugin.
You are looking for a way to add zoom functions into the graphical
editor. It is very easy!<br>
1. Add the action into the toolbar:<br>
...in Class: ActionBarContributor...<br>
&nbsp;&nbsp;&nbsp; ...in Method: contributeToToolBar...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; toolBarManager.add(getAction(GEFActionConstants.ZOOM_IN));<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; toolBarManager.add(getAction(GEFActionConstants.ZOOM_OUT));<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; toolBarManager.add(new ZoomComboContributionItem(getPage()));<br>
<br>
2. Connect the Zoom Manager with your edit part:<br>
...in Class: YourEditor...<br>
&nbsp;&nbsp;&nbsp; ...in Method: configureGraphicalViewer...<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ScalableFreeformRootEditPart rootEditPart= new ScalableFreeformRootEditPart();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; getGraphicalViewer().setRootEditPart(rootEditPart);<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ZoomManager manager = rootEditPart.getZoomManager();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IAction action = new ZoomInAction(manager);<br>
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; getActionRegistry().registerAction(action);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; action = new ZoomOutAction(manager);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; getActionRegistry().registerAction(action);<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //define the zoom possibilities<br>
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; double[] zoomLevels = new double[] {0.25,0.5,0.75,1.0,1.5,2.0,2.5,3.0,4.0};<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; manager.setZoomLevels(zoomLevels);<br>
&nbsp;&nbsp; ...in Method: getAdapter...<br>
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; if (type == ZoomManager.class)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; return ((ScalableFreeformRootEditPart)
getGraphicalViewer().<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; getRootEditPart()).getZoomManager();<br>
<br>
That's all! Now you have two buttons to zoom in and zoom out. And you
can see the zoom level in percent.&nbsp; With the example here
you&nbsp; can change&nbsp; zoom level from 25% to 400%. <br>
<br>
<span style="text-decoration: underline;"></span><img src ="http://www.blogjava.net/lucia/aggbug/16814.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lucia/" target="_blank">lucia</a> 2005-10-25 23:38 <a href="http://www.blogjava.net/lucia/archive/2005/10/25/16814.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>