﻿<?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-eclipshine-随笔分类-RCP</title><link>http://www.blogjava.net/eclipshine/category/2266.html</link><description>Eclipse主题站</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 12:08:50 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 12:08:50 GMT</pubDate><ttl>60</ttl><item><title>一个在RCP中快速打开文件的小技巧</title><link>http://www.blogjava.net/eclipshine/archive/2005/09/22/13776.html</link><dc:creator>Living Not Striving</dc:creator><author>Living Not Striving</author><pubDate>Thu, 22 Sep 2005 11:47:00 GMT</pubDate><guid>http://www.blogjava.net/eclipshine/archive/2005/09/22/13776.html</guid><wfw:comment>http://www.blogjava.net/eclipshine/comments/13776.html</wfw:comment><comments>http://www.blogjava.net/eclipshine/archive/2005/09/22/13776.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/eclipshine/comments/commentRss/13776.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/eclipshine/services/trackbacks/13776.html</trackback:ping><description><![CDATA[介绍一个在RCP中快速打开文件的小技巧，例如，在Word中打开一个Word文档，或者在Acrobat中打开一个PDF文件。<br>
这可以通过SWT的<code>org.eclipse.swt.program.Program类来实现：</code><br>

<code><br style="color: rgb(0, 128, 0);"><span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp; String filename = "myword.doc";</span><br style="color: rgb(0, 128, 0);"><span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp; Program.launch(filename);</span><br>
</code><br>
这个类还提供了其他一些有用的方法，例如得到某一特定扩展名对应的可执行程序，甚至得到这个可执行程序的图标。<img src ="http://www.blogjava.net/eclipshine/aggbug/13776.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/eclipshine/" target="_blank">Living Not Striving</a> 2005-09-22 19:47 <a href="http://www.blogjava.net/eclipshine/archive/2005/09/22/13776.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Perspective的定义和相关问题</title><link>http://www.blogjava.net/eclipshine/archive/2005/09/22/13719.html</link><dc:creator>Living Not Striving</dc:creator><author>Living Not Striving</author><pubDate>Thu, 22 Sep 2005 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/eclipshine/archive/2005/09/22/13719.html</guid><wfw:comment>http://www.blogjava.net/eclipshine/comments/13719.html</wfw:comment><comments>http://www.blogjava.net/eclipshine/archive/2005/09/22/13719.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/eclipshine/comments/commentRss/13719.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/eclipshine/services/trackbacks/13719.html</trackback:ping><description><![CDATA[
<p class="MsoNormal"><span style="font-family: 宋体;">在</span><span style="font-family: Arial;" lang="EN-US">RCP</span><span style="font-family: 宋体;">中，使用</span><span style="font-family: Arial;" lang="EN-US">Perspective</span><span style="font-family: 宋体;">来描述</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">的组合以及位置。</span><span style="font-family: Arial;" lang="EN-US">Perspective</span><span style="font-family: 宋体;">描述了一个</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">的初始布局，此布局定义了一个</span><span style="font-family: Arial;" lang="EN-US">Perspective</span><span style="font-family: 宋体;">第一次被显示时，需要显示的</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">，以及</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">需要显示的位置，大小，以及</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">可能出现的位子。</span><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></p>




<p class="MsoNormal"><span style="font-family: Arial;" lang="EN-US">Perspective</span><span style="font-family: 宋体;">由</span><span style="font-family: Arial;" lang="EN-US">org.eclipse.ui.perspective</span><span style="font-family: 宋体;">扩展点所定义。对应的实现类，应该实现了</span><span style="font-family: Arial;" lang="EN-US">IPerspectiveFactory</span><span style="font-family: 宋体;">接口。此接口中定义的</span><span style="font-family: Arial;" lang="EN-US">:<o:p></o:p></span></p>


<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: Arial; color: rgb(153, 204, 0);" lang="EN-US">public void
createInitialLayout(IPageLayout layout)<o:p></o:p></span></p>


<p class="MsoNormal"><span style="font-family: 宋体;">方法，用来在</span><span style="font-family: Arial;" lang="EN-US">layout</span><span style="font-family: 宋体;">中定义</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">的显示布局。</span><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></p>




<p class="MsoNormal"><span style="font-family: Arial;" lang="EN-US">IPageLayout</span><span style="font-family: 宋体;">提供了定义布局的方法，主要的方法有：</span><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></p>


