﻿<?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-9910-随笔分类-Eclipse Plugin</title><link>http://www.blogjava.net/sdyjmc/category/16405.html</link><description>单飞</description><language>zh-cn</language><lastBuildDate>Thu, 27 Jun 2013 08:35:41 GMT</lastBuildDate><pubDate>Thu, 27 Jun 2013 08:35:41 GMT</pubDate><ttl>60</ttl><item><title>eclipse写正则式的插件Regex Util</title><link>http://www.blogjava.net/sdyjmc/archive/2013/06/27/400986.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Thu, 27 Jun 2013 02:49:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2013/06/27/400986.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/400986.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2013/06/27/400986.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/400986.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/400986.html</trackback:ping><description><![CDATA[<div>写正则式挺好用的一个elcipse插件:<br />http://myregexp.com/eclipsePlugin.html</div><br />内容拷贝如下：<br /><br /><div><div style="margin:10px 0 5px 0;color:#666">     Screenshot: </div> <img src="http://myregexp.com/images/plugin.PNG" alt="Screenshot of eclipse plugin" />  <h3>Features</h3>  <ul id="features"><li>         Full highlighting of regular expression syntax for an easy visual clue<br />         (including bracket matching <img src="http://myregexp.com/images/win.PNG" alt="" />, <img src="http://myregexp.com/images/win.PNG" alt="" />;         error detecting <img src="http://myregexp.com/images/win.PNG" alt="" />,         <img src="http://myregexp.com/images/win.PNG" alt="" />,         <img src="http://myregexp.com/images/win.PNG" alt="" />,         <img src="http://myregexp.com/images/win.PNG" alt="" />)     </li><li>         Tooltips will be shown when the mouse is over a part of the regex.         <img src="http://myregexp.com/images/win.PNG" alt="" />,         <img src="http://myregexp.com/images/win.PNG" alt="" />,         <img src="http://myregexp.com/images/win.PNG" alt="" />,         <img src="http://myregexp.com/images/win.PNG" alt="" />     </li><li>         Evaluates your regular expression while you are typing;     </li><li>         4 distinct match modes:         <ul><li>Find a sequence of characters <img src="http://myregexp.com/images/win.PNG" alt="" />;</li><li>Match a complete text <img src="http://myregexp.com/images/win.PNG" alt="" />, <img src="http://myregexp.com/images/win.PNG" alt="" />;             </li><li>Split text (see java.lang.String.split(String regex)) <img src="http://myregexp.com/images/win.PNG" alt="" />;             </li><li>Replace <img src="http://myregexp.com/images/win.PNG" alt="" />;</li></ul>     </li><li>Support for pattern flags (e.g. Pattern.CASE_INSENSITIVE, Pattern.DOTALL, ...);</li><li>Generation of java source string literals based on the regexp, (escape slash, e.g. "\(x\)" becomes "\\(x\\)")     </li><li>         Synchronized selection of regular expression and text:         Just select part of the regexp to see which part of the text is matched by this part.         <img src="http://myregexp.com/images/win.PNG" alt="" />.     </li></ul> <div style="padding-left:25px">     Functionality of this plugin is available as <a href="http://myregexp.com/applet.html">java-applet</a> </div>   <h3>Demo of Regular Expression Hilighting</h3>  <div style="padding:0 0 0 20px">      <span style="font-size:14px;color:#555">Move mouse to regex to see example of tooltips and brackets matching</span>      <div style="background-image:url('images/pluginLive.PNG');width:681px;height:80px;background-repeat:no-repeat;margin-top:3px">         <div id="exampleRegex" style="position: relative; top: 55px; left: 15px; width: 550px; font-size: 14px;"><pre style="font-family:monospace;margin:0"><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">(</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">1</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">9</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">|</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">2</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">0</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">)</span><span style="color: #009600; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">\</span><span style="color: #009600; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">d</span><span style="color: #009600; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">\</span><span style="color: #009600; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">d</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">(</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">[</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">-</span> <span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">/</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">.</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">]</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">)</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">(</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">0</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">[</span><span style="color: #009600; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">1</span><span style="color: #009600; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">-</span><span style="color: #009600; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">9</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">]</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">|</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">1</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">[</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">0</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">1</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">2</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">]</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">)</span><span style="color: #0000ff; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">\</span><span style="color: #0000ff; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">2</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">(</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">0</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">[</span><span style="color: #009600; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">1</span><span style="color: #009600; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">-</span><span style="color: #009600; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">9</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">]</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">|</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">[</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">1</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">2</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">]</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">[</span><span style="color: #009600; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">0</span><span style="color: #009600; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">-</span><span style="color: #009600; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">9</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">]</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">|</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">3</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">[</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">0</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: normal; font-style: normal;">1</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">]</span><span style="color: #000000; background: none repeat scroll 0% 0% #ffffff; font-weight: bold; font-style: normal;">)</span></pre></div>     </div>   </div>  <h3>Opening in eclipse</h3> In Eclipse choose <span style="font-weight:bold;color:#335">Window -&gt; Show View -&gt; Other -&gt; Regex Util</span>  <h3>License</h3> This programm is free and is distributed under the GPL. All funds for developement come from advertisement on this page.  <h3>Download the plugin</h3>  <div>     Last version: <a href="http://sourceforge.net/project/showfiles.php?group_id=202567">Download</a> </div>  <div>     Update site: <a href="http://regex-util.sourceforge.net/update/">http://regex-util.sourceforge.net/update/</a> </div></div><img src ="http://www.blogjava.net/sdyjmc/aggbug/400986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2013-06-27 10:49 <a href="http://www.blogjava.net/sdyjmc/archive/2013/06/27/400986.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>swt 显示滚动字幕</title><link>http://www.blogjava.net/sdyjmc/archive/2010/08/06/328146.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Fri, 06 Aug 2010 08:47:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2010/08/06/328146.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/328146.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2010/08/06/328146.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/328146.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/328146.html</trackback:ping><description><![CDATA[private Label doneLabel;<br />
private Timer timer;<br />
<br />
&nbsp;&nbsp;&nbsp; public class ATask extends TimerTask {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void run() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; showScrollText(doneLabel);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 滚动显示字幕<br />
&nbsp;&nbsp;&nbsp;&nbsp; * <br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param toDoLabel<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; private void showScrollText(final Label toDoLabel) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (toDoLabel != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (toDoLabel.isDisposed()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timer.cancel();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shell.getDisplay().asyncExec(new Runnable() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // @Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void run() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String txt = toDoLabel.getText();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (txt != null &amp;&amp; txt.length() &gt; 50) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; txt = txt.substring(1, txt.length())<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp; + txt.substring(0, 1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; toDoLabel.setText(txt);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
构造的时候<br />
// 滚动显示字幕<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timer = new Timer();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timer.schedule(new ATask(), 0, 500);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; // @Override<br />
&nbsp;&nbsp;&nbsp; public void dispose() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timer.cancel();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super.dispose();<br />
&nbsp;&nbsp;&nbsp; }<br />
private Timer timer;<br />
<br />
&nbsp;&nbsp;&nbsp; public class ATask extends TimerTask {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void run() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; showScrollText(doneLabel);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
<br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 滚动显示字幕<br />
&nbsp;&nbsp;&nbsp;&nbsp; * <br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param toDoLabel<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; private void showScrollText(final Label toDoLabel) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (toDoLabel != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (toDoLabel.isDisposed()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timer.cancel();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shell.getDisplay().asyncExec(new Runnable() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // @Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void run() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String txt = toDoLabel.getText();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (txt != null &amp;&amp; txt.length() &gt; 50) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; txt = txt.substring(1, txt.length())<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp; + txt.substring(0, 1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; toDoLabel.setText(txt);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
<br />
构造的时候<br />
// 滚动显示字幕<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timer = new Timer();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timer.schedule(new ATask(), 0, 500);<br />
<br />
// @Override<br />
&nbsp;&nbsp;&nbsp; public void dispose() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timer.cancel();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super.dispose();<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/sdyjmc/aggbug/328146.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2010-08-06 16:47 <a href="http://www.blogjava.net/sdyjmc/archive/2010/08/06/328146.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>插件中使用Dll，导致vista系统下面不能启动问题</title><link>http://www.blogjava.net/sdyjmc/archive/2009/09/22/295953.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Tue, 22 Sep 2009 02:05:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2009/09/22/295953.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/295953.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2009/09/22/295953.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/295953.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/295953.html</trackback:ping><description><![CDATA[Bundle-NativeCode: lib/ICE_JNIRegistry.dll;osname=win32;processor=x86<br />
<br />
Bundle-NativeCode manifest allows you to use native libraries (DLLs) without having to set the java.library.path system property<br />
<br />
#Processor Aliases&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Description<br />
<br />
68k&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Motorola 68000 and up<br />
ARM&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Intel Strong ARM<br />
Alpha&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Compaq (ex DEC)<br />
Ignite psc1k&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; # PTSC<br />
Mips&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # SGI<br />
PArisc&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Hewlett Packard PA Risc<br />
PowerPC power ppc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Motorola/IBM Power PC<br />
Sparc&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # SUN<br />
x86 pentium i386 i486 i586 i686&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Intel<br />
s390&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # IBM System 390<br />
s390x&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # IBM System 390 (64-bit)<br />
v850e&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # NEC V850E<br />
x86-64 amd64 em64t x86_64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 64 bit x86 architecture<br />
<br />
#OS Aliases&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;&nbsp; Description<br />
<br />
AIX&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # IBM<br />
DigitalUnix&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;&nbsp;&nbsp; # Compaq<br />
embos&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Segger Embedded Software Solutions<br />
Epoc32 SymbianOS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Symbian OS<br />
FreeBSD&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Free BSD<br />
HPUX&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Hewlett Packard<br />
IRIX&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Sillicon Graphics<br />
Linux&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Open source<br />
MacOS "Mac OS"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Apple<br />
MacOSX "Mac OS X"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Apple <br />
NetBSD&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Open source<br />
Netware&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Novell<br />
OpenBSD&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Open source<br />
OS2 OS/2&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # IBM<br />
QNX procnto&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;&nbsp;&nbsp; # QNX Neutrino 2.1<br />
Solaris&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Sun<br />
SunOS&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Sun<br />
VxWorks&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # WindRiver Systems<br />
Windows95 "Windows 95" Win95 Win32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Microsoft<br />
Windows98 "Windows 98" Win98 Win32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Microsoft<br />
WindowsNT "Windows NT" WinNT Win32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Microsoft<br />
WindowsCE "Windows CE" WinCE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Microsoft<br />
Windows2000 "Windows 2000" Win2000 Win32 # Microsoft<br />
WindowsXP "Windows XP" WinXP Win32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Microsoft<br />
Windows2003 "Windows 2003" "Windows Server 2003" Win2003 Win32 # Microsoft<br />
WindowsVista WinVista "Windows Vista" Win32 # Microsoft<br />
<br />
<br />
<img src ="http://www.blogjava.net/sdyjmc/aggbug/295953.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2009-09-22 10:05 <a href="http://www.blogjava.net/sdyjmc/archive/2009/09/22/295953.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>swt TableItem增加菜单</title><link>http://www.blogjava.net/sdyjmc/archive/2009/09/21/295853.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Mon, 21 Sep 2009 05:48:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2009/09/21/295853.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/295853.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2009/09/21/295853.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/295853.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/295853.html</trackback:ping><description><![CDATA[<tt>
<pre>&nbsp;
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">MenuManager&nbsp;menuMgr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MenuManager();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menuMgr.setRemoveAllWhenShown(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_126_420_Open_Image" onclick="this.style.display='none'; Codehighlighter1_126_420_Open_Text.style.display='none'; Codehighlighter1_126_420_Closed_Image.style.display='inline'; Codehighlighter1_126_420_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_126_420_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_126_420_Closed_Text.style.display='none'; Codehighlighter1_126_420_Open_Image.style.display='inline'; Codehighlighter1_126_420_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menuMgr.addMenuListener(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;IMenuListener()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_126_420_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_126_420_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_181_416_Open_Image" onclick="this.style.display='none'; Codehighlighter1_181_416_Open_Text.style.display='none'; Codehighlighter1_181_416_Closed_Image.style.display='inline'; Codehighlighter1_181_416_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_181_416_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_181_416_Closed_Text.style.display='none'; Codehighlighter1_181_416_Open_Image.style.display='inline'; Codehighlighter1_181_416_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;menuAboutToShow(IMenuManager&nbsp;manager)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_181_416_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_181_416_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_215_409_Open_Image" onclick="this.style.display='none'; Codehighlighter1_215_409_Open_Text.style.display='none'; Codehighlighter1_215_409_Closed_Image.style.display='inline'; Codehighlighter1_215_409_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_215_409_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_215_409_Closed_Text.style.display='none'; Codehighlighter1_215_409_Open_Image.style.display='inline'; Codehighlighter1_215_409_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;manager.add(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Action(</span><span style="color: #000000">"</span><span style="color: #000000">删除</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_215_409_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_215_409_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_239_403_Open_Image" onclick="this.style.display='none'; Codehighlighter1_239_403_Open_Text.style.display='none'; Codehighlighter1_239_403_Closed_Image.style.display='inline'; Codehighlighter1_239_403_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_239_403_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_239_403_Closed_Text.style.display='none'; Codehighlighter1_239_403_Open_Image.style.display='inline'; Codehighlighter1_239_403_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;run()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_239_403_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_239_403_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&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><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;flag&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;MessageDialog.openConfirm(parentComposite.getShell(),&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">确认删除吗?</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">你确认要删除吗?</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_353_389_Open_Image" onclick="this.style.display='none'; Codehighlighter1_353_389_Open_Text.style.display='none'; Codehighlighter1_353_389_Closed_Image.style.display='inline'; Codehighlighter1_353_389_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_353_389_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_353_389_Closed_Text.style.display='none'; Codehighlighter1_353_389_Open_Image.style.display='inline'; Codehighlighter1_353_389_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&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><span style="color: #0000ff">if</span><span style="color: #000000">(flag)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_353_389_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_353_389_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&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;&nbsp;removeSelectPage();&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&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></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;Menu&nbsp;menu&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;menuMgr.createContextMenu(</span><span style="color: #0000ff">this</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.setMenu(menu);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_560_653_Open_Image" onclick="this.style.display='none'; Codehighlighter1_560_653_Open_Text.style.display='none'; Codehighlighter1_560_653_Closed_Image.style.display='inline'; Codehighlighter1_560_653_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_560_653_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_560_653_Closed_Text.style.display='none'; Codehighlighter1_560_653_Open_Image.style.display='inline'; Codehighlighter1_560_653_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tabFolder.addMenuDetectListener(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MenuDetectListener()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_560_653_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_560_653_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img id="Codehighlighter1_613_645_Open_Image" onclick="this.style.display='none'; Codehighlighter1_613_645_Open_Text.style.display='none'; Codehighlighter1_613_645_Closed_Image.style.display='inline'; Codehighlighter1_613_645_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_613_645_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_613_645_Closed_Text.style.display='none'; Codehighlighter1_613_645_Open_Image.style.display='inline'; Codehighlighter1_613_645_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;menuDetected(MenuDetectEvent&nbsp;arg0)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_613_645_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_613_645_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setVisible(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">);<br />
<img id="Codehighlighter1_704_888_Open_Image" onclick="this.style.display='none'; Codehighlighter1_704_888_Open_Text.style.display='none'; Codehighlighter1_704_888_Closed_Image.style.display='inline'; Codehighlighter1_704_888_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_704_888_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_704_888_Closed_Text.style.display='none'; Codehighlighter1_704_888_Open_Image.style.display='inline'; Codehighlighter1_704_888_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tabFolder.addMouseListener(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MouseAdapter()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_704_888_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_704_888_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;mouseDown(MouseEvent&nbsp;mouseevent)<br />
<img id="Codehighlighter1_757_884_Open_Image" onclick="this.style.display='none'; Codehighlighter1_757_884_Open_Text.style.display='none'; Codehighlighter1_757_884_Closed_Image.style.display='inline'; Codehighlighter1_757_884_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_757_884_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_757_884_Closed_Text.style.display='none'; Codehighlighter1_757_884_Open_Image.style.display='inline'; Codehighlighter1_757_884_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_757_884_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_757_884_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TabItem&nbsp;selectItem&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;tabFolder.getItem(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Point(mouseevent.x,mouseevent.y));<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tabFolder.setSelection(selectItem);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">);</span></div>
</pre>
<pre>Unfortunately, there is no way to get the bounds of a TabItem on every
platform (specifically, the Mac does not support it).  Therefore, at the
lowest level, we can't get what you want.
"St&#233;phane Fournier" &lt;stephane.fournier@xxxxxxxxxxxxxxx&gt; wrote in message
<a href="news:dgdg2j$5p4$1@xxxxxxxxxxxxxxxxxxx">news:dgdg2j$5p4$1@xxxxxxxxxxxxxxxxxxx</a>
&gt; Hi,
&gt;
&gt; Does anyone know how to set a Popup Menu on a TabItem.
&gt; I found how to set a Menu on the TabFolder but in my case I need a popup
&gt; menu with a content related to the TabItem when right mouse click is
&gt; triggered (the TabItem could not be the selected tabItem for the
TabFolder).
&gt;
&gt; Another way is to get a dynamic content for the Menu  set on the
&gt; TabFolder, but I need to listen to an event when mouse is moving over
&gt; the TabItems without selecting them....
&gt; My need is something close to the behavior of the CTabItem when the
&gt; mouse is over a not selected CTabItem ,a cross is displayed to close the
&gt; CTabItem without activating it...
&gt;
&gt; Which event can I listen to ?
&gt;
&gt; Thanks in advance,
&gt; Stephane.
</pre>
</tt>
<img src ="http://www.blogjava.net/sdyjmc/aggbug/295853.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2009-09-21 13:48 <a href="http://www.blogjava.net/sdyjmc/archive/2009/09/21/295853.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转贴 Swt/Jface tableViewer入门教程三(加入在表格上直接编辑数据)</title><link>http://www.blogjava.net/sdyjmc/archive/2009/08/27/292819.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Thu, 27 Aug 2009 06:54:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2009/08/27/292819.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/292819.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2009/08/27/292819.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/292819.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/292819.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 前边实现了一个表格的基本功能，但这并不够好，能否为表格实现一些更好的功能呢？答案是肯定的。下边我们来加入直接编辑的功能。一、要实现这个功能必须提供一个实现ICellModifier的类。内容如下import&nbsp;org.eclipse.jface.viewers.ICellModifier;import&nbsp;org.eclipse.jface.viewers.Table...&nbsp;&nbsp;<a href='http://www.blogjava.net/sdyjmc/archive/2009/08/27/292819.html'>阅读全文</a><img src ="http://www.blogjava.net/sdyjmc/aggbug/292819.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2009-08-27 14:54 <a href="http://www.blogjava.net/sdyjmc/archive/2009/08/27/292819.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[RCP] 隐藏属性视图</title><link>http://www.blogjava.net/sdyjmc/archive/2009/08/03/289555.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Mon, 03 Aug 2009 03:29:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2009/08/03/289555.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/289555.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2009/08/03/289555.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/289555.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/289555.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; public static void hidePropertiesView() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; hideView("org.eclipse.ui.views.PropertySheet");<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; public static void hideView(final String theViewId) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; invokeOnDisplayThread(new Runnable() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public void run() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IWorkbenchPage activePage = getActivePage();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IViewPart iviewpart = activePage.findView(theViewId);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; activePage.hideView(iviewpart);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (Exception ex) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ex.printStackTrace();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; public static void invokeOnDisplayThread(Runnable runnable) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IWorkbench workbench = PlatformUI.getWorkbench();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IWorkbenchWindow windows[] = workbench.getWorkbenchWindows();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (windows != null &amp;&amp; windows.length &gt; 0) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Display display = windows[0].getShell().getDisplay();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; display.syncExec(runnable);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; runnable.run();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
<br />
<img src ="http://www.blogjava.net/sdyjmc/aggbug/289555.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2009-08-03 11:29 <a href="http://www.blogjava.net/sdyjmc/archive/2009/08/03/289555.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原创]RCP JFace Dialog 的Cancel Ok 按钮国际化</title><link>http://www.blogjava.net/sdyjmc/archive/2009/07/28/288677.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Tue, 28 Jul 2009 01:34:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2009/07/28/288677.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/288677.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2009/07/28/288677.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/288677.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/288677.html</trackback:ping><description><![CDATA[方法１:<br />
重写创建按钮的方法createButtonFromButtonBar<br />
<br />
方法２:<br />
等待窗口open()后调用:<br />
<br />
getButton(0).setText("确定");<br />
getButton(1).setText("取消");<br />
<br />
方法３:<br />
国际化操作:<br />
new Fragment Project;<br />
<br />
Manifest-Version: 1.0<br />
Bundle-ManifestVersion: 2<br />
Bundle-Name: Fragement Fragment<br />
Bundle-SymbolicName: org.eclipse.jface.fragement<br />
Bundle-Version: 1.0.0<br />
Fragment-Host: org.eclipse.jface;bundle-version="3.2.2"<br />
Bundle-Localization: plugin<br />
<br />
<br />
new org.eclipse.jface.fragment/src/org/eclipse/jface/messages_zh_CN.properties Files.<br />
<br />
cancel = \u53D6\u6D88<br />
ok = \u786E\u5B9A<br />
<img src ="http://www.blogjava.net/sdyjmc/aggbug/288677.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2009-07-28 09:34 <a href="http://www.blogjava.net/sdyjmc/archive/2009/07/28/288677.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MANIFEST.MF dll plugin</title><link>http://www.blogjava.net/sdyjmc/archive/2009/07/08/285906.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Wed, 08 Jul 2009 02:07:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2009/07/08/285906.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/285906.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2009/07/08/285906.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/285906.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/285906.html</trackback:ping><description><![CDATA[Bundle-NativeCode: lib/ICE_JNIRegistry.dll;osname=Win32;processor=x86<br />
<br />
<br />
<img src ="http://www.blogjava.net/sdyjmc/aggbug/285906.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2009-07-08 10:07 <a href="http://www.blogjava.net/sdyjmc/archive/2009/07/08/285906.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>swt table 另一种表头排序的实现</title><link>http://www.blogjava.net/sdyjmc/archive/2009/07/07/285812.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Tue, 07 Jul 2009 06:45:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2009/07/07/285812.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/285812.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2009/07/07/285812.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/285812.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/285812.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;COLUMNS.length;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TableColumn&nbsp;idColumn&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;TableColumn(table,&nbsp;SWT.LEFT);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cName&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;StringUtils.getNotEmpty(COLUMNS[i]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ColumnPixelData&nbsp;columnpixeldata&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ColumnPixelData(COLUMNS_WIDTH[i]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tableLayout.addColumnData(columnpixeldata);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;idColumn.setText(cName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;idColumn.setResizable(</span><span style="color: #0000ff;">true</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;columnName&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;cName;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;Collator&nbsp;collator&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Collator.getInstance();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;idColumn.addSelectionListener(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;SelectionListener()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;sortType&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;widgetDefaultSelected(SelectionEvent&nbsp;e)&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;widgetSelected(SelectionEvent&nbsp;e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sortType&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">!</span><span style="color: #000000;">sortType;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.util.Collections.sort(input,&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Comparator</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">FElement</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">()&nbsp;{<br />
<br />
&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;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;compare(FElement&nbsp;entry1,&nbsp;FElement&nbsp;entry2)&nbsp;{<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;rt&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(COLUMNS[</span><span style="color: #000000;">1</span><span style="color: #000000;">].equals(columnName))&nbsp;{<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rt&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;collator.compare(entry1.getName(),&nbsp;entry2.getName());<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(COLUMNS[</span><span style="color: #000000;">2</span><span style="color: #000000;">].equals(columnName))&nbsp;{<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rt&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;collator.compare(StringUtils.getNotEmpty(entry1.getValueTxt()),&nbsp;StringUtils.getNotEmpty(entry2.getValueTxt()));<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(COLUMNS[</span><span style="color: #000000;">3</span><span style="color: #000000;">].equals(columnName))&nbsp;{<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rt&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;collator.compare(StringUtils.getNotEmpty(entry1.getDescription()),&nbsp;StringUtils.getNotEmpty(entry2.getDescription()));<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(sortType)&nbsp;{<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">)&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;rt;<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;rt;<br />
&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;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options.setInput(input);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options.refresh();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
这种方法的好处是短小精悍<br />
如果做架构设计就不如使用Annotation封装一下,如果是刚入门就不妨每列增加一个Sorter而且还要增加正反两个.<br />
</span></div>
<img src ="http://www.blogjava.net/sdyjmc/aggbug/285812.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2009-07-07 14:45 <a href="http://www.blogjava.net/sdyjmc/archive/2009/07/07/285812.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原创] WST 的Outline增加菜单</title><link>http://www.blogjava.net/sdyjmc/archive/2009/06/03/279751.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Wed, 03 Jun 2009 02:04:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2009/06/03/279751.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/279751.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2009/06/03/279751.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/279751.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/279751.html</trackback:ping><description><![CDATA[扩展Editor的Configuration<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">extension<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000;">point</span><span style="color: #0000ff;">="org.eclipse.wst.sse.ui.editorConfiguration"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;associating&nbsp;an&nbsp;outline&nbsp;configuration&nbsp;to&nbsp;an&nbsp;input's&nbsp;content&nbsp;type&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">contentOutlineConfiguration<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="com.test.outline.OutlineConfiguration"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target</span><span style="color: #0000ff;">="org.eclipse.core.runtime.xml,org.eclipse.wst.html.core.htmlsource"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">extension</span><span style="color: #0000ff;">&gt;</span></div>
OutlineConfiguration.java<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.jface.action.IMenuListener;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.jface.action.IMenuManager;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.jface.viewers.TreeViewer;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.wst.sse.ui.internal.IReleasable;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.wst.xml.ui.internal.contentoutline.XMLNodeActionManager;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.wst.xml.ui.views.contentoutline.XMLContentOutlineConfiguration;<br />
<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;OutlineConfiguration&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;XMLContentOutlineConfiguration&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;ActionManagerMenuListener&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;IMenuListener,&nbsp;IReleasable&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;menuAboutToShow(IMenuManager&nbsp;imenumanager)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestAction&nbsp;action&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;TestAction();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imenumanager.add(action);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;release()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fTreeViewer&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(fActionManager&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fActionManager.setModel(</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;XMLNodeActionManager&nbsp;fActionManager;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;TreeViewer&nbsp;fTreeViewer;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;ActionManagerMenuListener(TreeViewer&nbsp;treeviewer)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">super</span><span style="color: #000000;">();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fTreeViewer&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;treeviewer;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;ActionManagerMenuListener&nbsp;fContextMenuFiller;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;OutlineConfiguration()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">super</span><span style="color: #000000;">();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;IMenuListener&nbsp;getMenuListener(TreeViewer&nbsp;treeviewer)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(fContextMenuFiller&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fContextMenuFiller&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ActionManagerMenuListener(treeviewer);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;fContextMenuFiller;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></div>
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.jface.action.Action;<br />
<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;TestAction&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;Action&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;TestAction(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">super</span><span style="color: #000000;">(</span><span style="color: #000000;">"</span><span style="color: #000000;">Test</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</span></div>
<br />
这样Outline的Menu就是你自己定义的了.<br />
<br />
<br />
参考资料:<br />
http://www.eclipse.org/webtools/wst/components/sse/designs/EditorConfiguration.html<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/sdyjmc/aggbug/279751.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2009-06-03 10:04 <a href="http://www.blogjava.net/sdyjmc/archive/2009/06/03/279751.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设计原则: 关上一扇窗户的时候,留下一把锤子</title><link>http://www.blogjava.net/sdyjmc/archive/2009/05/27/278160.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Wed, 27 May 2009 02:31:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2009/05/27/278160.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/278160.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2009/05/27/278160.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/278160.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/278160.html</trackback:ping><description><![CDATA[MultiPageEditorPart 的addPage方法<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;addPage(Control&nbsp;control)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;getPageCount();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addPage(i,&nbsp;control);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;addPage(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,&nbsp;IEditorPart&nbsp;ieditorpart,&nbsp;IEditorInput&nbsp;ieditorinput)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;PartInitException<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IEditorSite&nbsp;ieditorsite&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;createSite(ieditorpart);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ieditorpart.init(ieditorsite,&nbsp;ieditorinput);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Composite&nbsp;composite&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Composite(getContainer(),&nbsp;getOrientation(ieditorpart));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;composite.setLayout(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;FillLayout());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ieditorpart.createPartControl(composite);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ieditorpart.addPropertyListener(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;IPropertyListener()&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;propertyChanged(Object&nbsp;obj,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;j)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;handlePropertyChange(j);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CTabItem&nbsp;ctabitem&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;createItem(i,&nbsp;composite);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctabitem.setData(ieditorpart);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nestedEditors.add(ieditorpart);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
</span></div>
那么有办法把一个EditorPart 加入Composite再放到Page里面呢?<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;addHtmlPage(IEditorPart&nbsp;ieditorpart,&nbsp;IEditorInput&nbsp;ieditorinput)&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;PartInitException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;SashForm&nbsp;sashForm&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;SashForm(getContainer(),&nbsp;SWT.NONE);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;Composite&nbsp;pageContainer&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Composite(sashForm,&nbsp;SWT.NONE);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sashForm.setSashWidth(</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;Composite&nbsp;resultContainer&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Composite(sashForm,&nbsp;SWT.NONE);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultContainer.setLayout(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;FillLayout());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sashForm.setWeights(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">[]&nbsp;{</span><span style="color: #000000;">1</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;});&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;createAnalyzePage(resultContainer);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IEditorSite&nbsp;ieditorsite&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;createSite(ieditorpart);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ieditorpart.init(ieditorsite,&nbsp;ieditorinput);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pageContainer.setLayout(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;FillLayout());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ieditorpart.createPartControl(pageContainer);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ieditorpart.addPropertyListener(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;IPropertyListener()&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;propertyChanged(Object&nbsp;obj,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;j)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;handlePropertyChange(j);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;index&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;addPage(sashForm);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setPageText(index,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">html</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
视乎这样就可以了,但是问题出现了.缺少了父类<span style="color: #000000;">nestedEditors.add(ieditorpart);</span>对editor生命周期的管理.导致属性编辑器出问题.怎么解决呢?<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;CTabFolder&nbsp;container;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;ArrayList&nbsp;nestedEditors;</span></div>
<br />
MultiPageEditorPart 声明的都是私有的属性,按照面向对象的设计是不能被继承者访问的.<br />
那怎么办呢?这时候就该使用锤子了."Reflect"<br />
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">CTabFolder&nbsp;container&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(CTabFolder) getParentFileValue(MultiPageEditorPart.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">,(MultiPageEditorPart)</span><span style="color: #0000ff;">this</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">container</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CTabItem&nbsp;ctabitem&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;CTabItem(container,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctabitem.setControl(composite);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctabitem.setData(ieditorpart);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ArrayList&nbsp;nestedEditors&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(ArrayList) getParentFileValue(MultiPageEditorPart.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">,(MultiPageEditorPart)</span><span style="color: #0000ff;">this</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">nestedEditors</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nestedEditors.add(ieditorpart);<br />
<br />
public static Object getParentFileValue(Class parentClassType,Object object, String filedName) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Field fild = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object fildValue = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fild = parentClassType.getDeclaredField(filedName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fild.setAccessible(true);// 设置安全检查，访问私有成员变量必须<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fildValue = fild.get(object);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (NoSuchFieldException ex) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception ex) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return fildValue;<br />
&nbsp;&nbsp;&nbsp; }<br />
</span></div>
<br />
呵呵,问题解决了.<br />
<br />
<img src ="http://www.blogjava.net/sdyjmc/aggbug/278160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2009-05-27 10:31 <a href="http://www.blogjava.net/sdyjmc/archive/2009/05/27/278160.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IFile getFullPath注意</title><link>http://www.blogjava.net/sdyjmc/archive/2009/04/21/266778.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Tue, 21 Apr 2009 08:27:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2009/04/21/266778.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/266778.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2009/04/21/266778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/266778.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/266778.html</trackback:ping><description><![CDATA[String strResource = ((IResource)o).getLocation().makeAbsolute().toFile().getAbsolutePath();<br />
<br />
这样才能获取到磁盘路径<br />
<img src ="http://www.blogjava.net/sdyjmc/aggbug/266778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2009-04-21 16:27 <a href="http://www.blogjava.net/sdyjmc/archive/2009/04/21/266778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>国际化编辑器</title><link>http://www.blogjava.net/sdyjmc/archive/2009/04/15/265775.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Wed, 15 Apr 2009 07:51:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2009/04/15/265775.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/265775.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2009/04/15/265775.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/265775.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/265775.html</trackback:ping><description><![CDATA[<h1 class="title_txt">Eclipse Plugin]ResourceBundle Editor(国际化资源文件编辑器</h1>
http://sourceforge.net/projects/eclipse-rbe<br />
<br />
<br />
<img src ="http://www.blogjava.net/sdyjmc/aggbug/265775.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2009-04-15 15:51 <a href="http://www.blogjava.net/sdyjmc/archive/2009/04/15/265775.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实现当IFile内容改变的时候更新Editor</title><link>http://www.blogjava.net/sdyjmc/archive/2009/03/20/260973.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Fri, 20 Mar 2009 02:07:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2009/03/20/260973.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/260973.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2009/03/20/260973.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/260973.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/260973.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">public class HtmlEditor extends MultiPageEditorPart<br />
public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;init(IEditorSite&nbsp;site,&nbsp;IEditorInput&nbsp;editorInput)&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;PartInitException&nbsp;{<br />
<br />
&nbsp;&nbsp; initResourceChangeListener();<br />
}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;IWorkspace&nbsp;getWorkspace()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;((IFileEditorInput)&nbsp;getEditorInput()).getFile().getWorkspace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;initResourceChangeListener()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IResourceChangeListener&nbsp;resourceChangeListener&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;IResourceChangeListener()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;resourceChanged(IResourceChangeEvent&nbsp;event)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;handleResourceChange(event);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getWorkspace().addResourceChangeListener(resourceChangeListener);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;handleResourceChange(IResourceChangeEvent&nbsp;event)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(event.getType()&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;IResourceChangeEvent.POST_CHANGE)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFile&nbsp;file&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;((IFileEditorInput)&nbsp;getEditorInput()).getFile();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;update&nbsp;editor</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
/**<br />
&nbsp;*当更新或者删除文件的时候<br />
**/<br />
public void resourceChanged(final IResourceChangeEvent event) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (event.getType() == IResourceChangeEvent.POST_CHANGE)<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Display.getDefault().asyncExec(new Runnable() {<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public void run() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IResourceDelta rootDelta = event.getDelta();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(rootDelta ==null){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IResourceDelta htmlDelta = rootDelta.findMember(new Path("DefaultProject/t.html"));<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(htmlDelta == null){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (event.getType() == IResourceChangeEvent.PRE_CLOSE) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Display.getDefault().asyncExec(new Runnable() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public void run() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IWorkbenchPage[] pages = getSite().getWorkbenchWindow().getPages();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; pages.length; i++) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (((FileEditorInput) getSourceEditor().getEditorInput()).getFile().getProject().equals(event.getResource())) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IEditorPart editorPart = pages[i].findEditor(getSourceEditor().getEditorInput());<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pages[i].closeEditor(editorPart, true);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
</span></div>
<img src ="http://www.blogjava.net/sdyjmc/aggbug/260973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2009-03-20 10:07 <a href="http://www.blogjava.net/sdyjmc/archive/2009/03/20/260973.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>插件依赖的单向性Plugin dependence </title><link>http://www.blogjava.net/sdyjmc/archive/2009/01/25/252546.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Sun, 25 Jan 2009 02:27:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2009/01/25/252546.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/252546.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2009/01/25/252546.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/252546.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/252546.html</trackback:ping><description><![CDATA[插件依赖只能是单向的关系，比如说PluginA依赖于PluginB，那么A中能引用B中的类，但是B就不能引用A中的 ，否则就是双向依赖。在使用XStream这个包的时候，如果是不可能单独封装为一个插件的。这就造成了多个插件含有不同版本的Stream类。<br />
<br />
<img src ="http://www.blogjava.net/sdyjmc/aggbug/252546.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2009-01-25 10:27 <a href="http://www.blogjava.net/sdyjmc/archive/2009/01/25/252546.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rcp plugin 国际化bug</title><link>http://www.blogjava.net/sdyjmc/archive/2009/01/23/252439.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Fri, 23 Jan 2009 03:42:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2009/01/23/252439.html</guid><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 10" />
<meta name="Originator" content="Microsoft Word 10" />
<link rel="File-List" href="file:///C:%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:UseFELayout/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"MS Sans Serif";
panose-1:0 0 0 0 0 0 0 0 0 0;
mso-font-alt:Arial;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-format:other;
mso-font-pitch:variable;
mso-font-signature:3 0 0 0 1 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
mso-layout-grid-align:none;
punctuation-wrap:simple;
text-autospace:none;
font-size:10.0pt;
font-family:"MS Sans Serif";
mso-fareast-font-family:宋体;
mso-bidi-font-family:"Times New Roman";}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
</style>
<![endif]--><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">Plugin.properties放在plugin.xml的相同目录下, Eclipse里面看国际化也是非常正确,
但是运行以后就是只显示"%XXXX"这样的字符串原来是因为<br />
</span>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 10" />
<meta name="Originator" content="Microsoft Word 10" />
<link rel="File-List" href="file:///C:%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:UseFELayout/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"MS Sans Serif";
panose-1:0 0 0 0 0 0 0 0 0 0;
mso-font-alt:Arial;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-format:other;
mso-font-pitch:variable;
mso-font-signature:3 0 0 0 1 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
mso-layout-grid-align:none;
punctuation-wrap:simple;
text-autospace:none;
font-size:10.0pt;
font-family:"MS Sans Serif";
mso-fareast-font-family:宋体;
mso-bidi-font-family:"Times New Roman";}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
</style>
<![endif]-->
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">Localization in RCP plugins is usually
done by including translations in a property file and using their id in
plugin.xml.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">I spend some time lately trying to
understand why some translations were not used in my application although <strong>they
were correctly displayed in PDE</strong>. <o:p></o:p></span></p>
<p class="MsoNormal"><strong><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">Answer</span></strong><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"> : when using
plugin.properties, you <strong>MUST</strong> include the following line in the plugin
manifest : <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">Bundle-Localization:
plugin</span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">Otherwise, PDE will show the translated
text, but your app won&#8217;t.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">Strangely, I had to edit the manifest
manually because I couldn&#8217;t find a way to enable plugin localization in PDE.
Some other plugins of my application already had this line, but I don&#8217;t remember
adding it. Maybe Eclipse templates have changed since I created my first
plugins (using Eclipse 3.1).<o:p></o:p></span></p>
<br />
记得以前插件开发也有这个问题，不过忘记了。<br />
真是记性越来越差了。<br />
这个问题竟然困扰了我两个星期。还好可以google到别人的解决办法，今天在这里留个脚印。<br />
<img src ="http://www.blogjava.net/sdyjmc/aggbug/252439.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2009-01-23 11:42 <a href="http://www.blogjava.net/sdyjmc/archive/2009/01/23/252439.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原创] 修正com.ibm.rcp.activex不能打开中文路径bug</title><link>http://www.blogjava.net/sdyjmc/archive/2008/08/09/221078.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Sat, 09 Aug 2008 14:52:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2008/08/09/221078.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/221078.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2008/08/09/221078.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/221078.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/221078.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 10" />
<meta name="Originator" content="Microsoft Word 10" />
<link rel="File-List" href="file:///C:%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:UseFELayout/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"MS Sans Serif";
panose-1:0 0 0 0 0 0 0 0 0 0;
mso-font-alt:"Times New Roman";
mso-font-charset:255;
mso-generic-font-family:auto;
mso-font-format:other;
mso-font-pitch:auto;
mso-font-signature:3 0 0 0 0 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
mso-layout-grid-align:none;
punctuation-wrap:simple;
text-autospace:none;
font-size:10.0pt;
font-family:"MS Sans Serif";
mso-fareast-font-family:宋体;
mso-bidi-font-family:"Times New Roman";}
h1
{mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
mso-pagination:widow-orphan;
mso-outline-level:1;
font-size:24.0pt;
font-family:宋体;
mso-bidi-font-family:宋体;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
</style>
<![endif]-->
<h1><strong><span style="font-size: 14pt;"><span style="color: #060708;">IBM Container for ActiveX Documents - Eclipse Version</span></span></strong></h1>
但是我发现如果使用它打开含有中文名称的文档，就会抛异常，看了它的代码，发现<br />
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">JNIEXPORT&nbsp;jint&nbsp;JNICALL&nbsp;Java_com_ibm_rcp_activex_ActivexDocumentWidget_createControl<br />
&nbsp;&nbsp;&nbsp;&nbsp;(JNIEnv&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;env,&nbsp;jclass&nbsp;that,&nbsp;jint&nbsp;hwndParent,&nbsp;jstring&nbsp;filename,&nbsp;jstring&nbsp;progid,&nbsp;jint&nbsp;hwndShell,<br />
&nbsp;&nbsp;&nbsp;&nbsp;jintArray&nbsp;fileMenu,&nbsp;jintArray&nbsp;containerMenu,&nbsp;jintArray&nbsp;windowMenu,<br />
&nbsp;&nbsp;&nbsp;&nbsp;jint&nbsp;indexHelpMenu,&nbsp;jstring&nbsp;helpMenuItemPrefix)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;ADD_TO_TRACE();<br />
&nbsp;&nbsp;&nbsp;&nbsp;AFX_MANAGE_STATE(AfxGetStaticModuleState());<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(NULL&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;progid)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;lpszProgid&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;env</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">GetStringUTFChars(progid,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;lpszFileName&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;NULL;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(NULL&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpszFileName&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;env</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">GetStringUTFChars(filename,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span></div>
<br />
这样会引发jni的字符乱码问题，在参考了《〈Java与C之间通过JNI传递中文字符串〉》的解决方案后<br />
做了如下的改写:<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">char</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;jstringToWindows(&nbsp;JNIEnv&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">env,&nbsp;jstring&nbsp;jstr&nbsp;);<br />
<br />
<br />
</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(NULL&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpszFileName&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;jstringToWindows(&nbsp;env,&nbsp;filename&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">lpszFileName&nbsp;=&nbsp;env-&gt;GetStringUTFChars(filename,&nbsp;0);</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
</span><span style="color: #0000ff;">char</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;jstringToWindows(JNIEnv</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;env,jstring&nbsp;jstr)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;length</span><span style="color: #000000;">=</span><span style="color: #000000;">(env)</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">GetStringLength(jstr);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;jchar</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;jcstr</span><span style="color: #000000;">=</span><span style="color: #000000;">(env)</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">GetStringChars(jstr,</span><span style="color: #000000;">0</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;rtn</span><span style="color: #000000;">=</span><span style="color: #000000;">(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc(length</span><span style="color: #000000;">*</span><span style="color: #000000;">2</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;size</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;size</span><span style="color: #000000;">=</span><span style="color: #000000;">WideCharToMultiByte(CP_ACP,</span><span style="color: #000000;">0</span><span style="color: #000000;">,(LPCWSTR)jcstr,length,rtn,(length</span><span style="color: #000000;">*</span><span style="color: #000000;">2</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">),NULL,NULL);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(size</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;NULL;<br />
&nbsp;&nbsp;&nbsp;&nbsp;(env)</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">ReleaseStringChars(jstr,jcstr);<br />
&nbsp;&nbsp;&nbsp;&nbsp;rtn[size]</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;rtn;<br />
}</span></div>
<br />
成功编译后，可以正常使用了。<br />
<br />
<br />
<img src ="http://www.blogjava.net/sdyjmc/aggbug/221078.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2008-08-09 22:52 <a href="http://www.blogjava.net/sdyjmc/archive/2008/08/09/221078.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Composite To Image file</title><link>http://www.blogjava.net/sdyjmc/archive/2008/04/22/194838.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Tue, 22 Apr 2008 09:49:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2008/04/22/194838.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/194838.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2008/04/22/194838.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/194838.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/194838.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;toImage(Control&nbsp;composiste&nbsp;,File&nbsp;file)</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;Excepton{<br />
Display&nbsp;display&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;PlatformUI.getWorkbench().getDisplay();<br />
Point&nbsp;size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;composite.getSize();<br />
</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;Image&nbsp;image&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Image(display,size.x,size.y);<br />
GC&nbsp;gc&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;GC(Composite);<br />
gc.copyArea(image,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #000000;">0</span><span style="color: #000000;">);<br />
gc.dispose();<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;save&nbsp;image&nbsp;to&nbsp;file;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">ImageData&nbsp;imageData&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;image.getImageData();<br />
ImageLoader&nbsp;imageLoader&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ImageLoader();<br />
imageLoader.data&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;&nbsp;ImageData[</span><span style="color: #000000;">1</span><span style="color: #000000;">];<br />
FileOutputStream&nbsp;fos&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;FileOutputStream(file);<br />
iamgeLoader.save(fos,SWT.IMAGE_JPEG);<br />
image.dispose();<br />
fos.close();<br />
}<br />
<br />
<br />
</span></div>
<img src ="http://www.blogjava.net/sdyjmc/aggbug/194838.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2008-04-22 17:49 <a href="http://www.blogjava.net/sdyjmc/archive/2008/04/22/194838.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>org.eclipse.ui.viewActions 使用心得</title><link>http://www.blogjava.net/sdyjmc/archive/2008/04/20/194272.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Sun, 20 Apr 2008 02:24:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2008/04/20/194272.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/194272.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2008/04/20/194272.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/194272.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/194272.html</trackback:ping><description><![CDATA[因为TreeView要增加一个弹出菜单来<br />
Java代码<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 128, 128);">&nbsp;1</span>&nbsp;<span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;createContextMenu(Composite&nbsp;parent)&nbsp;{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;2</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MenuManager&nbsp;mgr&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;MenuManager();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;3</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mgr.setRemoveAllWhenShown(</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);">);<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;4</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">final</span><span style="color: rgb(0, 0, 0);">&nbsp;EntityTreeView&nbsp;tree&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;5</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mgr.addMenuListener(</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;IMenuListener()&nbsp;{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;6</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;menuAboutToShow(IMenuManager&nbsp;manager)&nbsp;{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;7</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;8</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ISelection&nbsp;selection&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;tree.getSelection();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;9</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(selection&nbsp;</span><span style="color: rgb(0, 0, 255);">instanceof</span><span style="color: rgb(0, 0, 0);">&nbsp;IStructuredSelection){<br />
</span><span style="color: rgb(0, 128, 128);">10</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IStructuredSelection&nbsp;incoming&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;(IStructuredSelection)selection;<br />
</span><span style="color: rgb(0, 128, 128);">11</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(incoming.size()&nbsp;</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">&amp;&amp;</span><span style="color: rgb(0, 0, 0);">&nbsp;incoming.getFirstElement()&nbsp;</span><span style="color: rgb(0, 0, 255);">instanceof</span><span style="color: rgb(0, 0, 0);">&nbsp;AbstractEntity){&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">12</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selectedEntity&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;(AbstractEntity)incoming.getFirstElement();<br />
</span><span style="color: rgb(0, 128, 128);">13</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fillContextMenu(manager,selectedEntity);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">14</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: rgb(0, 128, 128);">15</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: rgb(0, 128, 128);">16</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">17</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: rgb(0, 128, 128);">18</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">19</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
</span><span style="color: rgb(0, 128, 128);">20</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">21</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.eclipse.swt.widgets.Menu&nbsp;menu&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;mgr.createContextMenu(</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.getControl());<br />
</span><span style="color: rgb(0, 128, 128);">22</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.getControl().setMenu(menu);<br />
</span><span style="color: rgb(0, 128, 128);">23</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getViewSite().registerContextMenu(mgr,&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">);<br />
</span><span style="color: rgb(0, 128, 128);">24</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: rgb(0, 128, 128);">25</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">26</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;fillContextMenu(IMenuManager&nbsp;manager,AbstractEntity&nbsp;selectedEntity)&nbsp;{<br />
</span><span style="color: rgb(0, 128, 128);">27</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.eclipse.jface.action.IContributionItem&nbsp;items[]&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;getViewSite().getActionBars().getMenuManager().getItems();<br />
</span><span style="color: rgb(0, 128, 128);">28</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);">&nbsp;(IContributionItem&nbsp;item&nbsp;:&nbsp;items)&nbsp;{<br />
</span><span style="color: rgb(0, 128, 128);">29</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(item&nbsp;</span><span style="color: rgb(0, 0, 255);">instanceof</span><span style="color: rgb(0, 0, 0);">&nbsp;PluginActionContributionItem){<br />
</span><span style="color: rgb(0, 128, 128);">30</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PluginActionContributionItem&nbsp;pitem&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;(PluginActionContributionItem)item;<br />
</span><span style="color: rgb(0, 128, 128);">31</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(selectedEntity&nbsp;</span><span style="color: rgb(0, 0, 255);">instanceof</span><span style="color: rgb(0, 0, 0);">&nbsp;CategoryModel){<br />
</span><span style="color: rgb(0, 128, 128);">32</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">&nbsp;(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">com.test.actions.RefreshViewActionDelegate</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">.equals(pitem.getAction().getId())){<br />
</span><span style="color: rgb(0, 128, 128);">33</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;manager.add(item);<br />
</span><span style="color: rgb(0, 128, 128);">34</span>&nbsp;<span style="color: rgb(0, 0, 0);">&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><span style="color: rgb(0, 0, 255);">continue</span><span style="color: rgb(0, 0, 0);">;<br />
</span><span style="color: rgb(0, 128, 128);">35</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: rgb(0, 128, 128);">36</span>&nbsp;<span style="color: rgb(0, 0, 0);">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">37</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">38</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: rgb(0, 128, 128);">39</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">40</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">41</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: rgb(0, 128, 128);">42</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<br />
plugin.xml<br />
<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">extension<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(255, 0, 0);">point</span><span style="color: rgb(0, 0, 255);">="org.eclipse.ui.viewActions"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">viewContribution<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(255, 0, 0);">id</span><span style="color: rgb(0, 0, 255);">="com.test.EntityContribution"</span><span style="color: rgb(255, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;targetID</span><span style="color: rgb(0, 0, 255);">="com.test.View"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">action<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(255, 0, 0);">class</span><span style="color: rgb(0, 0, 255);">="com.etest.actions.AddActionDelegate"</span><span style="color: rgb(255, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;icon</span><span style="color: rgb(0, 0, 255);">="icons/action.gif"</span><span style="color: rgb(255, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id</span><span style="color: rgb(0, 0, 255);">="com.etest.actions.AddActionDelegate"</span><span style="color: rgb(255, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label</span><span style="color: rgb(0, 0, 255);">="Add"</span><span style="color: rgb(255, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menubarPath</span><span style="color: rgb(0, 0, 255);">="category"</span><span style="color: rgb(255, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style</span><span style="color: rgb(0, 0, 255);">="push"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">action</span><span style="color: rgb(0, 0, 255);">&gt;</span></div>
targetID指定那个View会获取到这些action<br />
如果指定一个toolbarPath<br />
就会在NavigatorBar显示这些action<br />
<img src ="http://www.blogjava.net/sdyjmc/aggbug/194272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2008-04-20 10:24 <a href="http://www.blogjava.net/sdyjmc/archive/2008/04/20/194272.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重新定制StructuredTextEditor的PropertySheet</title><link>http://www.blogjava.net/sdyjmc/archive/2007/04/24/113190.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Tue, 24 Apr 2007 07:17:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2007/04/24/113190.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/113190.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2007/04/24/113190.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/113190.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/113190.html</trackback:ping><description><![CDATA[重载getAdapter方法:<br>public Object getAdapter(Class required) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (org.eclipse.ui.views.properties.IPropertySheetPage.class<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .equals(required){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp;  org.eclipse.wst.sse.ui.views.properties.PropertySheetConfiguration cfg = createPropertySheetConfiguration();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (cfg != null) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PropertySheet propertySheetPage = new PropertySheet(<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; propertySheetPage.setConfiguration(cfg);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>public class PropertySheet extends Page implements<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IPropertySheetPage {<br>public void selectionChanged(IWorkbenchPart part, ISelection selection) {<br>&nbsp;&nbsp;&nbsp; //change form part<br>}<br><br><img src ="http://www.blogjava.net/sdyjmc/aggbug/113190.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2007-04-24 15:17 <a href="http://www.blogjava.net/sdyjmc/archive/2007/04/24/113190.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IDaptable</title><link>http://www.blogjava.net/sdyjmc/archive/2007/03/16/104131.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Fri, 16 Mar 2007 00:14:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2007/03/16/104131.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/104131.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2007/03/16/104131.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/104131.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/104131.html</trackback:ping><description><![CDATA[原文地址：<a href="http://www.eclipsezone.com/articles/what-is-iadaptable/">http://www.eclipsezone.com/articles/what-is-iadaptable/</a><br /><br /> http://bjzhanghao.cnblogs.com/archive/2005/09/24/243312.html<br /><br />文章写的好,翻译的也好.感谢一下.<br /><br /><br /><img src ="http://www.blogjava.net/sdyjmc/aggbug/104131.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2007-03-16 08:14 <a href="http://www.blogjava.net/sdyjmc/archive/2007/03/16/104131.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>how the Nature id  is!</title><link>http://www.blogjava.net/sdyjmc/archive/2006/12/01/84206.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Thu, 30 Nov 2006 18:19:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2006/12/01/84206.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/84206.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2006/12/01/84206.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/84206.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/84206.html</trackback:ping><description><![CDATA[extension-point org.eclipse.core.resources.natures<br />
nature_id = pluginid+extension-id<br /><br />i dont like this idea.<br /><img src ="http://www.blogjava.net/sdyjmc/aggbug/84206.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2006-12-01 02:19 <a href="http://www.blogjava.net/sdyjmc/archive/2006/12/01/84206.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dissect Eclipse Plugin Framework</title><link>http://www.blogjava.net/sdyjmc/archive/2006/11/11/80638.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Sat, 11 Nov 2006 14:37:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2006/11/11/80638.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/80638.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2006/11/11/80638.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/80638.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/80638.html</trackback:ping><description><![CDATA[http://www.mengyan.org/blog/dissect-eclipse-plugin-framework/<br /><br />
http://eclipsezone.com/articles/eclipse-vms/<br /><br /><br /><img src ="http://www.blogjava.net/sdyjmc/aggbug/80638.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2006-11-11 22:37 <a href="http://www.blogjava.net/sdyjmc/archive/2006/11/11/80638.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Project Builders and Natures</title><link>http://www.blogjava.net/sdyjmc/archive/2006/11/11/80525.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Fri, 10 Nov 2006 16:00:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2006/11/11/80525.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/80525.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2006/11/11/80525.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/80525.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/80525.html</trackback:ping><description><![CDATA[http://www.eclipse.org/articles/Article-Builders/builders.html<img src ="http://www.blogjava.net/sdyjmc/aggbug/80525.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2006-11-11 00:00 <a href="http://www.blogjava.net/sdyjmc/archive/2006/11/11/80525.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> how to access eclipse Workspace</title><link>http://www.blogjava.net/sdyjmc/archive/2006/11/10/80477.html</link><dc:creator>单飞</dc:creator><author>单飞</author><pubDate>Fri, 10 Nov 2006 11:31:00 GMT</pubDate><guid>http://www.blogjava.net/sdyjmc/archive/2006/11/10/80477.html</guid><wfw:comment>http://www.blogjava.net/sdyjmc/comments/80477.html</wfw:comment><comments>http://www.blogjava.net/sdyjmc/archive/2006/11/10/80477.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sdyjmc/comments/commentRss/80477.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sdyjmc/services/trackbacks/80477.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">IPath IFile IProject IWorkspace</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<br />
String filePath = "\testP\src\context\test.html";<br />
IPath path = new Path(filePath);</span>
				<br />
IWorkspaceRoot = root = ResourcesPlugin.getWorkspace().getRoot();</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">IProject ps[] = root.getProjects();<br />
org.eclipse.core.resources.IFile
<span style="background: silver none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;">file</span> = root.getFileForLocation(path</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">);</span>
				<br />
IProject = file.getProject();</p>
		<p class="MsoNormal" style="text-align: left;" align="left">root 是整个Workspace的根容器，它可以获取到子目录的文件。<br />
和java.io.File不同的是IFile通常是get出来的，不是new出来的。</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<br />
		</p>
		<h1 class="firstHeading">The Official Eclipse FAQs</h1>
http://wiki.eclipse.org/index.php/The_Official_Eclipse_FAQs<br /><br /><br /><p class="MsoNormal" style="text-align: left;" align="left"><br /><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US"></span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US"><o:p></o:p></span></p><img src ="http://www.blogjava.net/sdyjmc/aggbug/80477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sdyjmc/" target="_blank">单飞</a> 2006-11-10 19:31 <a href="http://www.blogjava.net/sdyjmc/archive/2006/11/10/80477.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>