﻿<?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-BaNg-随笔分类-Eclipse开发每日一转(+理解)</title><link>http://www.blogjava.net/lifesting/category/34260.html</link><description>Just Do It!</description><language>zh-cn</language><lastBuildDate>Tue, 09 Dec 2008 15:21:54 GMT</lastBuildDate><pubDate>Tue, 09 Dec 2008 15:21:54 GMT</pubDate><ttl>60</ttl><item><title>开源的覆盖率测试插件EclEmma</title><link>http://www.blogjava.net/lifesting/archive/2008/12/09/245151.html</link><dc:creator>Always BaNg.</dc:creator><author>Always BaNg.</author><pubDate>Tue, 09 Dec 2008 01:56:00 GMT</pubDate><guid>http://www.blogjava.net/lifesting/archive/2008/12/09/245151.html</guid><wfw:comment>http://www.blogjava.net/lifesting/comments/245151.html</wfw:comment><comments>http://www.blogjava.net/lifesting/archive/2008/12/09/245151.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/lifesting/comments/commentRss/245151.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lifesting/services/trackbacks/245151.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 开源覆盖率测试插件EclEmma。&nbsp;&nbsp;<a href='http://www.blogjava.net/lifesting/archive/2008/12/09/245151.html'>阅读全文</a><img src ="http://www.blogjava.net/lifesting/aggbug/245151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lifesting/" target="_blank">Always BaNg.</a> 2008-12-09 09:56 <a href="http://www.blogjava.net/lifesting/archive/2008/12/09/245151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse Job的属性</title><link>http://www.blogjava.net/lifesting/archive/2008/09/01/226072.html</link><dc:creator>Always BaNg.</dc:creator><author>Always BaNg.</author><pubDate>Mon, 01 Sep 2008 09:45:00 GMT</pubDate><guid>http://www.blogjava.net/lifesting/archive/2008/09/01/226072.html</guid><wfw:comment>http://www.blogjava.net/lifesting/comments/226072.html</wfw:comment><comments>http://www.blogjava.net/lifesting/archive/2008/09/01/226072.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/lifesting/comments/commentRss/226072.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lifesting/services/trackbacks/226072.html</trackback:ping><description><![CDATA[文章来源：<a href="http://blog.eclipse-tips.com/2008/08/adding-iaction-to-job.html">http://blog.eclipse-tips.com/2008/08/adding-iaction-to-job.html</a><br />
<br />
关于Job不说了，无所不在，我要讲的是job的一些属性。<br />
<br />
1 给Job加上Action，当用户在Job运行的时候点击时，可显示更具体的job描述或者对job本身进行操作。<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;">Job&nbsp;job&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Job(</span><span style="color: #000000;">"</span><span style="color: #000000;">My&nbsp;Job</span><span style="color: #000000;">"</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">protected</span><span style="color: #000000;">&nbsp;IStatus&nbsp;run(IProgressMonitor&nbsp;monitor)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;monitor.beginTask(</span><span style="color: #000000;">"</span><span style="color: #000000;">My&nbsp;job&nbsp;is&nbsp;working<img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">100</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><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;</span><span style="color: #000000;">100</span><span style="color: #000000;">;&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;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(</span><span style="color: #000000;">200</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(InterruptedException&nbsp;e)&nbsp;{}&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;ignore</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;monitor.worked(</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;monitor.done();<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: #0000ff;">new</span><span style="color: #000000;">&nbsp;Status(IStatus.OK,&nbsp;Activator.PLUGIN_ID,&nbsp;</span><span style="color: #000000;">"ok, </span><span style="color: #000000;">job&nbsp;finished!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
};<br />
job.setProperty(IProgressConstants.ACTION_PROPERTY,&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Action()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Override<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;run()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageDialog.openInformation(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Shell(),&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Job&nbsp;Status</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Some&nbsp;partial&nbsp;results&nbsp;processed&nbsp;can&nbsp;be&nbsp;displayed&nbsp;here</span><span style="color: #000000;">"</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;});<br />
job.schedule();<br />
</span></div>
<br />
效果图：<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/lifesting/jobaction1.JPG" width="754" height="541" /><br />
<br />
2 在Progress View里面保留记录<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;">job.setProperty(IProgressConstants.KEEP_PROPERTY,&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">); <br />
</span></div>
<br />
效果图：<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/lifesting/jobhistory.JPG" width="760" height="207" /><br />
<br />
3 防止error dialog打断你的操作。process view里面运行的job如果返回的status是error，那么默认它会弹出一个error dialog警告job有错误，如果job运行的同时你在干别的，这可能会打断你的某个操作(Eclispe的dialog都是modal的)。<br />
<br />
把job的返回状态改为error。<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;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Status(IStatus.ERROR,&nbsp;Activator.PLUGIN_ID,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Job&nbsp;finished&nbsp;with&nbsp;ERRORS</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span></div>
<br />
error dialog:<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/lifesting/error_dialog.JPG" width="761" height="548" /><br />
<br />
加上属性屏蔽error dialog:<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;">job.setProperty(IProgressConstants.NO_IMMEDIATE_ERROR_PROMPT_PROPERTY,&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">);</span></div>
<br />
4 给Job加一个图标：<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;">job.setProperty(IProgressConstants.ICON_PROPERTY,&nbsp;Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/sample.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">));</span></div>
<br />
效果如下：<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/lifesting/job_icon.JPG" width="760" height="207" /><br />
<br />
<img src ="http://www.blogjava.net/lifesting/aggbug/226072.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lifesting/" target="_blank">Always BaNg.</a> 2008-09-01 17:45 <a href="http://www.blogjava.net/lifesting/archive/2008/09/01/226072.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>