<ul>
  <li><!--[if !supportLists]--><span style="font-family: Wingdings;" lang="EN-US"><span style=""></span></span><span style="font-family: Arial; color: rgb(153, 204, 0);" lang="EN-US">getEditorArea():</span><span style="font-family: Arial;" lang="EN-US"> </span><span style="font-family: 宋体;">返回</span><span style="font-family: Arial;" lang="EN-US">Editor</span><span style="font-family: 宋体;">区域所对应的</span><span style="font-family: Arial;" lang="EN-US">ID</span><span style="font-family: 宋体;">。一般</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">被安排在</span><span style="font-family: Arial;" lang="EN-US">Editor</span><span style="font-family: 宋体;">的周围，因此通常需要得到此</span><span style="font-family: Arial;" lang="EN-US">ID</span><span style="font-family: 宋体;">值，在定义</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">的位置时予以引用。</span><span style="font-family: Arial;" lang="EN-US">Editor</span><span style="font-family: 宋体;">区域可以通过</span><span style="font-family: Arial;" lang="EN-US">IPageLayout</span><span style="font-family: 宋体;">的</span><span style="font-family: Arial;" lang="EN-US">setEditorAreaVisible()</span><span style="font-family: 宋体;">方法予以显示或者关闭。</span><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></li>
  <li><!--[if !supportLists]--><span style="font-family: Wingdings;" lang="EN-US"><span style=""></span></span><span style="font-family: Arial; color: rgb(153, 204, 0);" lang="EN-US">createFolder():</span><span style="font-family: Arial;" lang="EN-US"> </span><span style="font-family: 宋体;">创建一个</span><span style="font-family: Arial;" lang="EN-US">IFolderLayout</span><span style="font-family: 宋体;">。</span><span style="font-family: Arial;" lang="EN-US">IFolderLayout</span><span style="font-family: 宋体;">定义了一个组合框的位置，在此组合框内，可以按照</span><span style="font-family: Arial;" lang="EN-US">TabFolder</span><span style="font-family: 宋体;">的形式显示多个</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">。</span><span style="font-family: Arial;" lang="EN-US">IFolderLayout</span><span style="font-family: 宋体;">的</span><span style="font-family: Arial;" lang="EN-US">addView()</span><span style="font-family: 宋体;">方法可以向此组合框内添加</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">。例如：</span><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></li>
</ul>
<span style="font-family: Arial; color: rgb(0, 128, 0);" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>IFolderLayout
layoutFolderLeft = layout.createFolder(<o:p></o:p></span><br style="color: rgb(0, 128, 0);">
<span style="font-family: Arial; color: rgb(0, 128, 0);" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>"search.perspective.folder.left",
IPageLayout.LEFT, <st1:chmetcnv unitname="F" sourcevalue=".35" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">0.35f</st1:chmetcnv>,<o:p></o:p></span><br style="color: rgb(0, 128, 0);">
<span style="font-family: Arial; color: rgb(0, 128, 0);" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>editorArea);<o:p></o:p></span><br style="color: rgb(0, 128, 0);">
<span style="font-family: Arial;" lang="EN-US"><span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layoutFolderLeft.addView(SCSearchView.ID);</span><o:p></o:p></span>
<ul>
  <li><span style="font-family: 宋体;">另，</span><span style="font-family: Arial;" lang="EN-US">IFolderLayout</span><span style="font-family: 宋体;">的</span><span style="font-family: Arial;" lang="EN-US">addPlaceholder()</span><span style="font-family: 宋体;">方法，可以将一个</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">添加到这个组合框内弹不予显示。当这个</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">需要被显示时，将自动被插到其定义为</span><span style="font-family: Arial;" lang="EN-US">Placeholder</span><span style="font-family: 宋体;">的</span><span style="font-family: Arial;" lang="EN-US">IFolderLayout</span><span style="font-family: 宋体;">内。</span><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></li>
</ul>














<p class="MsoNormal"><span style="font-family: 宋体;">通常，我们都需要先定义</span><span style="font-family: Arial;" lang="EN-US">IFolderLayout</span><span style="font-family: 宋体;">，然后再将</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">添加到</span><span style="font-family: Arial;" lang="EN-US">IFolderLayout</span><span style="font-family: 宋体;">内，而不是直接将</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">添加到</span><span style="font-family: Arial;" lang="EN-US">IPageLayout</span><span style="font-family: 宋体;">内。</span><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></p>




<p class="MsoNormal"><span style="font-family: 宋体;">对于</span><span style="font-family: Arial;" lang="EN-US">Perspective</span><span style="font-family: 宋体;">的额外的一些属性的设置，可以在</span><span style="font-family: Arial;" lang="EN-US">org.eclipse.ui.perspectiveExtensions</span><span style="font-family: 宋体;">中定义，具体可以设置的内容包括：</span><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></p>


