<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: The Joy of Writing Swing Frameworks</title>
	<atom:link href="http://benzilla.galbraiths.org/2007/04/30/the-joy-of-writing-swing-frameworks/feed/" rel="self" type="application/rss+xml" />
	<link>http://benzilla.galbraiths.org/2007/04/30/the-joy-of-writing-swing-frameworks/</link>
	<description>Ben is Vice President of Mobile Engineering at Walmart.com, where he works closely with his long-time friend Dion Almaer.</description>
	<lastBuildDate>Wed, 25 Jan 2012 19:56:40 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Glenn Vanderburg</title>
		<link>http://benzilla.galbraiths.org/2007/04/30/the-joy-of-writing-swing-frameworks/#comment-2886</link>
		<dc:creator><![CDATA[Glenn Vanderburg]]></dc:creator>
		<pubDate>Wed, 02 May 2007 13:30:34 +0000</pubDate>
		<guid isPermaLink="false">http://galbraiths.org/blog/2007/04/30/the-joy-of-writing-swing-frameworks/#comment-2886</guid>
		<description><![CDATA[True properties might solve this particular case, but they wouldn&#039;t solve the general problem.]]></description>
		<content:encoded><![CDATA[<p>True properties might solve this particular case, but they wouldn&#8217;t solve the general problem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brendon McLean</title>
		<link>http://benzilla.galbraiths.org/2007/04/30/the-joy-of-writing-swing-frameworks/#comment-2891</link>
		<dc:creator><![CDATA[Brendon McLean]]></dc:creator>
		<pubDate>Tue, 01 May 2007 21:20:46 +0000</pubDate>
		<guid isPermaLink="false">http://galbraiths.org/blog/2007/04/30/the-joy-of-writing-swing-frameworks/#comment-2891</guid>
		<description><![CDATA[Spot on.  I&#039;ve run in the same thing many times.  As a rule, I always add addFocusListener delegate methods to all my compound components which simply delegate the call to the textfield.]]></description>
		<content:encoded><![CDATA[<p>Spot on.  I&#8217;ve run in the same thing many times.  As a rule, I always add addFocusListener delegate methods to all my compound components which simply delegate the call to the textfield.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mikael Grev</title>
		<link>http://benzilla.galbraiths.org/2007/04/30/the-joy-of-writing-swing-frameworks/#comment-2890</link>
		<dc:creator><![CDATA[Mikael Grev]]></dc:creator>
		<pubDate>Tue, 01 May 2007 20:40:28 +0000</pubDate>
		<guid isPermaLink="false">http://galbraiths.org/blog/2007/04/30/the-joy-of-writing-swing-frameworks/#comment-2890</guid>
		<description><![CDATA[If Java had proper properties this wouldn&#039;t be an issue. I mean properties that can reference complex objects, such as an embedded JTextField, wich properties itself can be drilled down to and set/unset, and so on..

Swing was made for flexibility without considering tool-ability. This can only be fixed with a refactor to Swing 2.0. It wouldn&#039;t take much effort compared to rewriting a new GUI toolkit, but it would solve so many problems.

Cheers,
Mikael]]></description>
		<content:encoded><![CDATA[<p>If Java had proper properties this wouldn&#8217;t be an issue. I mean properties that can reference complex objects, such as an embedded JTextField, wich properties itself can be drilled down to and set/unset, and so on..</p>
<p>Swing was made for flexibility without considering tool-ability. This can only be fixed with a refactor to Swing 2.0. It wouldn&#8217;t take much effort compared to rewriting a new GUI toolkit, but it would solve so many problems.</p>
<p>Cheers,<br />
Mikael</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Glenn Vanderburg</title>
		<link>http://benzilla.galbraiths.org/2007/04/30/the-joy-of-writing-swing-frameworks/#comment-2889</link>
		<dc:creator><![CDATA[Glenn Vanderburg]]></dc:creator>
		<pubDate>Tue, 01 May 2007 17:46:51 +0000</pubDate>
		<guid isPermaLink="false">http://galbraiths.org/blog/2007/04/30/the-joy-of-writing-swing-frameworks/#comment-2889</guid>
		<description><![CDATA[Language support for expressing contracts is one way to approach this kind of thing, but there&#039;s another way that isn&#039;t as widely used as it should be.

If you&#039;re building a library that&#039;s meant to be used and extended by third parties, write a set of abstract unit test classes that test for adherence to the contract.  This is usually pretty easy to do.  Then recommend that people extending your classes or implementing your interfaces (including your own group, of course) use those tests.  A new testcase that extends the abstract one and overrides setUp is usually sufficient, and then all of the inherited tests will be run against the subclass or new implementation.

---Glenn]]></description>
		<content:encoded><![CDATA[<p>Language support for expressing contracts is one way to approach this kind of thing, but there&#8217;s another way that isn&#8217;t as widely used as it should be.</p>
<p>If you&#8217;re building a library that&#8217;s meant to be used and extended by third parties, write a set of abstract unit test classes that test for adherence to the contract.  This is usually pretty easy to do.  Then recommend that people extending your classes or implementing your interfaces (including your own group, of course) use those tests.  A new testcase that extends the abstract one and overrides setUp is usually sufficient, and then all of the inherited tests will be run against the subclass or new implementation.</p>
<p>&#8212;Glenn</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Galbraith</title>
		<link>http://benzilla.galbraiths.org/2007/04/30/the-joy-of-writing-swing-frameworks/#comment-2887</link>
		<dc:creator><![CDATA[Ben Galbraith]]></dc:creator>
		<pubDate>Mon, 30 Apr 2007 21:52:22 +0000</pubDate>
		<guid isPermaLink="false">http://galbraiths.org/blog/2007/04/30/the-joy-of-writing-swing-frameworks/#comment-2887</guid>
		<description><![CDATA[Anjan: It absolutely does. There&#039;s a ton of room for productivity frameworks on top of Swing in the marketplace.]]></description>
		<content:encoded><![CDATA[<p>Anjan: It absolutely does. There&#8217;s a ton of room for productivity frameworks on top of Swing in the marketplace.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anjan Bacchu</title>
		<link>http://benzilla.galbraiths.org/2007/04/30/the-joy-of-writing-swing-frameworks/#comment-2888</link>
		<dc:creator><![CDATA[Anjan Bacchu]]></dc:creator>
		<pubDate>Mon, 30 Apr 2007 21:46:43 +0000</pubDate>
		<guid isPermaLink="false">http://galbraiths.org/blog/2007/04/30/the-joy-of-writing-swing-frameworks/#comment-2888</guid>
		<description><![CDATA[hi ben,

  does this NOT give scope to someone who wants to write the next onTopOfSwing framework, like say, spring RIA ?

  And, like RodJohnson, if someone writes a decent book about that framework/library, then writing swing apps becomes a lot more easier.

BR,
~A]]></description>
		<content:encoded><![CDATA[<p>hi ben,</p>
<p>  does this NOT give scope to someone who wants to write the next onTopOfSwing framework, like say, spring RIA ?</p>
<p>  And, like RodJohnson, if someone writes a decent book about that framework/library, then writing swing apps becomes a lot more easier.</p>
<p>BR,<br />
~A</p>
]]></content:encoded>
	</item>
</channel>
</rss>

