<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
   <channel>
      <title>Elias on Eclipse</title>
      <description>Eclipse tips &amp; tricks from the code trenches.</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=80194c2b6c39f406940b2202f0b2b233</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=80194c2b6c39f406940b2202f0b2b233&amp;_render=rss&amp;page=2" />
      <pubDate>Thu, 24 May 2012 20:22:15 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/EliasOnEclipse" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="eliasoneclipse" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bloglines.com/sub/http://feeds.feedburner.com/EliasOnEclipse" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FEliasOnEclipse" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
         <title>EclipseCon Excercise update</title>
         <link>http://eclipsesource.com/blogs/2011/03/23/eclipsecon-excercise-update/</link>
         <description>Big thanks to all  runners who keep showing up for the EclipseCon run each morning. Particularly the brave bunch running in the rain today! Join us tomorrow at 7am in the Hyatt Lobby (rain or shine) for the last run of the conference. We will also having a little contest with the chance to win [...]</description>
         <guid isPermaLink="false">http://eclipsesource.com/blogs/?p=5606</guid>
         <pubDate>Wed, 23 Mar 2011 18:20:41 +0000</pubDate>
         <content:encoded><![CDATA[<p>Big thanks to all  runners who keep showing up for the <a rel="nofollow" target="_blank" href="http://wiki.eclipse.org/EclipseCon_Exercise_2011">EclipseCon run</a> each morning. Particularly the brave bunch running in the rain today!</p>
<p>Join us tomorrow at <strong>7am in the Hyatt Lobby</strong> (rain or shine) for the last run of the conference.</p>
<p>We will also having a little contest with the chance to win Eclipse.org goodies: (thank you!)</p>
<ul>
<li>two black Eclipse.org long-sleeve shirts</li>
<li>two women&#8217;s Eclipse.org polo shirts</li>
<li>Eclipse.org insulating coffee mugs &#8212; battle-tested in arctic Ottawa <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt="icon wink EclipseCon Excercise update" class='wp-smiley' title="EclipseCon Excercise update"/> </li>
</ul>
<p><a rel="nofollow" target="_blank" href="http://eclipsesource.com/blogs/wp-content/uploads/2011/03/EclipseCon_2011.jpg"><img class="alignnone size-full wp-image-5607" title="EclipseCon_2011" src="http://eclipsesource.com/blogs/wp-content/uploads/2011/03/EclipseCon_2011.jpg" alt="EclipseCon 2011 EclipseCon Excercise update" width="640" height="480"/></a></p>
<p>&nbsp;</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=Y0J4D_fhb1E:9yv93_-VvSE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=Y0J4D_fhb1E:9yv93_-VvSE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=Y0J4D_fhb1E:9yv93_-VvSE:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Let’s run together at EclipseCon 2011</title>
         <link>http://eclipsesource.com/blogs/2011/02/12/lets-run-together-at-eclipsecon-2011/</link>
         <description>38 days left until EclipseCon &amp;#8212; Sure, you&amp;#8217;ve registered, booked the flight and hotel, checked your passport. Next: pack your running shoes! Continuing the annual tradition started by Darin, we are organizing another edition of the EclipseCon Exercise:  an easy 3-mile run, starting in the Hyatt Lobby at 7:00 am each morning, Monday to Thursday. The [...]</description>
         <guid isPermaLink="false">http://eclipsesource.com/blogs/?p=5356</guid>
         <pubDate>Sat, 12 Feb 2011 00:18:45 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://eclipsesource.com/blogs/wp-content/uploads/2011/02/eclipsecon_excercise.jpg"><img class="alignnone size-full wp-image-5358" title="eclipsecon_excercise" src="http://eclipsesource.com/blogs/wp-content/uploads/2011/02/eclipsecon_excercise.jpg" alt="eclipsecon excercise Lets run together at EclipseCon 2011" width="455" height="295"/></a></p>
<p>38 days left until EclipseCon &#8212; Sure, you&#8217;ve registered, booked the flight and hotel, checked your passport. Next: <strong>pack your running shoes!</strong></p>
<p>Continuing the annual tradition started by Darin, we are organizing another edition of the EclipseCon Exercise:  <strong>an easy 3-mile run, starting in the Hyatt Lobby at 7:00 am each morning</strong>, Monday to Thursday. The trail is flat and paved and follows the stream / bike path behind the Hyatt.</p>
<p>Some reasons to run with us:</p>
<ul>
<li>have fun and enjoy the fabulous Californian weather</li>
<li>burn off  last night&#8217;s food and beverages <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Lets run together at EclipseCon 2011" class='wp-smiley' title="Lets run together at EclipseCon 2011"/> </li>
<li>network in an informal setting</li>
<li>get an EclipseCon 2011 runner&#8217;s shirt courtesy of EclipseSource</li>
</ul>
<p>If you plan to join us, <a rel="nofollow" target="_blank" href="http://wiki.eclipse.org/EclipseCon_Exercise_2011"><strong>please RSVP on wiki</strong></a>.</p>
<p>Here&#8217;s a picture from last year&#8217;s group. I hope to have as many join in this year.</p>
<p><a rel="nofollow" target="_blank" href="http://eclipsesource.com/blogs/wp-content/uploads/2011/02/eclipsecon_runners_2010.jpg"><img class="alignnone size-full wp-image-5357" title="eclipsecon_runners_2010" src="http://eclipsesource.com/blogs/wp-content/uploads/2011/02/eclipsecon_runners_2010.jpg" alt="eclipsecon runners 2010 Lets run together at EclipseCon 2011" width="600" height="450"/></a></p>
<p>See you in Santa Clara,<br />
Elias.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=X3fCcT-6uv0:3WX6-YlYBoU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=X3fCcT-6uv0:3WX6-YlYBoU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=X3fCcT-6uv0:3WX6-YlYBoU:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Portland DemoCamp 11/2010 – Photos and Slides</title>
         <link>http://eclipsesource.com/blogs/2010/11/13/portland-democamp-112010-photos-and-slide/</link>
         <description>Thanks to everybody who attended or presented at the Portland Eclipse DemoCamp last Monday. This time the theme was &amp;#8220;Eclipse for mobile developers&amp;#8221;. We had about 50 attending, which is a strong uptick from past events. Below some pictures and slides from the event: 1. Michael Galpin (@michaelg) from eBay opened the night with a [...]</description>
         <guid isPermaLink="false">http://eclipsesource.com/blogs/?p=4927</guid>
         <pubDate>Sat, 13 Nov 2010 01:58:39 +0000</pubDate>
         <content:encoded><![CDATA[<p>Thanks to everybody who attended or presented at the Portland Eclipse DemoCamp last Monday. This time the theme was &#8220;Eclipse for mobile developers&#8221;. We had about 50 attending, which is a strong uptick from past events.</p>
<p>Below some pictures and slides from the event:</p>
<p>1. Michael Galpin (<a rel="nofollow" target="_blank" href="http://twitter.com/michaelg">@michaelg</a>) from eBay opened the night with a presentation on &#8216;<strong>Android Development with Eclipse&#8217;. </strong>He introduced the Android platform and demoed the Eclipse-based Android Development Tools (ADT). Interesting fact: eBay&#8217;s mobile applications on Android are enjoyed by more than 3 million users. If you want to learn more about Android, Michael&#8217;s upcoming <a rel="nofollow" target="_blank" href="http://www.manning.com/collins/">Android book</a> should be a good place to start.</p>
<p><a rel="nofollow" target="_blank" href="http://eclipsesource.com/blogs/wp-content/uploads/2010/11/democamp1.jpg"><img class="alignnone size-medium wp-image-4931" title="Android Development with Eclipse" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/11/democamp1-300x225.jpg" alt="democamp1 300x225 Portland DemoCamp 11/2010   Photos and Slides" width="300" height="225"/></a></p>
<p>2. John Thomas from RIM continued with &#8216;<strong>BlackBerry Application Development Options</strong>&#8216;. BlackBerry developers have a variety of language choices for developing apps, such as Java, HTML5/Javascript and Adobe AIR. All development tools are integrated nicely in Eclipse and Adobe&#8217;s FlashBuilder (also Eclipse based). Visit this page for details on <a rel="nofollow" target="_blank" href="http://us.blackberry.com/developers/">BlackBerry app development</a>.</p>
<p><a rel="nofollow" target="_blank" href="http://eclipsesource.com/blogs/wp-content/uploads/2010/11/democamp2.jpg"><img class="alignnone size-medium wp-image-4932" title="BlackBerry Application Development Options" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/11/democamp2-300x225.jpg" alt="democamp2 300x225 Portland DemoCamp 11/2010   Photos and Slides" width="300" height="225"/></a></p>
<p>3. Elias Volanakis (<a rel="nofollow" target="_blank" href="http://twitter.com/evolanakis">@evolanakis</a>) talked about &#8216;<strong>iPad Development with Eclipse RAP</strong>&#8216;. After introducing the project I demoed how to write a calculator web-app for the iPad using Java. We are optimizing RAP for mobile devices for the 1.4 release next summer. <a rel="nofollow" target="_blank" href="http://eclipsesource.com/blogs/wp-content/uploads/2010/11/iPad_Development_with_Eclipse_RAP.pdf">You can download the slides here</a>.</p>
<p><a rel="nofollow" target="_blank" href="http://eclipsesource.com/blogs/wp-content/uploads/2010/11/democamp3.jpg"><img class="alignnone size-medium wp-image-4933" title="iPad development with Eclipse RAP" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/11/democamp3-300x225.jpg" alt="democamp3 300x225 Portland DemoCamp 11/2010   Photos and Slides" width="300" height="225"/></a></p>
<p>Thanks for joining us,<br />
Elias.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=tIzFqNIXnXA:u3-onl4yBg0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=tIzFqNIXnXA:u3-onl4yBg0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=tIzFqNIXnXA:u3-onl4yBg0:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Portland DemoCamp: Mobile Development with Eclipse – 11/8, 6pm</title>
         <link>http://eclipsesource.com/blogs/2010/11/05/portland-democamp-mobile-development-with-eclipse-118-6pm/</link>
         <description>If you want to learn more about Android / Blackberry / iPad development while enjoying some free pizza and beer, I would be glad to see you next Monday. Will have three presentations: Android Development with Eclipse BlackBerry Application Development Options iPad development with Eclipse The event is scheduled for this Monday, Nov 8th at 6pm at [...]</description>
         <guid isPermaLink="false">http://eclipsesource.com/blogs/?p=4913</guid>
         <pubDate>Fri, 05 Nov 2010 21:39:37 +0000</pubDate>
         <content:encoded><![CDATA[<p>If you want to learn more about Android / Blackberry / iPad development while enjoying some free pizza and beer, I would be glad to see you next Monday. Will have three presentations:</p>
<ul>
<li>Android Development with Eclipse</li>
<li>BlackBerry Application Development Options</li>
<li>iPad development with Eclipse</li>
</ul>
<p>The event is scheduled for this Monday, Nov 8th at 6pm at the Lucky Labrador Beer Hall, 1945 NW Quimby (<a rel="nofollow" target="_blank" href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=1945+NW+Quimby+St,+Portland,+OR&amp;sll=37.0625,-95.677068&amp;sspn=52.637906,63.984375&amp;ie=UTF8&amp;hq=&amp;hnear=1945+NW+Quimby+St,+Portland,+Multnomah,+Oregon+97209&amp;z=16">map</a>).</p>
<p><a rel="nofollow" target="_blank" href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2010/Portland">Please RSVP on the wiki</a> (or sent me an <a rel="nofollow" target="_blank" href="mailto:elias@eclipsesource.com">email</a>). Space is limited, so sign up now.</p>
<p><a rel="nofollow" target="_blank" href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2010/Portland">http://wiki.eclipse.org/Eclipse_DemoCamps_November_2010/Portland</a></p>
<p>Looking forward to see you there,<br />
Elias.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=oWP1rPJ85wk:nNFjSak6ENM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=oWP1rPJ85wk:nNFjSak6ENM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=oWP1rPJ85wk:nNFjSak6ENM:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Last week in Riena: 3.0 announced, Web support, ESE talks</title>
         <link>http://eclipsesource.com/blogs/2010/08/19/last-week-in-riena-3-0-announced-web-support-ese-talks/</link>
         <description>Here are three recent developments from Eclipse Riena, that you may otherwise have missed: • Version 3.0 announced &amp;#8211; we have updated the development plan, skipping the 2.1 release and shooting straight for a 3.0 release next June (Eclipse Indigo). While we strive to keep the bulk of the APIs unchanged, this move will grant us [...]</description>
         <guid isPermaLink="false">http://eclipsesource.com/blogs/?p=4608</guid>
         <pubDate>Wed, 18 Aug 2010 23:02:07 +0000</pubDate>
         <content:encoded><![CDATA[<p>Here are three recent developments from Eclipse Riena, that you may otherwise have missed:</p>
<p><strong>• Version 3.0 announced</strong> &#8211; we have updated the development plan, skipping the 2.1 release and shooting straight for a 3.0 release next June (Eclipse Indigo). While we strive to keep the bulk of the APIs unchanged, this move will grant us the flexibility to carefully introduce changes needed to support Eclipse RAP.</p>
<p>You can <a rel="nofollow" target="_blank" href="http://www.eclipse.org/forums/index.php?t=msg&amp;th=173449&amp;start=0&amp;S=1a023f7ee7e3326153e8c06e3bebc7f5">read the full announcement here.</a></p>
<p><strong>• Riena goes to the Web</strong> &#8211; We are excited about having all of Riena run on Eclipse RAP and are stepping up the effort.</p>
<p><img class="alignnone size-full wp-image-4615" title="Riena on RAP" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/08/navigation_400.png" alt="navigation 400 Last week in Riena: 3.0 announced, Web support, ESE talks" width="400" height="357"/></p>
<p>In the last two weeks we have ported and committed the Riena Navigation to RAP. Thanks to recent improvements in RAP this was a breeze! We also have an automated build for this second platform. Lastly, we have worked to eliminate all compile errors when building against RAP. This should make further development more straightforward.</p>
<p>If you want to follow the effort add yourself on <a rel="nofollow" target="_blank" href="http://bugs.eclipse.org/302893">Bug 302893</a> and read the &#8216;<a rel="nofollow" target="_blank" href="http://wiki.eclipse.org/Riena_on_RAP">Riena on RAP</a>&#8216; page on the wiki.</p>
<p><strong>• Riena at Eclipse Summit Europe </strong>- Riena committers are participating at the <a rel="nofollow" target="_blank" href="http://www.eclipsecon.org/summiteurope2010/">ESE, November 2 &#8211; 4 in Ludwigsburg</a>. We have proposed following talks:</p>
<ul>
<li><a rel="nofollow" target="_blank" href="https://www.eclipsecon.org/submissions/ese2010/view_talk.php?id=1778">Riena on RAP (Running Riena in the Web)</a></li>
<li><a rel="nofollow" target="_blank" href=" https://www.eclipsecon.org/submissions/ese2010/view_talk.php?id=1779">Riena on e4 aka &#8220;RCP 2.0&#8243;</a></li>
<li><a rel="nofollow" target="_blank" href="https://www.eclipsecon.org/submissions/ese2010/view_talk.php?id=1780">SWT on Qt</a></li>
<li><a rel="nofollow" target="_blank" href="https://www.eclipsecon.org/submissions/ese2010/view_talk.php?id=1740">Tutorial: dynamic UI &#8211; from domain model to RCP app</a> (Riena+Modelling+RedView)</li>
</ul>
<p>If you are interested in any of these topics: please follow the link and leave a short comment. This will help the organizers decide which talks to approve. Thanks!</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=7Z7oEv3Jr5Q:uKzwNNvTa3U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=7Z7oEv3Jr5Q:uKzwNNvTa3U:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=7Z7oEv3Jr5Q:uKzwNNvTa3U:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Eclipse RAP – What’s new in Helios? (Slides)</title>
         <link>http://eclipsesource.com/blogs/2010/08/19/eclipse-rap-whats-new-in-helios-slides/</link>
         <description>Here are the slides from my &amp;#8220;Eclipse RAP &amp;#8211; What&amp;#8217;s new in Helios?&amp;#8220; talk, which I gave at the Bay Area Demo Camp in June. They capture the most interesting novelties of the RAP 1.3 release. You can find even more details in the full release notes. I want to thank Oracle and AvantSoft for hosting [...]</description>
         <guid isPermaLink="false">http://eclipsesource.com/blogs/?p=4597</guid>
         <pubDate>Wed, 18 Aug 2010 22:25:14 +0000</pubDate>
         <content:encoded><![CDATA[<p>Here are the slides from my &#8220;<a rel="nofollow" target="_blank" href="http://eclipsesource.com/blogs/wp-content/uploads/2010/08/201006-Bay-Area-DemoCamp-RAP-New-Noteworthy.pdf">Eclipse RAP &#8211; What&#8217;s new in Helios?</a>&#8220; talk, which I gave at the <a rel="nofollow" target="_blank" href="http://wiki.eclipse.org/Eclipse_DemoCamps_Helios_2010/Bay_Area">Bay Area Demo Camp</a> in June. They capture the most interesting novelties of the RAP 1.3 release. You can find even more details in the <a rel="nofollow" target="_blank" href="http://eclipse.org/rap/noteworthy/1.3/">full release notes</a>.</p>
<p><a rel="nofollow" target="_blank" href="http://eclipsesource.com/blogs/wp-content/uploads/2010/08/201006-Bay-Area-DemoCamp-RAP-New-Noteworthy.pdf"><img class="alignnone size-full wp-image-4601" title="Eclipse RAP &#x002013; What&#x002019;s new in Helios?" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/08/rap_new_in_helios_bd.png" alt="rap new in helios bd Eclipse RAP   Whats new in Helios? (Slides)" width="400" height="299"/></a></p>
<p>I want to thank Oracle and AvantSoft for hosting and organizing the event.</p>
<p>If you are interested in future Eclipse events in the Bay Area, please take a moment to <a rel="nofollow" target="_blank" href="http://www.meetup.com/eclipse/">join the Bay Area Eclipse User Group</a> on Meetup.com</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=6VSg9577Zbs:rVwJ1gP1fFQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=6VSg9577Zbs:rVwJ1gP1fFQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=6VSg9577Zbs:rVwJ1gP1fFQ:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Tip: How to detect that a View was Detached</title>
         <link>http://eclipsesource.com/blogs/2010/06/23/tip-how-to-detect-that-a-view-was-detached/</link>
         <description>Here is a question that I got on a post about detached views: &amp;#8220;How can I detect that a View has been detached from the main window? I would like to adjust the view&amp;#8217;s behavior in that case.&amp;#8221; There is no API to obtain that information directly. However it is possible to do this with [...]</description>
         <guid isPermaLink="false">http://eclipsesource.com/blogs/?p=4437</guid>
         <pubDate>Wed, 23 Jun 2010 20:15:49 +0000</pubDate>
         <content:encoded><![CDATA[<p>Here is a question that I got on a post about <a rel="nofollow" target="_blank" href="http://eclipsesource.com/blogs/2009/04/25/having-fun-with-detached-views/">detached views</a>:</p>
<blockquote><p>&#8220;How can I detect that a View has been detached from the main window? I would like to adjust the view&#8217;s behavior in that case.&#8221;</p></blockquote>
<p>There is no API to obtain that information directly. However it is possible to do this with a few tricks:</p>
<ol>
<li>detached views have an empty window title (i.e. shell.getText().length() == 0)</li>
<li>when a view is detached resize events are fired</li>
</ol>
<p>Armed with that knowledge we can detect that a view is detached / reattached. The snippet below shows how (tested on windows).</p>
<p>PS: Our <a rel="nofollow" target="_blank" href="http://eclipsesource.com/en/services/eclipse-support/">eclipse support</a> helps developers use their time efficiently by providing prompt answers to questions like this one.</p>
<p><img class="size-full wp-image-4455 alignnone" title="detached_view" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/06/detached_view.png" alt="detached view Tip: How to detect that a View was Detached" width="560" height="417"/></p>
<p></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=v9llseuAWVk:6M20Bu6Mqr8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=v9llseuAWVk:6M20Bu6Mqr8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=v9llseuAWVk:6M20Bu6Mqr8:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Ribbon IDE - EclipseCon Slides</title>
         <link>http://eclipsenuggets.blogspot.com/2010/03/ribbon-ide-eclipsecon-slides.html</link>
         <description>&lt;a rel="nofollow" target="_blank" href="http://www.volanakis.de/nuggets/EC_10/201003%20Ribbon%20IDE%20-%20A%20leaner%20modern%20UI%20for%20Eclipse.pdf"&gt;&lt;img style="display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:320px;height:241px;" src="http://4.bp.blogspot.com/_1Rx7kFlzK2w/S6gRdhpzraI/AAAAAAAAAS0/UIcDesrDzCI/s320/ribbon_talk.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5451626547879587234"&gt;&lt;/a&gt;&lt;br /&gt;I've just uploaded the &lt;a rel="nofollow" target="_blank" href="http://www.volanakis.de/nuggets/EC_10/201003%20Ribbon%20IDE%20-%20A%20leaner%20modern%20UI%20for%20Eclipse.pdf"&gt;slides (pdf)&lt;/a&gt; from today's talk at EclipseCon. Thanks everybody who attended!&lt;br /&gt;&lt;br /&gt;If you don't mind trying an alpha, you can &lt;a rel="nofollow" target="_blank" href="http://github.com/elias42/ribbonide/downloads"&gt;download Eclipse 3.6 M6 with the ribbon here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-3704643519478986145?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=IdwETaN9pac:r0DjsxuPULY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=IdwETaN9pac:r0DjsxuPULY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=IdwETaN9pac:r0DjsxuPULY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-3704643519478986145</guid>
         <pubDate>Mon, 22 Mar 2010 17:50:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://4.bp.blogspot.com/_1Rx7kFlzK2w/S6gRdhpzraI/AAAAAAAAAS0/UIcDesrDzCI/s72-c/ribbon_talk.png" width="72" />
      </item>
      <item>
         <title>Error marker for SWT table rows – easy as pie</title>
         <link>http://eclipsesource.com/blogs/2010/03/04/error-marker-for-swt-table-rows-easy-as-pie/</link>
         <description>Here&amp;#8217;s a nice addition to Riena&amp;#8217;s TableRidget: you can now mark a table-row as incorrect. This is done with an RowErrorMessageMarker. When hovering over the marked row, the corresponding error message will be shown in a tooltip. IMarker marker = new RowErrorMessageMarker(&amp;#34;An error message...&amp;#34;, zorro); tableRidget.addMarker(marker); // to remove: tableRidget.removeMarker(marker); Full snippet here. This is [...]</description>
         <guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3874</guid>
         <pubDate>Thu, 04 Mar 2010 19:19:44 +0000</pubDate>
         <content:encoded><![CDATA[<p>Here&#8217;s a nice addition to Riena&#8217;s TableRidget: you can now mark a table-row as incorrect.</p>
<p>This is done with an <strong>RowErrorMessageMarker</strong>. When hovering over the marked row, the corresponding error message will be shown in a tooltip.</p>
<pre class="brush: java">
IMarker marker = new RowErrorMessageMarker(&quot;An error message...&quot;, zorro);
tableRidget.addMarker(marker);
// to remove:
tableRidget.removeMarker(marker);
</pre>
<p><a rel="nofollow" target="_blank" href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.riena/org.eclipse.riena.sample.snippets/src/org/eclipse/riena/sample/snippets/SnippetTableRidget007.java?root=RT_Project&amp;view=co">Full snippet here</a>. This is shipping with the upcoming Riena 2.0 M6.</p>
<p><img class="size-full wp-image-3882 alignnone" title="row_marker_1" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/row_marker_1.png" alt="row marker 1 Error marker for SWT table rows   easy as pie" width="398" height="250"/></p>
<p><img class="size-full wp-image-3883 alignnone" title="row_marker_2" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/row_marker_2.png" alt="row marker 2 Error marker for SWT table rows   easy as pie" width="398" height="250"/></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=hmKi7vZt0oQ:Yuldy0aldR0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=hmKi7vZt0oQ:Yuldy0aldR0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=hmKi7vZt0oQ:Yuldy0aldR0:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Shared libraries with Eclipse CDT and cygwin on Windows</title>
         <link>http://eclipsesource.com/blogs/2010/03/03/shared-libraries-with-eclipse-cdt-and-cygwin-on-windows/</link>
         <description>&amp;#8220;Can you help me use shared libraries with Eclipse CDT, managed make and cygwin?&amp;#8220;, I was asked yesterday. Read on for a list of common pitfalls and detailed instructions. The instructions are based on the latest CDT release (Galileo) and cygwin (make 3.81, gcc 3.4.4). They are applicable to CDT&amp;#8217;s managed make projects (that means CDT [...]</description>
         <guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3829</guid>
         <pubDate>Tue, 02 Mar 2010 23:55:07 +0000</pubDate>
         <content:encoded><![CDATA[<p>&#8220;<strong>Can you help me use shared libraries with Eclipse CDT, managed make and cygwin?</strong>&#8220;, I was asked yesterday. Read on for a list of common pitfalls and detailed instructions.</p>
<p>The instructions are based on the latest CDT release (Galileo) and cygwin (make 3.81, gcc 3.4.4). They are applicable to CDT&#8217;s managed make projects (that means CDT generates a makefile to build project).</p>
<h3>The Pitfalls</h3>
<p>It turns out that using a shared library on Windows is not as straight forward as you think. There are several pitfalls waiting for the unaware to fall into:</p>
<p>1. Recent versions of cygwin&#8217;s make insist on cygwin-style paths instead of windows paths (/cygdrive/c/foo instead of c:&#92;foo). CDT is not picky about this and will generate an incorrect makefile, if you use workspace relative paths:</p>
<pre>make all
example.d:1: *** multiple target patterns.  Stop.</pre>
<p>The <a rel="nofollow" target="_blank" href="http://dreamlusion.wordpress.com/2008/07/12/multiple-target-patterns-using-cdt-50/">solution</a> is to use absolute cygwin paths, such as: /cygdrive/c/workspace/mymath</p>
<p>2. The compiler and linker will not find the header files / library unless you set the appropriate parameters. The compiler needs an include path (-I). The linker needs the library name (-l) and library search path (-L). These settings are scattered in two places in the project properties. Their location is not obvious for a first-time user (details below).</p>
<p>3. When launching, Windows will not find the shared library (.dll) and greet you with the error pictured below. Unix users might try to set the LD_LIBRARY_PATH, which has no effect on Windows. The solution is to append the directory containing the .dll to the PATH (<a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/7d83bc18(VS.71).aspx">MSDN Article</a>). <strong>Restart Eclipse for the changed PATH to take effect.</strong></p>
<p><a rel="nofollow" target="_blank" href="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/example_stopped_working.png"><img class="size-full wp-image-3831 alignnone" title="example_stopped_working" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/example_stopped_working.png" alt="example stopped working Shared libraries with Eclipse CDT and cygwin on Windows" width="366" height="183"/></a></p>
<p>The remainder of the post walks you through the process of creating and using a simple shared library with cygwin and CDT.</p>
<h3>Creating a Shared Library with CDT</h3>
<p>Follow these instructions to create a shared library project with CDT.</p>
<p>1. File &gt; New &gt; Project &gt; C Project &gt; Next. Project name: mymath. Ensure &#8220;use default location&#8221; is checked. Note the location: c:&#92;workspace&#92;mymath &#8212; we&#8217;ll need it later. Project type: Shared Library; Empty Project. Hit Finish.</p>
<p><img class="alignnone size-full wp-image-3855" title="02_lib_project" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/02_lib_project.png" alt="02 lib project Shared libraries with Eclipse CDT and cygwin on Windows" width="470" height="526"/></p>
<p>2. Create a header file (mymath.h) and the corresponding implementation (mymath.c). The example below provides a trivial function that multiplies two integers:</p>
<p><img class="alignnone size-full wp-image-3856" title="03_mymath_c" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/03_mymath_c.png" alt="03 mymath c Shared libraries with Eclipse CDT and cygwin on Windows" width="261" height="332"/></p>
<p>3. Afterwards save and hit Ctrl+B (or Project &gt; Build All) to build the library. If cygwin is on your path, you should see a &#8220;Release&#8221; folder in your project containing the file &#8220;mymath.dll&#8221;.</p>
<p><img class="alignnone size-full wp-image-3857" title="04_mymath_dll" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/04_mymath_dll.png" alt="04 mymath dll Shared libraries with Eclipse CDT and cygwin on Windows" width="221" height="295"/></p>
<p>4. For windows to find the shared library, you need to add the directory containing the .dll to your path. On Vista this can be done via: Control Panel &gt; User Accounts &gt; User Accounts &gt; Change my environment variables.</p>
<p><img class="alignnone size-full wp-image-3858" title="05_change_path" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/05_change_path.png" alt="05 change path Shared libraries with Eclipse CDT and cygwin on Windows" width="447" height="520"/></p>
<p>5. Exit and restart Eclipse after changing the PATH. Otherwise the changes will not be picked up.</p>
<h3>Using a Shared Library with CDT</h3>
<p>Follow these instructions to use a shared library in a &#8220;managed make&#8221; CDT project.</p>
<p>1. File &gt; New &gt; Project &gt; C Project &gt; Next. Project name: example. Project type: Executable; Empty Project. Hit Finish.</p>
<p><img class="alignnone size-full wp-image-3861" title="06_example_project" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/06_example_project.png" alt="06 example project Shared libraries with Eclipse CDT and cygwin on Windows" width="534" height="492"/></p>
<p>2. In that project create a file named example.c with the following content:</p>
<p><img class="alignnone size-full wp-image-3862" title="07_example_c" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/07_example_c.png" alt="07 example c Shared libraries with Eclipse CDT and cygwin on Windows" width="367" height="177"/></p>
<p>3. Save and hit Ctrl+B to build the project. The second line will have an error: &#8220;mymath.h: No such file or directory&#8221;. We now have to adjust the compiler and linker settings so that the mymath.h / mymath.dll files are found during the build.</p>
<p>4. Select the &#8220;example&#8221; folder in the Project Explorer. Select &#8220;Project &gt; Properties&#8221; from the menu. A dialog comes up. In the tree on the left open: &#8220;C/C++ General &gt; Paths and Symbols&#8221;. In the &#8220;Languages&#8221; list, pick &#8220;GNU C&#8221;. Then hit &#8220;Add&#8221;. Enter the cygwin-style path to the &#8220;mymath&#8221; project: <strong>/cygdrive/c/workspace/mymath</strong></p>
<p>Caution: When entering the path, don&#8217;t use the &#8220;Workspace&#8221; or &#8220;File system&#8221; buttons because the resulting path will not be compatible with cygwin&#8217;s make.</p>
<p><img class="alignnone size-full wp-image-3864" title="09_include_path" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/09_include_path.png" alt="09 include path Shared libraries with Eclipse CDT and cygwin on Windows" width="765" height="552"/></p>
<p>5. In the same dialog select: C/C++ Build &gt; Settings in the tree on the left. In the &#8220;Tool Settings&#8221; tab find: &#8220;Cygwin C Linker &gt; Libraries&#8221;. Hit the &#8220;+&#8221; icon in the &#8220;Libraries&#8221; section and add the name of the library: <strong>mymath</strong></p>
<p>Caution: if your shared library starts with lib, omit the &#8216;lib&#8217; prefix (i.e. libfoo becomes foo)</p>
<p>Hit the &#8220;+&#8221; icon in the &#8220;Library search path&#8221; section and add the path to the folder containing the shared library: <strong>/cygdrive/c/workspace/mymath/Debug</strong></p>
<p><img class="alignnone size-full wp-image-3867" title="10_library_path" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/10_library_path.png" alt="10 library path Shared libraries with Eclipse CDT and cygwin on Windows" width="765" height="522"/></p>
<p>Hit OK.</p>
<p>6. You will be asked to rebuild the project. Answer &#8220;Yes&#8221;, but for some reason this will not rebuild your project. Hit Ctrl+B to rebuild. The error will go away.</p>
<p><img class="alignnone size-full wp-image-3866" title="11_rebuild_dialog" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/11_rebuild_dialog.png" alt="11 rebuild dialog Shared libraries with Eclipse CDT and cygwin on Windows" width="532" height="177"/></p>
<p><img class="alignnone size-full wp-image-3863" title="08_example_c_with_warning" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/08_example_c_with_warning.png" alt="08 example c with warning Shared libraries with Eclipse CDT and cygwin on Windows" width="551" height="312"/></p>
<p>Note: ignore the &#8220;unresolved inclusion&#8221; warning. It seems that CDT has trouble resolving cygwin-style paths. The generated make-file however will work as expected.</p>
<p>7. Select &#8220;example&#8221; in the Project Explorer. Right-click &gt; Run As &gt; Local C/C++ Application. At this point you see the result of the multiplication on the console. That means that the shared library was found and used successfully:</p>
<p><img class="alignnone size-full wp-image-3865" title="12_console" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/03/12_console.png" alt="12 console Shared libraries with Eclipse CDT and cygwin on Windows" width="550" height="96"/></p>
<p>Kind regards,<br />
Elias.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=0wu6LdYn6DM:6_yrEvHdgTg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=0wu6LdYn6DM:6_yrEvHdgTg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=0wu6LdYn6DM:6_yrEvHdgTg:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Riena meets Eclipse RAP, goes to Browser</title>
         <link>http://eclipsesource.com/blogs/2010/02/20/riena-meets-eclipse-rap-goes-to-browser/</link>
         <description>I&amp;#8217;ve spend the last few days adjusting the Ridget layer in Riena, to make it work with Eclipse RAP and Eclipse RCP. We call this process &amp;#8220;single-sourcing&amp;#8221; (EclipseCon tutorial). Ridgets wrap around standard SWT / RWT controls to provide additional functionality and a better API. One example that you can see below: Ridgets have &amp;#8220;markers&amp;#8221;, which [...]</description>
         <guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3803</guid>
         <pubDate>Sat, 20 Feb 2010 00:27:32 +0000</pubDate>
         <content:encoded><![CDATA[<p>I&#8217;ve spend the last few days adjusting the Ridget layer in <a rel="nofollow" target="_blank" href="http://www.eclipse.org/riena/">Riena</a>, to make it work with Eclipse RAP <strong>and</strong> Eclipse RCP. We call this process &#8220;single-sourcing&#8221; (<a rel="nofollow" target="_blank" href="http://www.eclipsecon.org/2010/sessions/?page=sessions&amp;id=1464">EclipseCon tutorial</a>).</p>
<p><strong>Ridgets</strong> wrap around standard SWT / RWT controls to provide additional functionality and a better API. One example that you can see below: Ridgets have &#8220;markers&#8221;, which tag a control as mandatory, wrong or read-only and change the control&#8217;s behavior accordingly.</p>
<p>It&#8217;s worth mentioning that all three screenshots run from <strong>the same </strong>code. The only difference is the target environment used (RAP or RCP).</p>
<div id="attachment_3804" class="wp-caption aligncenter" style="width:310px;"><a rel="nofollow" target="_blank" href="http://eclipsesource.com/blogs/wp-content/uploads/2010/02/rap_riena_1.png"><img class="size-medium wp-image-3804" title="rap_riena_1" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/02/rap_riena_1-300x240.png" alt="rap riena 1 300x240 Riena meets Eclipse RAP, goes to Browser" width="300" height="240"/></a><p class="wp-caption-text">Ridgets styled with RAP&#39;s &quot;business&quot; theme</p></div>
<div id="attachment_3805" class="wp-caption aligncenter" style="width:310px;"><a rel="nofollow" target="_blank" href="http://eclipsesource.com/blogs/wp-content/uploads/2010/02/rap_riena_2.png"><img class="size-medium wp-image-3805" title="rap_riena_2" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/02/rap_riena_2-300x208.jpg" alt="rap riena 2 300x208 Riena meets Eclipse RAP, goes to Browser" width="300" height="208"/></a><p class="wp-caption-text">Ridgets styled with RAP&#39;s &quot;classic&quot; theme</p></div>
<div id="attachment_3806" class="wp-caption aligncenter" style="width:310px;"><a rel="nofollow" target="_blank" href="http://eclipsesource.com/blogs/wp-content/uploads/2010/02/rcp_riena.png"><img class="size-medium wp-image-3806" title="rcp_riena" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/02/rcp_riena-300x205.jpg" alt="rcp riena 300x205 Riena meets Eclipse RAP, goes to Browser" width="300" height="205"/></a><p class="wp-caption-text">Ridgets in a regular RCP application</p></div>
<p>Once this work is completed the Ridget API will be usable for RAP applications as well.</p>
<p>To stay informed about this effort:</p>
<ul>
<li>CC yourself to <a rel="nofollow" target="_blank" href="http://bugs.eclipse.org/302893">Bug 302893</a>, and</li>
<li>come to our EclipseCon talk &#8220;<a rel="nofollow" target="_blank" href="http://www.eclipsecon.org/2010/sessions/?page=sessions&amp;id=1182">Riena 2.0 - New &amp; Noteworthy</a>&#8220;</li>
</ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=qLS535oDHt8:MQzTzK8-ef4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=qLS535oDHt8:MQzTzK8-ef4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=qLS535oDHt8:MQzTzK8-ef4:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
      </item>
      <item>
         <title>The Ribbon IDE - a leaner, modern UI for Eclipse</title>
         <link>http://eclipsenuggets.blogspot.com/2009/12/ribbon-ide-leaner-modern-ui-for-eclipse.html</link>
         <description>Here's a short video about integrating the &lt;a rel="nofollow" target="_blank" href="http://hexapixel.com/projects/ribbon"&gt;Hexapixel Ribbon&lt;/a&gt; widget into Eclipse. I'm working on this over the holidays. It will be available for free under EPL.&lt;br /&gt;&lt;br /&gt;If you like this, please vote for my &lt;a rel="nofollow" target="_blank" href="https://www.eclipsecon.org/submissions/2010/view_talk.php?id=1510"&gt;EclipseCon submission&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.volanakis.de/ribbonide/bootstrap.swf" width="1123" height="810" type="application/x-shockwave-flash"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Don't see the video? &lt;a rel="nofollow" target="_blank" href="http://eclipsenuggets.blogspot.com/2009/12/ribbon-ide-leaner-modern-ui-for-eclipse.html"&gt;Click here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-2464735307974704950?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=bXCyipSV_G8:MfG0GElmZTE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=bXCyipSV_G8:MfG0GElmZTE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=bXCyipSV_G8:MfG0GElmZTE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-2464735307974704950</guid>
         <pubDate>Sat, 19 Dec 2009 07:00:00 +0000</pubDate>
      </item>
      <item>
         <title>Eclipse Bug Patterns -- The selfish VerifyListener</title>
         <link>http://eclipsenuggets.blogspot.com/2008/10/eclipse-bug-patterns-selfish-validation.html</link>
         <description>Here's a bug pattern I ran into the other day. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let say we want to create a text field that accepts only digits:&lt;/div&gt;&lt;pre class="java"&gt;&lt;br /&gt; final Text text = new Text(shell, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;&lt;br /&gt; VerifyListener onlyNumbers = new VerifyListener() {&lt;br /&gt;   public void verifyText(VerifyEvent e) {&lt;br /&gt;     e.doit = Character.isDigit(e.character);&lt;br /&gt;   }&lt;br /&gt; };&lt;br /&gt; text.addVerifyListener(onlyNumbers);&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;A few weeks later the requirements change. We agree that the text field now accepts up to 10 digits. We add another VerifyListener as shown below.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Can you spot what's wrong with this code?&lt;/div&gt;&lt;pre class="java"&gt;&lt;br /&gt; final Text text = new Text(shell, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;&lt;br /&gt; VerifyListener onlyNumbers = new VerifyListener() {&lt;br /&gt;   public void verifyText(VerifyEvent e) {&lt;br /&gt;     e.doit = Character.isDigit(e.character);&lt;br /&gt;   }&lt;br /&gt; };&lt;br /&gt; text.addVerifyListener(onlyNumbers);&lt;br /&gt;&lt;br /&gt; VerifyListener maxLengthTen = new VerifyListener() {&lt;br /&gt;   public void verifyText(VerifyEvent e) {&lt;br /&gt;     String newText = getText(e);&lt;br /&gt;     e.doit = newText.length() &amp;lt;= 10;&lt;br /&gt;   }&lt;br /&gt;};&lt;br /&gt;text.addVerifyListener(maxLengthTen);&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight:bold;"&gt;The problem&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Both VerifyListeners are 'selfish'. They assume that each listener is the only one manipulating the e.doit flag (which has a true value by default). When e.doit is set to false, it blocks the modification of the text widget. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, when there is more than one VerifyListener, e.doit might already be false. By ignoring this -- and setting e.doit back to true -- the listeners unintentionally permit operations which would otherwise have been blocked.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight:bold;"&gt;The solution&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The solution is simple: always add a 'guard clause' to the top of the verifyText() method. It may seem unnecessary now, but you newer know if more VerifyListeners are going to be added to the widget at some point.&lt;/div&gt;&lt;pre class="java"&gt;&lt;br /&gt; final Text text = new Text(shell, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;&lt;br /&gt; VerifyListener onlyNumbers = new VerifyListener() {&lt;br /&gt;   public void verifyText(VerifyEvent e) {&lt;br /&gt;     if (e.doit == false) {&lt;br /&gt;       return;&lt;br /&gt;     }&lt;br /&gt;     e.doit = Character.isDigit(e.character);&lt;br /&gt;   }&lt;br /&gt; };&lt;br /&gt; text.addVerifyListener(onlyNumbers);&lt;br /&gt;&lt;br /&gt; VerifyListener maxLengthTen = new VerifyListener() {&lt;br /&gt;   public void verifyText(VerifyEvent e) {&lt;br /&gt;     if (e.doit == false) {&lt;br /&gt;       return;&lt;br /&gt;     }&lt;br /&gt;     String newText = getText(e);&lt;br /&gt;     e.doit = newText.length() &amp;lt;= 10;&lt;br /&gt;   }&lt;br /&gt;};&lt;br /&gt;text.addVerifyListener(maxLengthTen);&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Happy hacking,&lt;/div&gt;&lt;div&gt;Elias&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-6035282507825065746?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=9UxiLnTBlqA:vVfdzda6uVg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=9UxiLnTBlqA:vVfdzda6uVg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=9UxiLnTBlqA:vVfdzda6uVg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-6035282507825065746</guid>
         <pubDate>Fri, 17 Oct 2008 16:17:00 +0000</pubDate>
      </item>
      <item>
         <title>Showing different images for expanded / collapsed nodes of a JFace TreeViewer</title>
         <link>http://eclipsenuggets.blogspot.com/2008/07/showing-different-images-for-expanded_1942.html</link>
         <description>Did you ever want a JFace TreeViewer that shows different icons depending on the expanded / collapsed state of a node? The animation below shows what I mean:&lt;br /&gt;&lt;div&gt;&lt;img id="fb:6" style="width:300px;height:200px;" src="http://docs.google.com/File?id=dgmxkzdm_123xhhhnsf2_b"/&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Different images are shown in the tree, depending on the state of each node:&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img id="oh2a" style="width:16px;height:16px;vertical-align:middle;" src="http://docs.google.com/File?id=dgmxkzdm_120v5c2qrcg_b"/&gt; — collapsed node &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img id="b56s" style="width:16px;height:16px;vertical-align:middle;" src="http://docs.google.com/File?id=dgmxkzdm_121g8mgpzdq_b"/&gt; — expanded node &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img id="s3tp" style="width:16px;height:16px;vertical-align:middle;" src="http://docs.google.com/File?id=dgmxkzdm_122ff4strch_b"/&gt; — leaf node&lt;br /&gt;&lt;br /&gt;So here is what you need to do:     &lt;ol id="zx6l3"&gt; &lt;li id="zx6l4"&gt;Create a &lt;a rel="nofollow" title="LabelProvider" target="_blank" href="http://help.eclipse.org/ganymede/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/jface/viewers/LabelProvider.html" id="d-e7"&gt;LabelProvider&lt;/a&gt; that returns different images based on the expanded state of an element:&lt;br /&gt;&lt;div style="background-color:rgb(255, 255, 153);"&gt;&lt;pre style="color:rgb(0, 0, 0);"&gt;&lt;b&gt;class&lt;/b&gt; NodeLabelProvider &lt;b&gt;extends&lt;/b&gt; LabelProvider {   &lt;br /&gt;&amp;nbsp;&amp;nbsp;// ...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;public&lt;/b&gt; Image getImage(Object element) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Image result = LEAF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Node node = (Node) element;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;if&lt;/b&gt; (node.hasChildren()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result = viewer.getExpandedState(node) ? NODE_EXPANDED : NODE_COLLAPSED;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;return&lt;/b&gt; result;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;&lt;li id="k95r"&gt;Create a &lt;a rel="nofollow" title="TreeListener" target="_blank" href="http://help.eclipse.org/ganymede/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/events/TreeListener.html" id="whqg"&gt;TreeListener&lt;/a&gt; to update the image when the users clicks on the plus or minus icon in the tree:&lt;br /&gt;&lt;div style="background-color:rgb(255, 255, 153);"&gt;&lt;pre style="color:rgb(0, 0, 0);"&gt;&lt;b&gt;class&lt;/b&gt; UpdateIconTreeListener &lt;b&gt;implements&lt;/b&gt; TreeListener {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;public void&lt;/b&gt; treeCollapsed(TreeEvent e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;updateImage((TreeItem) e.item, &lt;b&gt;true&lt;/b&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;public void&lt;/b&gt; treeExpanded(TreeEvent e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;updateImage((TreeItem) e.item, &lt;b&gt;false&lt;/b&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;private void&lt;/b&gt; updateImage(TreeItem item, &lt;b&gt;boolean&lt;/b&gt; isCollapsed) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Image image = isCollapsed ? NODE_COLLAPSED : NODE_EXPANDED;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;item.setImage(image);&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;&lt;li id="k95r0"&gt;Tree elements can be expanded/collapsed via Java code by calling methods such as &lt;span id="qwud" style="font-family:Courier New;"&gt;viewer.expandToLevel(Object, int)&lt;/span&gt; and &lt;span id="qwud0" style="font-family:Courier New;"&gt;viewer.collapseToLevel(Object, int)&lt;/span&gt;. Remember to manually trigger an update of the element's label (i.e. the image and text) in those cases:&lt;br /&gt;&lt;div style="background-color:rgb(255, 255, 153);"&gt;&lt;pre style="color:rgb(0, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;viewer.expandToLevel(node, 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;viewer.update(node, &lt;b&gt;null&lt;/b&gt;);&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;a rel="nofollow" title="Download the example project" target="_blank" href="http://www.volanakis.de/nuggets/example.threestatetree.zip?utm_source=eclipsenuggets&amp;amp;utm_medium=blog&amp;amp;utm_campaign=threestatetree" id="i0kp"&gt;Download the example project&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Happy hacking,&lt;br /&gt;Elias.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-2743801196931411683?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=i_ZgG4lmP4w:LNuFaz9DJQ0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=i_ZgG4lmP4w:LNuFaz9DJQ0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=i_ZgG4lmP4w:LNuFaz9DJQ0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-2743801196931411683</guid>
         <pubDate>Tue, 22 Jul 2008 18:30:00 +0000</pubDate>
      </item>
      <item>
         <title>Riena Milestone 3 ships new UI for RCP applications</title>
         <link>http://eclipsenuggets.blogspot.com/2008/07/riena-milestone-3-ships-new-ui-for-rcp.html</link>
         <description>The Eclipse Riena team quietly shipped M3 last week. This is a notable milestone for us because it is the first to include the "business-process oriented UI and navigation" that Riena is advocating as an alternative to the default workbench layout.&lt;br /&gt;&lt;br /&gt;&lt;img style="margin:0px auto 10px;text-align:center;" src="http://2.bp.blogspot.com/_1Rx7kFlzK2w/SHvKNEAAFhI/AAAAAAAAALY/MaBZSrjHbCI/s640/riena1.png" alt="" id="BLOGGER_PHOTO_ID_5222990518627079698" border="0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;So what is Riena?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For a full description read the &lt;a rel="nofollow" target="_blank" href="http://www.eclipse.org/proposals/riena/"&gt;Riena proposal&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Some aspects of Riena that I find interesting: It tries to provide a simple UI-metaphor that caters more to the needs of business users. It tries to pave the road for UI-developers by providing high-level APIs for common UI programming tasks like using the data binding, rule-based validation and UI-markers (see screenshot).&lt;br /&gt;&lt;br /&gt;To try it out, go to the &lt;a rel="nofollow" target="_blank" href="http://wiki.eclipse.org/Riena_Getting_started"&gt;Riena Getting Started page&lt;/a&gt; to grab Milestone 3. Note that M3 is still based on &lt;span style="font-weight:bold;"&gt;Eclipse 3.3&lt;/span&gt;. The screenshot above is from the "SWT Example Application" in org.eclipse.riena.example.client.&lt;br /&gt;&lt;br /&gt;Progress is being made rapidly, so expect more interesting stuff to come in the next milestones.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Elias.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-705630419218264979?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=hEsfLAwOWhs:jJFnXfU5x1c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=hEsfLAwOWhs:jJFnXfU5x1c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=hEsfLAwOWhs:jJFnXfU5x1c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-705630419218264979</guid>
         <pubDate>Mon, 14 Jul 2008 20:01:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://2.bp.blogspot.com/_1Rx7kFlzK2w/SHvKNEAAFhI/AAAAAAAAALY/MaBZSrjHbCI/s72-c/riena1.png" width="72" />
      </item>
      <item>
         <title>Web-based IDEs? Less far-fetched than you think.</title>
         <link>http://eclipsenuggets.blogspot.com/2008/04/web-based-ides-less-far-fetched-than.html</link>
         <description>Do you remember the Eclipse 4.0 "prototype" shown at the EclipseCon? Yes, the web-based Eclipse workbench? I must admit that I've not been very convinced that a web-based IDE would have much practical appeal. However seeing the &lt;a rel="nofollow" title="screencasts for Heroku" target="_blank" href="http://heroku.com/features" id="a.xv"&gt;demo videos&lt;/a&gt; for &lt;a rel="nofollow" title="Heroku" target="_blank" href="http://heroku.com/" id="rou7"&gt;Heroku&lt;/a&gt; - &lt;span style="font-weight:bold;" id="k0mf"&gt;a web-based &lt;/span&gt;&lt;span style="font-weight:bold;"&gt;IDE&lt;/span&gt;&lt;span style="font-weight:bold;" id="hxfp"&gt; and hosting environment for Ruby&lt;/span&gt; on Rails applications - has changed my mind.&lt;br /&gt;&lt;div id="pcqt" style="padding:1em 0pt;text-align:left;"&gt;&lt;div id="jcc2" style="padding:1em 0pt;text-align:left;"&gt;&lt;img id="j0rh" style="width:329px;height:125px;" src="http://docs.google.com/File?id=dgmxkzdm_108fzjdtdsq_b"/&gt;&lt;/div&gt;&lt;div id="ilvw" style="padding:1em 0pt;text-align:left;"&gt;&lt;img id="spwy" style="width:330px;height:198px;" src="http://docs.google.com/File?id=dgmxkzdm_109dmjqd8hf_b"/&gt;&lt;/div&gt;&lt;div id="gelr" style="padding:1em 0pt;text-align:left;"&gt;&lt;img id="jh2e" style="width:330px;height:131px;" src="http://docs.google.com/File?id=dgmxkzdm_110fvhvfmfd_b"/&gt; &lt;/div&gt;&lt;br /&gt;After all if the app has to be on the web and source == binary (Ruby is interpreted), why not put the IDE on the web too? Having the tools, the code and the runtime environment on-line makes several things easier:  &lt;ul id="gk4v"&gt;&lt;li id="rs28"&gt;Start working in a snap: Instant access to the source code from anywhere. No need to set-up an IDE. No need to set-up a local Ruby on Rails environment. No need to check out any code. Your data is there.&lt;/li&gt;&lt;li id="rs28"&gt;Instant collaboration: create a developer account. Send link to log-in page to developer. Start collaborating. (I hope it will support collaborative editing). &lt;/li&gt;&lt;li id="rs28"&gt;Deployment of the app is trivial. No need to find and configure a suitable server. &lt;/li&gt;&lt;li id="rs28"&gt;The "hosted-everything" aspect could make a great "source-forge-with-hosting" combo. Imagine finding a good web-application and just having to click on "deploy and run this on my account" for giving it a test drive.&lt;/li&gt;&lt;/ul&gt; This seems to be an excellent fit for Ruby and I'm looking forward to giving it a &lt;a rel="nofollow" target="_blank" href="http://heroku.com/beta"&gt;test-drive&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now, how does it apply to Java web-apps?&lt;br /&gt;&lt;br /&gt;Food-for-thought,&lt;br /&gt;Elias.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:rgb(102, 102, 102);font-size:78%;" id="o.mp"&gt;Image Source:  Heruko Demo Videos - (c) Copyright 2008 Heroku.com.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-2627239981837340562?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=TnNx97FhAsU:ETmMgdCNoc0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=TnNx97FhAsU:ETmMgdCNoc0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=TnNx97FhAsU:ETmMgdCNoc0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-2627239981837340562</guid>
         <pubDate>Thu, 10 Apr 2008 20:42:00 +0000</pubDate>
      </item>
      <item>
         <title>Getting Auto-Resizing TableColumns the Easy Way</title>
         <link>http://eclipsenuggets.blogspot.com/2007/11/one-of-less-prominent-novelties-in.html</link>
         <description>&lt;p&gt;&lt;br /&gt;&lt;embed name="csSWF" src="http://www.volanakis.de/nuggets/resize.swf" width="352" height="226" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;One of the less prominent novelties in Eclipse 3.3 is the new and shining &lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/jface/layout/TableColumnLayout.html"&gt;TableColumnLayout&lt;/a&gt;, &lt;b&gt;which re-adjusts the column widths in a table automatically when that table is resized&lt;/b&gt;. Previously this was only possible by installing a ControlListener and doing the required work yourself (*ouch*). Read on to learn how you can use it to save yourself some work.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Using the TableColumnLayout&lt;/b&gt; &lt;/p&gt;&lt;div style="MARGIN-LEFT:40px;"&gt;&lt;table id="i0qx" cellspacing="0" cellpadding="3" width="100%" border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;p&gt;&lt;p&gt;&lt;/p&gt;&lt;td style="COLOR:#ffffcc;BACKGROUND-COLOR:rgb(255,255,153);" width="100%"&gt;&lt;p style="MARGIN-BOTTOM:0cm;"&gt;&lt;span style="color:#3f7f5f;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;// 1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;Composite comp = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt; Composite(shell, SWT.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000c0;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;NONE&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;Table table = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt; Table(comp, SWT.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000c0;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;BORDER&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt; SWT.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000c0;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;V_SCROLL&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;table.setHeaderVisible(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;true&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;table.setLinesVisible(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;true&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3f7f5f;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;// 2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;TableColumn column1 = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt; TableColumn(table, SWT.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000c0;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;NONE&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;column1.setText(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;"Column 1"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;TableColumn column2 = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt; TableColumn(table, SWT.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000c0;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;NONE&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;column2.setText(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;"Column 2"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3f7f5f;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;// 3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;TableColumnLayout layout = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt; TableColumnLayout();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;comp.setLayout( layout );&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#3f7f5f;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;// 4&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;layout.setColumnData( column1, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt; ColumnWeightData( 30 ) );&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;layout.setColumnData( column2, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt; ColumnWeightData( 60 ) );&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;p&gt;&lt;/p&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;One peculiar thing about the TableColumnLayout is that you &lt;b&gt;do &lt;/b&gt;&lt;b&gt;not &lt;/b&gt;apply it to the Table directly. Instead the Table has to be inside a composite that contains only the Table and nothing but the Table. See also Step 3.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;We then proceed and create the TableColumns normally.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;We create a TableColumnLayout and &lt;b&gt;set it onto the containing Composite.&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;li&gt;Using &lt;span style="font-family:Courier New;"&gt;layout.setColumnData(...)&lt;/span&gt; we associate &lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/jface/viewers/ColumnWeightData.html"&gt;ColumnWeightData&lt;/a&gt; instances with each column in the Table. Those objects specify how the width is distributed amongst the columns in the table. The most common constructor is &lt;tt&gt;new ColumnWeightData( &lt;i&gt;weight&lt;/i&gt; )&lt;/tt&gt;, where &lt;tt&gt;&lt;i&gt;weight&lt;/i&gt;&lt;/tt&gt; is an integer that controls the relative width of the column (i.e. &lt;i&gt;relativeWidth&lt;/i&gt; = &lt;i&gt;weight&lt;/i&gt; / sum( &lt;i&gt;weights of all columns&lt;/i&gt; ) ). &lt;span style="COLOR:rgb(102,102,102);"&gt;By the way, you could also use ColumnPixelData to associate a fixed width with a column but since we want auto-resizing columns we'll skip that.&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;To see how much work we saved compare &lt;a rel="nofollow" target="_blank" href="http://www.volanakis.de/nuggets/Snippet77withTableColumnLayout.java"&gt;our snippet&lt;/a&gt; with an &lt;a rel="nofollow" target="_blank" href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet77.java"&gt;SWT-Snippet using a Control Listener&lt;/a&gt; to do the same job.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Known Limitations&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Before you start using the TableColumnLayout you should also be aware of the following limitations: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;the minimumWidth and (non)resizable settings of the ColumnWeightData are not supported properly&lt;/li&gt;&lt;li&gt;the layout stops resizing columns that have been resized manually by the user (this could be considered a feature though)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;Snippets &lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://www.volanakis.de/nuggets/Snippet77withTableColumnLayout.java"&gt;Full TableColumnLayout Example&lt;/a&gt; (from above) &lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jface.snippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippets/layout/Snippet016TableLayout.java?view=markup"&gt;TableColumnLayout JFace Snippet&lt;/a&gt; &lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jface.snippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippets/layout/Snippet027TreeLayout.java?view=markup"&gt;TreeColumnLayout JFace Snippet&lt;/a&gt; (this is the equivalent layout but for Trees) &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-6085185867686255036?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=x1nTTspJGEY:P1hFpKgN5EU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=x1nTTspJGEY:P1hFpKgN5EU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=x1nTTspJGEY:P1hFpKgN5EU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-6085185867686255036</guid>
         <pubDate>Mon, 05 Nov 2007 20:50:00 +0000</pubDate>
      </item>
      <item>
         <title>Does your Eclipse 3.3.1 crash frequently? Here is help.</title>
         <link>http://eclipsenuggets.blogspot.com/2007/10/does-your-eclipse-3.html</link>
         <description>&lt;img id="vgqd" src="http://docs.google.com/File?id=dgmxkzdm_75cms7njr8" style="margin:1em 1em 0pt 0pt;width:120px;height:120px;float:left;"/&gt;&lt;br /&gt;&lt;br /&gt;Are you &lt;b&gt;running Eclipse 3.3.1&lt;/b&gt; on &lt;b&gt;Windows&lt;/b&gt; using a &lt;b&gt;Sun JVM&lt;/b&gt;? &lt;span style="font-weight:bold;"&gt;Does it crash frequently?&lt;/span&gt; Then you are probably affected by a combination of a low PermGen size on Sun VMs (64mb by default) and Bug #&lt;a rel="nofollow" title="Wrong eclipse.ini configuration for PermGen " target="_blank" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=203325" id="hge8"&gt;203325&lt;/a&gt;. Read on for instructions on how to mitigate this.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update 7/19/2010: &lt;/b&gt;Eclipse (any version) and Java 6u21 has a similar problem causing frequent crashes. Be sure to change the eclipse.ini to use &lt;span class="Apple-style-span" style="font-family:monospace;font-size:12px;line-height:14px;white-space:pre;"&gt;-XX:MaxPermSize=256m&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Wait what is PermGen anyway? &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;PermGen stands for permanent generation and is the memory used to hold "&lt;span style="font-style:italic;"&gt;data needed by the virtual machine to describe objects that do not have an equivalence at the Java language level. For example objects describing classes and methods are stored in the permanent generation&lt;/span&gt;" (&lt;a rel="nofollow" title="Tuning Garbage Collection with the 5.0 Java[tm] Virtual Machine" target="_blank" href="http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html" id="d51m"&gt;related article&lt;/a&gt;). As it turns out the default size of 64m on Sun VMs is rather low for large apps like Eclipse. I tend to hit that barrier within 30 minutes. Normally the Eclipse command line arguments set the size to 256m, but Bug #203325 in Eclipse 3.3.1 prevents this. I was hit by this right after I upgraded to 3.3.1 this week. Fortunately, I was aware of the issue thanks to a &lt;a rel="nofollow" title="discussion about  OutOfMemory Errors" target="_blank" href="http://www.eclipsezone.com/eclipse/forums/t102096.html?start=0" id="uq47"&gt;discussion about  OutOfMemory Errors&lt;/a&gt; at EclipseZone.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Here is what you can do:&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Edit your eclipse.ini&lt;/b&gt; &lt;b&gt;to replace the --launcher.XXMaxPermSize 256m entries with the a working equivalent. &lt;/b&gt;Remember: on Windows with Sun VMs only. If you are using larger software stacks (i.e. Webtools) you may even want to increase the size beyond 256m. The FAQ entry "&lt;a rel="nofollow" title="How do I increase the permgen size available to Eclipse" target="_blank" href="http://wiki.eclipse.org/FAQ_How_do_I_increase_the_permgen_size_available_to_Eclipse%3F" id="h0es"&gt;How do I increase the PermGen size available to Eclipse&lt;/a&gt;" has the background information.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;table id="zfyb" border="1" cellpadding="3" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="50%"&gt;&lt;span style="font-family:Courier New;"&gt;Modified eclipse.ini&lt;/span&gt;&lt;/td&gt;&lt;td width="50%"&gt;&lt;span style="font-family:Courier New;"&gt;Original eclipse.ini&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="50%"&gt;&lt;span style="font-family:Courier New;"&gt;-showsplash&lt;/span&gt; &lt;span style="font-family:Courier New;"&gt;org.eclipse.platform&lt;/span&gt; &lt;span style="font-family:Courier New;"&gt;&lt;br /&gt;-vmargs&lt;/span&gt; &lt;span style="color:rgb(255, 0, 0);"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;br /&gt;-XX:MaxPermSize=256m&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;-Xms40m&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;-Xmx256m&lt;/span&gt;&lt;/td&gt;&lt;td width="50%"&gt;&lt;table id="xkrs" border="0" cellpadding="3" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-family:Courier New;"&gt;-showsplash&lt;/span&gt; &lt;span style="font-family:Courier New;"&gt;org.eclipse.platform&lt;/span&gt; &lt;span style="color:rgb(255, 0, 0);"&gt;&lt;span style="font-family:Courier New;"&gt;--launcher.XXMaxPermSize&lt;/span&gt; &lt;span style="font-family:Courier New;"&gt;&lt;br /&gt;256m&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;-vmargs&lt;/span&gt; &lt;span style="font-family:Courier New;"&gt;&lt;br /&gt;-Xms40m&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;-Xmx256m&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Visit Bug #&lt;/b&gt;&lt;a rel="nofollow" title="Wrong eclipse.ini configuration for PermGen size" target="_blank" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=203325" id="ztxq"&gt;&lt;b&gt;203325&lt;/b&gt;&lt;/a&gt;&lt;b&gt; to keep up with current developments&lt;/b&gt;. The issue has been fixed for the 3.3.2 service release, but there is a discussion going on about ways to make this fix available earlier.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Safety belt: &lt;a rel="nofollow" title="How to save the Eclipse UI (workbench state) when YOU like" target="_blank" href="http://eclipsenuggets.blogspot.com/2007/09/how-to-save-eclipse-ui-workbench-state_6644.html" id="ht_-"&gt;How to save the Eclipse UI (workbench state) when YOU like&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-1643426709306224576?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=jUI-m6eApGU:bZkySRhZ4zs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=jUI-m6eApGU:bZkySRhZ4zs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=jUI-m6eApGU:bZkySRhZ4zs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-1643426709306224576</guid>
         <pubDate>Mon, 15 Oct 2007 11:14:00 +0000</pubDate>
      </item>
      <item>
         <title>RAP Talk at the Portland Java User Group (Oct 16th)</title>
         <link>http://eclipsenuggets.blogspot.com/2007/10/rap-talk-at-portland-java-user-group.html</link>
         <description>Are you curious about the &lt;a rel="nofollow" target="_blank" href="http://www.eclipse.org/rap"&gt;Eclipse Rich Ajax Platform&lt;/a&gt; and &lt;span style="font-weight:bold;"&gt;based in&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;Oregon / Washington?&lt;/span&gt; Then consider attending my talk "&lt;span class="speaker"&gt;&lt;a rel="nofollow" target="_blank" href="http://www.pjug.org/"&gt;Java-based web-apps with the Eclipse Rich Ajax Platform&lt;/a&gt;" at the Portland Java User Group (free of charge, sponsored pizza).&lt;br /&gt;&lt;br /&gt;During the talk I will:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;introduce RAP to an audience of Java Developers (no Eclipse knowledge assumed)&lt;/li&gt;&lt;li&gt;explain key concepts&lt;/li&gt;&lt;li&gt;point-out noteworthy features&lt;/li&gt;&lt;li&gt;demonstrate the complete cycle of creating a small RAP application&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="speakerContent"&gt;The talk is scheduled for &lt;span style="font-weight:bold;"&gt;Tue, Oct 16th, at  6:30 PM&lt;/span&gt; at the Oracle Downtown Campus.&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;a rel="nofollow" target="_blank" href="http://www.pjug.org/"&gt;Directions and more info...&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;See you there,&lt;br /&gt;Elias.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-5917289943571620282?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=uANNVz-4n8o:TfoeXEC6uAI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=uANNVz-4n8o:TfoeXEC6uAI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=uANNVz-4n8o:TfoeXEC6uAI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-5917289943571620282</guid>
         <pubDate>Mon, 08 Oct 2007 15:56:00 +0000</pubDate>
      </item>
      <item>
         <title>How to save the Eclipse UI (workbench state) when YOU like</title>
         <link>http://eclipsenuggets.blogspot.com/2007/09/how-to-save-eclipse-ui-workbench-state_6644.html</link>
         <description>&lt;img id="vgqd" src="http://docs.google.com/File?id=dgmxkzdm_75cms7njr8" style="margin:1em 1em 0pt 0pt;width:120px;height:120px;float:left;"/&gt;&lt;br /&gt;At yesterday's &lt;a rel="nofollow" target="_blank" href="http://barcamp.org/BarCampPortlandMeetups" id="h02m" title="Portland BarCamp Meetup"&gt;Portland BarCamp Meetup&lt;/a&gt;, I was confronted with an interesting problem: David's Eclipse hangs / crashes frequently (probably that &lt;a rel="nofollow" target="_blank" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=153485" id="skil" title="pesky PermGen"&gt;pesky PermGen&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://sureshkrishna.wordpress.com/2007/09/28/help-me-with-permgenoutofmemoryexception/" id="cnkg" title="problem"&gt;issue&lt;/a&gt;) and when that happens the state of the Workbench is lost (i.e. which editors, views, windows are open) as it is only saved on shutdown. So we wrote a plug-in that periodically saves the UI state.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://docs.google.com/File?id=dgmxkzdm_739zrkchm" style="width:16px;height:16px;" align="absmiddle"/&gt; &lt;a rel="nofollow" target="_blank" href="http://www.volanakis.de/nuggets/example.saveuistate_1.0.0.jar" id="icf5" title="Download the plug-in here"&gt;Download the plug-in here&lt;/a&gt; (&lt;a rel="nofollow" target="_blank" href="http://www.volanakis.de/nuggets/example.saveuistate.zip" id="bsse" title="source code here"&gt;source code here&lt;/a&gt;). Eclipse 3.3 only!&lt;br /&gt;&lt;br /&gt;Here is what we did:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;     Since the UI state is saved when Eclipse shutdowns cleanly, we started by     looking at the &lt;span style="font-family:Courier New;"&gt;QuitAction&lt;/span&gt;. From     here we went on to     &lt;span style="font-family:Courier New;"&gt;PlatformUI.getWorkbench().close()&lt;/span&gt;.     A bit of exploration revealed that we need the methods in the snippet below.&lt;br /&gt;&lt;pre style="font-family:Courier New;background-color:rgb(255, 255, 153);"&gt;// org.eclipse.ui.internal.Workbench&lt;br /&gt;XMLMemento memento&lt;br /&gt;  = XMLMemento.createWriteRoot( IWorkbenchConstants.TAG_WORKBENCH );&lt;br /&gt;saveState( memento );&lt;br /&gt;saveMementoToFile( memento )&lt;br /&gt;&lt;/pre&gt;      &lt;div&gt;     &lt;/div&gt;  &lt;br /&gt;&lt;/li&gt;   &lt;li&gt;     As this code is internal, we copied it into an action which we added to the     coolbar. &lt;b&gt;Clicking on the "lock" icon will save the state of the     workbench.&lt;/b&gt; BTW copying internal code can come back and bite you, but we     ignored that in this case.&lt;br /&gt;  &lt;div id="o97f" style="padding:1em 0pt;text-align:left;"&gt;       &lt;img src="http://docs.google.com/File?id=dgmxkzdm_74hg2kpwf4" style="width:178px;height:34px;"/&gt;     &lt;/div&gt;  &lt;br /&gt;&lt;/li&gt;   &lt;li&gt;     &lt;b&gt;Then we made the plug-in save the UI state automatically.&lt;/b&gt; We added     an &lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/resources/IResourceChangeListener.html" id="nx.8" title="IResourceChangeListener"&gt;IResourceChangeListener&lt;/a&gt;     that is notified on POST_BUILD events. BTW this does not depend on the     "auto-build" setting. Our listener will save the workbench state every 5     minutes. The help topic     "&lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/guide/resAdv_events.htm" id="polb" title="Tracking Resource Changes"&gt;Tracking     Resource Changes&lt;/a&gt;" has more details. The listener is installed / removed     in the plug-in activator:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family:Courier New;background-color:rgb(255, 255, 153);"&gt;&lt;b&gt;public void&lt;/b&gt; start( BundleContext context ) throws Exception {&lt;br /&gt;  super.start( context );&lt;br /&gt;  // ...&lt;br /&gt;  rcListener = &lt;b&gt;new&lt;/b&gt; ResourceChangeListener();&lt;br /&gt;  IWorkspace workspace = ResourcesPlugin.getWorkspace();&lt;br /&gt;  workspace.addResourceChangeListener(&lt;br /&gt;    rcListener,&lt;br /&gt;    IResourceChangeEvent.POST_BUILD );&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;  &lt;br /&gt;&lt;/li&gt;   &lt;li&gt;     To make sure the plug-in is activated on start-up, we added a dummy     contribution to the     &lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/reference/extension-points/org_eclipse_ui_startup.html" id="gyd4" title="org.eclipse.ui.startup"&gt;org.eclipse.ui.startup&lt;/a&gt;     extension point.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;     &lt;b&gt;If you want to monitor the plug-in's activities on the console, you can     do that through a tracing option&lt;/b&gt;. Copy the following lines into a file     called .options, place it in your eclipse directory and launch     &lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;b&gt;eclipse     -debug&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;  &lt;/span&gt;     &lt;pre style="font-family:Courier New;background-color:rgb(255, 255, 153);"&gt;# file .options in eclipse directory&lt;br /&gt;example.saveuistate/debug = true&lt;br /&gt;&lt;/pre&gt;     &lt;span style="font-family:Verdana;"&gt;After doing a build you should see some     output like this:&lt;br /&gt;&lt;br /&gt;  &lt;span style="font-family:Verdana;"&gt;Fri Sep 28 08:54:17 PDT 2007 Starting     example.saveuistate&lt;/span&gt;   &lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;Fri Sep 28 08:54:30 PDT 2007 POST_BUILD     resource change&lt;/span&gt;   &lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;Fri Sep 28 08:54:30 PDT 2007 Saving     state.&lt;/span&gt;      &lt;/span&gt;   &lt;/li&gt; &lt;/ol&gt;&lt;br /&gt;Happy hacking,&lt;br /&gt;Elias.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color:rgb(102, 102, 102);"&gt;Image:  (c) Copyright 2007, table/&lt;/span&gt;&lt;a rel="nofollow" style="color:rgb(102, 102, 102);" title="photocase" target="_blank" href="http://photocase.de/en/" id="tvqp"&gt;photocase&lt;/a&gt;&lt;span style="color:rgb(102, 102, 102);"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-6382495782374087883?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=XNKgvNPx6Qw:yt6DtGV5xm8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=XNKgvNPx6Qw:yt6DtGV5xm8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=XNKgvNPx6Qw:yt6DtGV5xm8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-6382495782374087883</guid>
         <pubDate>Fri, 28 Sep 2007 03:09:00 +0000</pubDate>
      </item>
      <item>
         <title>6 Great Links for Eclipse Build Automation with PDE Build</title>
         <link>http://eclipsenuggets.blogspot.com/2007/09/6-great-links-for-eclipse-build.html</link>
         <description>&lt;b&gt;&lt;/b&gt;&lt;img style="margin:1em 1em 0pt 0pt;width:100px;height:100px;float:left;" src="http://docs.google.com/File?id=dgmxkzdm_71g5wn2zqh"/&gt;&lt;br /&gt;I was recently asked about some pointers for &lt;b&gt;automated building of plug-ins and RCP applications with PDE Build&lt;/b&gt;. For most people the obvious starting point is the "&lt;a rel="nofollow" target="_blank" href="http://www.eclipse.org/articles/Article-PDE-Automation/automation.html" id="aa6y" title="Build and Test Automation"&gt;Build and Test Automation&lt;/a&gt;" article on the Eclipse Corner, which was written in the Eclipse 3.0 time-frame and is now dated. Read on for pointers to more recent information.&lt;br /&gt;&lt;br /&gt;By the way, PDE Build is a collection of ant scripts and plug-in code that helps people do automated headless builds from the command line. It is also used behind the scenes when exporting plug-ins and is part of the Eclipse SDK (org.eclipse.pde.build plug-in).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Great PDE Build Resources&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;     For those that have a copy of the     &lt;a rel="nofollow" target="_blank" href="http://www.amazon.com/Eclipse-Rich-Client-Platform-Applications/dp/0321334612/ref=pd_bbs_sr_1/002-4631924-9938431?ie=UTF8&amp;amp;s=books&amp;amp;qid=1190671177&amp;amp;sr=8-1" id="k9pp" title="RCP book"&gt;RCP     book&lt;/a&gt; laying around, &lt;b&gt;Chapter 24 - Building Hyperbola&lt;/b&gt; offers a good     introduction and overview of PDE Build.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;     &lt;b&gt;The Eclipse Help has a number of entries regarding automated     building&lt;/b&gt;. These can be found under "Plug-in Development Environment     Guide &amp;gt; Tasks".     &lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help33/topic/org.eclipse.pde.doc.user/guide/tasks/pde_product_build.htm"&gt;Building     an RCP application from a product configuration file&lt;/a&gt;,     &lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help33/topic/org.eclipse.pde.doc.user/guide/tasks/pde_feature_build.htm"&gt;Building     Features&lt;/a&gt; and     &lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help33/topic/org.eclipse.pde.doc.user/guide/tasks/pde_build_advanced_topics.htm"&gt;Advanced     PDE Build topics&lt;/a&gt; are good starting points.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight:bold;"&gt;     The slides from     "&lt;/span&gt;&lt;a rel="nofollow" style="font-weight:bold;" target="_blank" href="http://eclipsezilla.eclipsecon.org/show_bug.cgi?id=3635" id="c3fl" title="PDE Build and build clinic"&gt;PDE     Build and build clinic&lt;/a&gt;&lt;span style="font-weight:bold;"&gt;" from EclipseCon 2007 have comprehensive coverage    &lt;/span&gt; of most aspects of the PDE Build. After     &lt;a rel="nofollow" target="_blank" href="http://eclipsezilla.eclipsecon.org/attachment.cgi?id=591" id="bh75" title="downloading the tutorial slides"&gt;downloading     the tutorial slides&lt;/a&gt;, unzip them and start with "&lt;b&gt;PDE Build.ppt&lt;/b&gt;".     Kudos to &lt;a rel="nofollow" target="_blank" href="http://aniefer.blogspot.com/2007/08/pde-build-slides-from-eclipsecon-2007.html"&gt;Andrew Niefer&lt;/a&gt; for making the slides available.&lt;br /&gt;&lt;br /&gt;(As a side note, I would love to have the EclipseCon sessions available on DVD -     like the     &lt;a rel="nofollow" target="_blank" href="http://www.javapolis.com/confluence/display/JP06/JavaPolis+2006+Conference+DVD" id="w1_t" title="DVDs from the JavaPolis conference"&gt;DVDs     from the JavaPolis conference&lt;/a&gt;. Every year I run across a few EclipseCon     sessions I missed, which seem to be very useful for my current problem.)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;     The     &lt;a rel="nofollow" target="_blank" href="http://cubiclemuses.com/cm/blog/2007/pdebuild.html" id="dw0." title="PDE Build Screencast"&gt;&lt;b&gt;PDE     Build Screencast&lt;/b&gt;&lt;/a&gt; by J Aaron Faar is based on Eclipse 3.2. It &lt;b&gt;runs     18 minutes and has a good overview of the various files involved in the     build&lt;/b&gt;. Skip the low-resolution Google Video version     and &lt;a rel="nofollow" target="_blank" href="http://sourceforge.net/project/showfiles.php?group_id=81506&amp;amp;package_id=231281" id="g331" title="download pdebuild.zip"&gt;download     pdebuild.zip&lt;/a&gt; from the SourceForge project page instead. This     archive contains a high-resolution quick-time screencast     (pdebuild_screencast.mov) as well as the sample code.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight:bold;"&gt;     The     &lt;/span&gt;&lt;a rel="nofollow" style="font-weight:bold;" target="_blank" href="http://www.pluginbuilder.org/overview.html" id="jfvi" title="pluginbuilder plug-in"&gt;pluginbuilder&lt;/a&gt;&lt;span style="font-weight:bold;"&gt; is an Eclipse plug-in by Markus Barchfeld which comes with a form-based editor that &lt;/span&gt;&lt;span style="font-weight:bold;"&gt;makes     dealing with the PDE Build configuration files really easy&lt;/span&gt;&lt;span style="font-weight:bold;"&gt;.&lt;/span&gt; The update site  &lt;span style="font-family:Courier New;"&gt;http://self.pluginbuilder.org/updateSite/&lt;/span&gt;      has an Eclipse 3.3 compatible version. You can also find a version for Eclipse 3.2 on the     project's homepage.&lt;br /&gt;&lt;div id="ckpt" style="padding:1em 0pt;text-align:left;"&gt;&lt;img style="width:400px;height:356px;" src="http://docs.google.com/File?id=dgmxkzdm_70f8294hg2"/&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;After automating the build, the next step often is &lt;b&gt;automating existing jUnit     tests with the Eclipse Test Framework&lt;/b&gt;&lt;b&gt;.&lt;/b&gt; The &lt;a rel="nofollow" title="Eclipse Testing Instructions" target="_blank" href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.test/testframework.html?content-type=text%2Fhtml&amp;amp;revision=HEAD" id="p2vs"&gt;Eclipse Testing Instructions&lt;/a&gt; will help you get started. &lt;b&gt;At the end of that document you will find an Ant template which you can use as a starting point&lt;/b&gt;. The Automated Testing Framework can be downloaded from the &lt;a rel="nofollow" title="platform download page" target="_blank" href="http://download.eclipse.org/eclipse/downloads/drops/R-3.3-200706251500/index.php" id="ac99"&gt;platform download page&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;Know other good PDE-Build links? Then post a comment.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:rgb(153, 153, 153);font-size:78%;"&gt;Hard hat image: (c) 2007, topfer/stock.xchng&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-869957071152863859?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=s2hUN1ndyOI:qnjkCeqVT0M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=s2hUN1ndyOI:qnjkCeqVT0M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=s2hUN1ndyOI:qnjkCeqVT0M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-869957071152863859</guid>
         <pubDate>Mon, 24 Sep 2007 16:12:00 +0000</pubDate>
      </item>
      <item>
         <title>See how you can make an RCP Application run in your browser</title>
         <link>http://eclipsenuggets.blogspot.com/2007/09/see-how-you-can-make-rcp-application.html</link>
         <description>Spurred by Chris Aniszczyk's recent blog post ("&lt;a rel="nofollow" id="xapx" title="Web Development Revisited" target="_blank" href="http://mea-bloga.blogspot.com/2007/09/web-development-revisited.html"&gt;Web Development Revisited&lt;/a&gt;") I decided to post a RAP screencast showing how to convert the RCP Mail Template into a RAP application. The whole process takes just a few minutes. &lt;a rel="nofollow" id="nrd5" title="View screencast in new window" target="_blank" href="http://www.volanakis.de/nuggets/RCP_Mail_goes_RAP/index.html"&gt;View screencast in new window&lt;/a&gt;.&lt;br /&gt;&lt;div id="gb-6" style="padding:1em 0pt;text-align:left;"&gt;&lt;a rel="nofollow" id="nrd5" title="View screencast in new window" target="_blank" href="http://www.volanakis.de/nuggets/RCP_Mail_goes_RAP/index.html"&gt;&lt;img style="width:379px;height:311px;" src="http://docs.google.com/File?id=dgmxkzdm_67t987mfd8"/&gt; &lt;/a&gt;&lt;/div&gt;&lt;b&gt;Wait, what is RAP anyway? &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;RAP stands for &lt;a rel="nofollow" id="yb49" title="Rich Ajax Platform" target="_blank" href="http://www.eclipse.org/rap/"&gt;Rich Ajax Platform&lt;/a&gt;. It is an Eclipse Project that enables Java developers to&lt;b&gt; build browser-based &lt;/b&gt;&lt;a rel="nofollow" id="mho4" title="AJAX" target="_blank" href="http://en.wikipedia.org/wiki/AJAX"&gt;&lt;b&gt;AJAX&lt;/b&gt;&lt;/a&gt;&lt;b&gt; applications&lt;/b&gt; &lt;b&gt;using the&lt;/b&gt; &lt;b&gt;full Java libraries, Eclipse APIs and a plug-in architecture&lt;/b&gt;. It does so by providing a web-enabled implementation of SWT, JFace and the Workbench.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-6445099777945762471?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=zRoSGiAeHak:y-5fbrvELr4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=zRoSGiAeHak:y-5fbrvELr4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=zRoSGiAeHak:y-5fbrvELr4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-6445099777945762471</guid>
         <pubDate>Tue, 11 Sep 2007 15:29:00 +0000</pubDate>
      </item>
      <item>
         <title>Don't read about OSGi Best Practices, and you'll hate yourself later</title>
         <link>http://eclipsenuggets.blogspot.com/2007/07/dont-read-about-osgi-best-practices-and.html</link>
         <description>This presentation on &lt;a rel="nofollow" target="_blank" href="http://www2.osgi.org/wiki/uploads/Conference/OSGiBestPractices.pdf" title="OSGi Best Practices"&gt;OSGi Best Practices&lt;/a&gt; (pdf) was mentioned in the equinox newsgroup. It is a worthwhile read. Be sure to check it out.&lt;br /&gt;&lt;br /&gt;I'm sure you'll be familiar with some of the pitfalls mentioned in the slides. Here are a few of those that I've come across:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Hide Implementation Details&lt;/span&gt; - Export internal implementation packages and somebody is bound to use them. Bad things will happen to them later, when this code is changed. As a result bad things may happen to you ;-).&lt;br /&gt;&lt;br /&gt;With Eclipse: if you must export implementation packages (usually for tests) use the &lt;span style="font-family:Courier New;"&gt;x-friends&lt;/span&gt; directive in your bundle manifest (as in: &lt;span style="font-family:Courier New;"&gt;Export-Package: example.internal.impl;x-friends:="example.tests"&lt;/span&gt;). This will at least cause PDE to flag uses of that package in other bundles (but cannot prevent that usage).&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Minimize Dependencies&lt;/span&gt; - Neglect this and you'll lose a lot of the modularity that comes from organizing your code into bundles.&lt;br /&gt;&lt;br /&gt;Design your bundles thoughtfully. Manage their dependencies carefully. Know the differences between expressing dependencies through &lt;span style="font-family:Courier New;"&gt;Import-Package&lt;/span&gt; or &lt;span style="font-family:Courier New;"&gt;Require-Bundle&lt;/span&gt;   statements and choose whatever is best for your case (&lt;a rel="nofollow" title="read discussion" target="_blank" href="http://www.eclipsezone.com/eclipse/forums/t98465.html"&gt;read discussion&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Return Quickly from Framework Callbacks&lt;/span&gt; - This is especially important during bundle activation. Lazy initialization and threads help.&lt;br /&gt;&lt;br /&gt;What has happened to me is, that start-up code which was initially quick became sluggish over time, as the initial assumptions changed. Having performance benchmarks in place can safeguard you from that. If you are willing to invest the effort to set-up and maintain such benchmarks, look at the org.eclipse.test.performance plug-in (&lt;a rel="nofollow" title="overview" target="_blank" href="http://www.eclipsecon.org/2005/presentations/EclipseCon2005_13.2ContinuousPerformance.pdf"&gt;overview&lt;/a&gt;, &lt;a rel="nofollow" title="howto" target="_blank" href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.test.performance/doc/Performance%20Tests%20HowTo.html?view=co"&gt;how-to&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Thread Safety&lt;/span&gt; - Framework methods of your bundle need to be thread-safe.&lt;br /&gt;&lt;br /&gt;This bit me while I was trying to use a background thread to speed-up the start-up time of a bundle. That asynchronous code actually required another bundle to be active in order to run successfully, thus introducing a race condition. Installing an appropriate &lt;a rel="nofollow" style="font-family:Courier New;" title="BundleListener" target="_blank" href="http://www2.osgi.org/javadoc/r4/org/osgi/framework/BundleListener.html"&gt;BundleListener&lt;/a&gt; solved this. I'll try to cover it in a future post.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Which of the problems from the &lt;a rel="nofollow" title="slides" target="_blank" href="http://www2.osgi.org/wiki/uploads/Conference/OSGiBestPractices.pdf"&gt;slides&lt;/a&gt; did you run into?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-2500598920035602072?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=MP4nqsWdyl0:hSvto18OTd8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=MP4nqsWdyl0:hSvto18OTd8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=MP4nqsWdyl0:hSvto18OTd8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-2500598920035602072</guid>
         <pubDate>Thu, 19 Jul 2007 02:36:00 +0000</pubDate>
      </item>
      <item>
         <title>Here is a Quick Way to Eliminate Dead Code</title>
         <link>http://eclipsenuggets.blogspot.com/2007/05/here-is-quick-way-to-eliminate-dead.html</link>
         <description>&lt;img src="http://docs.google.com/File?id=dgmxkzdm_53ghb4tbcv" style="margin:0em 2em 0pt 0pt;float:left;"/&gt;If plug-ins were tools the &lt;a rel="nofollow" target="_blank" href="http://dev.eclipse.org/viewcvs/index.cgi/platform-core-home/downloads/tools/readme.html?revision=1.4" title="Eclipse Core Tools"&gt;Eclipse Core Tools&lt;/a&gt; plug-in would be a Swiss army knife. One of it's most useful tools is &lt;span style="font-weight:bold;"&gt;finding unused methods and fields in your code&lt;/span&gt;. I used it recently to remove obsolete code from my plug-ins.&lt;br /&gt;&lt;br /&gt;To start removing unused code, follow these steps:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt; Download version 1.4.0&lt;/span&gt; (for Eclipse     3.2) of the &lt;span style="font-weight:bold;"&gt;Eclipse Core Tools&lt;/span&gt; from     this update site:&lt;br /&gt; http://www.eclipse.org/eclipse/platform-core/updates/&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-weight:bold;"&gt;In     a workspace that contains all related code,&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;select the     project / package / file&lt;/span&gt; you want to work on.&lt;br /&gt;&lt;br /&gt; (When I did this, I actually closed my unit-test projects because I didn't     want to keep code around that is used nowhere but in tests. I refactored or     removed the broken tests afterwards.)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;     In the context menu select &lt;span style="font-weight:bold;"&gt;Find Unreferenced     Members. &lt;/span&gt;The results will be shown in the Search view.&lt;br /&gt;&lt;br /&gt; &lt;div style="padding:0em 0pt;text-align:left;"&gt;       &lt;img src="http://docs.google.com/File?id=dgmxkzdm_54c3ntn2cn"/&gt;&lt;br /&gt;&lt;br /&gt; &lt;/div&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt;Remove unreferenced code, but     &lt;span style="color:rgb(255, 0, 0);"&gt;use your     judgment!&lt;/span&gt;&lt;/span&gt;          &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Some code may appear unreferenced, that in     fact isn't.&lt;/span&gt; Common examples:&lt;br /&gt; &lt;ul&gt;       &lt;li&gt;         code that is contributed through extension-points       &lt;/li&gt;              &lt;li&gt;         code that is invoked through reflection&lt;br /&gt; &lt;br /&gt;   &lt;/li&gt;     &lt;/ul&gt;     &lt;span style="font-weight:bold;"&gt; Some code may be unreferenced, but there     might be good reasons for keeping it:&lt;/span&gt;&lt;br /&gt; &lt;ul&gt;       &lt;li&gt;         unreferenced code that is API       &lt;/li&gt;       &lt;li&gt;         unreferenced fields in         &lt;a rel="nofollow" target="_blank" href="http://java.sun.com/j2se/1.3/docs/guide/serialization/spec/version.doc7.html" title="Serializable"&gt;Serializable&lt;/a&gt;         classes&lt;/li&gt;&lt;li&gt;private constructors (if you use them to enforce non-instantiability or the singleton property - Effective Java, Items 2 and 3)&lt;/li&gt;     &lt;/ul&gt; &lt;br /&gt;&lt;/li&gt;   &lt;li&gt;     Repeat steps 2 - 4 as often as necessary.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt; &lt;/ol&gt; What are your favorite tools for cleaning-up code?&lt;br /&gt;&lt;br /&gt;&lt;span style="color:rgb(153, 153, 153);font-size:78%;"&gt;Knife Image: (c) 2004, brokenarts/stock.xchng&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-6170708438466712208?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=gHUD9V0Zzdg:PF_0UUVEMP0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=gHUD9V0Zzdg:PF_0UUVEMP0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=gHUD9V0Zzdg:PF_0UUVEMP0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-6170708438466712208</guid>
         <pubDate>Sat, 19 May 2007 08:04:00 +0000</pubDate>
      </item>
      <item>
         <title>Quick Access (Ctrl+3) is bliss!</title>
         <link>http://eclipsenuggets.blogspot.com/2007/05/quick-access-ctrl3-is-bliss-are-you-one.html</link>
         <description>&lt;img style="margin:1em 1em 0pt 0pt;float:left;" src="http://docs.google.com/File?id=dgmxkzdm_49gdpqq7gf"/&gt;Are you one of those developers who try to get as much done as possible without lifting your fingers from the keyboard?&lt;br /&gt;&lt;br /&gt;If you are, then you will love the new &lt;span style="font-weight:bold;"&gt;Quick Access&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;(Ctrl+3)&lt;/span&gt; command introduced in &lt;a rel="nofollow" title="Eclipse 3.3 M7 download" target="_blank" href="http://download.eclipse.org/eclipse/downloads/drops/S-3.3M7-200705031400/index.php"&gt;Eclipse 3.3 M7&lt;/a&gt;. &lt;span style="font-weight:bold;"&gt;It &lt;/span&gt;&lt;span style="font-weight:bold;"&gt;allows you to access UI-elements - like Views, Perspectives, Commands, etc. - by just typing their name&lt;/span&gt;. And it supports &lt;a rel="nofollow" title="Camel Case" target="_blank" href="http://en.wikipedia.org/wiki/Camelcase"&gt;Camel Case&lt;/a&gt; too.&lt;br /&gt;&lt;div style="padding:1em 0pt;text-align:left;"&gt;&lt;img src="http://docs.google.com/File?id=dgmxkzdm_47hs5t9pfc"/&gt;&lt;/div&gt;Some usage examples:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Open the &lt;span style="font-weight:bold;"&gt;Navi&lt;/span&gt;gator View? Ctrl+3, Navi, return&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;D&lt;/span&gt;ebug &lt;span style="font-weight:bold;"&gt;L&lt;/span&gt;ast &lt;span style="font-weight:bold;"&gt;L&lt;/span&gt;aunched? Ctrl+3, DLL, return&lt;/li&gt;&lt;li&gt;Open the Debug Perspective? Ctrl+3, Perspectives D (&lt;span style="font-weight:bold;"&gt;P&lt;/span&gt;&lt;span style="font-weight:bold;"&gt;erspectives &lt;/span&gt;&lt;span style="font-weight:bold;"&gt;D&lt;/span&gt;ebug), return&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Return to the class &lt;span style="font-weight:bold;"&gt;WorkbenchA&lt;/span&gt;dvisor in an open editor? Ctrl+3, WorkbenchA, return (*)&lt;/li&gt;&lt;/ul&gt;The possibilities are endless...&lt;br /&gt;&lt;br /&gt;Another subtle nicety is that Quick Access remembers the previously used choices, so the next time you press Ctrl+3 these are shown first.&lt;br /&gt;&lt;br /&gt;(*) In the last example the file name is not matched when entering "WA". It seems that capital characters must be preceded by a whitespace in order to be picked up by the camel case matcher. E.g. "CC" would match Camel Case but not CamelCase.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-1690281633576564772?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=oZp-5YUbXqc:EBsPbrWG19U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=oZp-5YUbXqc:EBsPbrWG19U:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=oZp-5YUbXqc:EBsPbrWG19U:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-1690281633576564772</guid>
         <pubDate>Sun, 06 May 2007 15:41:00 +0000</pubDate>
      </item>
      <item>
         <title>Starting Eclipse 3.3 without the native launcher</title>
         <link>http://eclipsenuggets.blogspot.com/2007/04/starting-eclipse-3.html</link>
         <description>If you are working &lt;span style="font-weight:bold;"&gt;with Eclipse 3.3 M5&lt;/span&gt; or newer you may have noticed that &lt;span style="font-weight:bold;"&gt;the file startup.jar is gone&lt;/span&gt;. In previous versions of Eclipse this file could be used to fire-up Eclipse directly and thus bypassing the native launcher (eclipse.exe):&lt;br /&gt;&lt;div style="margin-left:40px;"&gt;   &lt;span style="background-color:rgb(255, 255, 153);font-family:Courier New;"&gt;java -jar startup.jar&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;In Eclipse 3.3 this functionality has been moved into the Equinox Launcher plug-in&lt;/span&gt;. As explained on the &lt;a rel="nofollow" target="_blank" href="http://wiki.eclipse.org/index.php/Equinox_Launcher#Startup.jar" title="Equinox Launcher"&gt;Equinox Launcher&lt;/a&gt; wiki page, it is still possible to start Eclipse using java by invoking:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;   &lt;div style="margin-left:40px;"&gt;     &lt;span style="background-color:rgb(255, 255, 153);font-family:Courier New;"&gt;java -jar plugins/org.eclipse.equinox.launcher_1.0.0.v20070319.jar&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt; &lt;span style="font-weight:bold;"&gt;Note that the name of the jar-file is now version dependent causing naive scripts, that invoke the jar using the exact filename, to break once the jar-file gets updated&lt;/span&gt;. Instead you may want to look for a file matching &lt;span style="font-family:Courier New;"&gt;org.eclipse.equinox_*.jar&lt;/span&gt;. Thankfully the Eclipse-wiki contains &lt;a rel="nofollow" target="_blank" href="http://wiki.eclipse.org/index.php/Starting_Eclipse_Commandline_With_Equinox_Launcher" title="appropriate scripting templates"&gt;appropriate scripting templates&lt;/a&gt; that should give you a head start. If you want to avoid modifying existing scripts, you can also search for the Equinox Launcher plug-in, copy it into the Eclipse main directory and rename the copy into &lt;span style="font-family:Courier New;"&gt;startup.jar&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-7689210575377608703?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=-iDe2QzvMCM:nC9jeq3oWH8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=-iDe2QzvMCM:nC9jeq3oWH8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=-iDe2QzvMCM:nC9jeq3oWH8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-7689210575377608703</guid>
         <pubDate>Mon, 30 Apr 2007 16:03:00 +0000</pubDate>
      </item>
      <item>
         <title>How to validate plug-in dependencies in launch configurations with Eclipse 3.3</title>
         <link>http://eclipsenuggets.blogspot.com/2007/04/how-to-validate-plug-in-dependencies-in.html</link>
         <description>I like to manage the list of plug-ins in any launch configuration manually so that new dependencies do not sneak-in unnoticed.&lt;br /&gt;&lt;br /&gt;When doing this it is important to ensure that the dependencies of all selected plug-ins are satisfied. Otherwise some of those plug-ins will not work. To avoid this, you can &lt;span style="font-weight:bold;"&gt;click on the “Validate Plug-in Set” button to perform a dependency check&lt;/span&gt;. In Eclipse 3.2 this button is available on the “Plug-ins" tab of a launch configuration and is easy to spot.&lt;br /&gt;&lt;br /&gt;&lt;img style="height:162px;width:520px;" src="http://docs.google.com/File?id=dgmxkzdm_35dd6pkc" border="0" hspace="0" vspace="0"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;In Eclipse 3.3 the "Validate Plug-in Set" button is harder to find&lt;/span&gt;, because it has been replaced by a toolbar item. &lt;span style="font-weight:bold;"&gt;To validate the plug-in dependencies you have to click on the check-mark icon&lt;/span&gt; as shown in the screenshot below.&lt;br /&gt;&lt;br /&gt;&lt;img style="height:97px;width:452px;" src="http://docs.google.com/File?id=dgmxkzdm_41dg8wj2" vspace="0"/&gt;&lt;br /&gt;&lt;br /&gt;Also, clicking on the black arrow next to the icon opens the pop-up menus shown below. It allows you to enable / disable the automatic dependency validation.&lt;br /&gt;&lt;br /&gt;&lt;img style="height:46px;width:242px;" src="http://docs.google.com/File?id=dgmxkzdm_39ff74b7" vspace="0"/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-4212232714903141990?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=spbyU9j9FH8:aeX-rTj33jM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=spbyU9j9FH8:aeX-rTj33jM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=spbyU9j9FH8:aeX-rTj33jM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-4212232714903141990</guid>
         <pubDate>Sun, 15 Apr 2007 13:49:00 +0000</pubDate>
      </item>
      <item>
         <title>What Everybody Ought to Know About the Eclipse Help System</title>
         <link>http://eclipsenuggets.blogspot.com/2007/04/what-everybody-ought-to-know-about.html</link>
         <description>&lt;span&gt;The Eclipse Help System contains a wealth of useful information on both using Eclipse and developing Eclipse plug-ins. However making the most out it takes some time and experience. The tips below will get you up to speed by showing you how you can improve your searches, filter out unrelated information, discover related help topics and use on-line resources.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How to make the most of the Eclipse Help System&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt;Are you a plug-in developer? Install the SDK     download to get all the developer and ISV documentation. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt; The main Eclipse download page contains a number of different download     archives. However only the Eclipse SDK archive will add the     "&lt;span style="font-weight:bold;"&gt;Platform Plug-in Developer Guide&lt;/span&gt;" to     the help contents. This guide contains a ton of information about developing     plug-ins, using all kinds of APIs and the Extension Point and API reference.     If you are a plug-in developer open the Help System (Help &amp;gt; Help     Contents) and check that this guide is available.&lt;br /&gt;&lt;br /&gt; If you are using additional Eclipse projects in your software - like GEF,     EMF or Webtools - make sure you have installed their corresponding SDK     features too.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt;Know the basic query syntax. &lt;/span&gt;By     knowing a bit about the query syntax and the supported search operators you     can make your searches more precise and effective.&lt;br /&gt;&lt;br /&gt; &lt;ul&gt;       &lt;li&gt;         icon description - returns results containing both words (e.g. icon AND         description)       &lt;/li&gt;       &lt;li&gt;         JDT OR icons - returns results containing any of those words       &lt;/li&gt;       &lt;li&gt;         "JDT icons" - returns results containing the exact phrase       &lt;/li&gt;       &lt;li&gt;         plugin NOT plugin.xml - returns results containing the word         &lt;span style="font-style:italic;"&gt;plugin&lt;/span&gt; and do NOT contain the         word &lt;span style="font-style:italic;"&gt;plugin.xml&lt;/span&gt;       &lt;/li&gt;       &lt;li&gt;         IDialog* - returns results containing any word starting with that term as in IDialog, IDialogSettings, IDialogConstants,         etc.&lt;span style="font-style:italic;"&gt;&lt;br /&gt;     &lt;/span&gt;       &lt;/li&gt;     &lt;/ul&gt; &lt;br /&gt; You should also know that:&lt;br /&gt;&lt;br /&gt; &lt;ul&gt;       &lt;li&gt;         &lt;span style="font-weight:bold;"&gt;search terms are case insensitive&lt;/span&gt;         - searching for &lt;span style="font-style:italic;"&gt;idialogsettings&lt;/span&gt;         is as good as searching for         &lt;span style="font-style:italic;"&gt;IDialogSettings&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;span style="font-weight:bold;"&gt;the search results will contain matches         from the same word-root&lt;/span&gt; - searching for         &lt;span style="font-style:italic;"&gt;observing&lt;/span&gt; will return results         containing observe, observer, observing, etc. This is done using a         technique known as &lt;a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Stemming" title="word stemming"&gt;word         stemming&lt;/a&gt;. &lt;span style="font-weight:bold;"&gt;Surround your term in         quotes to perform an exact search&lt;/span&gt; (as in "observing").       &lt;/li&gt;       &lt;li&gt;         &lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help32/topic/org.eclipse.platform.doc.user/tasks/help_search.htm" title="Read more about the query syntax"&gt;Read         more about the query syntax&lt;/a&gt;.&lt;br /&gt;   &lt;/li&gt;     &lt;/ul&gt; &lt;br /&gt; &lt;span style="font-weight:bold;"&gt;&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt;Know how to configure the "Search Scope". This will let     you specify which help guides are being searched.&lt;/span&gt; I often create a     custom search scope named "devguides" that contains only the Developer     Guides and the PDE Guide, effectively limiting the search results to     information relevant to plug-in developers.&lt;br /&gt;&lt;br /&gt; &lt;div style="text-align:right;"&gt;       &lt;table style="text-align:left;margin-left:auto;margin-right:0px;background-color:rgb(255, 204, 204);" border="0" cellpadding="3" cellspacing="0" width="80%"&gt;         &lt;tbody&gt;         &lt;tr&gt;           &lt;td width="100%"&gt;             &lt;span style="font-weight:bold;"&gt;How to create a custom search             scope&lt;/span&gt;&lt;br /&gt;     &lt;br /&gt;         &lt;ol&gt;               &lt;li&gt;                 Click on the "Search Scope" link at the top of the help page.&lt;br /&gt;           &lt;/li&gt;               &lt;li&gt;                 Choose "New" in the Select Search Scope dialog.               &lt;/li&gt;               &lt;li&gt;                 Enter a name for your search scope (example: devguides) and                 check which the topics to search (example: Platform Plug-in                 Developer Guide, JDT Plug-in Developer Guide, Plug-in                 Development Environment Guide). Press "OK".               &lt;/li&gt;               &lt;li&gt;                 "devguides" should now be selected in the Select Search Scope                 dialog. Press "OK" close the dialog.&lt;br /&gt;           &lt;/li&gt;             &lt;/ol&gt;         &lt;br /&gt;         Congratulations! You created a custom search scope that contains all             developer-related help topics. The active search scope is indicated             at the top of the page.&lt;br /&gt;         &lt;img src="http://docs.google.com/File?id=dgmxkzdm_26d3nj7z" style="height:37px;width:370px;" border="0" hspace="0" vspace="6"/&gt;&lt;br /&gt;         To re-enable all topics choose "Search Scope &amp;gt; Search all             topics".&lt;br /&gt;       &lt;/td&gt;         &lt;/tr&gt;         &lt;/tbody&gt;       &lt;/table&gt;     &lt;/div&gt;     &lt;span style="color:rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight:bold;"&gt;Expose related information with the     "Show in Table of Contents" action&lt;/span&gt;     (&lt;span style="font-weight:bold;"&gt;&lt;img src="http://docs.google.com/File?id=dgmxkzdm_22d33c97" style="height:19px;width:19px;" align="absmiddle"/&gt;&lt;/span&gt;). This will show you related information by expanding the path to the currently shown page in table of contents.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight:bold;"&gt;Bookmark interesting search results with the     "Bookmark Document" action     &lt;/span&gt;(&lt;img src="http://docs.google.com/File?id=dgmxkzdm_27cpcpjp" style="height:19px;width:20px;" align="absmiddle"/&gt;)&lt;span style="font-weight:bold;"&gt;     to store them for later reading. &lt;/span&gt;You can list and manage your     bookmarks in the "Bookmarks View"     (&lt;img src="http://docs.google.com/File?id=dgmxkzdm_2874xdqh" style="height:19px;width:21px;" align="absmiddle"/&gt;).     Bookmarks are persisted in your workspace and will be available any time your return     to the Bookmarks View.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt;Access the Eclipse Help System on-line at     &lt;/span&gt;&lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help32/index.jsp" title="http://help.eclipse.org/help32/index.jsp"&gt;http://help.eclipse.org/help32/index.jsp&lt;/a&gt;&lt;span style="font-weight:bold;"&gt;.&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;This has three benefits:&lt;br /&gt; &lt;ul&gt;       &lt;li&gt;         All of the above tips apply to the on-line Help System too. Bookmarking         (tip #5) is not possible, but you can use your browser's bookmarks         instead. To bookmark a help page with Firefox click on the right frame and choose "This Frame &amp;gt; Bookmark This Frame..."&lt;br /&gt;&lt;/li&gt;       &lt;li&gt;         The on-line Help System contains documentation for many Eclipse projects         thus providing you with help for plug-ins that may not be available on         your local installation.&lt;br /&gt;   &lt;/li&gt;       &lt;li&gt;         You can access the Help System anytime from anywhere in the world, even         if you don't have an Eclipse installed (great when answering         Eclipse-related questions from a random internet cafe).&lt;br /&gt; &lt;br /&gt;   &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt;Access older versions of the Help System     online at     &lt;/span&gt;&lt;a rel="nofollow" target="_blank" href="http://www.eclipse.org/documentation/" title="http://www.eclipse.org/documentation/"&gt;http://www.eclipse.org/documentation/&lt;/a&gt;&lt;span style="font-weight:bold;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is very handy when you want to find out if X was available in an older     version of Eclipse. Currently you can access the help for these Eclipse     versions:     &lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help32/index.jsp" title="3.2"&gt;3.2&lt;/a&gt;,     &lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help31/index.jsp" title="3.1.2"&gt;3.1.2&lt;/a&gt;,     &lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help21/index.jsp" title="2.1.3"&gt;2.1.3&lt;/a&gt;   &lt;/li&gt; &lt;/ol&gt;  What are your favorite help-related tips &amp;amp; techniques? Leave a comment below.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-2905152058601083859?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=lX3Vz3syx3c:3REJKLwRzMM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=lX3Vz3syx3c:3REJKLwRzMM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=lX3Vz3syx3c:3REJKLwRzMM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-2905152058601083859</guid>
         <pubDate>Sun, 01 Apr 2007 16:14:00 +0000</pubDate>
      </item>
      <item>
         <title>Get Custom-Colored Forms in 4 Easy Steps</title>
         <link>http://eclipsenuggets.blogspot.com/2007/03/get-custom-colored-forms-in-4-easy.html</link>
         <description>&lt;span style="font-style:italic;"&gt;Find out how to use the Forms API to obtain custom colored form headings, as shown in the screenshot below. This might be especially interesting for RCP Applications that wish to distinguish themselves from the default Eclipse look and feel.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;img src="http://docs.google.com/File?id=dgmxkzdm_17gvq8m4" style="height:97px;width:476px;"/&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;&lt;/span&gt;While reading about &lt;a rel="nofollow" target="_blank" href="http://www.eclipse.org/eclipse/platform-ua/proposals/forms/enhancements-3.3/index.html" title="UI Forms enchancements in Eclipse 3.3"&gt;UI Forms enhancements in Eclipse 3.3&lt;/a&gt; this paragraph captured my interest:&lt;br /&gt;&lt;br /&gt;"We have elected to provide one combination of colors for title background rendering that will work well everywhere. The colors used to render the title are stored in the FormColors class under the following keys &lt;span style="font-family:courier new;"&gt;H_GRADIENT_START&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;H_GRADIENT_END&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;H_BOTTOM_KEYLINE1&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;H_BOTTOM_KEYLINE2&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;Here is what those keys do:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;     &lt;span style="font-family:courier new;"&gt;H_GRADIENT_START&lt;/span&gt; - color to be used for the upper part of the heading   &lt;/li&gt;   &lt;li&gt;     &lt;span style="font-family:courier new;"&gt;H_GRADIENT_END&lt;/span&gt; - color to be used for the lower part of the heading. A color     gradient will be drawn if the two &lt;span style="font-family:courier new;"&gt;H_GRADIENT_...&lt;/span&gt; keys differ.   &lt;/li&gt;   &lt;li&gt;     &lt;span style="font-family:courier new;"&gt;H_BOTTOM_KEYLINE1&lt;/span&gt; - color to be used for the upper part of the separator     line (which appears to be two pixel thick on my system)   &lt;/li&gt;   &lt;li&gt;     &lt;span style="font-family:courier new;"&gt;H_BOTTOM_KEYLINE2&lt;/span&gt; - color to be used for the lower part of the separator     line   &lt;/li&gt; &lt;/ul&gt; Here is how you can &lt;span style="font-weight:bold;"&gt;create a custom-colored form heading&lt;/span&gt;:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt;Create and configure a     &lt;/span&gt;&lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help32/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/forms/FormColors.html" title="FormColors"&gt;FormColors&lt;/a&gt;&lt;span style="font-weight:bold;"&gt;     instance&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;FormColors result = &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#7f0055;"&gt;&lt;b&gt;new &lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;FormColors&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;( &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;display &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;)&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;      &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;result.createColor&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;( &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;IFormColors.H_GRADIENT_START, red.getRGB&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;() )&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;     &lt;br /&gt;&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;result.createColor&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;( &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;IFormColors.H_GRADIENT_END, darkred.getRGB&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;() )&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;     &lt;br /&gt;&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;result.createColor&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;( &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;IFormColors.H_BOTTOM_KEYLINE1, darkred.getRGB&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;() )&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;      &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;&lt;br /&gt;result.createColor&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;( &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;IFormColors.H_BOTTOM_KEYLINE2, black.getRGB&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;() )&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;      &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;&lt;br /&gt;result.createColor&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;( &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;IFormColors.TITLE, white.getRGB&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;() )&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="background-color:rgb(255, 255, 153);"&gt;&lt;span style="font-family:courier new;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;     &lt;br /&gt;    &lt;/span&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt;Create a     &lt;/span&gt;&lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help32/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/forms/widgets/FormToolkit.html" title="FormToolkit"&gt;FormToolkit&lt;/a&gt;&lt;span style="font-weight:bold;"&gt;     with your form colors&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;     &lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;FormToolkit toolkit = &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#7f0055;"&gt;&lt;b&gt;new &lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;FormToolkit&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;( &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;formColors &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;br /&gt;  &lt;/li&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt;Use the toolkit to create a     &lt;/span&gt;&lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help32/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/forms/widgets/Form.html" title="Form"&gt;Form&lt;/a&gt;&lt;br /&gt;   &lt;br /&gt;    &lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;Form form = toolkit.createForm&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;( &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;parent &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt;Apply the colors to your Form heading&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;     &lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;toolkit.decorateFormHeading&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;( &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;form &lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;)&lt;/span&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:courier new;color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;/li&gt; &lt;/ol&gt; Of course the above steps can also be used for &lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help32/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/forms/widgets/ScrolledForm.html" title="ScrolledForm"&gt;ScrolledForm&lt;/a&gt; instances.&lt;br /&gt;&lt;br /&gt;If you need more information, the example below contains the full source code. It contributes the view shown at the top of the post. After launching a run-time workbench with the example choose "Window &amp;gt; Show View &amp;gt; Other &amp;gt; Eclipse Nuggets &amp;gt; Form Colors Example".&lt;br /&gt;&lt;br /&gt;&lt;img alt="" src="http://1.bp.blogspot.com/_1Rx7kFlzK2w/Rft0CNhfc6I/AAAAAAAAAA8/GnbrUEdrW8U/s200/icon-zip.png" style="" align="absmiddle" border="0"/&gt; &lt;a rel="nofollow" target="_blank" href="http://www.volanakis.de/nuggets/example.formcolors.zip"&gt;Download Full Example&lt;/a&gt; (for Eclipse 3.3)&lt;br /&gt;&lt;br /&gt;Have fun experimenting and be sure to avoid the two pitfalls mentioned below.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;   &lt;table border="0" cellpadding="3" cellspacing="0" width="100%" style="background-color:#ffcccc;"&gt;     &lt;tbody&gt;     &lt;tr&gt;       &lt;td width="100%"&gt;         &lt;span style="font-weight:bold;"&gt;Pitfalls&lt;br /&gt;        &lt;/span&gt;         &lt;ol&gt;           &lt;li&gt;             Due to an implementation constraint you must always specify a value             for the             &lt;span style="font-family:Courier New;"&gt;H_BOTTOM_KEYLINE_2&lt;/span&gt; when             using custom colors. If you don't your colors will be replaced by             the default colors.           &lt;/li&gt;           &lt;li&gt;             You must call             &lt;span style="font-family:Courier New;"&gt;toolkit.decorateFormHeading(             form )&lt;/span&gt; to apply your custom colors.&lt;br /&gt;          &lt;/li&gt;         &lt;/ol&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;/tbody&gt;   &lt;/table&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-297192077342400214?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=jFLQmLpe_7E:pwF07GctkXM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=jFLQmLpe_7E:pwF07GctkXM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=jFLQmLpe_7E:pwF07GctkXM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-297192077342400214</guid>
         <pubDate>Sat, 24 Mar 2007 22:51:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://1.bp.blogspot.com/_1Rx7kFlzK2w/Rft0CNhfc6I/AAAAAAAAAA8/GnbrUEdrW8U/s72-c/icon-zip.png" width="72" />
      </item>
      <item>
         <title>How to create GridData instances easily</title>
         <link>http://eclipsenuggets.blogspot.com/2007/03/how-to-create-griddata-instances-easily.html</link>
         <description>&lt;span style="font-style:italic;"&gt;This post explains how to use the GridDataFactory (available since Eclipse 3.2) to avoid repetitive coding of similar GridData instances.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://docs.google.com/File?id=dgmxkzdm_6gzhrsb" style="height:155px;width:359px;"/&gt;&lt;br /&gt;&lt;br /&gt;One of my favorite SWT layouts is the &lt;a rel="nofollow" target="_blank" href="http://www.eclipse.org/articles/Article-Understanding-Layouts/Understanding-Layouts.htm#_Toc509864536" title="GridLayout"&gt;GridLayout&lt;/a&gt;. This layout will arrange widgets in a grid of rows and columns, as shown in the example above (three columns and four rows). When using the GridLayout three things tend to happen:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;     I need many GridData instances (one per widget).   &lt;/li&gt;   &lt;li&gt;     A number of them will be configured in exactly the same way, since a group of widgets will have a similar placement. The first three Text widgets in the screenshot are such a case. This leads to code repetition or a number of similar helper methods.   &lt;/li&gt;   &lt;li&gt;     A GridData instance is configured by setting the values of it's public fields. Configuring a single GridData instance will take a few lines of code. In my opinion, the resulting code bloat will make it harder harder to keep a "mental picture" of the UI in my head.   &lt;/li&gt; &lt;/ol&gt; Here is &lt;span style="font-weight:bold;"&gt;how the &lt;/span&gt;&lt;a rel="nofollow" target="_blank" href="http://help.eclipse.org/help32/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/jface/layout/GridDataFactory.html" style="font-weight:bold;" title="GridDataFactory"&gt;GridDataFactory&lt;/a&gt;&lt;span style="font-weight:bold;"&gt; can help&lt;/span&gt;:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt;Method&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;calls&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;on the GridDataFactory can be chained&lt;/span&gt;, leading to more compact code&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:Courier New;"&gt; GridDataFactory.fillDefaults().grab( true, false ).span( 2, 1 );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt;A single GridDataFactory can&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;create similar GridData instances&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color:rgb(255, 255, 153);font-family:Courier New;"&gt;GridDataFactory gdf = GridDataFactory.fillDefaults().grab( true, false );&lt;/span&gt;&lt;br /&gt;   &lt;span style="background-color:rgb(255, 255, 153);font-family:Courier New;"&gt;gdf.applyTo( txtName );&lt;/span&gt;&lt;br /&gt;   &lt;span style="background-color:rgb(255, 255, 153);font-family:Courier New;"&gt;gdf.applyTo( txtOffice );&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;     &lt;span style="font-weight:bold;"&gt;Two factory methods provide meaningful defaults&lt;/span&gt;: swtDefaults() and fillDefaults(). The second one is especially useful, since it creates a GridData instance that will cause the control to fill its cell&lt;br /&gt;&lt;/li&gt; &lt;/ol&gt; The snippets below illustrate the difference.&lt;br /&gt;&lt;br /&gt;Before:&lt;br /&gt;&lt;table style="background-color:rgb(255, 255, 153);color:rgb(255, 255, 255);" border="0" cellpadding="3" cellspacing="0"&gt;   &lt;tbody&gt;   &lt;tr&gt;     &lt;td style="color:rgb(255, 255, 153);" align="left" nowrap valign="top"&gt;       &lt;code&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;Text txtName= createLabelAndText&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;( &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;group, &lt;/span&gt;&lt;span style="color:rgb(42, 0, 255);"&gt;"Name:" &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;GridData gridData = &lt;/span&gt;&lt;span style="color:rgb(127, 0, 85);"&gt;&lt;b&gt;new &lt;/b&gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;GridData&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;( &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;SWT.FILL, SWT.DEFAULT, true, &lt;/span&gt;&lt;span style="color:rgb(127, 0, 85);"&gt;&lt;b&gt;false &lt;/b&gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;gridData.horizontalSpan = &lt;/span&gt;&lt;span style="color:rgb(153, 0, 0);"&gt;2&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;gridData.widthHint = &lt;/span&gt;&lt;span style="color:rgb(153, 0, 0);"&gt;200&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;txtName.setLayoutData&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;( &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;gridData &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;Text txtOffice= createLabelAndText&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;( &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;group, &lt;/span&gt;&lt;span style="color:rgb(42, 0, 255);"&gt;"Office Phone:" &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;gridData = &lt;/span&gt;&lt;span style="color:rgb(127, 0, 85);"&gt;&lt;b&gt;new &lt;/b&gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;GridData&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;( &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;SWT.FILL, SWT.DEFAULT, true, &lt;/span&gt;&lt;span style="color:rgb(127, 0, 85);"&gt;&lt;b&gt;false &lt;/b&gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;gridData.horizontalSpan = &lt;/span&gt;&lt;span style="color:rgb(153, 0, 0);"&gt;2&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;gridData.widthHint = &lt;/span&gt;&lt;span style="color:rgb(153, 0, 0);"&gt;200&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;txtOffice.setLayoutData&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;( &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;gridData &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;/code&gt;     &lt;/td&gt;   &lt;/tr&gt;   &lt;/tbody&gt; &lt;/table&gt;&lt;br /&gt;After:&lt;br /&gt;&lt;table style="background-color:rgb(255, 255, 153);color:rgb(255, 255, 255);" border="0" cellpadding="3" cellspacing="0"&gt;   &lt;tbody&gt;   &lt;tr&gt;     &lt;td style="color:rgb(255, 255, 153);" align="left" nowrap valign="top"&gt;       &lt;code&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;Text txtName= createLabelAndText&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;( &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;group, &lt;/span&gt;&lt;span style="color:rgb(42, 0, 255);"&gt;"Name:" &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;GridDataFactory txtGDF = GridDataFactory.fillDefaults&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;.grab&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;( &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;true, &lt;/span&gt;&lt;span style="color:rgb(127, 0, 85);"&gt;&lt;b&gt;false &lt;/b&gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;                               &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;                            .span&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;( &lt;/span&gt;&lt;span style="color:rgb(153, 0, 0);"&gt;2&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="color:rgb(153, 0, 0);"&gt;1 &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;.hint&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;( &lt;/span&gt;&lt;span style="color:rgb(153, 0, 0);"&gt;200&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;, SWT.DEFAULT &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;txtGDF.applyTo&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;( &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;txtName &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;Text txtOffice= createLabelAndText&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;( &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;group, &lt;/span&gt;&lt;span style="color:rgb(42, 0, 255);"&gt;"Office Phone:" &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;txtGDF.applyTo&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;( &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;txtOffice &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;/code&gt;     &lt;/td&gt;   &lt;/tr&gt;   &lt;/tbody&gt; &lt;/table&gt;&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/_1Rx7kFlzK2w/Rft0CNhfc6I/AAAAAAAAAA8/GnbrUEdrW8U/s200/icon-zip.png" alt="" id="BLOGGER_PHOTO_ID_5042751789110096802" border="0" align="absmiddle"/&gt; &lt;a rel="nofollow" target="_blank" href="http://www.volanakis.de/nuggets/example.griddata.zip"&gt;Download Full Example&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8149959654067390196-7268895678350689668?l=eclipsenuggets.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=6Olbfnz8i8k:tj1CdqYPOkg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/EliasOnEclipse?a=6Olbfnz8i8k:tj1CdqYPOkg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EliasOnEclipse?i=6Olbfnz8i8k:tj1CdqYPOkg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Elias Volanakis</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8149959654067390196.post-7268895678350689668</guid>
         <pubDate>Fri, 16 Mar 2007 21:10:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://1.bp.blogspot.com/_1Rx7kFlzK2w/Rft0CNhfc6I/AAAAAAAAAA8/GnbrUEdrW8U/s72-c/icon-zip.png" width="72" />
      </item>
   </channel>
</rss><!-- fe1.yql.bf1.yahoo.com compressed/chunked Thu May 24 20:22:14 UTC 2012 -->