<ul>
  <li><!--[if !supportLists]--><span style="font-family: Wingdings;" lang="EN-US"><span style=""><span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"> 
</span></span></span><!--[endif]--><span style="font-family: Arial;" lang="EN-US">ActionSet: </span><span style="font-family: 宋体;">要添加到这个</span><span style="font-family: Arial;" lang="EN-US">Perspective </span><span style="font-family: 宋体;">中的</span><span style="font-family: Arial;" lang="EN-US">ActionSet</span><span style="font-family: 宋体;">。</span><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></li>
  <li><!--[if !supportLists]--><span style="font-family: Wingdings;" lang="EN-US"><span style=""></span></span><span style="font-family: Arial;" lang="EN-US">ViewShortcut: </span><span style="font-family: 宋体;">要添加到</span><span style="font-family: Arial;" lang="EN-US">Window</span><span style="font-family: 宋体;">菜单下的</span><span style="font-family: Arial; color: black;" lang="EN-US">Show View</span><span style="font-family: 宋体; color: black;">子菜单中的</span><span style="font-family: Arial; color: black;" lang="EN-US">View</span><span style="font-family: 宋体; color: black;">。如果不添加这个扩展点的话，则在这个</span><span style="font-family: Arial; color: black;" lang="EN-US">Perspective</span><span style="font-family: 宋体; color: black;">活动的情况下，</span><span style="font-family: Arial; color: black;" lang="EN-US">Show
View</span><span style="font-family: 宋体; color: black;">子菜单中找不到对应的</span><span style="font-family: Arial; color: black;" lang="EN-US">View</span><span style="font-family: 宋体; color: black;">，必须点</span><span style="font-family: Arial; color: black;" lang="EN-US">Others</span><span style="font-family: 宋体; color: black;">之后才能够看到。</span><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></li>
  <li><!--[if !supportLists]--><span style="font-family: Wingdings;" lang="EN-US"><span style=""></span></span><span style="font-family: Arial;" lang="EN-US">PerspectiveShortcut: </span><span style="font-family: 宋体;">要添加到</span><span style="font-family: Arial;" lang="EN-US">Window</span><span style="font-family: 宋体;">菜单下</span><span style="font-family: Arial;" lang="EN-US">Show Perspective</span><span style="font-family: 宋体;">子菜单中的</span><span style="font-family: Arial;" lang="EN-US">Perspective</span><span style="font-family: 宋体;">。</span><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></li>
  <li><!--[if !supportLists]--><span style="font-family: Wingdings;" lang="EN-US"><span style=""></span></span><span style="font-family: Arial;" lang="EN-US">NewWizardShortcut: </span><span style="font-family: 宋体;">要添加到</span><span style="font-family: Arial;" lang="EN-US">File</span><span style="font-family: 宋体;">菜单下的</span><span style="font-family: Arial;" lang="EN-US">New</span><span style="font-family: 宋体;">子菜单下的新建向导。</span><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></li>
</ul>








<p class="MsoNormal"><span style="font-family: 宋体;">此外，还可以通过这个扩展点用声明（而非编程）的方式添加</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">到一个</span><span style="font-family: Arial;" lang="EN-US">Perspective</span><span style="font-family: 宋体;">中去。<br>
通过这样的方式可以为现有的</span><span style="font-family: Arial;" lang="EN-US">Perspective</span><span style="font-family: 宋体;">添加新的</span><span style="font-family: Arial;" lang="EN-US">View</span><span style="font-family: 宋体;">。</span><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></p>



