﻿<?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-白玉成的专栏-随笔分类-GMF</title><link>http://www.blogjava.net/baiyucheng/category/36063.html</link><description>Wait + Hope = Wisdom</description><language>zh-cn</language><lastBuildDate>Tue, 25 Nov 2008 20:56:37 GMT</lastBuildDate><pubDate>Tue, 25 Nov 2008 20:56:37 GMT</pubDate><ttl>60</ttl><item><title>删除默认的工具栏选项</title><link>http://www.blogjava.net/baiyucheng/archive/2008/11/25/242655.html</link><dc:creator>白玉成</dc:creator><author>白玉成</author><pubDate>Tue, 25 Nov 2008 14:13:00 GMT</pubDate><guid>http://www.blogjava.net/baiyucheng/archive/2008/11/25/242655.html</guid><wfw:comment>http://www.blogjava.net/baiyucheng/comments/242655.html</wfw:comment><comments>http://www.blogjava.net/baiyucheng/archive/2008/11/25/242655.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/baiyucheng/comments/commentRss/242655.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/baiyucheng/services/trackbacks/242655.html</trackback:ping><description><![CDATA[<p>&nbsp;</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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">extension&nbsp;</span><span style="color: #ff0000">point</span><span style="color: #0000ff">="org.eclipse.gmf.runtime.diagram.ui.paletteProviders"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">paletteProvider&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="org.eclipse.gmf.runtime.diagram.ui.providers.DefaultPaletteProvider"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Priority&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="High"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">contribution</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">predefinedEntry&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="standardGroup/zoomInTool"</span><span style="color: #ff0000">&nbsp;remove</span><span style="color: #0000ff">="true"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">predefinedEntry<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="standardGroup/zoomOutTool"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remove</span><span style="color: #0000ff">="true"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">predefinedEntry</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">predefinedEntry&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="standardGroup/noteStack/noteTool"</span><span style="color: #ff0000">&nbsp;remove</span><span style="color: #0000ff">="true"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">predefinedEntry&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="standardGroup/noteStack/textTool"</span><span style="color: #ff0000">&nbsp;remove</span><span style="color: #0000ff">="true"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">predefinedEntry&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="standardGroup/noteStack/noteattachmentTool"</span><span style="color: #ff0000">&nbsp;remove</span><span style="color: #0000ff">="true"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">contribution</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">editor<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="dbdesigner.diagram.part.DbdesignerDiagramEditorID"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">editor</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">paletteProvider</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">extension</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;</span></div>
<img src ="http://www.blogjava.net/baiyucheng/aggbug/242655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/baiyucheng/" target="_blank">白玉成</a> 2008-11-25 22:13 <a href="http://www.blogjava.net/baiyucheng/archive/2008/11/25/242655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为图形增加Decoration</title><link>http://www.blogjava.net/baiyucheng/archive/2008/11/25/242651.html</link><dc:creator>白玉成</dc:creator><author>白玉成</author><pubDate>Tue, 25 Nov 2008 14:11:00 GMT</pubDate><guid>http://www.blogjava.net/baiyucheng/archive/2008/11/25/242651.html</guid><wfw:comment>http://www.blogjava.net/baiyucheng/comments/242651.html</wfw:comment><comments>http://www.blogjava.net/baiyucheng/archive/2008/11/25/242651.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/baiyucheng/comments/commentRss/242651.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/baiyucheng/services/trackbacks/242651.html</trackback:ping><description><![CDATA[&nbsp;<span style="font-family: Arial">Decoration </span><span style="font-family: Arial">Service</span><span style="font-family: 宋体">是</span><span style="font-family: Arial">GMF Runtime</span><span style="font-family: 宋体">提供的一个</span><span style="font-family: Arial">Service</span><span style="font-family: 宋体">。它的目的是为已有图形添加修饰，它并不需要已有图形的任何信息，</span><span style="font-family: Arial">icon</span><span style="font-family: 宋体">或</span><span style="font-family: Arial">figure</span><span style="font-family: 宋体">都可以作为</span><span style="font-family: Arial">decoration</span><span style="font-family: 宋体">加到图形上。要为图形添加</span><span style="font-family: Arial">Decoration</span><span style="font-family: 宋体">，首先要编写一个</span><span style="font-family: Arial">Decorator</span><span style="font-family: 宋体">类。它可以继承</span><span style="font-family: Arial">AbstractDecorator</span><span style="font-family: 宋体">，为了满足要求我们要重写其中两个方法：</span><span style="font-family: Arial">activate()</span><span style="font-family: 宋体">、</span><span style="font-family: Arial">refresh ()</span><span style="font-family: 宋体">。</span><span style="font-family: Arial">activate</span><span style="font-family: 宋体">方法主要功能是激活</span><span style="font-family: Arial">Decorator</span><span style="font-family: 宋体">，一般只需调用</span><span style="font-family: Arial">refresh</span><span style="font-family: 宋体">方法即可。</span><span style="font-family: Arial">Refresh</span><span style="font-family: 宋体">负责当</span><span style="font-family: Arial">decorator target</span><span style="font-family: 宋体">变化时刷新</span><span style="font-family: Arial">Decorator</span><span style="font-family: 宋体">，即保持二者之间的同步。在这里我们就可以设置自己的</span><span style="font-family: Arial">Decoration</span><span style="font-family: 宋体">（如自定义的</span><span style="font-family: Arial">icon</span><span style="font-family: 宋体">或</span><span style="font-family: Arial">figure</span><span style="font-family: 宋体">）。如果想实现</span><span style="font-family: Arial">Decoration</span><span style="font-family: 宋体">动态响应模型的改变，我们可以让</span><span style="font-family: Arial">Decorator</span><span style="font-family: 宋体">实现</span><span style="font-family: Arial">NotificationListener</span><span style="font-family: 宋体">接口，这样我们就可以监听模型的改变了。实现</span><span style="font-family: Arial">notifyChanged</span><span style="font-family: 宋体">方法，在此方法中根据需求为模型添加监听器。做完</span><span style="font-family: Arial">Decorator</span><span style="font-family: 宋体">之后，我们就要为这个</span><span style="font-family: Arial">Decorator</span><span style="font-family: 宋体">编写一个</span><span style="font-family: Arial">Provider,</span><span style="font-family: 宋体">它需继承</span><span style="font-family: Arial">AbstractProvider</span><span style="font-family: 宋体">并实现</span><span style="font-family: Arial">IDecoratorProvider</span><span style="font-family: 宋体">接口。然后实现</span><span style="font-family: Arial">createDecorators</span><span style="font-family: 宋体">、</span><span style="font-family: Arial">provides</span><span style="font-family: 宋体">两个方法。在</span><span style="font-family: Arial">createDecorators</span><span style="font-family: 宋体">方法中安装我们的</span><span style="font-family: Arial">Decorator</span><span style="font-family: 宋体">。</span>
<p><span style="font-family: Arial">Provides</span><span style="font-family: 宋体">中判断添加</span><span style="font-family: Arial">Decorator</span><span style="font-family: 宋体">的条件。最后就要注册我们的</span><span style="font-family: Arial">Provider</span><span style="font-family: 宋体">了。添加扩展点：</span></p>
<span style="font-size: 10.5pt; font-family: Arial">org.eclipse.gmf.runtime.diagram.ui.decorator.providers</span><span style="font-size: 10.5pt; font-family: 宋体">，将</span><span style="font-size: 10.5pt; font-family: Arial">decoration provider</span><span style="font-size: 10.5pt; font-family: 宋体">设成我们的</span><span style="font-size: 10.5pt; font-family: Arial">Provider</span><span style="font-size: 10.5pt; font-family: 宋体">，至此大功造成！</span>
<img src ="http://www.blogjava.net/baiyucheng/aggbug/242651.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/baiyucheng/" target="_blank">白玉成</a> 2008-11-25 22:11 <a href="http://www.blogjava.net/baiyucheng/archive/2008/11/25/242651.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>