<?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:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" 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:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Blogagic</title>
	
	<link>http://blogagic.com</link>
	<description>Flex Development and User Interface Design tricks and tips</description>
	<lastBuildDate>Sat, 20 Nov 2010 14:01:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/blogagic" /><feedburner:info uri="blogagic" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:emailServiceId>blogagic</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Enhanced trick to copy data from AdvancedDataGrid</title>
		<link>http://feedproxy.google.com/~r/blogagic/~3/AG6s9C47MEo/enhanced-trick-to-copy-data-from-advanceddatagrid</link>
		<comments>http://blogagic.com/325/enhanced-trick-to-copy-data-from-advanceddatagrid#comments</comments>
		<pubDate>Sat, 20 Nov 2010 14:01:36 +0000</pubDate>
		<dc:creator>JYC</dc:creator>
				<category><![CDATA[DataGrid]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[AdvancedDataGrid]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[itemEditor]]></category>

		<guid isPermaLink="false">http://blogagic.com/?p=325</guid>
		<description><![CDATA[Here&#8217;s a small enhancement to my trick to copy data from an AdvancedDataGrid.
My previous trick had a small drawback since selecting a row was also switching a cell to copy mode (read only edit mode).
With this enhanced version, you now have to double click in a cell to switch it to copy mode (using a [...]<p><a href="http://blogagic.com/325/enhanced-trick-to-copy-data-from-advanceddatagrid">Enhanced trick to copy data from AdvancedDataGrid</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a small enhancement to my <a title="Trick to copy data from an AdvancedDataGrid" href="http://blogagic.com/321/trick-to-copy-data-from-a-flex-advanceddatagrid">trick to copy data from an <code>AdvancedDataGrid</code></a>.</p>
<p><span id="more-325"></span>My previous trick had a small drawback since selecting a row was also switching a cell to copy mode (read only edit mode).</p>
<p>With this enhanced version, you now have to double click in a cell to switch it to copy mode (using a non editable item editor from which you can copy data). This keeps a standard selection behavior.</p>
<p>Here&#8217;s the demo (with <a href="http://blogagic.com/_flex/enhcopyfromadvanceddatagrid/srcview/EnhancedCopyFromAdvancedDataGrid.zip" title="Source code for the Blogagic trick to copy data from a Flex AdvancedDataGrid">source code available</a>):</p>
<p style="text-align: center;">
<iframe name="Copy data cell from AdvancedDataGrid" src="http://blogagic.com/_flex/enhcopyfromadvanceddatagrid/EnhancedCopyFromAdvancedDataGrid.html" scrolling="no" frameborder="no" width="600" height="442"><br />
</iframe>
</p>
<p>A few words to highlight how to link the edition to double clicks only.</p>
<p>As you remember, I&#8217;m configuring the <code>AdvancedDataGrid</code> as <code>editable</code> and using a read only <code>TextInput</code> as an <code>itemEditor</code> to allow copying data. And now, I&#8217;m also allowing double clicks by setting the <code>doubleClickEnabled</code> property of the <code>AdvancedDataGrid</code>.</p>
<pre class="brush: as3">
&lt;mx:Component className=&quot;NonEditableTextInput&quot;&gt;
    &lt;mx:TextInput editable=&quot;false&quot;
        selectionBeginIndex=&quot;0&quot; selectionEndIndex=&quot;{text.length}&quot;/&gt;
&lt;/mx:Component&gt;

&lt;mx:AdvancedDataGridColumn dataField=&quot;Field&quot; itemEditor=&quot;NonEditableTextInput&quot;
    ...
    editable=&quot;true&quot; doubleClickEnabled=&quot;true&quot;/&gt;
</pre>
<p>We still have to avoid the edition to be triggered when single clicking in a cell and my trick to achieve this is to use a third event: <code>itemEditBegin</code> (it is fired just before activating the <code>itemEditor</code>).</p>
<pre class="brush: as3">
&lt;mx:AdvancedDataGridColumn ...
    itemClick=&quot;itemClickHandler(event)&quot;
    itemDoubleClick=&quot;itemDoubleClickHandler(event)&quot;
    itemBeginEdit=&quot;itemBeginEditHandler(event)&quot;
/&gt;
</pre>
<p>The single and double click handlers just register the latest type of event received and, in the <code>itemEditBegin</code>handler, we just have to check whether the previous received event was a single or a double click to decide if edition must be allowed or not. </p>
<pre class="brush: as3">
private var doubleClicked:Boolean;

private function itemClickHandler(event:ListEvent):void {
    doubleClicked = false;
}
private function itemDoubleClickHandler(event:ListEvent):void {
    doubleClicked = true;
}
private function itemEditBeginHandler(event:AdvancedDataGridEvent):void {
    // If doubleClicked =&gt; allow edit
    // If not =&gt; do NOT edit
}
</pre>
<p>The last trick here is to know how to cancel the itemEditor activation on single click event. Once you know that the <code>itemEditBegin</code> event is a cancelable one, it should become obvious (if it&#8217;s not, you may be interested by my article on <a href="http://blogagic.com/218/making-your-flex-custom-components-really-flexible#events" title="Advanced Events Management on blogagic.com">Advanced Events Management</a>).</p>
<pre class="brush: as3">
private function itemEditBeginHandler(event:AdvancedDataGridEvent):void {
    if (!doubleClicked)
        event.preventDefault();
}
</pre>
<p>Enjoy!</p>
<p><a href="http://blogagic.com/325/enhanced-trick-to-copy-data-from-advanceddatagrid">Enhanced trick to copy data from AdvancedDataGrid</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/blogagic?a=AG6s9C47MEo:BeZFiT89Z2U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/blogagic?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=AG6s9C47MEo:BeZFiT89Z2U:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/blogagic?i=AG6s9C47MEo:BeZFiT89Z2U:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=AG6s9C47MEo:BeZFiT89Z2U:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=AG6s9C47MEo:BeZFiT89Z2U:M5Ufnnvh8Ow"><img src="http://feeds.feedburner.com/~ff/blogagic?d=M5Ufnnvh8Ow" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=AG6s9C47MEo:BeZFiT89Z2U:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/blogagic/~4/AG6s9C47MEo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogagic.com/325/enhanced-trick-to-copy-data-from-advanceddatagrid/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blogagic.com/325/enhanced-trick-to-copy-data-from-advanceddatagrid</feedburner:origLink></item>
		<item>
		<title>Trick to copy data from a Flex AdvancedDataGrid</title>
		<link>http://feedproxy.google.com/~r/blogagic/~3/H-LU88GTSd4/trick-to-copy-data-from-a-flex-advanceddatagrid</link>
		<comments>http://blogagic.com/321/trick-to-copy-data-from-a-flex-advanceddatagrid#comments</comments>
		<pubDate>Sun, 31 Oct 2010 19:09:18 +0000</pubDate>
		<dc:creator>JYC</dc:creator>
				<category><![CDATA[DataGrid]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[AdvancedDataGrid]]></category>
		<category><![CDATA[itemEditor]]></category>

		<guid isPermaLink="false">http://blogagic.com/?p=321</guid>
		<description><![CDATA[Here&#8217;s a small trick to allow copying individual cell data from a Flex AdvancedDataGrid.
When using a non editable Flex AdvancedDataGrid supporting selection, there&#8217;s no default way of just copying the content of a given cell.
The easiest trick I found consists in setting the AdvancedDataGrid as being editable and defining as an itemEditor a simple TextInput [...]<p><a href="http://blogagic.com/321/trick-to-copy-data-from-a-flex-advanceddatagrid">Trick to copy data from a Flex AdvancedDataGrid</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a small trick to allow copying individual cell data from a Flex AdvancedDataGrid.</p>
<p><span id="more-321"></span>When using a non editable Flex <code>AdvancedDataGrid</code> supporting selection, there&#8217;s no default way of just copying the content of a given cell.</p>
<p>The easiest trick I found consists in setting the <code>AdvancedDataGrid</code> as being editable and defining as an <code>itemEditor</code> a simple <code>TextInput</code> configured as not being editable and with its content selected!</p>
<p>In other words:</p>
<p>Ensure your <code>AdvancedDataGrid</code> is defined as editable:</p>
<pre class="brush: as3">
&lt;mx:AdvancedDataGrid editable=&quot;true&quot; dataProvider=&quot;{gridData}&quot;&gt;
</pre>
<p>Define a non editable <code>TextInput</code> selecting its content:</p>
<pre class="brush: as3">
&lt;mx:Component className=&quot;NonEditableTextInput&quot;&gt;
    &lt;mx:TextInput editable=&quot;false&quot;
        selectionBeginIndex=&quot;0&quot; selectionEndIndex=&quot;{text.length}&quot;/&gt;
&lt;/mx:Component&gt;
</pre>
<p>And use it as an <code>itemEditor</code> for your <code>AdvancedDataGrid</code>:</p>
<pre class="brush: as3">
&lt;mx:AdvancedDataGridColumn dataField=&quot;Field&quot; itemEditor=&quot;NonEditableTextInput&quot;/&gt;
</pre>
<p>Now, when clicking in any cell of the <code>AdvancedDataGrid</code>, the non editable <code>TextInput</code> is displayed with its content selected and ready for copy.</p>
<p>Here&#8217;s a working example (with <a href="http://blogagic.com/_flex/copyfromadvanceddatagrid/srcview/CopyFromAdvancedDataGrid.zip" title="Source code for the Blogagic trick to copy data from a Flex AdvancedDataGrid">source code available</a>):</p>
<p style="text-align: center;">
<iframe name="Copy data cell from AdvancedDataGrid" src="http://blogagic.com/_flex/copyfromadvanceddatagrid/CopyFromAdvancedDataGrid.html" scrolling="no" frameborder="no" width="600" height="442"><br />
</iframe>
</p>
<p>In addition, let me take this post as an opportunity to mention a very useful utility site: <a title="Mr. Data Converter: convert data in a web-friendly format" href="http://www.shancarter.com/data_converter/index.html">Mr. Data Converter</a>. Just paste CSV or tab delimited data and it will convert your data into one of several web-friendly formats, including XML, HTML, PHP and.. ActionScript! This is really a good tool when you want to generate some test data for a Flex AdvancedDataGrid  in a few seconds <img src='http://blogagic.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p><a href="http://blogagic.com/321/trick-to-copy-data-from-a-flex-advanceddatagrid">Trick to copy data from a Flex AdvancedDataGrid</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/blogagic?a=H-LU88GTSd4:UkxbGsaCSkc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/blogagic?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=H-LU88GTSd4:UkxbGsaCSkc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/blogagic?i=H-LU88GTSd4:UkxbGsaCSkc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=H-LU88GTSd4:UkxbGsaCSkc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=H-LU88GTSd4:UkxbGsaCSkc:M5Ufnnvh8Ow"><img src="http://feeds.feedburner.com/~ff/blogagic?d=M5Ufnnvh8Ow" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=H-LU88GTSd4:UkxbGsaCSkc:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/blogagic/~4/H-LU88GTSd4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogagic.com/321/trick-to-copy-data-from-a-flex-advanceddatagrid/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blogagic.com/321/trick-to-copy-data-from-a-flex-advanceddatagrid</feedburner:origLink></item>
		<item>
		<title>All Blogagic Flex material is now just one click away</title>
		<link>http://feedproxy.google.com/~r/blogagic/~3/hK1ouU9K4fg/all-blogagic-flex-material-is-now-just-one-click-away</link>
		<comments>http://blogagic.com/317/all-blogagic-flex-material-is-now-just-one-click-away#comments</comments>
		<pubDate>Thu, 16 Sep 2010 20:29:50 +0000</pubDate>
		<dc:creator>JYC</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[asdoc]]></category>
		<category><![CDATA[custom component]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[libagic]]></category>
		<category><![CDATA[swc]]></category>

		<guid isPermaLink="false">http://blogagic.com/?p=317</guid>
		<description><![CDATA[I just added a new page called Libagic, from which you can:

Read the documentation (ASDoc format)
Read and download source code
Download the Libagic.swc

for all classes and custom Flex components published on Blogagic.com.
Enjoy!
All Blogagic Flex material is now just one click away from @blogagic on Blogagic.com.
<p><a href="http://blogagic.com/317/all-blogagic-flex-material-is-now-just-one-click-away">All Blogagic Flex material is now just one click away</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p>I just added <a title="Libagic: Blogagic custom components source code and documentation" href="http://blogagic.com/libagic">a new page called Libagic</a>, from which you can:</p>
<ul>
<li>Read the documentation (ASDoc format)</li>
<li>Read and download source code</li>
<li>Download the Libagic.swc</li>
</ul>
<p>for all classes and custom Flex components published on Blogagic.com.</p>
<p>Enjoy!</p>
<p><a href="http://blogagic.com/317/all-blogagic-flex-material-is-now-just-one-click-away">All Blogagic Flex material is now just one click away</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/blogagic?a=hK1ouU9K4fg:KJl2NNgUWsI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/blogagic?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=hK1ouU9K4fg:KJl2NNgUWsI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/blogagic?i=hK1ouU9K4fg:KJl2NNgUWsI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=hK1ouU9K4fg:KJl2NNgUWsI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=hK1ouU9K4fg:KJl2NNgUWsI:M5Ufnnvh8Ow"><img src="http://feeds.feedburner.com/~ff/blogagic?d=M5Ufnnvh8Ow" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=hK1ouU9K4fg:KJl2NNgUWsI:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/blogagic/~4/hK1ouU9K4fg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogagic.com/317/all-blogagic-flex-material-is-now-just-one-click-away/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blogagic.com/317/all-blogagic-flex-material-is-now-just-one-click-away</feedburner:origLink></item>
		<item>
		<title>My Flex SparklineChart custom components now have their own Explorer!</title>
		<link>http://feedproxy.google.com/~r/blogagic/~3/2uudl2HKVWY/my-flex-sparklinechart-custom-components-now-have-their-own-explorer</link>
		<comments>http://blogagic.com/305/my-flex-sparklinechart-custom-components-now-have-their-own-explorer#comments</comments>
		<pubDate>Tue, 14 Sep 2010 18:38:40 +0000</pubDate>
		<dc:creator>JYC</dc:creator>
				<category><![CDATA[Custom Component]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[custom component]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[sparkline]]></category>

		<guid isPermaLink="false">http://blogagic.com/?p=305</guid>
		<description><![CDATA[I recently published Flex custom components allowing to display data as Sparklines.  These SparklineChart custom components being highly configurable, here is now their new companion: the SparklineChart explorer.
The below explorer application allows playing with almost all configurable properties and styles supported by SparklineLineChart and SparklineLineChart components.
Its usage is supposed to be straightforward, but, in [...]<p><a href="http://blogagic.com/305/my-flex-sparklinechart-custom-components-now-have-their-own-explorer">My Flex SparklineChart custom components now have their own Explorer!</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p>I recently published <a title="SparklineBarChart and SparklineLineChart custom components on Blogagic.com" href="http://blogagic.com/289/sparkline-flex-custom-components-linechart-and-barchart">Flex custom components allowing to display data as Sparklines</a>.  These SparklineChart custom components being highly configurable, here is now their new companion: the SparklineChart explorer.</p>
<p><span id="more-305"></span>The below explorer application allows playing with almost all configurable properties and styles supported by SparklineLineChart and SparklineLineChart components.</p>
<p>Its usage is supposed to be straightforward, but, in case of any doubt, keep your mouse on the unclear part of the explorer and read the toolTip <img src='http://blogagic.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p style="text-align: center;">
<iframe name="SparklineChart explorer" src="http://blogagic.com/_flex/sparklinechart_explorer/SparklineChartExplorer.html" scrolling="no" frameborder="no" width="600" height="658"><br />
</iframe>
</p>
<p>Let me know if you found this explorer useful <img src='http://blogagic.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://blogagic.com/305/my-flex-sparklinechart-custom-components-now-have-their-own-explorer">My Flex SparklineChart custom components now have their own Explorer!</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/blogagic?a=2uudl2HKVWY:Y3IIETsPxLI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/blogagic?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=2uudl2HKVWY:Y3IIETsPxLI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/blogagic?i=2uudl2HKVWY:Y3IIETsPxLI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=2uudl2HKVWY:Y3IIETsPxLI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=2uudl2HKVWY:Y3IIETsPxLI:M5Ufnnvh8Ow"><img src="http://feeds.feedburner.com/~ff/blogagic?d=M5Ufnnvh8Ow" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=2uudl2HKVWY:Y3IIETsPxLI:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/blogagic/~4/2uudl2HKVWY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogagic.com/305/my-flex-sparklinechart-custom-components-now-have-their-own-explorer/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blogagic.com/305/my-flex-sparklinechart-custom-components-now-have-their-own-explorer</feedburner:origLink></item>
		<item>
		<title>Sparkline Flex custom components (LineChart and BarChart)</title>
		<link>http://feedproxy.google.com/~r/blogagic/~3/G-vwrtSsXC4/sparkline-flex-custom-components-linechart-and-barchart</link>
		<comments>http://blogagic.com/289/sparkline-flex-custom-components-linechart-and-barchart#comments</comments>
		<pubDate>Sat, 11 Sep 2010 15:02:24 +0000</pubDate>
		<dc:creator>JYC</dc:creator>
				<category><![CDATA[Custom Component]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[custom component]]></category>
		<category><![CDATA[sparkline]]></category>

		<guid isPermaLink="false">http://blogagic.com/?p=289</guid>
		<description><![CDATA[Sparklines are defined by Edward Tufte, their creator as: Intense, Simple, Word-Sized Graphics.
Here are new Flex custom components allowing to easily integrate Sparklines in any Flex application.
If you don&#8217;t know yet what are Sparklines, I strongly encourage you to read &#8220;Sparklines: theory and practise&#8220;, an article written by Edward Tufte, known as the Sparkline inventor.
I [...]<p><a href="http://blogagic.com/289/sparkline-flex-custom-components-linechart-and-barchart">Sparkline Flex custom components (LineChart and BarChart)</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p>Sparklines are defined by Edward Tufte, their creator as: Intense, Simple, Word-Sized Graphics.</p>
<p>Here are new Flex custom components allowing to easily integrate Sparklines in any Flex application.</p>
<p><span id="more-289"></span>If you don&#8217;t know yet what are Sparklines, I strongly encourage you to read &#8220;<a title="Edward Tufte article on Sparklines theory" href="http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001OR&amp;topic_id=1">Sparklines: theory and practise</a>&#8220;, an article written by Edward Tufte, known as the Sparkline inventor.</p>
<p>I thought that it would a good exercise to develop my own Flex custom components for these beautiful Sparklines and I had not been disappointed developing them! Most of the topics that I recently shared with you along my tutorials helped me a lot and were put in practice while developing my two new Flex custom components: <code>SparklineLineChart</code> and <code>SparklineBarChart</code>.</p>
<p>Here is a small demonstration of <code>SparklineLineChart</code> and <code>SparklineBarChart</code> components (right click to view source code):</p>
<p style="text-align: center;">
<iframe name="SparklineChart demonstration" src="http://blogagic.com/_flex/sparklinechart_demo/SparklineChartDemo.html" scrolling="no" frameborder="no" width="600" height="540"><br />
</iframe>
</p>
<p><a title="Source code of SparklineChart components" href="http://blogagic.com/_flex/sparklinechart_demo/srcview/SparklineChartOfficial.zip">Click to download source code</a>.<br />
<a title="BlogagicLibrary.swc download" href="http://blogagic.com/_flex/libagic/BlogagicLibrary.swc">Click to download the BlogagicLibrary</a>.</p>
<p>Here are some key features provided by <code>SparklineChart</code> classes:</p>
<ul>
<li>As visible above, <code>SparklineLineChart</code> and <code>SparklineBarChart</code> components can be used as standalone controls or as item renderers in list or data grid.</li>
<li>They offer different styling options such that you can easily integrate them in accordance with your application&#8217;s theme (color, line weight, transparency, &#8230;).</li>
<li>They support a configurable threshold used to determine bar color or to highlight an important area (play with the sliders to see how the threshold value impacts the rendering).</li>
<li>SparklineChart have a <code>dataProvider</code> property ensuring that the <code>SparklineChart</code> is automatically updated whenever the data changes (use the &#8220;Start/Stop timer&#8221; check box to see sparklines updated in real time).</li>
<li>Chart scales can be automatically determined or manually defined.</li>
<li>Tooltips are optional and can be customized.</li>
<li>And more! <a title="SparklineChart documentation (AS Doc)" href="http://blogagic.com/_flex/sparklinechart_demo/asdoc/index.html">Check the provided documentation</a> for all details.</li>
</ul>
<p>It was a lot of fun for me developing these components, I hope it will be as fun for you using them!</p>
<p><a href="http://blogagic.com/289/sparkline-flex-custom-components-linechart-and-barchart">Sparkline Flex custom components (LineChart and BarChart)</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/blogagic?a=G-vwrtSsXC4:LySGF1m0nzE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/blogagic?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=G-vwrtSsXC4:LySGF1m0nzE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/blogagic?i=G-vwrtSsXC4:LySGF1m0nzE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=G-vwrtSsXC4:LySGF1m0nzE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=G-vwrtSsXC4:LySGF1m0nzE:M5Ufnnvh8Ow"><img src="http://feeds.feedburner.com/~ff/blogagic?d=M5Ufnnvh8Ow" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=G-vwrtSsXC4:LySGF1m0nzE:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/blogagic/~4/G-vwrtSsXC4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogagic.com/289/sparkline-flex-custom-components-linechart-and-barchart/feed</wfw:commentRss>
		<slash:comments>27</slash:comments>
		<feedburner:origLink>http://blogagic.com/289/sparkline-flex-custom-components-linechart-and-barchart</feedburner:origLink></item>
		<item>
		<title>Dynamic Flex Tooltips (Updating a Visible Tooltip)</title>
		<link>http://feedproxy.google.com/~r/blogagic/~3/eibcefOSUzE/dynamic-flex-tooltips-updating-a-visible-tooltip</link>
		<comments>http://blogagic.com/280/dynamic-flex-tooltips-updating-a-visible-tooltip#comments</comments>
		<pubDate>Tue, 07 Sep 2010 20:12:18 +0000</pubDate>
		<dc:creator>JYC</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[tooltip]]></category>

		<guid isPermaLink="false">http://blogagic.com/?p=280</guid>
		<description><![CDATA[Here are some tips regarding my way of managing Dynamic Flex ToolTips and, in particular, how to update content of a visible tooltip.

Static vs Dynamic Flex ToolTip
The most common usage of tooltips is to provide hints or simplified help. When hovering on a particular button, for example, the tooltip can provide more details on the [...]<p><a href="http://blogagic.com/280/dynamic-flex-tooltips-updating-a-visible-tooltip">Dynamic Flex Tooltips (Updating a Visible Tooltip)</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p>Here are some tips regarding my way of managing Dynamic Flex ToolTips and, in particular, how to update content of a visible tooltip.</p>
<p><span id="more-280"></span></p>
<h2>Static vs Dynamic Flex ToolTip</h2>
<p>The most common usage of tooltips is to provide hints or simplified help. When hovering on a particular button, for example, the tooltip can provide more details on the consequences of pressing the button. Tooltips are more than welcome, in particular, when buttons are just using icons since it&#8217;s not always easy for all of us to guess what the icon means. In such a case, I would call them: <strong>Static ToolTips</strong>. (By the way, I previously provided some tricks to <a title="Easy customization of Flex ToolTips using HTML tags on blogagic.com" href="http://blogagic.com/190/easy-flex-tooltip-customization-using-html-tags">easily customize your tooltips using HTML tags</a>, take a look if you&#8217;re interetsted).</p>
<p>Today, I&#8217;d like to focus on <strong>Dynamic ToolTips</strong>. These are tooltips for which the content (i.e. the tooltip text) must be determined at runtime, just before the tooltip is displayed. You need a <strong>Dynamic ToolTip</strong> if you want to display in your tooltip any value that changes over time (such as number of downloaded files,  number of spam emails, or simply the current time).</p>
<p>The <em>easy </em>way to achieve this would be to listen to an event indicating that the value has changed and, in the corresponding handler, to update the <code>toolTip</code> property of your control. If you would like to display the current time in your ToolTip, you could define a 1mn timer and, each time it would fire, update the <code>toolTip</code> property.</p>
<p>I&#8217;m anyway pretty sure that you will all agree that this would NOT be a very good solution since your application would spend CPU cycles to update the <code>toolTip</code> property even if the user would never display the toolTip.</p>
<p>So, a better way to implement this  is to rely on tooltip specific events that are generated by the Flex framework for any UIComponent. There are six such events that are fired using the following sequence: <code>toolTipStart</code>, <code>toolTipCreate</code>, <code>toolTipShow</code>, <code>toolTipShown</code>, <code>toolTipHide</code>, and <code>toolTipEnd</code> (for more details, check <a title="Description of ToolTip specific events on Adobe LiveDocs" href="http://livedocs.adobe.com/flex/3/langref/mx/core/UIComponent.html#event:toolTipCreate">the event descriptions on Adobe LiveDocs</a>). Let&#8217;s see how to use one of them to implement a better <strong>Dynamic ToolTip</strong>.</p>
<h2>Dynamically defining a Flex ToolTip content</h2>
<p>The one that is of interest in our case is: <code>mx.events.ToolTipEvent.TOOL_TIP_SHOW</code>.</p>
<p>This event is fired by the <code>UIComponent</code> just before the tooltip be displayed. The generated event (of type <code>mx.events.ToolTipEvent</code>) contains a <code>tooltip </code>property referencing the <code>ToolTip </code>object that will be rendered. On this <code>ToolTip </code>object, there is a <code>text </code>property that contains the text to render in the tooltip (it is filled using the <code>toolTip </code>property of the <code>UIComponent</code>).</p>
<p>So, to update the tooltip content dynamically just before the tooltip be displayed, do something like:</p>
<pre class="brush: as3">
addEventListener(ToolTipEvent.TOOL_TIP_SHOW, toolTipShowHandler);

...

private function toolTipShowHandler(event:ToolTipEvent):void {
	event.toolTip.text = &lt;my dynamic value&gt;;
}
</pre>
<p>We now have a <strong>Dynamic ToolTip</strong> showing a dynamic value <img src='http://blogagic.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>But&#8230; if the tooltip remains open.. the time doesn&#8217;t stop&#8230; so your value may keep changing&#8230; Wouldn&#8217;t you expect the tooltip value to be updated accordingly? If yes, keep reading!</p>
<h2>Updating a Flex ToolTip content while it is visible</h2>
<p>Here is a pseudo code extract showing how I suggest achieving this:</p>
<pre class="brush: as3">

...
addEventListener(ToolTipEvent.TOOL_TIP_SHOW, toolTipShowHandler);
addEventListener(ToolTipEvent.TOOL_TIP_HIDE, toolTipHideHandler);
&lt;value owner&gt;.addEventListener(&lt;valueChangeEvent&gt;, valueChangeHandler);
...

private var _toolTipVisible:Boolean;
private var _toolTipEvent:ToolTipEvent;

protected function toolTipHideHandler(event:ToolTipEvent):void {
	// ToolTip is not visible anymore
	_toolTipVisible = false;
}

protected function toolTipShowHandler(event:ToolTipEvent):void {
	// ToolTip will soon be visible, we need to ensure its content
	// is up-to-date
	_toolTipVisible = true;
	// Keep the event (trick, see below!)
	_toolTipEvent = event;

	// Do we really need to update the content?
	if (_toolTipDirty) {
		// If yes, update both our toolTip (String) property and
		// the text property of the ToolTip object.
		event.toolTip.text = &lt;my latest dynamic value&gt;;
		toolTip = event.toolTip.text;
	}
	else {
		// The toolTip content will be the value of our toolTip
		// property (this is why we updated it above in addition
		// to event.toolTip.text).
	}
}

protected function valueChangeHandler(value:*):void {
	if (value != _currentValue) {
		// A new value, toolTip content is outdated!
		_currentValue = value;
		_toolTipDirty = true;

		// If the update is received while the toolTip is visible
		if (_toolTipVisible)
			// Update text property of the ToolTip object
			// Trick: manually trigger the tooltipShowHandler with
			// the initial event (containing a reference to the ToolTip
			// object) and you're done!
			toolTipShowHandler(_toolTipEvent);
	}
}
</pre>
<p>And here we are!</p>
<p>If you found this useful, you would really please me by answering to the following question:</p>
<p style="text-align: center;">What is the correct way of writing tooltip?<br />
Is it tooltip, tool tip, tool-tip or anything else?</p>
<p><em>Note: To see a real use case, <a href="http://blogagic.com/289/sparkline-flex-custom-components-linechart-and-barchart" title="SparklineChart custom components on Blogagic.com">check my SparklineChart components</a> that are using some Dynamic ToolTips.</em></p>
<p><a href="http://blogagic.com/280/dynamic-flex-tooltips-updating-a-visible-tooltip">Dynamic Flex Tooltips (Updating a Visible Tooltip)</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/blogagic?a=eibcefOSUzE:bM9vsZ_iO4I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/blogagic?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=eibcefOSUzE:bM9vsZ_iO4I:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/blogagic?i=eibcefOSUzE:bM9vsZ_iO4I:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=eibcefOSUzE:bM9vsZ_iO4I:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=eibcefOSUzE:bM9vsZ_iO4I:M5Ufnnvh8Ow"><img src="http://feeds.feedburner.com/~ff/blogagic?d=M5Ufnnvh8Ow" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=eibcefOSUzE:bM9vsZ_iO4I:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/blogagic/~4/eibcefOSUzE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogagic.com/280/dynamic-flex-tooltips-updating-a-visible-tooltip/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://blogagic.com/280/dynamic-flex-tooltips-updating-a-visible-tooltip</feedburner:origLink></item>
		<item>
		<title>Flex custom effect EditInPlaceEffect</title>
		<link>http://feedproxy.google.com/~r/blogagic/~3/e6sU7jGXX0U/flex-custom-effect-editinplaceeffect</link>
		<comments>http://blogagic.com/261/flex-custom-effect-editinplaceeffect#comments</comments>
		<pubDate>Mon, 30 Aug 2010 13:17:02 +0000</pubDate>
		<dc:creator>JYC</dc:creator>
				<category><![CDATA[Custom Component]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[custom component]]></category>
		<category><![CDATA[Edit in Place]]></category>
		<category><![CDATA[effect]]></category>

		<guid isPermaLink="false">http://blogagic.com/?p=261</guid>
		<description><![CDATA[After my custom components FadingTextInput and FadingInjector, here is now a Flex custom effect offering similar possibilities. I called it EditInPlaceEffect.

Check the first section below for a demonstration of the EditInPlaceEffect and access to its source code.
Read the second section if you&#8217;re interested by what&#8217;s behind

Flex custom effect: EditInPlaceEffect
EditInPlaceEffect details

Flex custom effect: EditInPlaceEffect
Here is an [...]<p><a href="http://blogagic.com/261/flex-custom-effect-editinplaceeffect">Flex custom effect EditInPlaceEffect</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p>After my custom components <a title="FadingTextInput custom component on Blogagic" href="http://blogagic.com/235/flex-custom-component-fadingtextinput">FadingTextInput</a> and <a title="FadingInjector custom component on Blogagic" href="http://blogagic.com/247/flex-custom-component-fadinginjector">FadingInjector</a>, here is now a Flex custom effect offering similar possibilities. I called it EditInPlaceEffect.</p>
<p><span id="more-261"></span></p>
<p>Check the first section below for a demonstration of the <code>EditInPlaceEffect</code> and access to its source code.</p>
<p>Read the second section if you&#8217;re interested by what&#8217;s behind</p>
<ul>
<li><a title="Demonstration of the Flex custom effect: EditInPlaceEffect" href="#Flex custom effect: EditInPlaceEffect">Flex custom effect: <code>EditInPlaceEffect</code></a></li>
<li><a title="EditInPlaceEffect details" href="#EditInPlaceEffect details"><code>EditInPlaceEffect</code> details</a></li>
</ul>
<h2><a name="Flex custom effect: EditInPlaceEffect"></a>Flex custom effect: EditInPlaceEffect</h2>
<p>Here is an application demonstrating the <code>EditInPlaceEffect</code> behavior (right click to view source code):</p>
<p style="text-align: center;">
<iframe name="EditInPlaceEffect demonstration" src="http://blogagic.com/_flex/editinplaceeffect_demo/EditInPlaceEffectDemo.html" scrolling="no" frameborder="no" width="566" height="400"><br />
</iframe>
</p>
<p>You can download <a title="EditInPlaceEffect source code" href="http://blogagic.com/_flex/editinplaceeffect_demo/EditInPlaceEffect.as">EditInPlaceEffect.as</a> and <a title="FadingTextInputInstance source code" href="http://blogagic.com/_flex/editinplaceeffect_demo/EditInPlaceEffect.as">EditInPlaceEffectInstance.as</a> classes.</p>
<p>Hover your mouse over the different controls to see the highlight effect or change the controls content to see the background fading effect.</p>
<p>Use the color picker to change the TextInput background color and look at the results (hover or edit the TextInput).</p>
<p>As usual, if you have any question on this component, please <a title="In case of question on FadingInjector, leave a comment!" href="http://blogagic.com/261/flex-custom-effect-editinplaceeffect#respond">leave a comment</a>.</p>
<h2><a name="EditInPlaceEffect details"></a>EditInPlaceEffect details</h2>
<h3>Introduction</h3>
<p>If you read <a title="FadingInjector custom component on Blogagic" href="http://blogagic.com/247/flex-custom-component-fadinginjector">my previous article on my FadingInjector custom component</a>, you remember that I concluded by a question: was it really correctly placed in my <em>com.blogagic.control</em> directory? As my <code>FadingInjector</code> isn&#8217;t based on <code>UIComponent</code>, the answer is, for me, clearly: No!</p>
<p>So where should I keep it? What is it ?</p>
<p>I would have liked to answer: this is an effect, put it in your effect directory. But&#8230; it wasn&#8217;t really an effect <img src='http://blogagic.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>So, I decided to turn it into a Flex custom effect and here we are.</p>
<h3>Flex custom effect principles (Disclaimer)</h3>
<p>I wrote a couple of tutorials on this blog, but nothing (yet) on Flex custom effects. This is because I never really had the opportunity of working on Flex custom effects until now. In other words, I still have a lot to learn about Flex custom effects so don&#8217;t hesitate to correct me if you notice any mistake in this article <img src='http://blogagic.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>To be honest, you&#8217;ll see very quickly that my first Flex custom effect is not really a classical effect!!!</p>
<p>But, before looking at my very special way of relying on the Flex effect framework, let&#8217;s see a couple of reminders on the standard way of defining and using them:</p>
<p style="padding-left: 30px;">Developing a Flex custom effect requires working with two basic types of classes: <em>factory </em>and <em>instance</em>.</p>
<p style="padding-left: 30px;">When we create an effect object from MXML or ActionScript, we&#8217;re using the <em>factory</em> class.</p>
<p style="padding-left: 30px;">When the effect is associated to a control for a given trigger (i.e. event), the <em>factory</em> creates an <em>instance</em> of the effect and links it to the target control.</p>
<p style="padding-left: 30px;">The <em>instance</em> class must provide a <code>play()</code> method that will be called when the effect is triggered (i.e. when the event is triggered) and that implements the effect.</p>
<h3>A quite special effect</h3>
<p>I said above that my <code>EditInPlaceEffect</code> wasn&#8217;t really an effect. What I mean is that I relied on the Flex effect framework to hook my code to a control. Instead of injecting it &#8220;from the outside&#8221; as with my <code>FadingInjector</code>, this time it&#8217;s injected <strong>by</strong> the effect.</p>
<p>Usually, an effect is associated to a particular event, called its trigger. When the event is dispatched, the effect is played.</p>
<p>In my case, I want to rely on multiple events (<code>ROLL_IN, ROLL_OUT, FOCUS_IN</code> and <code>FOCUS_OUT</code>). I could have defined multiple effects but I would have also needed some needs to share a context between them. And, at the end, using my effects would have required a lot of work to put everything in place.</p>
<p>So, I decided that my Flex custom effect would just be a way to embed my processing in a well known and easily hookable container.</p>
<p>More specifically, the <code>play()</code> method of my <code>EditInPlaceEffect</code> doesn&#8217;t animate any property or change any style but, instead, registers the effect instance as a listener for the control. The corresponding event handlers will then do their work &#8220;as usual&#8221;.</p>
<p>The <code>EditInPlaceEffect</code> effect should not be associated to <code>FOCUS_IN</code> or <code>ROLL_OUT</code> events but, instead, to <code>CREATION_COMPLETE</code> event such that it can define its listeners when the control is created.</p>
<p>I told you it was a quite special effect, hope you&#8217;re not disappointed <img src='http://blogagic.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>I still have to check whether effect instances are sometimes recycled as are <code>itemRenderer</code> instances. Of course, if it would be the case, my <code>EditInPlaceEffect</code> would not really remain a valid option! If you know if effect instances are sometimes recycled, let me know.</p>
<h3>Comparison with FadingInjector</h3>
<p>Compared to my FadingInjector, a few things have changed:</p>
<ul>
<li>In a positive way:
<ul>
<li>Injection is easier by using an effect (the control is not required in the effect declaration, it was for the <code>FadingInjector</code>). If a control is renamed, there&#8217;s nothing else to change. With <code>FadingInjector</code>, the renaming must be also applied to the <code>control</code> property.</li>
<li>Relying on <code>alpha</code> property instead of <code>backgroundColor</code> allows to apply the effect to more controls (there are caveats. With the <code>NumericStepper</code> for example, the fading effect isn&#8217;t triggered if you click only once on the arrows. This is because the <code>FOCUS_IN</code> event is received <strong>after</strong> the value has changed!).</li>
</ul>
</li>
<li>In a negative way:
<ul>
<li>Not all may like to &#8220;<code>alpha = 0.0</code>&#8221; look of their controls!</li>
<li>When a control is empty, it can be unnoticed by users; it would be better to either always provide a default value or to use controls offering a Prompt facility when they&#8217;re empty.</li>
</ul>
</li>
</ul>
<h3>EditInPlaceEffect behavior</h3>
<p>To conclude, let me summarize what exactly does <code>EditInPlaceEffect</code>:</p>
<ul>
<li>When assigned to a control: sets control&#8217;s alpha to <code>alphaRead</code></li>
<li>On control&#8217;s <code>CREATION_COMPLETE</code>: listens to Focus and Roll events</li>
<li>On <code>ROLL_OVER</code>, sets control&#8217;s alpha to <code>alphaFocus</code></li>
<li>On <code>ROLL_OUT</code>, restores control&#8217;s alpha to <code>alphaRead</code></li>
<li>On <code>FOCUS_IN</code>, sets control&#8217;s alpha to <code>alphaEdit</code></li>
<li>On <code>FOCUS_OUT</code>, fades alpha to <code>alphaRead</code> if the value has changed (no fading if unchanged)</li>
</ul>
<p><a href="http://blogagic.com/261/flex-custom-effect-editinplaceeffect">Flex custom effect EditInPlaceEffect</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/blogagic?a=e6sU7jGXX0U:8SyYuu1sbEM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/blogagic?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=e6sU7jGXX0U:8SyYuu1sbEM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/blogagic?i=e6sU7jGXX0U:8SyYuu1sbEM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=e6sU7jGXX0U:8SyYuu1sbEM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=e6sU7jGXX0U:8SyYuu1sbEM:M5Ufnnvh8Ow"><img src="http://feeds.feedburner.com/~ff/blogagic?d=M5Ufnnvh8Ow" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=e6sU7jGXX0U:8SyYuu1sbEM:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/blogagic/~4/e6sU7jGXX0U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogagic.com/261/flex-custom-effect-editinplaceeffect/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://blogagic.com/261/flex-custom-effect-editinplaceeffect</feedburner:origLink></item>
		<item>
		<title>Blogagic now running Google feedburner</title>
		<link>http://feedproxy.google.com/~r/blogagic/~3/UXAdpVwjaGA/blogagic-now-running-google-feedburner</link>
		<comments>http://blogagic.com/256/blogagic-now-running-google-feedburner#comments</comments>
		<pubDate>Fri, 27 Aug 2010 12:24:18 +0000</pubDate>
		<dc:creator>JYC</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[blogagic]]></category>

		<guid isPermaLink="false">http://blogagic.com/?p=256</guid>
		<description><![CDATA[Just a quick note to let you know that I just moved my RSS feed to Google feedburner.
This is supposed to be transparent for you  
If any of you are having issues with viewing my RSS feed, please let me know (simply re-subscribing should help in most cases).
Blogagic now running Google feedburner from @blogagic [...]<p><a href="http://blogagic.com/256/blogagic-now-running-google-feedburner">Blogagic now running Google feedburner</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p>Just a quick note to let you know that I just moved my RSS feed to <a title="Google feedburner" href="http://feedburner.google.com">Google feedburner</a>.</p>
<p>This is <em>supposed to be</em> transparent for you <img src='http://blogagic.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>If any of you are having issues with viewing my RSS feed, please let me know (simply <a title="Subscribe to Blogagic RSS feed via feedburner" href="http://feeds2.feedburner.com/blogagic">re-subscribing</a> should help in most cases).</p>
<p><a href="http://blogagic.com/256/blogagic-now-running-google-feedburner">Blogagic now running Google feedburner</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/blogagic?a=UXAdpVwjaGA:FRZ_zTcYMrY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/blogagic?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=UXAdpVwjaGA:FRZ_zTcYMrY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/blogagic?i=UXAdpVwjaGA:FRZ_zTcYMrY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=UXAdpVwjaGA:FRZ_zTcYMrY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=UXAdpVwjaGA:FRZ_zTcYMrY:M5Ufnnvh8Ow"><img src="http://feeds.feedburner.com/~ff/blogagic?d=M5Ufnnvh8Ow" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=UXAdpVwjaGA:FRZ_zTcYMrY:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/blogagic/~4/UXAdpVwjaGA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogagic.com/256/blogagic-now-running-google-feedburner/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blogagic.com/256/blogagic-now-running-google-feedburner</feedburner:origLink></item>
		<item>
		<title>Flex custom component FadingInjector</title>
		<link>http://feedproxy.google.com/~r/blogagic/~3/fCymjD1XSLA/flex-custom-component-fadinginjector</link>
		<comments>http://blogagic.com/247/flex-custom-component-fadinginjector#comments</comments>
		<pubDate>Wed, 25 Aug 2010 17:14:41 +0000</pubDate>
		<dc:creator>JYC</dc:creator>
				<category><![CDATA[Custom Component]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[custom component]]></category>
		<category><![CDATA[Edit in Place]]></category>
		<category><![CDATA[injection]]></category>

		<guid isPermaLink="false">http://blogagic.com/?p=247</guid>
		<description><![CDATA[Apply the fading background color effect available in my Flex FadingTextInput in any UIComponent by injecting it using FadingInjector (post updated following a comment from João).

Check the first section below for a demonstration of the FadingInjector and access to its source code.
But, if you want more details and a follow-up of my learning journey, read [...]<p><a href="http://blogagic.com/247/flex-custom-component-fadinginjector">Flex custom component FadingInjector</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p>Apply the fading background color effect available in <a title="Flex custom component FadingTextInput on Blogagic.com" href="http://blogagic.com/235/flex-custom-component-fadingtextinput">my Flex <code>FadingTextInput</code></a> in any <code>UIComponent</code> by injecting it using <code>FadingInjector</code> <span style="font-size: x-small;">(post updated following <a title="João's comment" href="http://blogagic.com/247/flex-custom-component-fadinginjector#comment-188">a comment from João</a>)</span>.<br />
<span id="more-247"></span></p>
<p>Check the first section below for a demonstration of the <code>FadingInjector</code> and access to its source code.</p>
<p>But, if you want more details and a follow-up of my learning journey, read also the second section!</p>
<ul>
<li><a title="FadingInjector demonstration and source code" href="#FadingInjector demo"><code>FadingInjector</code> Flex custom component</a></li>
<li><a title="FadingTextInput or FadingInjector?" href="#Why injecting?"><code>FadingTextInput</code> or <code>FadingInjector</code>?</a></li>
</ul>
<h2><a name="FadingInjector demo"></a>FadingInjector Flex custom component</h2>
<p>Here is an application demonstrating the <code>FadingInjector</code> behavior (right click to view source code):</p>
<p style="text-align: center;">
<iframe name="FadingInjector demonstration" src="http://blogagic.com/_flex/fadingInjector_demo/FadingInjectorDemo.html" scrolling="no" frameborder="no" width="430" height="294"><br />
</iframe>
</p>
<p>Click to <a title="FadingInjector source code" href="http://blogagic.com/_flex/fadingInjector_demo/FadingInjector.as">download the <code>FadingInjector</code> class</a>.</p>
<p>Use the first ColorPicker to change the controls background color or the second ColorPicker to change the editing color.</p>
<p>Use the &#8220;Highlight on Focus&#8221; check box to choose between the two available behaviors:</p>
<ul>
<li>When checked, the injector changes the control background color into the editing color as soon as the control takes the focus. It then changes it back into the initial control background color on focus out. The change into the initial background color is immediate if the value wasn&#8217;t changed; it is done through a fading effect if the value has been changed.</li>
<li>When unchecked,  the control background color is changed into the editing color on focus out, and only if the value has changed.</li>
</ul>
<p>As usual, if you have any question on this component, please <a title="In case of question on FadingInjector, leave a comment!" href="http://blogagic.com/247/flex-custom-component-fadinginjector#respond">leave a comment</a>.</p>
<h2><a name="Why injecting?"></a>FadingTextInput or FadingInjector?</h2>
<p>As I was explaining in <a title="Flex custom component FadingTextInput on Blogagic.com" href="http://blogagic.com/235/flex-custom-component-fadingtextinput#edit in place">my <code>FadingTextInput</code> article</a>, I would have liked my <code>FadingTextInput</code> custom component to support additional features such as a prompt string or a clear button. </p>
<p>I consider that there are already very good implementations of such goodies. Let&#8217;s just take two examples:</p>
<ul>
<li>The <code>PromptingTextInput</code> component  available in <a title="The flexlib project on Google Code" href="http://code.google.com/p/flexlib/">flexlib library</a></li>
<li>The Clearable <code>TextInput</code> available in <a title="The jwopitz project on Google Code" href="http://code.google.com/p/jwopitz-lib/">Justin W. Opitz&#8217;s library</a></li>
</ul>
<p>So, instead of extracting these features and incorporating them in my <code>FadingTextInput</code>, I decided to do &#8220;the opposite&#8221;: extracting my fading behavior and &#8220;incorporating&#8221; it in these existing components.</p>
<p>Of course, I cannot modify the flexlib or Justin components so why not <strong>injecting</strong> my behavior in their classes?</p>
<p>The <code>FadingInjector</code> is just an extract from my <code>FadingTextInput</code> component (the part managing and triggering the fading effect) that now applies the fading effect on an external control instead on itself. In other words, you can attach &#8220;any&#8221; existing control to my <code>FadingInjector</code> and this will add the fading behavior to the control.</p>
<p>I quoted any because my <code>FadingInjector</code> relies on two mandatory elements to be able to monitor a control. The control must support a <code>backgroundColor</code> style and a <code>String</code> property providing its &#8220;value&#8221; (that can be configured using the <code>valuePropertyName</code> property of <code>FadingInjector</code>). As long as a control has these two elements, the <code>FadingInjector</code> can inject the fading color behavior into the control. As, by default, the value property is defined as &#8220;text&#8221;, injecting the fading behavior to a <code>TextInput</code>/<code>TextArea</code> (or any subclass of <code>TextInput</code>/<code>TextArea</code>) just requires writing:</p>
<pre class="brush: as3">
&lt;blogagic:FadingInjector id=&quot;myInjector&quot; control=&quot;{myTextInput}&quot;&gt;
</pre>
<p>So, what&#8217;s better compared to my initial <code>FadingTextInput</code> is that I can now easily add my fading logic to any existing customized text input component.</p>
<p>That seems great but&#8230; there&#8217;s still something bothering me&#8230; without really thinking about it, I put my <code>FadingInjector</code> in my com.blogagic.control directory. I don&#8217;t think that it&#8217;s really a control&#8230; so what? You&#8217;ll know it by reading my next article!  <img src='http://blogagic.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Note:<br />
Following <a title="João's comment" href="http://blogagic.com/247/flex-custom-component-fadinginjector#comment-188">João&#8217;s comment</a>, I added an option to change the background color of the monitored control as soon as it gets the focus.</p>
<p>You should anyway note that this leads to a minor issue when using the <code>ClearableTextInput</code>. Indeed, when tabulating to exit the control, the focus is moved to its internal clear button. So, if you want the fading effect to happen, don&#8217;t leave the field using tab, but click on any other control.</p>
<p>By the way, implementing João&#8217;s suggestion, I had to modify <a title="AnimateColor class on Darron Schall's blog" href="http://www.darronschall.com/weblog/2006/12/animating-color-transitions-in-flex-2.cfm">Darron Schall&#8217;s <code>AnimateColor</code> class</a> such that it correctly sets the target values when being interrupted: one less bug, great; thanks again João!</p>
<p><a href="http://blogagic.com/247/flex-custom-component-fadinginjector">Flex custom component FadingInjector</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/blogagic?a=fCymjD1XSLA:TJspdUVsKKE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/blogagic?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=fCymjD1XSLA:TJspdUVsKKE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/blogagic?i=fCymjD1XSLA:TJspdUVsKKE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=fCymjD1XSLA:TJspdUVsKKE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=fCymjD1XSLA:TJspdUVsKKE:M5Ufnnvh8Ow"><img src="http://feeds.feedburner.com/~ff/blogagic?d=M5Ufnnvh8Ow" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=fCymjD1XSLA:TJspdUVsKKE:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/blogagic/~4/fCymjD1XSLA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogagic.com/247/flex-custom-component-fadinginjector/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://blogagic.com/247/flex-custom-component-fadinginjector</feedburner:origLink></item>
		<item>
		<title>Flex custom component FadingTextInput (Edit in Place building block)</title>
		<link>http://feedproxy.google.com/~r/blogagic/~3/gMrGmA2DxTs/flex-custom-component-fadingtextinput</link>
		<comments>http://blogagic.com/235/flex-custom-component-fadingtextinput#comments</comments>
		<pubDate>Mon, 23 Aug 2010 18:02:12 +0000</pubDate>
		<dc:creator>JYC</dc:creator>
				<category><![CDATA[Custom Component]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[custom component]]></category>
		<category><![CDATA[Edit in Place]]></category>
		<category><![CDATA[TextInput]]></category>

		<guid isPermaLink="false">http://blogagic.com/?p=235</guid>
		<description><![CDATA[FadingTextInput is a Flex custom component based on TextInput that provides a background color fading effect when its content is modified.

If you&#8217;re just interested by the FadingTextInput component and its source code, check the first section below.
But if you&#8217;re curious on why I qualified it as an Edit in Place building block or want a [...]<p><a href="http://blogagic.com/235/flex-custom-component-fadingtextinput">Flex custom component FadingTextInput (Edit in Place building block)</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p>FadingTextInput is a Flex custom component based on <code>TextInput</code> that provides a background color fading effect when its content is modified.</p>
<p><span id="more-235"></span></p>
<p>If you&#8217;re just interested by the <code>FadingTextInput</code> component and its source code, check the first section below.</p>
<p>But if you&#8217;re curious on why I qualified it as an Edit in Place building block or want a clue concerning the next article, don&#8217;t forget to read the second section.</p>
<ul>
<li><a title="FadingTextInput demonstration and source code" href="#FadingTextInput demo">FadingTextInput Flex custom component</a></li>
<li><a title="Why FadingTextInput is an Edit in Place building block" href="#edit in place">FadingTextInput: an &#8220;Edit in Place&#8221; building block</a></li>
</ul>
<h2><a name="FadingTextInput demo"></a>FadingTextInput Flex custom component</h2>
<p>Here is an application demonstrating the <code>FadingTextInput</code> behavior (right click to view source code):</p>
<p style="text-align: center;">
<iframe name="FadingTextInput demonstration" src="http://blogagic.com/_flex/fadingTextInput_demo/FadingTextInputDemo.html" scrolling="no" frameborder="no" width="560" height="300"><br />
</iframe>
</p>
<p>You can <a title="FadingTextInput source code" href="http://blogagic.com/_flex/fadingTextInput_demo/FadingTextInput.as">download the <code>FadingTextInput</code> class</a>.</p>
<p>I hope that the source code is commented enough to explain the approach I took when building this Flex custom component. Anyway, if anything remains unclear for you, don&#8217;t hesitate to ask for clarifications by <a title="Leave a comment" href="http://blogagic.com/235/flex-custom-component-fadingtextinput#respond">leaving a comment</a>.</p>
<h2><a name="edit in place"></a>FadingTextInput: an &#8220;Edit in Place&#8221; building block</h2>
<p>After having read <a title="Designing Web Interfaces website" href="http://designingwebinterfaces.com/">Designing Web Interfaces</a> by <a title="Theresa Neil on Twitter" href="http://twitter.com/theresaneil">Theresa Neil</a> and <a title="Bill Scott on Twitter" href="http://twitter.com/billwscott">Bill Scott</a>, I decided it would be fun to work on some Edit in Place components. And, of course, it would also be a good step in my Flex learning journey!</p>
<p>I decided to start by customizing a Flex <code>TextInput</code> such that, at the end of the editing process, its background color fades from the editing color to the regular background color.</p>
<p>My first result is the <code>FadingTextInput</code> custom component (<a title="FadingTextInput demonstration and source code" href="#FadingTextInput demo">see <code>FadingTextInput</code> in action above</a>).</p>
<p>While developing this <code>FadingTextInput</code> custom component, I was having one new idea every two minutes! So it was quite difficult to remain focused on completing something instead of continuously wanting to change everything  <img src='http://blogagic.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>The main aspects I kept in mind were: Invitation &amp; Fading.</p>
<p>For the Invitation part, I added customizable tooltips and decided that the border of the <code>FadingTextInput</code> would be drawn only when hovering over the control.</p>
<p>For the Fading part, I was lucky to discover <a title="AnimateColor class on Darron Schall's blog" href="http://www.darronschall.com/weblog/2006/12/animating-color-transitions-in-flex-2.cfm">Darron Schall&#8217;s AnimateColor class</a> since I&#8217;m not (yet) using Flex 4 (which provides this effect natively).</p>
<p>After having <em>completed </em>these two objectives, I looked at my todo list and found: &#8220;manage a prompt string when the field is empty&#8221;. Nice! Let&#8217;s google it&#8230; ouch&#8230; so many results! and all of them are, as my <code>FadingTextInput</code>, a customized version of <code>TextInput</code>.</p>
<p>So, now that I have a lot of brilliant <code>TextInput</code> sub classes providing very good implementations of the prompt string requirement, what do I do with my own <code>FadingTextInput</code>? Do I update it to incorporate extracts of the other classes I found? Do I contact the other developers asking them to integrate my own features in their components?</p>
<p>I don&#8217;t think so! </p>
<p>This made me realize that my approach could have been <em>better</em>.</p>
<p>But, this will be for <a title="Flex custom component FadingInjector on Blogagic.com" href="http://blogagic.com/247/flex-custom-component-fadinginjector">the next article</a>!  <img src='http://blogagic.com/wp-includes/images/smilies/icon_cool.gif' alt='8-)' class='wp-smiley' /> </p>
<p><a href="http://blogagic.com/235/flex-custom-component-fadingtextinput">Flex custom component FadingTextInput (Edit in Place building block)</a> from <a href="http://twitter.com/blogagic">@blogagic</a> on <a href="http://blogagic.com">Blogagic.com</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/blogagic?a=gMrGmA2DxTs:ItfSBHq0iow:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/blogagic?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=gMrGmA2DxTs:ItfSBHq0iow:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/blogagic?i=gMrGmA2DxTs:ItfSBHq0iow:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=gMrGmA2DxTs:ItfSBHq0iow:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=gMrGmA2DxTs:ItfSBHq0iow:M5Ufnnvh8Ow"><img src="http://feeds.feedburner.com/~ff/blogagic?d=M5Ufnnvh8Ow" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/blogagic?a=gMrGmA2DxTs:ItfSBHq0iow:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/blogagic?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/blogagic/~4/gMrGmA2DxTs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogagic.com/235/flex-custom-component-fadingtextinput/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blogagic.com/235/flex-custom-component-fadingtextinput</feedburner:origLink></item>
	</channel>
</rss>