<img src ="http://www.blogjava.net/eclipshine/aggbug/13719.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/eclipshine/" target="_blank">Living Not Striving</a> 2005-09-22 10:58 <a href="http://www.blogjava.net/eclipshine/archive/2005/09/22/13719.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何从TableViewer的Table中取出对应于某个TableItem的对象</title><link>http://www.blogjava.net/eclipshine/archive/2005/09/21/13613.html</link><dc:creator>Living Not Striving</dc:creator><author>Living Not Striving</author><pubDate>Wed, 21 Sep 2005 02:32:00 GMT</pubDate><guid>http://www.blogjava.net/eclipshine/archive/2005/09/21/13613.html</guid><wfw:comment>http://www.blogjava.net/eclipshine/comments/13613.html</wfw:comment><comments>http://www.blogjava.net/eclipshine/archive/2005/09/21/13613.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/eclipshine/comments/commentRss/13613.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/eclipshine/services/trackbacks/13613.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 通过TableItem的getData()方法，可以得到其在TableViewer中所对应的模型对象。&nbsp;&nbsp;<a href='http://www.blogjava.net/eclipshine/archive/2005/09/21/13613.html'>阅读全文</a><img src ="http://www.blogjava.net/eclipshine/aggbug/13613.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/eclipshine/" target="_blank">Living Not Striving</a> 2005-09-21 10:32 <a href="http://www.blogjava.net/eclipshine/archive/2005/09/21/13613.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>否决弹出菜单</title><link>http://www.blogjava.net/eclipshine/archive/2005/09/21/13608.html</link><dc:creator>Living Not Striving</dc:creator><author>Living Not Striving</author><pubDate>Wed, 21 Sep 2005 00:48:00 GMT</pubDate><guid>http://www.blogjava.net/eclipshine/archive/2005/09/21/13608.html</guid><wfw:comment>http://www.blogjava.net/eclipshine/comments/13608.html</wfw:comment><comments>http://www.blogjava.net/eclipshine/archive/2005/09/21/13608.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/eclipshine/comments/commentRss/13608.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/eclipshine/services/trackbacks/13608.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 使用MenuListener否决弹出菜单。可以在menuShown()方法中进行测试，并调用Menu的setVisible()方法。&nbsp;&nbsp;<a href='http://www.blogjava.net/eclipshine/archive/2005/09/21/13608.html'>阅读全文</a><img src ="http://www.blogjava.net/eclipshine/aggbug/13608.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/eclipshine/" target="_blank">Living Not Striving</a> 2005-09-21 08:48 <a href="http://www.blogjava.net/eclipshine/archive/2005/09/21/13608.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RCP中视图间的交互机制探讨</title><link>http://www.blogjava.net/eclipshine/archive/2005/09/19/13459.html</link><dc:creator>Living Not Striving</dc:creator><author>Living Not Striving</author><pubDate>Mon, 19 Sep 2005 14:42:00 GMT</pubDate><guid>http://www.blogjava.net/eclipshine/archive/2005/09/19/13459.html</guid><wfw:comment>http://www.blogjava.net/eclipshine/comments/13459.html</wfw:comment><comments>http://www.blogjava.net/eclipshine/archive/2005/09/19/13459.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/eclipshine/comments/commentRss/13459.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/eclipshine/services/trackbacks/13459.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: RCP或者Eclipse中视图之间的交互，有比较标准的方式来完成，就是使用ISelectionProvider以及ISelectionListener的机制。本文对次做了比较详细擦阐述。&nbsp;&nbsp;<a href='http://www.blogjava.net/eclipshine/archive/2005/09/19/13459.html'>阅读全文</a><img src ="http://www.blogjava.net/eclipshine/aggbug/13459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/eclipshine/" target="_blank">Living Not Striving</a> 2005-09-19 22:42 <a href="http://www.blogjava.net/eclipshine/archive/2005/09/19/13459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Plugin中的Classpath的计算</title><link>http://www.blogjava.net/eclipshine/archive/2005/08/14/10060.html</link><dc:creator>Living Not Striving</dc:creator><author>Living Not Striving</author><pubDate>Sat, 13 Aug 2005 23:58:00 GMT</pubDate><guid>http://www.blogjava.net/eclipshine/archive/2005/08/14/10060.html</guid><wfw:comment>http://www.blogjava.net/eclipshine/comments/10060.html</wfw:comment><comments>http://www.blogjava.net/eclipshine/archive/2005/08/14/10060.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/eclipshine/comments/commentRss/10060.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/eclipshine/services/trackbacks/10060.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Plugin的Classpath的设置与传统的Java程序有很大的不同。每个Plugin都有其独立的Classloader，由此引发了一系列的问题。&nbsp;&nbsp;<a href='http://www.blogjava.net/eclipshine/archive/2005/08/14/10060.html'>阅读全文</a><img src ="http://www.blogjava.net/eclipshine/aggbug/10060.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/eclipshine/" target="_blank">Living Not Striving</a> 2005-08-14 07:58 <a href="http://www.blogjava.net/eclipshine/archive/2005/08/14/10060.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何在RCP中创建多页面的Editor:</title><link>http://www.blogjava.net/eclipshine/archive/2005/07/28/8658.html</link><dc:creator>Living Not Striving</dc:creator><author>Living Not Striving</author><pubDate>Thu, 28 Jul 2005 09:44:00 GMT</pubDate><guid>http://www.blogjava.net/eclipshine/archive/2005/07/28/8658.html</guid><wfw:comment>http://www.blogjava.net/eclipshine/comments/8658.html</wfw:comment><comments>http://www.blogjava.net/eclipshine/archive/2005/07/28/8658.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/eclipshine/comments/commentRss/8658.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/eclipshine/services/trackbacks/8658.html</trackback:ping><description><![CDATA[<P>MultiPageEditor中的每一个页面，可以是一个Editor，也可以是任何的一个SWT Composite。创建多页面的Editor，首先需要继承<FONT color=#008000><STRONG>MultiPageEditorPart</STRONG></FONT>。在MultiPageEditorPart的<EM><FONT color=#ffa500>createPages()</FONT></EM>方法中创建每一个Page。创建Page的方法有两种，一种是使用<EM><FONT color=#ffa500>addPage(IEditorPart,IEditorInput)</FONT></EM>，接受一个Editor对象（创建这个Editor对象直接进行new XXXEditor()即可），另一种是使用<FONT color=#ffa500><EM>addPage(Control control)</EM></FONT>。创建这个control时，使用getContainer()所得到的容器作为这个Composite的parent即可。而这个作为container的parent，可以想象的到，实际上就是一个CTabFolder。</P>
<P>这个CTabFolder在创建Editor时被自动创建，并将其addSelectionListener的响应事件，映射到MultiPageEditor的<EM><FONT color=#ffa500>pageChange()</FONT></EM>方法上。因此，例如要同步不同页面之间的内容，如果要监听页面切换的事件响应，只需实现<EM><FONT color=#ffa500>pageChange()</FONT></EM>方法即可。</P><img src ="http://www.blogjava.net/eclipshine/aggbug/8658.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/eclipshine/" target="_blank">Living Not Striving</a> 2005-07-28 17:44 <a href="http://www.blogjava.net/eclipshine/archive/2005/07/28/8658.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RCP笔记</title><link>http://www.blogjava.net/eclipshine/archive/2005/07/22/8214.html</link><dc:creator>Living Not Striving</dc:creator><author>Living Not Striving</author><pubDate>Fri, 22 Jul 2005 15:04:00 GMT</pubDate><guid>http://www.blogjava.net/eclipshine/archive/2005/07/22/8214.html</guid><wfw:comment>http://www.blogjava.net/eclipshine/comments/8214.html</wfw:comment><comments>http://www.blogjava.net/eclipshine/archive/2005/07/22/8214.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/eclipshine/comments/commentRss/8214.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/eclipshine/services/trackbacks/8214.html</trackback:ping><description><![CDATA[<OL>
<LI>添加一个新的Menu到Workbench时，它的path应该是additions.表示添加到最后。 
<LI>action are added, not to the menu itself, but to groups within the menu. 因此在添加一个Action到menu之前，首先要定义一些groupMarker或者seperator。 
<LI>通常创建一个menu的时候，都还要额外添加一个名为additions的seperator来让别人扩展这个Menu。在Eclipse自身的实现中都是这样做的，也应该算是标准的做法。<FONT color=#a52a2a><STRONG>IWorkbenchActionConstants</STRONG>.MB_ADDITIONS</FONT>定义了additions作为Menu的扩展插入点。IWorkbenchActionConstants应该还定义了现有的Menu的插入点。 
<LI>添加Action到Toolbar的时候，其path可以是Normal/additions。 
<LI>Eclipse中的图标，可以在<EM><FONT color=#000080>plugins\org.eclipse.ui_3.0.0\icons\full</FONT></EM>或者<EM><FONT color=#000080>plugins\org.eclipse.jdt.ui_3.0.0\icons\full</FONT></EM>下面寻找。 
<LI>可以在IPerspectiveFactory中使用IPageLayout.addActionSet(id)方法将一个ActionSet同一个Prespective联系起来，使得在显示Perspective的时候能够显示这个ActionSet中所定义的Action。或者，可以在ActionSet的扩展点中使用visible="true"来使得这个ActionSet在所有的Persective中显示出来。 
<LI>JFace的<STRONG><FONT color=#a52a2a>MessageDialog</FONT></STRONG>，有一些静态方法可以用来创建一个Dialog。</LI></OL><img src ="http://www.blogjava.net/eclipshine/aggbug/8214.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/eclipshine/" target="_blank">Living Not Striving</a> 2005-07-22 23:04 <a href="http://www.blogjava.net/eclipshine/archive/2005/07/22/8214.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>