<?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/"
		>
<channel>
	<title>Comments on: ProgressMonitorInputStream</title>
	<atom:link href="http://cafe.elharo.com/blogroll/progressbar/feed/" rel="self" type="application/rss+xml" />
	<link>http://cafe.elharo.com/blogroll/progressbar/</link>
	<description>Longer than a blog; shorter than a book</description>
	<lastBuildDate>Wed, 08 Feb 2012 21:45:25 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>By: srini</title>
		<link>http://cafe.elharo.com/blogroll/progressbar/comment-page-1/#comment-34737</link>
		<dc:creator>srini</dc:creator>
		<pubDate>Mon, 04 Dec 2006 13:31:58 +0000</pubDate>
		<guid isPermaLink="false">http://minicafe.elharo.com/wordpress/java/progressbar/#comment-34737</guid>
		<description>sir,

        can i get the source code for embedding progress bar in the JScrollPane</description>
		<content:encoded><![CDATA[<p>sir,</p>
<p>        can i get the source code for embedding progress bar in the JScrollPane</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hal</title>
		<link>http://cafe.elharo.com/blogroll/progressbar/comment-page-1/#comment-16</link>
		<dc:creator>hal</dc:creator>
		<pubDate>Fri, 06 Jan 2006 17:15:59 +0000</pubDate>
		<guid isPermaLink="false">http://minicafe.elharo.com/wordpress/java/progressbar/#comment-16</guid>
		<description>&lt;h3 class=&quot;subject&quot;&gt;Object-orientation and progress bars&lt;/h3&gt;

&lt;p&gt;Giving the user feedback is certainly important, particularly for lengthy operations like file or network IO as you mention. This is also a case where good UI design conflicts with good object-oriented design. Central to good UI design is transparency: the user should have access to the state of the application, if it matters to her. The state of a lengthy operation like file or network IO matters, since you must be certain nothing is wrong (in addition it&#039;s often nice to be able to cancel the operation). Object-oriented design, on the other hand, values abstraction and black-box thinking: don&#039;t reveal too much about the inner workings of an object, just define the necessary interface. The conflict arises when such a black box does things the user needs/wants to know, like how much of the job is done. I&#039;ve many times had to redesign a class to make monitoring possible. E.g. I have some code that traverses a large XOM tree, that may take several seconds. To support monitoring the progress I first had to count the number of nodes and then allow passing in a progress bar (similar to the visitor pattern) to the traversal method. In many cases, libraries cannot be modified to support this. Consider if XOM only could build from a URL, not an InputStream. It would then be impossible to support the kind of ProgressBar discussed above. Compare it with JDBC, which cannot be made to provide feedback about the progress of a database query, since the whole query processing is abstracted away into the database engine (I guess the SQL engine connection protocol is to blame). The black-box design goes against the transparent design values of GUI design.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<h3 class="subject">Object-orientation and progress bars</h3>
<p>Giving the user feedback is certainly important, particularly for lengthy operations like file or network IO as you mention. This is also a case where good UI design conflicts with good object-oriented design. Central to good UI design is transparency: the user should have access to the state of the application, if it matters to her. The state of a lengthy operation like file or network IO matters, since you must be certain nothing is wrong (in addition it&#8217;s often nice to be able to cancel the operation). Object-oriented design, on the other hand, values abstraction and black-box thinking: don&#8217;t reveal too much about the inner workings of an object, just define the necessary interface. The conflict arises when such a black box does things the user needs/wants to know, like how much of the job is done. I&#8217;ve many times had to redesign a class to make monitoring possible. E.g. I have some code that traverses a large XOM tree, that may take several seconds. To support monitoring the progress I first had to count the number of nodes and then allow passing in a progress bar (similar to the visitor pattern) to the traversal method. In many cases, libraries cannot be modified to support this. Consider if XOM only could build from a URL, not an InputStream. It would then be impossible to support the kind of ProgressBar discussed above. Compare it with JDBC, which cannot be made to provide feedback about the progress of a database query, since the whole query processing is abstracted away into the database engine (I guess the SQL engine connection protocol is to blame). The black-box design goes against the transparent design values of GUI design.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

