<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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: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>Flex + Ruby On Rails</title>
	<atom:link href="http://abhisheksoft.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://abhisheksoft.wordpress.com</link>
	<description>Blog For Flex And Ruby On Rails :)</description>
	<lastBuildDate>Thu, 12 Jan 2012 11:54:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='abhisheksoft.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/bd8fdcbce32c8b4913729a28578ff69f?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Flex + Ruby On Rails</title>
		<link>http://abhisheksoft.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://abhisheksoft.wordpress.com/osd.xml" title="Flex + Ruby On Rails" />
	<atom:link rel='hub' href='http://abhisheksoft.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Opening for Flex pune</title>
		<link>http://abhisheksoft.wordpress.com/2011/09/20/opening-for-flex-pune/</link>
		<comments>http://abhisheksoft.wordpress.com/2011/09/20/opening-for-flex-pune/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 07:12:55 +0000</pubDate>
		<dc:creator>abhisheksoft</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Jobs]]></category>

		<guid isPermaLink="false">http://abhisheksoft.wordpress.com/?p=68</guid>
		<description><![CDATA[send resumes for action script or flex pune to id a9921096876@gmail.com<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abhisheksoft.wordpress.com&amp;blog=8211490&amp;post=68&amp;subd=abhisheksoft&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>send resumes for action script or flex pune<br />
to id a9921096876@gmail.com</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abhisheksoft.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abhisheksoft.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abhisheksoft.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abhisheksoft.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abhisheksoft.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abhisheksoft.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abhisheksoft.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abhisheksoft.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abhisheksoft.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abhisheksoft.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abhisheksoft.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abhisheksoft.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abhisheksoft.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abhisheksoft.wordpress.com/68/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abhisheksoft.wordpress.com&amp;blog=8211490&amp;post=68&amp;subd=abhisheksoft&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abhisheksoft.wordpress.com/2011/09/20/opening-for-flex-pune/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d916085da18a1ce8de2f5b684a2f9195?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">abhisheksoft</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex Materials</title>
		<link>http://abhisheksoft.wordpress.com/2011/05/19/flex-materials/</link>
		<comments>http://abhisheksoft.wordpress.com/2011/05/19/flex-materials/#comments</comments>
		<pubDate>Thu, 19 May 2011 08:16:42 +0000</pubDate>
		<dc:creator>abhisheksoft</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://abhisheksoft.wordpress.com/?p=69</guid>
		<description><![CDATA[GMap: http://code.google.com/apis/maps/documentation/flash/demogallery.html http://mabp.kiev.ua/2010/01/12/google-map-markers/ http://econym.org.uk/gmap/ http://econym.org.uk/gmap/<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abhisheksoft.wordpress.com&amp;blog=8211490&amp;post=69&amp;subd=abhisheksoft&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<pre><strong>GMap:</strong>
<strong> http://code.google.com/apis/maps/documentation/flash/demogallery.html</strong>
<strong> http://mabp.kiev.ua/2010/01/12/google-map-markers/ http://econym.org.uk/gmap/</strong>
<strong>http://econym.org.uk/gmap/
</strong></pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abhisheksoft.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abhisheksoft.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abhisheksoft.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abhisheksoft.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abhisheksoft.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abhisheksoft.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abhisheksoft.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abhisheksoft.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abhisheksoft.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abhisheksoft.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abhisheksoft.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abhisheksoft.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abhisheksoft.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abhisheksoft.wordpress.com/69/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abhisheksoft.wordpress.com&amp;blog=8211490&amp;post=69&amp;subd=abhisheksoft&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abhisheksoft.wordpress.com/2011/05/19/flex-materials/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d916085da18a1ce8de2f5b684a2f9195?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">abhisheksoft</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex Companies(India)</title>
		<link>http://abhisheksoft.wordpress.com/2009/06/30/flex-companiesindia/</link>
		<comments>http://abhisheksoft.wordpress.com/2009/06/30/flex-companiesindia/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 09:30:42 +0000</pubDate>
		<dc:creator>abhisheksoft</dc:creator>
				<category><![CDATA[FLEX _RAILS_COMPANIES]]></category>

		<guid isPermaLink="false">http://abhisheksoft.wordpress.com/?p=52</guid>
		<description><![CDATA[Here  is the list of some companies in India for  Flex Developers enovate-it, Pune BetterLabs ,Pune Capgemini Bangalore,pune Perennial Systems ,Pune GreymatterIndia    ,Pune,Mumbai itcube, Pune Mangospring, Pune QuinStreet India, Pune   www.quinstreet.com Cognizant, pune, chennai, blore, Hyderabad. Symphony, Pune. Ness technologies, Pune. Spadeworx Software Services, Pune Symphony ,Pune,Hyderabad Spectraforce Technologies India Pvt Ltd ,Pune,Hyderabad,Chandigarh Resource [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abhisheksoft.wordpress.com&amp;blog=8211490&amp;post=52&amp;subd=abhisheksoft&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Here  is the list of some companies in India for  Flex Developers</strong></p>
<p><strong>enovate-it, Pune<br />
</strong></p>
<p>BetterLabs ,Pune<br />
Capgemini Bangalore,pune<br />
Perennial Systems ,Pune</p>
<p>GreymatterIndia    ,Pune,Mumbai<br />
itcube, Pune</p>
<p>Mangospring, Pune<br />
QuinStreet India, Pune   www.quinstreet.com<br />
Cognizant, pune, chennai, blore, Hyderabad.<br />
Symphony, Pune.<br />
Ness technologies, Pune.<br />
Spadeworx Software Services, Pune<br />
Symphony ,Pune,Hyderabad<br />
Spectraforce Technologies India Pvt Ltd ,Pune,Hyderabad,Chandigarh<br />
Resource PLUS Services Pvt. Ltd ,Pune<br />
HSBC Software Development India Private Limited ,Pune</p>
<p><strong>neoquant ,Mumbai</strong><br />
Xoriant Solutions Pvt. Ltd. CMM 4 Mumbai.<br />
Hewlet Packard<br />
designscripting.com</p>
<p>Adams Studio India, Chennai<br />
Mascon Global Limited,Gurgaon<br />
Sourcebits Technologies Pvt Ltd, Bangalore<br />
Magnet Technologies, MumbaiVetVision , MumbaiJPM, Mumbai.<br />
KNOLSKAPE Solutions PTE. LTD ,Bangalore<br />
Sourcebits Technologies Pvt Ltd, Bangalore<br />
Ness Technologies Mumbai , Banglore<br />
Esberi Technologies Private Limited ,  Chennai<br />
devaraj@wp.pl ,Chennai<br />
Softlogic Inc, Chennai<br />
HCL Technologies Noida<br />
Ellaar InfoTek Private Ltd, Chennai<br />
Atelier Soft Private Ltd, Chennai<br />
Ferventsoft.com<br />
flexdevelopers.co.in<br />
Oracle SAP Sungard.<br />
Wipro Technologies<br />
XLabz Technologies<br />
FIC (First Indian Corporation), Hyderabad<br />
Birlasoft, redbricks,<br />
fiserv,<br />
genpact,<br />
zensar,<br />
aztech,<br />
mindtree,<br />
accenture,<br />
eds,<br />
TCS,<br />
wipro,<br />
CTS,<br />
Capgemini,<br />
MorganStanely<br />
Movico Technologies, Gurgaon<br />
TechTier Solutions Inc. Chandigarh<br />
Tribalfusion &#8211; Noida<br />
Theorem India Pvt Ltd, Source bits- Bangalore.<br />
Aramia, Catbot solution- cochin,<br />
CDAC Trivandrum,<br />
Satmaterix, Sand Blue etc &#8212; Trivandrum<br />
Adobe Inc. Bangalore<br />
Movico Technologies, Gurgaon<br />
Tell me more companies to add here in this list,<br />
<strong><br />
please add name of companies in comments,I&#8217;ll add it to my list.<br />
thx in advanced,<br />
 <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abhisheksoft.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abhisheksoft.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abhisheksoft.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abhisheksoft.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abhisheksoft.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abhisheksoft.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abhisheksoft.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abhisheksoft.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abhisheksoft.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abhisheksoft.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abhisheksoft.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abhisheksoft.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abhisheksoft.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abhisheksoft.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abhisheksoft.wordpress.com&amp;blog=8211490&amp;post=52&amp;subd=abhisheksoft&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abhisheksoft.wordpress.com/2009/06/30/flex-companiesindia/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d916085da18a1ce8de2f5b684a2f9195?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">abhisheksoft</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex With Rails(Basic Interaction)</title>
		<link>http://abhisheksoft.wordpress.com/2009/06/26/flex-with-railsbasic-interaction/</link>
		<comments>http://abhisheksoft.wordpress.com/2009/06/26/flex-with-railsbasic-interaction/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 13:05:13 +0000</pubDate>
		<dc:creator>abhisheksoft</dc:creator>
				<category><![CDATA[Flex With Rails]]></category>

		<guid isPermaLink="false">http://abhisheksoft.wordpress.com/?p=47</guid>
		<description><![CDATA[Here is the basic idea about how we can use rails with  Flex. There is many ways to communicate Flex with Backend, in that very easy way is &#8216; httpservice&#8217;. 1)Create database , table and add data in it. 2)create rails application and connect it with database. 3)Fetch data in rails controller and generate xml [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abhisheksoft.wordpress.com&amp;blog=8211490&amp;post=47&amp;subd=abhisheksoft&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Here is the basic idea about how we can use rails with  Flex.</strong></p>
<p>There is many ways to communicate Flex with Backend, in that very easy way is &#8216; httpservice&#8217;.</p>
<p>1)Create database , table and add data in it.</p>
<p>2)create rails application and connect it with database.</p>
<p>3)Fetch data in rails controller and generate xml file from this data.</p>
<p>4)Use HttpService method in Flex to fetch above xml data in Flex.</p>
<p><strong>1)Database</strong></p>
<p>Use any databse and create table in that with inserting some dummy data.<br />
here we are creating database and table  in mysql ,<br />
mysql&gt;create database mydatabase;<br />
mysql&gt;use mydatabase;<br />
Above line to open database to use it</p>
<p>mysql&gt;create table sites(id int primary key,url varchar(40),description varchar(100));<br />
here we have  mydatabase (Database Name), sites (Table Name)</p>
<p>Now Inserting some dummy data in it.<br />
mysql&gt;insert into sites values(1,&#8217;http://www.google.com&#8217;,'Enables users to search the Web, Usenet, and images.&#8217;);<br />
mysql&gt;insert into sites values(2,&#8217;http://www.yahoo.com&#8217;,'Personalized content and search options. Chatrooms, free e-mail, clubs,</p>
<p>and pager.&#8217;);<br />
mysql&gt;insert into sites values(3,&#8217;http://www.youtube.com&#8217;,'YouTube is a way to getyour videos to the people who matter to you.&#8217;);</p>
<p>mysql&gt;select * from sites;<br />
Here we can see data in our table.</p>
<p><strong>2)Rails Application</strong></p>
<p>Create rails application with type below  on command prompt<br />
rails flex_rails</p>
<p>here flex_rails is a name of rails application.<br />
then type this,<br />
cd flex_rails</p>
<p>Now we are in flex_rails application.<br />
Now create controller for our rails application.<br />
ruby script/generate controller site<br />
Our controller is generated.</p>
<p>Now write  the  database name in database.yml file which is located in config folder.<br />
open the flex_rails -&gt; config -&gt;database.yml<br />
There add our database name like  below<br />
development:<br />
adapter: mysql<br />
database: mydatabase<br />
timeout: 5000</p>
<p>We are ready to go for rails code now.<br />
Here we are doing 2 things :<br />
i)Fetch data from our table,<br />
ii)Generate XML file with this data to send to frontend(Flex inour example)</p>
<p><strong>3)Create XML File</strong><br />
Go inside of our rails project there are folder name app , then<br />
go inside of it there is anather folder controllers , inside of it you can see site_controller.rb file.<br />
Path for me here is  C:\flex_rails\app\controllers<br />
Open site_controller.rb file in notepad and we are writting code to fetch data and generate XML.<br />
Copy and Paste this code at your end.<br />
class SiteController &lt; ApplicationController<br />
def index<br />
@all_Data = Site.find(:all)       #  HERE WE ARE FETCHING ALLDATA FROM SITES TABLE IN @all_Data OBJECT<br />
render :layout =&gt; false, :action=&gt;&#8217;getXML.rxml&#8217;   # HERE  WE SENDING ACTION TO getXML.rxml PAGE<br />
end<br />
end</p>
<p>Now go to app folder again there is anather folder named as views, Open it and you will see anather folder site.<br />
open site folder and create there 1 file named as getXML.rxml inside of it.<br />
open this file and write this code in that.</p>
<p>xml.instruct! <img src='http://s2.wp.com/wp-includes/images/smilies/icon_mad.gif' alt=':x' class='wp-smiley' /> ml, :version=&gt;&#8221;1.0&#8243;<br />
xml.rss(:version=&gt;&#8221;2.0&#8243;){<br />
xml.channel{<br />
xml.user_name(&#8216;abhi&#8217;)<br />
xml.user_session_id(1)<br />
xml.user_id(1)<br />
xml.language(&#8216;en-us&#8217;)<br />
@all_Data.each do|i|<br />
xml.item{<br />
xml.url(i.url)<br />
xml.description(i.description)<br />
}<br />
end<br />
}<br />
}</p>
<p>In above code  give look at this code<br />
@all_Data.each do|i|<br />
xml.item{<br />
xml.url(i.url)<br />
xml.description(i.description)<br />
}<br />
end<br />
Here in @all_Data object we have all data, so we  looping it to write data in xml.</p>
<p>Now see this below code:<br />
xml.user_name(&#8216;abhi&#8217;)<br />
xml.user_session_id(1)<br />
xml.user_id(1)<br />
Above code has no any use in our this example, But here we can fetch and write data like username or session id<br />
or else data which we are using in rails and want to send with xml to front end.</p>
<p>Here we are finished with our Rails things.Data is fetched and XML is generated.We can see it.<br />
Go on command prompt where we have in our rails application.<br />
Here On  my computer path is   C:\flex_rails\<br />
Then start the rails server<br />
C:\flex_rails\ruby script/server<br />
http://localhost:3000/site/index    Type this in Browser and see the XML.</p>
<p><strong>4) FLEX</strong><br />
I&#8217;m using FlexBuilder 3 to do Flex code.<br />
Create new Project in Flex<br />
File &#8211; &gt; New -&gt; FlexProject -&gt; Name Of Project Here says FlexWithRails and click on button Finish.<br />
New project FlexWithRails  is created with FlexWithRails.mxml file</p>
<p>Open this FlexWithRails.mxml file and write this code.<br />
&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br />
&lt;mx:Application xmlns:mx=&#8221;http://www.adobe.com/2006/mxml&#8221; layout=&#8221;vertical&#8221; backgroundGradientColors=&#8221;[#000000,</p>
<p>#70828f]&#8220;<br />
alpha=&#8221;1&#8243; themeColor=&#8221;haloGreen&#8221; backgroundGradientAlphas=&#8221;[0.9, 0.96]&#8220;  viewSourceURL=&#8221;srcview/index.html&#8221;&gt;</p>
<p>&lt;!&#8211; ALL HTTP SERVICES STARTS HERE&#8211;&gt;<br />
&lt;!&#8211;   url is   Controller Name/Def Name<br />
resultFormat can be array,object,xml,etc<br />
result is a event which is called when we got the data from xml<br />
fault is a event which is called when we not able to connect or fetch  xml cause of any reason<br />
&#8211;&gt;<br />
&lt;mx:HTTPService id=&#8221;httpSerGetSiteData&#8221;<br />
url=&#8221;site/index&#8221;<br />
resultFormat=&#8221;e4x&#8221;<br />
result=&#8221;resultHandlerFunc(event)&#8221;<br />
fault=&#8221;faultHandlerFunc(event)&#8221;<br />
/&gt;</p>
<p>&lt;!&#8211; ALL HTTP SERVICES ENDS HERE&#8211;&gt;</p>
<p>&lt;!&#8211; ALL SCRIPT CODE STARTS HERE &#8211;&gt;<br />
&lt;mx:Script&gt;<br />
&lt;![CDATA[<br />
import mx.rpc.events.FaultEvent;<br />
import mx.rpc.events.ResultEvent;<br />
import mx.controls.Alert;</p>
<p>private function callData():void {<br />
httpSerGetSiteData.send(); //WE SENDING REQUEST TO BACKEND<br />
}</p>
<p>private function resultHandlerFunc(event:ResultEvent):void{<br />
//WE COME HERE WHEN WE FETCH THE DATA FROM XML<br />
//Alert.show(String(event.result));<br />
//Alert.show(String(httpSerGetSiteData.lastResult.channel.item.event_id));<br />
dg.dataProvider = httpSerGetSiteData.lastResult.channel.item;<br />
//GIVING DATA TO DATAGRID WITH ITS dataProvider PROPERTY.<br />
//tHEN DATA CAN BE DISPLAY IN DATAGRID<br />
}</p>
<p>private function faultHandlerFunc(event:FaultEvent):void{<br />
Alert.show(String(event.fault)); // ERROR MESSAGE COMES IF WE ARE NOT</p>
<p>CONNECTING<br />
//WITH XML OR UNABLE TO FETCH XML DATA<br />
}<br />
]]&gt;<br />
&lt;/mx:Script&gt;<br />
&lt;!&#8211; ALL SCRIPT CODE ENDS HERE &#8211;&gt;</p>
<p>&lt;!&#8211; ALL DESIGN CODE STARTS HERE &#8211;&gt;<br />
&lt;mx:DataGrid id=&#8221;dg&#8221; width=&#8221;100%&#8221; height=&#8221;200&#8243;&gt;<br />
&lt;mx:columns&gt;<br />
&lt;mx:DataGridColumn headerText=&#8221;URL&#8221; dataField=&#8221;url&#8221; width=&#8221;150&#8243;  /&gt;<br />
&lt;mx:DataGridColumn headerText=&#8221;Description&#8221; dataField=&#8221;description&#8221;/&gt;<br />
&lt;/mx:columns&gt;</p>
<p>&lt;/mx:DataGrid&gt;<br />
&lt;mx:Button label=&#8221;GetData&#8221; click=&#8221;callData();&#8221; /&gt;<br />
&lt;!&#8211; ALL DESIGN CODE ENDS HERE &#8211;&gt;<br />
&lt;/mx:Application&gt;</p>
<p>NOW ALL CODE ARE DONE.<br />
Go on File option of FlexBuilder , then click on Export, then click on ReleaseBuild,<br />
Where you can see ProjectName FlexWithRails   is here , and<br />
Application FlexWithRails.mxml is here.<br />
Below it Export To Folder: where you can see  bin-release.<br />
Then click on Finish button. It will export your file at bin-release.<br />
Now open this bin-release folder on your computer. For me the default path is<br />
on Desctop -&gt; My Documents -&gt; Flex Builder 3 -&gt; FlexWithRails -&gt;bin-release<br />
Copy 4 files from there<br />
i)FlexWithRails.html<br />
ii)FlexWithRails.swf<br />
iii)AC_OETags.js<br />
iv)playerProductInstall.swf</p>
<p>AND PASTE THIS ALL FILES IN PUBLIC FOLDER OF OUR RAILS   PROJECT(flex_rails -&gt; public).<br />
Open Browser and type this url</p>
<p>http://localhost:3000/i)FlexWithRails.html</p>
<p>Click on button  GetData and you will see the data  comes in datagrid.</p>
<p>Thats All friends, Tell me if you find any bug or any query relate to this example. I&#8217;ll happy to answer you.<br />
<strong> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abhisheksoft.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abhisheksoft.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abhisheksoft.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abhisheksoft.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abhisheksoft.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abhisheksoft.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abhisheksoft.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abhisheksoft.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abhisheksoft.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abhisheksoft.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abhisheksoft.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abhisheksoft.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abhisheksoft.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abhisheksoft.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abhisheksoft.wordpress.com&amp;blog=8211490&amp;post=47&amp;subd=abhisheksoft&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abhisheksoft.wordpress.com/2009/06/26/flex-with-railsbasic-interaction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d916085da18a1ce8de2f5b684a2f9195?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">abhisheksoft</media:title>
		</media:content>
	</item>
		<item>
		<title>Rating Component (Flex)</title>
		<link>http://abhisheksoft.wordpress.com/2009/06/23/rating-component-flex/</link>
		<comments>http://abhisheksoft.wordpress.com/2009/06/23/rating-component-flex/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 05:22:03 +0000</pubDate>
		<dc:creator>abhisheksoft</dc:creator>
				<category><![CDATA[FlexExamples]]></category>

		<guid isPermaLink="false">http://abhisheksoft.wordpress.com/?p=19</guid>
		<description><![CDATA[This is the example of rating component: rating.mxml &#60;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&#62; &#60;mx:Application xmlns:mx=&#8221;http://www.adobe.com/2006/mxml&#8221; layout=&#8221;vertical&#8221; xmlns=&#8221;com.Rating.*&#8221; horizontalAlign=&#8221;center&#8221; verticalAlign=&#8221;middle&#8221; &#62; &#60;mx:Style&#62; Ratings{ horizontalGap:3; paddingTop:3; paddingLeft:6; } RatingItem{ borderAlpha:0; fillEnabled:true; fillColors:FFCC33,FFCC33; fillSelectedColors:#FF9933,#FF9933; fillAlphas:1,1; fillRatios:0,255; fillAngle:90; } &#60;/mx:Style&#62; &#60;mx:Script&#62; &#60;![CDATA[ import mx.controls.Alert; import mx.events.*; [Bindable] private var rate_number:Number; private function handleChange(event:Event):void { rate_number=Number(event.currentTarget.value); Alert.show(String(rate_number)); } ]]&#62; &#60;/mx:Script&#62; &#60;Ratings id=&#8221;rateit&#8221; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abhisheksoft.wordpress.com&amp;blog=8211490&amp;post=19&amp;subd=abhisheksoft&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is the example of rating component:<br />
<strong><br />
rating.mxml</strong></p>
<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br />
&lt;mx:Application xmlns:mx=&#8221;http://www.adobe.com/2006/mxml&#8221; layout=&#8221;vertical&#8221;<br />
xmlns=&#8221;com.Rating.*&#8221; horizontalAlign=&#8221;center&#8221; verticalAlign=&#8221;middle&#8221; &gt;<br />
&lt;mx:Style&gt;<br />
Ratings{<br />
horizontalGap:3;<br />
paddingTop:3;<br />
paddingLeft:6;<br />
}</p>
<p>RatingItem{<br />
borderAlpha:0;<br />
fillEnabled:true;<br />
fillColors:FFCC33,FFCC33;<br />
fillSelectedColors:#FF9933,#FF9933;<br />
fillAlphas:1,1;<br />
fillRatios:0,255;<br />
fillAngle:90;<br />
}<br />
&lt;/mx:Style&gt;</p>
<p>&lt;mx:Script&gt;<br />
&lt;![CDATA[<br />
import mx.controls.Alert;<br />
import mx.events.*;<br />
[Bindable] private var rate_number:Number;<br />
private function handleChange(event:Event):void<br />
{<br />
rate_number=Number(event.currentTarget.value);<br />
Alert.show(String(rate_number));<br />
}<br />
]]&gt;<br />
&lt;/mx:Script&gt;</p>
<p>&lt;Ratings id=&#8221;rateit&#8221; change=&#8221;handleChange(event);&#8221; horizontalGap=&#8221;3&#8243;<br />
tooltips=&#8221;['Bad','Better','Average','Good','WOW!! +5']&#8220;<br />
value=&#8221;0&#8243; width=&#8221;60&#8243;  height=&#8221;14&#8243; x=&#8221;169&#8243; y=&#8221;34&#8243;<br />
points=&#8221;5&#8243;<br />
innerRadius=&#8221;25&#8243;<br />
outerRadius=&#8221;50&#8243;<br />
angle=&#8221;90&#8243;<br />
styleName=&#8221;example7&#8243;<br />
/&gt;<br />
&lt;/mx:Application&gt;</p>
<p>Here is the Components which we adding in our main file:</p>
<p>in folder com</p>
<p><strong>Ratings.as</strong></p>
<p>package com.Rating<br />
{<br />
import mx.core.UIComponent;</p>
<p>import flash.events.MouseEvent;<br />
import flash.events.Event;</p>
<p>import mx.controls.dataGridClasses.DataGridListData;<br />
import mx.controls.listClasses.BaseListData;<br />
import mx.controls.listClasses.IDropInListItemRenderer;<br />
import mx.controls.listClasses.IListItemRenderer;<br />
import mx.core.IDataRenderer;<br />
import mx.events.FlexEvent;</p>
<p>[Style(name="horizontalGap", type="Number", format="Length", inherit="no")]<br />
[Style(name="paddingLeft", type="Number", format="Length", inherit="no")]<br />
[Style(name="paddingTop", type="Number", format="Length", inherit="no")]</p>
<p>[Event("change")]<br />
public class Ratings extends UIComponent implements IDataRenderer, IDropInListItemRenderer,    IListItemRenderer<br />
{</p>
<p>public function Ratings():void<br />
{<br />
//add the mouse move event listener so that we can update<br />
//the display as the user moves out of the component capture both<br />
//rollout and mouse out to ensure proper display updating<br />
addEventListener(MouseEvent.MOUSE_OUT,handleMouseOut);<br />
addEventListener(MouseEvent.ROLL_OUT,handleMouseOut);</p>
<p>//make sure we can get notified of the child events<br />
mouseChildren = true;</p>
<p>}</p>
<p>/**<br />
* Store the number of items to create.<br />
**/<br />
private const itemCount:Number =5;</p>
<p>private var contentWidth:Number=0;</p>
<p>/**<br />
* Data storage.<br />
**/<br />
private var _data:Object;</p>
<p>[Bindable("dataChange")]<br />
[Inspectable(environment="none")]<br />
public function get data():Object<br />
{<br />
return _data;<br />
}</p>
<p>public function set data(value:Object):void<br />
{<br />
_data = value;</p>
<p>try{<br />
if (_listData &amp;&amp; _listData is DataGridListData)<br />
{<br />
this.value = _data[DataGridListData(_listData).dataField];<br />
}<br />
else<br />
{<br />
this.value = int(_listData.label);<br />
}</p>
<p>}<br />
catch(e:Error){<br />
this.value =0;<br />
}</p>
<p>dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));</p>
<p>}</p>
<p>/**<br />
* Storage for the listData property.<br />
*/<br />
private var _listData:BaseListData;<br />
[Bindable("dataChange")]<br />
public function get listData():BaseListData<br />
{<br />
return _listData;<br />
}<br />
public function set listData(value:BaseListData):void<br />
{<br />
_listData = value;<br />
}</p>
<p>/**<br />
* An array of tooltips for the rating items<br />
**/<br />
[Bindable]<br />
[Inspectable]<br />
private var _tooltips:Array = null;<br />
public function set tooltips(value:Array):void<br />
{<br />
_tooltips = value;</p>
<p>}<br />
public function get tooltips():Array<br />
{<br />
return _tooltips;<br />
}</p>
<p>/**<br />
* the value of the rating<br />
**/<br />
[Bindable(event="change")]<br />
[Inspectable]<br />
private var _value:int = 0;<br />
public function set value(value:int):void<br />
{<br />
_value = value;<br />
selectItems(value);</p>
<p>try{<br />
if (_listData &amp;&amp; _listData is DataGridListData)<br />
{<br />
_data[DataGridListData(_listData).dataField] = _value;<br />
}<br />
else<br />
{<br />
_listData.label = _value.toString();<br />
}<br />
}<br />
catch(e:Error){</p>
<p>}</p>
<p>dispatchEvent(new Event(&#8220;change&#8221;));</p>
<p>}<br />
public function get value():int<br />
{<br />
return _value;<br />
}</p>
<p>[Bindable]<br />
[Inspectable]<br />
private var _outerRadius:Number=50;<br />
public function set outerRadius(value:Number):void<br />
{<br />
_outerRadius = value;<br />
updateChildren(&#8220;outerRadius&#8221;,value);<br />
}</p>
<p>public function get outerRadius():Number<br />
{<br />
return _outerRadius;</p>
<p>}</p>
<p>[Bindable]<br />
[Inspectable]<br />
private var _innerRadius:Number=25;<br />
public function set innerRadius(value:Number):void<br />
{<br />
_innerRadius = value;<br />
updateChildren(&#8220;innerRadius&#8221;,value);<br />
}<br />
public function get innerRadius():Number<br />
{<br />
return _innerRadius;<br />
}</p>
<p>[Bindable]<br />
[Inspectable]<br />
private var _points:Number=5;<br />
public function set points(value:Number):void<br />
{<br />
_points = value;<br />
updateChildren(&#8220;points&#8221;,value);<br />
}<br />
public function get points():Number<br />
{<br />
return _points;<br />
}</p>
<p>[Bindable]<br />
[Inspectable]<br />
private var _angle:Number = 90;<br />
public function set angle(value:Number):void<br />
{<br />
_angle = value;<br />
updateChildren(&#8220;angle&#8221;,value);<br />
}<br />
public function get angle():Number<br />
{<br />
return _angle;<br />
}</p>
<p>/**<br />
* Update the children if the property changes.<br />
**/<br />
private function updateChildren(property:String, value:Number):void<br />
{<br />
for (var i:int = 1; i &lt; itemCount+1; i++)<br />
{</p>
<p>if (getChildByName(i.toString())){<br />
RatingItem(getChildByName(i.toString()))[property]=value;<br />
}<br />
}</p>
<p>}</p>
<p>/**<br />
* Add the star objects for rating and set thier properties and<br />
* add the event listener for rollover and click<br />
**/<br />
override protected function childrenCreated():void<br />
{</p>
<p>//use the horizontal Gap style for spacing between items<br />
var horizontalGap:Number = getStyle(&#8220;horizontalGap&#8221;);<br />
var paddingLeft:Number = getStyle(&#8220;paddingLeft&#8221;);<br />
var paddingTop:Number = getStyle(&#8220;paddingTop&#8221;);</p>
<p>var lastX:Number = 0;</p>
<p>//create each item, set the properties, and add the listeners.<br />
for (var i:int = 1; i &lt; itemCount+1; i++)<br />
{</p>
<p>var newItem:RatingItem = new RatingItem();<br />
newItem.id = (i).toString();<br />
newItem.name =(i).toString();</p>
<p>//if the tooltips are set apply it to the primitive<br />
if (tooltips)<br />
{<br />
if (tooltips.length &gt;(i-1)){<br />
newItem.toolTip = tooltips[i-1].toString();<br />
}<br />
}</p>
<p>//set the default width and height<br />
newItem.width = 12;<br />
newItem.height = 12;<br />
addChild(newItem);</p>
<p>if (lastX == 0)<br />
{<br />
newItem.x=paddingLeft;<br />
}<br />
else<br />
{<br />
newItem.x= ((12+horizontalGap)+lastX);<br />
}</p>
<p>lastX = newItem.x;</p>
<p>newItem.y= paddingTop;</p>
<p>//set the inicial value based on this value<br />
if ((i-1) &lt; value)<br />
{<br />
newItem.selected = true;<br />
}</p>
<p>newItem.addEventListener(MouseEvent.CLICK,handleItemClick,false,1);<br />
newItem.addEventListener(MouseEvent.ROLL_OVER,handleMouseRoll);<br />
newItem.addEventListener(MouseEvent.ROLL_OUT,handleMouseRoll);</p>
<p>}</p>
<p>width=newItem.x+horizontalGap;<br />
height = 12;<br />
}</p>
<p>override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void<br />
{</p>
<p>super.updateDisplayList(unscaledWidth,unscaledHeight);</p>
<p>//draw a transparent background so we can get the<br />
//rollout/over event on the ui object in not doing<br />
//this we&#8217;ll get flashing when moving between items<br />
graphics.lineStyle(0,0xFFFFFF,0);<br />
graphics.beginFill(0xFFFFFF,0);<br />
graphics.drawRect(0,0,unscaledWidth,unscaledHeight);<br />
graphics.endFill();</p>
<p>}</p>
<p>//do the selection based on passed value<br />
private function selectItems(value:Number):void{<br />
//make sure items are selected up to the target name<br />
//and any items after are not selected<br />
var currentItem:RatingItem;<br />
for (var i:int = 1; i &lt; itemCount+1; i++)<br />
{<br />
currentItem = RatingItem(getChildByName(i.toString()));<br />
if (currentItem)<br />
{<br />
if (i &lt;= value)<br />
{<br />
//selected<br />
currentItem.selected = true;</p>
<p>}<br />
else<br />
{<br />
//not selected<br />
currentItem.selected = false;<br />
}<br />
}<br />
}</p>
<p>}</p>
<p>private function handleMouseRoll(event:MouseEvent):void{<br />
selectItems(Number(event.currentTarget.name));<br />
}</p>
<p>private function handleMouseOut(event:MouseEvent):void{<br />
if (event.currentTarget is Ratings)<br />
{<br />
selectItems(value);<br />
}<br />
}</p>
<p>/**<br />
* handle the click and dispatch the event<br />
**/<br />
private function handleItemClick(event:MouseEvent):void<br />
{</p>
<p>//prevent the default and stop the propogation<br />
//so that the base class does not select it.<br />
event.preventDefault();<br />
event.stopImmediatePropagation();</p>
<p>if (event.currentTarget.id == 1 &amp;&amp; value == 1){<br />
value=0;<br />
}<br />
else{<br />
value= Number(event.currentTarget.id);<br />
}<br />
dispatchEvent(event);<br />
}<br />
}<br />
}</p>
<p><strong>RatingItem.as</strong></p>
<p>package com.Rating<br />
{<br />
import com.Primitives.PrimitiveStar;</p>
<p>/**<br />
* Add any specific things you require here for your rating component.<br />
**/<br />
public class RatingItem extends PrimitiveStar<br />
{<br />
public function RatingItem()<br />
{<br />
super();<br />
}<br />
}<br />
}</p>
<p><strong>in folder Primitives</strong></p>
<p>This folder incudes 4 files</p>
<p><strong>BasePrimitive.as</strong></p>
<p>package com.Primitives<br />
{<br />
import flash.display.GradientType;<br />
import flash.display.SpreadMethod;<br />
import flash.events.Event;<br />
import flash.events.MouseEvent;<br />
import flash.geom.*;</p>
<p>import mx.controls.dataGridClasses.DataGridListData;<br />
import mx.controls.listClasses.BaseListData;<br />
import mx.controls.listClasses.IDropInListItemRenderer;<br />
import mx.controls.listClasses.IListItemRenderer;<br />
import mx.core.EdgeMetrics;<br />
import mx.core.IDataRenderer;<br />
import mx.core.IFlexDisplayObject;<br />
import mx.core.UIComponent;<br />
import mx.core.mx_internal;<br />
import mx.events.FlexEvent;<br />
import mx.managers.IFocusManagerComponent;</p>
<p>use namespace mx_internal;</p>
<p>include &#8220;PrimitiveStyles.as&#8221;;</p>
<p>public class BasePrimitive extends UIComponent<br />
implements IDataRenderer, IDropInListItemRenderer,<br />
IFocusManagerComponent, IListItemRenderer<br />
{</p>
<p>public var selectedField:String = null;<br />
private var selectedSet:Boolean;<br />
private var styleChangedFlag:Boolean = true;</p>
<p>public function BasePrimitive()<br />
{<br />
mouseChildren = false;</p>
<p>//setup the events<br />
addEventListener(MouseEvent.ROLL_OVER, rollOverHandler);<br />
addEventListener(MouseEvent.ROLL_OUT, rollOutHandler);<br />
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);<br />
addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);<br />
addEventListener(MouseEvent.CLICK, clickHandler);</p>
<p>addEventListener(FlexEvent.UPDATE_COMPLETE, handleUpdateComplete);</p>
<p>}</p>
<p>private var toolTipSet:Boolean = false;<br />
[Inspectable(category="General", defaultValue="null")]<br />
override public function set toolTip(value:String):void<br />
{<br />
super.toolTip = value;</p>
<p>if (value)<br />
{<br />
toolTipSet = true;<br />
}<br />
else<br />
{<br />
toolTipSet = false;<br />
invalidateDisplayList();<br />
}<br />
}</p>
<p>mx_internal var _selected:Boolean = false;<br />
[Bindable("click")]<br />
[Bindable("valueCommit")]<br />
[Inspectable(category="General", defaultValue="false")]</p>
<p>public function get selected():Boolean<br />
{<br />
return _selected;<br />
}<br />
public function set selected(value:Boolean):void<br />
{<br />
selectedSet = true;<br />
setSelected(value);<br />
}</p>
<p>mx_internal function setSelected(value:Boolean):void<br />
{<br />
if (_selected != value)<br />
{<br />
_selected = value;</p>
<p>invalidateDisplayList();</p>
<p>if (toggle)<br />
dispatchEvent(new Event(Event.CHANGE));<br />
dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));<br />
}<br />
}</p>
<p>mx_internal var _toggle:Boolean = false;<br />
mx_internal var toggleChanged:Boolean = false;</p>
<p>[Bindable("toggleChanged")]<br />
[Inspectable(category="General", defaultValue="false")]<br />
public function get toggle():Boolean<br />
{<br />
return _toggle;<br />
}<br />
public function set toggle(value:Boolean):void<br />
{<br />
_toggle = value;<br />
toggleChanged = true;</p>
<p>invalidateProperties();<br />
invalidateDisplayList();</p>
<p>dispatchEvent(new Event(&#8220;toggleChanged&#8221;));<br />
}</p>
<p>private var _data:Object;</p>
<p>[Bindable("dataChange")]<br />
[Inspectable(environment="none")]<br />
public function get data():Object<br />
{<br />
if (!_data)<br />
_data = {};</p>
<p>return _data;<br />
}</p>
<p>public function set data(value:Object):void<br />
{<br />
var newSelected:*;</p>
<p>_data = value;</p>
<p>if (_listData &amp;&amp; _listData is DataGridListData)<br />
{<br />
newSelected = _data[DataGridListData(_listData).dataField];</p>
<p>}<br />
else if (_listData)<br />
{<br />
if (selectedField)<br />
newSelected = _data[selectedField];</p>
<p>}<br />
else<br />
{<br />
newSelected = _data;<br />
}</p>
<p>if (newSelected !== undefined &amp;&amp; !selectedSet)<br />
{<br />
selected = newSelected as Boolean;<br />
selectedSet = false;<br />
}</p>
<p>dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));<br />
}</p>
<p>/**<br />
* Storage for the listData property.<br />
*/<br />
private var _listData:BaseListData;</p>
<p>[Bindable("dataChange")]<br />
[Inspectable(environment="none")]<br />
public function get listData():BaseListData<br />
{<br />
return _listData;<br />
}<br />
public function set listData(value:BaseListData):void<br />
{<br />
_listData = value;<br />
}</p>
<p>/***<br />
* Some extensions of this class may be required to not have a background drawn,<br />
* so this provides and ability to specify that via the constructor<br />
* of the extending class.<br />
**/<br />
private var _backgroundEnabled:Boolean = true;<br />
public function set backgroundEnabled(value:Boolean):void<br />
{<br />
_backgroundEnabled = value;<br />
invalidateProperties();<br />
invalidateDisplayList();<br />
}<br />
public function get backgroundEnabled():Boolean<br />
{<br />
return _backgroundEnabled;<br />
}</p>
<p>override public function styleChanged(styleProp:String):void<br />
{<br />
styleChangedFlag = true;<br />
super.styleChanged(styleProp);<br />
invalidateProperties();<br />
invalidateDisplayList();<br />
}</p>
<p>/**<br />
* Events Handlers<br />
**/<br />
protected function rollOverHandler(event:MouseEvent):void<br />
{<br />
//trace(event);</p>
<p>}</p>
<p>protected function rollOutHandler(event:MouseEvent):void<br />
{<br />
//trace(event);</p>
<p>}</p>
<p>protected function mouseDownHandler(event:MouseEvent):void<br />
{<br />
//trace(event);<br />
}<br />
protected function mouseUpHandler(event:MouseEvent):void<br />
{<br />
//trace(event);<br />
}</p>
<p>protected function clickHandler(event:MouseEvent):void<br />
{<br />
selected = !selected;<br />
//trace(event);</p>
<p>}</p>
<p>/**<br />
* End any fill or gradient fill drawing actions on this event<br />
* so that the classes extending this one can do their specific<br />
* drawing to the surface.<br />
**/<br />
private function handleUpdateComplete(event:FlexEvent):void<br />
{<br />
//End the fill always for each extension, since all common drawing is done in the<br />
//base class. Including fills.<br />
if (backgroundEnabled)<br />
{<br />
graphics.endFill();<br />
}<br />
}</p>
<p>override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void<br />
{</p>
<p>super.updateDisplayList(unscaledWidth,unscaledHeight);</p>
<p>//clear the drawing surface.<br />
graphics.clear();</p>
<p>/**<br />
* Setup the line styles as required.<br />
**/<br />
//get the border color<br />
var borderColor:uint;<br />
if (!selected)<br />
{<br />
borderColor = getStyle(&#8220;borderColor&#8221;);<br />
}<br />
else<br />
{<br />
borderColor = getStyle(&#8220;borderSelectedColor&#8221;);<br />
}</p>
<p>if (borderColor ==0)<br />
{<br />
borderColor = 0&#215;000000;<br />
}</p>
<p>var borderThickness:Number = getStyle(&#8220;borderThickness&#8221;);<br />
var borderAlpha:Number = getStyle(&#8220;borderAlpha&#8221;);<br />
var borderPixelHinting:Boolean = getStyle(&#8220;borderPixelHinting&#8221;);<br />
var borderJointStyle:String = getStyle(&#8220;borderJointStyle&#8221;);</p>
<p>graphics.lineStyle(borderThickness,borderColor,borderAlpha,borderPixelHinting,&#8221;normal&#8221;,null,borderJointStyle);</p>
<p>if (getStyle(&#8220;borderFillEnabled&#8221;))<br />
{<br />
var borderColors:Array<br />
if (!selected)<br />
{<br />
borderColors = getStyle(&#8220;borderColors&#8221;);<br />
}<br />
else<br />
{<br />
borderColors = getStyle(&#8220;borderSelectedColors&#8221;);<br />
}</p>
<p>var borderAlphas:Array = getStyle(&#8220;borderAlphas&#8221;);<br />
var borderRatios:Array = getStyle(&#8220;borderRatios&#8221;);</p>
<p>if (borderColors == null)<br />
{<br />
borderColors=[0x000000,0xFFFFFF];<br />
}</p>
<p>if (borderAlphas == null)<br />
{<br />
borderAlphas=[1,1];<br />
}</p>
<p>if (borderRatios == null)<br />
{<br />
borderRatios=[0,255];<br />
}</p>
<p>var borderFillType:String = getStyle(&#8220;borderFillType&#8221;);<br />
var borderSpreadMethod:String = getStyle(&#8220;borderSpreadMethod&#8221;);<br />
var borderFocalPointRatio:Number = getStyle(&#8220;borderFocalPointRatio&#8221;);</p>
<p>var borderAngle:Number = getStyle(&#8220;borderAngle&#8221;);</p>
<p>if (!borderAngle)<br />
{<br />
borderAngle =0;<br />
}</p>
<p>if (!borderFillType)<br />
{<br />
borderFillType = &#8220;linear&#8221;;<br />
}</p>
<p>if (!borderSpreadMethod)<br />
{<br />
borderSpreadMethod = &#8220;pad&#8221;;<br />
}</p>
<p>var borderMatrix:Matrix = new Matrix();<br />
borderMatrix.createGradientBox(unscaledWidth,unscaledHeight,borderAngle, 0, 0);<br />
graphics.lineGradientStyle(borderFillType, borderColors, borderAlphas, borderRatios, borderMatrix,borderSpreadMethod,&#8221;rgb&#8221;,borderFocalPointRatio);</p>
<p>}</p>
<p>//If fillcolors is set then use a gradient.<br />
if (getStyle(&#8220;fillEnabled&#8221;) &amp;&amp; backgroundEnabled)<br />
{</p>
<p>var fillColors:Array;<br />
if (!selected){<br />
fillColors = getStyle(&#8220;fillColors&#8221;);<br />
}<br />
else{<br />
fillColors = getStyle(&#8220;fillSelectedColors&#8221;);<br />
}</p>
<p>var fillAlphas:Array = getStyle(&#8220;fillAlphas&#8221;);<br />
var fillRatios:Array = getStyle(&#8220;fillRatios&#8221;);</p>
<p>if (fillColors == null)<br />
{<br />
fillColors=[0x000000,0xFFFFFF];<br />
}</p>
<p>if (fillAlphas == null)<br />
{<br />
fillAlphas=[1,1];<br />
}</p>
<p>if (fillRatios == null)<br />
{<br />
fillRatios=[0,255];<br />
}</p>
<p>var fillType:String = getStyle(&#8220;fillType&#8221;);<br />
var fillSpreadMethod:String = getStyle(&#8220;fillSpreadMethod&#8221;);<br />
var fillFocalPointRatio:Number = getStyle(&#8220;fillFocalPointRatio&#8221;);</p>
<p>var fillAngle:Number = getStyle(&#8220;fillAngle&#8221;);</p>
<p>if (!fillAngle)<br />
{<br />
fillAngle =0;<br />
}</p>
<p>if (!fillType)<br />
{<br />
fillType = &#8220;linear&#8221;;<br />
}</p>
<p>if (!fillSpreadMethod)<br />
{<br />
fillSpreadMethod = &#8220;pad&#8221;;<br />
}</p>
<p>var fillMatrix:Matrix = new Matrix();<br />
fillMatrix.createGradientBox(unscaledWidth,unscaledHeight,fillAngle, 0, 0);<br />
graphics.beginGradientFill(fillType, fillColors, fillAlphas, fillRatios, fillMatrix,SpreadMethod.REFLECT,&#8221;rgb&#8221;,fillFocalPointRatio);<br />
}<br />
else<br />
{<br />
if (backgroundEnabled){</p>
<p>var backgroundColor:uint;<br />
if (!selected)<br />
{<br />
backgroundColor= getStyle(&#8220;backgroundColor&#8221;);<br />
}<br />
else<br />
{<br />
backgroundColor= getStyle(&#8220;backgroundSelectedColor&#8221;);<br />
}</p>
<p>var backgroundAlpha:Number = getStyle(&#8220;backgroundAlpha&#8221;);</p>
<p>if (backgroundColor !=0)<br />
{<br />
graphics.beginFill(backgroundColor,backgroundAlpha);<br />
}<br />
}<br />
}<br />
}<br />
}<br />
}</p>
<p><strong>DrawUtils.as<br />
</strong><br />
/**<br />
* DrawUtils is a static class that provides a number of functions<br />
* to draw shapes that are not part of the standard ActionScript Drawing<br />
* API.<br />
*<br />
* based on source code found at:<br />
* http://www.macromedia.com/devnet/mx/flash/articles/adv_draw_methods.html<br />
*<br />
* @author Ric Ewing &#8211; version 1.4 &#8211; 4.7.2002<br />
* @author Kevin Williams &#8211; version 2.0 &#8211; 4.7.2005<br />
* @author Jason Hawryluk &#8211; version 3.0 &#8211; 22.02.2007<br />
*         -Modified for Flex 2.01<br />
*/<br />
package com.Primitives<br />
{<br />
import mx.core.UIComponent;</p>
<p>public class DrawUtils<br />
{</p>
<p>public static function dashLineToPattern(target:UIComponent, x1:Number, y1:Number,x2:Number, y2:Number,pattern:Array):void<br />
{</p>
<p>var x:Number = x2 &#8211; x1;<br />
var y:Number = y2 &#8211; y1;<br />
var hyp:Number = Math.sqrt((x)*(x) + (y)*(y));</p>
<p>var units:Number = hyp/(pattern[0]+pattern[1]);<br />
var dashSpaceRatio:Number = pattern[0]/(pattern[0]+pattern[1]);</p>
<p>var dashX:Number = (x/units)*dashSpaceRatio;<br />
var spaceX:Number = (x/units)-dashX;<br />
var dashY:Number = (y/units)*dashSpaceRatio;<br />
var spaceY:Number = (y/units)-dashY;</p>
<p>target.graphics.moveTo(x1, y1);</p>
<p>while (hyp &gt; 0)<br />
{<br />
x1 += dashX;<br />
y1 += dashY;<br />
hyp -= pattern[0];<br />
if (hyp &lt; 0)<br />
{<br />
x1 = x2;<br />
y1 = y2;<br />
}</p>
<p>target.graphics.lineTo(x1, y1);<br />
x1 += spaceX;<br />
y1 += spaceY;<br />
target.graphics.moveTo(x1, y1);<br />
hyp -= pattern[1];<br />
}</p>
<p>target.graphics.moveTo(x2, y2);<br />
}</p>
<p>/**<br />
* Draws an arc from the starting position of x,y.<br />
**/<br />
public static function arcTo(target:UIComponent, x:Number, y:Number, startAngle:Number, arc:Number, radius:Number,yRadius:Number):void<br />
{</p>
<p>var ax:Number;<br />
var ay:Number;</p>
<p>// Circumvent drawing more than is needed<br />
if (Math.abs(arc)&gt;360)<br />
{<br />
arc = 360;<br />
}</p>
<p>// Draw in a maximum of 45 degree segments. First we calculate how many<br />
// segments are needed for our arc.<br />
var segs:Number = Math.ceil(Math.abs(arc)/45);</p>
<p>// Now calculate the sweep of each segment<br />
var segAngle:Number = arc/segs;</p>
<p>// The math requires radians rather than degrees. To convert from degrees<br />
// use the formula (degrees/180)*Math.PI to get radians.<br />
var theta:Number = -(segAngle/180)*Math.PI;</p>
<p>// convert angle startAngle to radians<br />
var angle:Number = -(startAngle/180)*Math.PI;</p>
<p>// find our starting points (ax,ay) relative to the secified x,y<br />
ax = x-Math.cos(angle)*radius;<br />
ay = y-Math.sin(angle)*yRadius;</p>
<p>// Draw as 45 degree segments<br />
if (segs&gt;0)<br />
{<br />
target.graphics.moveTo(x,y);</p>
<p>// Loop for drawing arc segments<br />
for (var i:int = 0; i&lt;segs; i++)<br />
{</p>
<p>// increment our angle<br />
angle += theta;</p>
<p>//find the angle halfway between the last angle and the new one,<br />
//calculate our end point, our control point, and draw the arc segment<br />
target.graphics.curveTo(ax+Math.cos(angle-(theta/2))*(radius/Math.cos(theta/2)),<br />
ay+Math.sin(angle-(theta/2))*(yRadius/Math.cos(theta/2)),<br />
ax+Math.cos(angle)*radius, ay+Math.sin(angle)*yRadius);</p>
<p>}<br />
}<br />
}</p>
<p>/**<br />
* Burst is a method for drawing star bursts.<br />
*/<br />
public static function burst(target:UIComponent, x:Number, y:Number,points:Number, innerRadius:Number, outerRadius:Number,angle:Number=0 ):void<br />
{</p>
<p>if (points &gt;=2)<br />
{</p>
<p>// calculate length of sides<br />
var step:Number = (Math.PI*2)/points;<br />
var halfStep:Number = step/2;<br />
var qtrStep:Number = step/4;</p>
<p>// calculate starting angle in radians<br />
var start:Number = (angle/180)*Math.PI;</p>
<p>target.graphics.moveTo(x+(Math.cos(start)*outerRadius), y-(Math.sin(start)*outerRadius));</p>
<p>// draw curves<br />
for (var i:int=1; i&lt;=points; i++)<br />
{</p>
<p>target.graphics.curveTo(x+Math.cos(start+(step*i)-(qtrStep*3))*(innerRadius/Math.cos(qtrStep)),<br />
y-Math.sin(start+(step*i)-(qtrStep*3))*(innerRadius/Math.cos(qtrStep)),<br />
x+Math.cos(start+(step*i)-halfStep)*innerRadius,<br />
y-Math.sin(start+(step*i)-halfStep)*innerRadius);</p>
<p>target.graphics.curveTo(x+Math.cos(start+(step*i)-qtrStep)*(innerRadius/Math.cos(qtrStep)),<br />
y-Math.sin(start+(step*i)-qtrStep)*(innerRadius/Math.cos(qtrStep)),<br />
x+Math.cos(start+(step*i))*outerRadius,<br />
y-Math.sin(start+(step*i))*outerRadius);</p>
<p>}</p>
<p>}<br />
}</p>
<p>/**<br />
* Draws a gear shape on the target.  The gear position<br />
* is indicated by the x and y arguments.<br />
*/<br />
public static function gear(target:UIComponent, x:Number, y:Number, points:Number, innerRadius:Number, outerRadius:Number,    angle:Number=0, holeSides:Number=0, holeRadius:Number=0 ):void<br />
{</p>
<p>if (points&gt;=2)<br />
{</p>
<p>// calculate length of sides<br />
var step:Number = (Math.PI*2)/points;<br />
var qtrStep:Number = step/4;</p>
<p>// calculate starting angle in radians<br />
var start:Number = (angle/180)*Math.PI;<br />
target.graphics.moveTo(x+(Math.cos(start)*outerRadius), y-(Math.sin(start)*outerRadius));</p>
<p>// draw lines<br />
for (var i:int=1; i&lt;=points; i++)<br />
{<br />
target.graphics.lineTo(x+Math.cos(start+(step*i)-(qtrStep*3))*innerRadius,<br />
y-Math.sin(start+(step*i)-(qtrStep*3))*innerRadius);</p>
<p>target.graphics.lineTo(x+Math.cos(start+(step*i)-(qtrStep*2))*innerRadius,<br />
y-Math.sin(start+(step*i)-(qtrStep*2))*innerRadius);</p>
<p>target.graphics.lineTo(x+Math.cos(start+(step*i)-qtrStep)*outerRadius,<br />
y-Math.sin(start+(step*i)-qtrStep)*outerRadius);</p>
<p>target.graphics.lineTo(x+Math.cos(start+(step*i))*outerRadius,<br />
y-Math.sin(start+(step*i))*outerRadius);<br />
}</p>
<p>if (holeSides&gt;=2)<br />
{<br />
if(holeRadius == 0)<br />
{<br />
holeRadius = innerRadius/3;<br />
}</p>
<p>step = (Math.PI*2)/holeSides;<br />
target.graphics.moveTo(x+(Math.cos(start)*holeRadius), y-(Math.sin(start)*holeRadius));</p>
<p>for (var j:int=1; j&lt;=holeSides; j++)<br />
{<br />
target.graphics.lineTo(x+Math.cos(start+(step*j))*holeRadius,<br />
y-Math.sin(start+(step*j))*holeRadius);<br />
}<br />
}</p>
<p>}<br />
}</p>
<p>/**<br />
* A method for creating polygon shapes.<br />
*/<br />
public static function polygon(target:UIComponent, x:Number, y:Number, points:Number, radius:Number, angle:Number=0):void<br />
{</p>
<p>// convert sides to positive value<br />
var count:int = Math.abs(points);</p>
<p>if (count&gt;=2)<br />
{</p>
<p>// calculate span of sides<br />
var step:Number = (Math.PI*2)/points;</p>
<p>// calculate starting angle in radians<br />
var start:Number = (angle/180)*Math.PI;<br />
target.graphics.moveTo(x+(Math.cos(start)*radius), y-(Math.sin(start)*radius));</p>
<p>// draw the polygon<br />
for (var i:int=1; i&lt;=count; i++)<br />
{<br />
target.graphics.lineTo(x+Math.cos(start+(step*i))*radius,<br />
y-Math.sin(start+(step*i))*radius);<br />
}</p>
<p>}<br />
}</p>
<p>/**<br />
* Star draws a star shaped polygon.<br />
*/<br />
public static function star(target:UIComponent, x:Number, y:Number, points:Number, innerRadius:Number, outerRadius:Number,angle:Number=0 ):void<br />
{</p>
<p>var count:int = Math.abs(points);<br />
if (count&gt;=2)<br />
{</p>
<p>// calculate distance between points<br />
var step:Number = (Math.PI*2)/points;<br />
var halfStep:Number = step/2;</p>
<p>// calculate starting angle in radians<br />
var start:Number = (angle/180)*Math.PI;<br />
target.graphics.moveTo(x+(Math.cos(start)*outerRadius), y-(Math.sin(start)*outerRadius));</p>
<p>// draw lines<br />
for (var i:int=1; i&lt;=count; i++)<br />
{<br />
target.graphics.lineTo(x+Math.cos(start+(step*i)-halfStep)*innerRadius,<br />
y-Math.sin(start+(step*i)-halfStep)*innerRadius);</p>
<p>target.graphics.lineTo(x+Math.cos(start+(step*i))*outerRadius,<br />
y-Math.sin(start+(step*i))*outerRadius);<br />
}<br />
}<br />
}</p>
<p>/**<br />
* draws pie shaped wedge.<br />
*/<br />
public static function wedge(target:UIComponent, x:Number, y:Number, startAngle:Number, arc:Number, radius:Number,yRadius:Number):void<br />
{</p>
<p>// move into position<br />
target.graphics.moveTo(x, y);</p>
<p>// limit sweep to reasonable numbers<br />
if (Math.abs(arc)&gt;360)<br />
{<br />
arc = 360;<br />
}</p>
<p>// Draw in a maximum of 45 degree segments. First we calculate how<br />
// many segments are needed for our arc.<br />
var segs:Number = Math.ceil(Math.abs(arc)/45);</p>
<p>// Now calculate the sweep of each segment.<br />
var segAngle:Number = arc/segs;</p>
<p>// The math requires radians rather than degrees. To convert from degrees<br />
// use the formula (degrees/180)*Math.PI to get radians.<br />
var theta:Number =-(segAngle/180)*Math.PI;</p>
<p>// convert angle startAngle to radians<br />
var angle:Number =-(startAngle/180)*Math.PI;</p>
<p>// draw the curve in segments no larger than 45 degrees.<br />
if (segs&gt;0)<br />
{<br />
// draw a line from the center to the start of the curve<br />
target.graphics.lineTo(x+Math.cos(startAngle/180*Math.PI)*radius,<br />
y+Math.sin(-startAngle/180*Math.PI)*yRadius);<br />
//draw curve segments<br />
for (var i:int = 0; i&lt;segs; i++)<br />
{<br />
angle += theta;<br />
var angleMid:Number = angle-(theta/2);<br />
target.graphics.curveTo(x+Math.cos(angleMid)*(radius/Math.cos(theta/2)),<br />
y+Math.sin(angleMid)*(yRadius/Math.cos(theta/2)),<br />
x+Math.cos(angle)*radius, y+Math.sin(angle)*yRadius);<br />
}</p>
<p>//close the wedge by drawing a line to the center<br />
target.graphics.lineTo(x, y);<br />
}<br />
}<br />
}<br />
}</p>
<p><strong>PrimitiveStar.as</strong></p>
<p>package com.Primitives<br />
{<br />
import mx.core.UIComponent;<br />
import com.Primitives.DrawUtils;<br />
import com.Primitives.BasePrimitive;</p>
<p>public class PrimitiveStar extends BasePrimitive<br />
{<br />
public function PrimitiveStar():void<br />
{<br />
super();<br />
}</p>
<p>[Bindable]<br />
[Inspectable]<br />
private var _outerRadius:Number=50;<br />
public function set outerRadius(value:Number):void<br />
{<br />
_outerRadius = value;</p>
<p>invalidateProperties();<br />
invalidateDisplayList();<br />
}<br />
public function get outerRadius():Number<br />
{<br />
return _outerRadius;<br />
}</p>
<p>[Bindable]<br />
[Inspectable]<br />
private var _innerRadius:Number=25;<br />
public function set innerRadius(value:Number):void<br />
{<br />
_innerRadius = value;<br />
invalidateProperties();<br />
invalidateDisplayList();<br />
}<br />
public function get innerRadius():Number<br />
{<br />
return _innerRadius;<br />
}</p>
<p>[Bindable]<br />
[Inspectable]<br />
private var _points:Number=5;<br />
public function set points(value:Number):void<br />
{<br />
_points = value;<br />
invalidateProperties();<br />
invalidateDisplayList();<br />
}<br />
public function get points():Number<br />
{<br />
return _points;<br />
}</p>
<p>[Bindable]<br />
[Inspectable]<br />
private var _angle:Number = 90;<br />
public function set angle(value:Number):void<br />
{<br />
_angle = value;<br />
invalidateProperties();<br />
invalidateDisplayList();<br />
}<br />
public function get angle():Number<br />
{<br />
return _angle;<br />
}</p>
<p>override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void<br />
{</p>
<p>super.updateDisplayList(unscaledWidth,unscaledHeight);</p>
<p>//get the ratio of the difference for the inner and outer radius<br />
var ratio:Number= outerRadius/innerRadius;</p>
<p>//use the smallest of the width and height to do the<br />
//size so we can use as much space as possible<br />
var maxSize:Number = Math.min(unscaledHeight, unscaledWidth);<br />
DrawUtils.star(this,unscaledWidth/2,unscaledHeight/2,points,(maxSize/2)/ratio,(maxSize/2),angle);<br />
}<br />
}<br />
}</p>
<p><strong>PrimitiveStyles.as</strong></p>
<p>//background<br />
[Style(name="backgroundAlpha", type="Number", inherit="no")]<br />
[Style(name="backgroundColor", type="uint", format="Color", inherit="no")]<br />
[Style(name="backgroundSelectedColor", type="uint", format="Color", inherit="no")]</p>
<p>//border<br />
[Style(name="borderColor", type="uint", format="Color", inherit="no")]<br />
[Style(name="borderThickness", type="Number", format="Length", inherit="no")]<br />
[Style(name="borderAlpha", type="Number", inherit="no")]<br />
[Style(name="borderPixelHinting", type="Boolean", inherit="no")]<br />
[Style(name="borderJointStyle", type="String", enumeration="bevel,miter,round", inherit="no")]<br />
[Style(name="borderSelectedColor", type="uint", format="Color", inherit="no")]</p>
<p>//border gradient<br />
[Style(name="borderFillEnabled", type="Boolean",enumeration="true,false", inherit="no")]<br />
[Style(name="borderRatios", type="Array", arrayType="Number", inherit="no")]<br />
[Style(name="borderFillType", type="string",enumeration="linear,radial", inherit="no")]<br />
[Style(name="borderSpreadMethod", type="string",enumeration="pad,reflect,repeat", inherit="no")]<br />
[Style(name="borderFocalPointRatio", type="Number", inherit="no")]<br />
[Style(name="borderAlphas", type="Array",arrayType="Number", inherit="no")]<br />
[Style(name="borderColors", type="Array", arrayType="uint", format="Color", inherit="no")]<br />
[Style(name="borderSelectedColors", type="Array", arrayType="uint", format="Color", inherit="no")]<br />
[Style(name="borderAngle", type="Number", inherit="no")]</p>
<p>//fill gradient<br />
[Style(name="fillEnabled", type="Boolean",enumeration="true,false", inherit="no")]<br />
[Style(name="fillRatios", type="Array", arrayType="Number", inherit="no")]<br />
[Style(name="fillType", type="string",enumeration="linear,radial", inherit="no")]<br />
[Style(name="fillSpreadMethod", type="string",enumeration="pad,reflect,repeat", inherit="no")]<br />
[Style(name="fillFocalPointRatio", type="Number", inherit="no")]<br />
[Style(name="fillAlphas", type="Array", arrayType="Number", inherit="no")]<br />
[Style(name="fillColors", type="Array", arrayType="uint", format="Color", inherit="no")]<br />
[Style(name="fillSelectedColors", type="Array", arrayType="uint", format="Color", inherit="no")]<br />
[Style(name="fillAngle", type="Number", inherit="no")]</p>
<p>These all above files are needed to do Rating things in Flex.<br />
 <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abhisheksoft.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abhisheksoft.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abhisheksoft.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abhisheksoft.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abhisheksoft.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abhisheksoft.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abhisheksoft.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abhisheksoft.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abhisheksoft.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abhisheksoft.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abhisheksoft.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abhisheksoft.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abhisheksoft.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abhisheksoft.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abhisheksoft.wordpress.com&amp;blog=8211490&amp;post=19&amp;subd=abhisheksoft&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abhisheksoft.wordpress.com/2009/06/23/rating-component-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d916085da18a1ce8de2f5b684a2f9195?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">abhisheksoft</media:title>
		</media:content>
	</item>
		<item>
		<title>Single File Upload From Flex To Ruby On Rails</title>
		<link>http://abhisheksoft.wordpress.com/2009/06/19/9/</link>
		<comments>http://abhisheksoft.wordpress.com/2009/06/19/9/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 08:42:33 +0000</pubDate>
		<dc:creator>abhisheksoft</dc:creator>
				<category><![CDATA[FlexExamples]]></category>

		<guid isPermaLink="false">http://abhisheksoft.wordpress.com/?p=9</guid>
		<description><![CDATA[Single File Upload From Flex To Ruby On Rails Here is an very simple example to know how can we upload single file(Image) from flex to Ruby On Rails(ROR). Flex: uploadFile.mxml &#60;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&#62; &#60;mx:Application xmlns:mx=&#8221;http://www.adobe.com/2006/mxml&#8221; layout=&#8221;absolute&#8221; width=&#8221;100%&#8221; height=&#8221;24&#8243; creationComplete=&#8221;uploadInit();&#8221;   borderColor=&#8221;#CCCCCC&#8221; backgroundColor=&#8221;white&#8221;  verticalAlign=&#8221;middle&#8221;  &#62; &#60;mx:Script&#62; &#60;![CDATA[ import mx.controls.Alert; // VARS FOR BROWSE AND UPLOAD [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abhisheksoft.wordpress.com&amp;blog=8211490&amp;post=9&amp;subd=abhisheksoft&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="color:#0000ff;"><strong><span style="text-decoration:underline;">Single File Upload From Flex To Ruby On Rails</span></strong></span></p>
<p>Here is an very simple example to know how can we upload single file(Image) from flex to Ruby On Rails(ROR).</p>
<p><strong>Flex: </strong>uploadFile.mxml</p>
<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br />
&lt;mx:Application xmlns:mx=&#8221;http://www.adobe.com/2006/mxml&#8221; layout=&#8221;absolute&#8221; width=&#8221;100%&#8221; height=&#8221;24&#8243;<br />
creationComplete=&#8221;uploadInit();&#8221;   borderColor=&#8221;#CCCCCC&#8221; backgroundColor=&#8221;white&#8221;  verticalAlign=&#8221;middle&#8221;  &gt;</p>
<p>&lt;mx:Script&gt;<br />
&lt;![CDATA[<br />
import mx.controls.Alert;<br />
// VARS FOR BROWSE AND UPLOAD IMAGES<br />
private var fileRef:FileReference;<br />
private var _uploadURL:URLRequest;<br />
private var _variables:URLVariables;</p>
<p>// Here uploadImage is a Controller Name and index is a method //name<br />
private const FILE_UPLOAD_URL:String = "/uploadImage/index";</p>
<p>// This filter to allow user to upload only jpg,jpeg,gif,png,eps and tif images</p>
<p>//This is optional, to upload all type of files need not use filter<br />
public var imageTypes:FileFilter = new FileFilter("Images (*.jpg; *.jpeg; *.gif; *.png;*.eps;*.tif)" ,"*.jpg; *.jpeg; *.gif; *.png;*.eps;*.tif");<br />
public var filesToFilter:Array = new Array(imageTypes);<br />
private function uploadInit():void {<br />
fileRef = new FileReference();<br />
fileRef.addEventListener(Event.SELECT, fileRef_select);<br />
fileRef.addEventListener(ProgressEvent.PROGRESS, fileRef_progress);<br />
fileRef.addEventListener(Event.COMPLETE, fileRef_complete);</p>
<p>_uploadURL = new URLRequest;<br />
_uploadURL.url = "/uploadImage/index";<br />
_uploadURL.method = "POST";<br />
_uploadURL.contentType = "multipart/form-data";<br />
}</p>
<p>private function browseAndUpload():void {<br />
fileRef.browse(filesToFilter);</p>
<p>// To allow any type of file to upload below line only</p>
<p>//   fileRef.browse();</p>
<p>}</p>
<p>private function fileRef_select(evt:Event):void {<br />
try {</p>
<p>_variables = new URLVariables();</p>
<p>// URLVariables to send additional data with uploaded file</p>
<p>//like         _variables.user_session_id='111';<br />
_uploadURL.data=_variables;<br />
fileRef.upload(_uploadURL);   // Upload Image here<br />
} catch (err:Error) {<br />
// thxtMessage.text = "ERROR: zero-byte file";<br />
}<br />
}</p>
<p>private function fileRef_progress(evt:ProgressEvent):void {<br />
progressbar.visible = true;<br />
thxtMessage.visible=false;<br />
progressbar.setProgress(evt.bytesLoaded,evt.bytesTotal);<br />
}</p>
<p>private function fileRef_complete(evt:Event):void {<br />
// message.text += " (complete)";<br />
progressbar.visible = false;<br />
thxtMessage.visible=true;<br />
}<br />
]]&gt;<br />
&lt;/mx:Script&gt;</p>
<p>&lt;mx:HBox width=&#8221;100%&#8221; horizontalAlign=&#8221;left&#8221;  borderColor=&#8221;#CCCCCC&#8221; horizontalGap=&#8221;0&#8243;&gt;<br />
&lt;mx:Button id=&#8221;browseBTN&#8221; label=&#8221;browse&#8221; click=&#8221;browseAndUpload();&#8221;  x=&#8221;0&#8243;  y=&#8221;0&#8243;/&gt;<br />
&lt;mx:Canvas width=&#8221;100%&#8221; &gt;<br />
&lt;mx:Text id=&#8221;thxtMessage&#8221; textAlign=&#8221;center&#8221; width=&#8221;100%&#8221; color=&#8221;green&#8221; visible=&#8221;false&#8221; text=&#8221;Image Uploaded Successfully&#8221; fontWeight=&#8221;bold&#8221;   y=&#8221;3&#8243;/&gt;<br />
&lt;mx:ProgressBar id=&#8221;progressbar&#8221; width=&#8221;100%&#8221; mode=&#8221;manual&#8221; visible=&#8221;false&#8221; borderColor=&#8221;gray&#8221; fontWeight=&#8221;bold&#8221;  color=&#8221;black&#8221;   labelPlacement=&#8221;center&#8221;<br />
trackHeight=&#8221;1&#8243; y=&#8221;2&#8243;  height=&#8221;20&#8243; label=&#8221;%1 of Bytes %2 (%3%%)&#8221; /&gt;<br />
&lt;/mx:Canvas&gt;<br />
&lt;/mx:HBox&gt;</p>
<p><strong>ROR:</strong></p>
<p>uploadImage.rb(Controller)</p>
<p>def index</p>
<p>data = params[:Filedata] #  uploaded file<br />
name = params[:Filename] # name of  uploaded  file</p>
<p># folder name uploads in public to store  images/files here</p>
<p>directory = ‘public/uploads’</p>
<p>@data_file = DataFile.save_file(data, name, directory)</p>
<p>//DataFile is a model</p>
<p>render :nothing =&gt; true</p>
<p>end</p>
<p>datafile.rb (Model)</p>
<p>def self.save_file(data, name, directory)<br />
# create the file path<br />
path = File.join(directory, name)<br />
# write the file<br />
File.open(path,‘wb’) do |file|<br />
file.puts data.read<br />
end<br />
end</p>
<p>U can see the uploaded file in public-&gt;uploads folder</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abhisheksoft.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abhisheksoft.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abhisheksoft.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abhisheksoft.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abhisheksoft.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abhisheksoft.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abhisheksoft.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abhisheksoft.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abhisheksoft.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abhisheksoft.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abhisheksoft.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abhisheksoft.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abhisheksoft.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abhisheksoft.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abhisheksoft.wordpress.com&amp;blog=8211490&amp;post=9&amp;subd=abhisheksoft&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abhisheksoft.wordpress.com/2009/06/19/9/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d916085da18a1ce8de2f5b684a2f9195?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">abhisheksoft</media:title>
		</media:content>
	</item>
		<item>
		<title>Ruby Rails Companies(India)</title>
		<link>http://abhisheksoft.wordpress.com/2009/06/17/ruby-rails-companiesindia/</link>
		<comments>http://abhisheksoft.wordpress.com/2009/06/17/ruby-rails-companiesindia/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 09:27:19 +0000</pubDate>
		<dc:creator>abhisheksoft</dc:creator>
				<category><![CDATA[FLEX _RAILS_COMPANIES]]></category>

		<guid isPermaLink="false">http://abhisheksoft.wordpress.com/?p=3</guid>
		<description><![CDATA[here is the list friends, Betterlabs ,Pune  Nirvana Venture Advisors, pune Persistent Systems ,Pune Josh-software , Pune Bohiyaanam Technology ,Pune SUNGARD , Pune kadroit ,Pune NeovaSolutions ,Pune www.highthought.com , Maharashtra, Pune SapnaSolutions &#8211; We dare to dream, Pune Isavera , Mumbai/Pune Multi Environment Solutions Pvt. Ltd., Pune e-zest , Pune True Sparrow Systems , pune [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abhisheksoft.wordpress.com&amp;blog=8211490&amp;post=3&amp;subd=abhisheksoft&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>here is the list friends,</strong></p>
<p><strong>Betterlabs ,Pune</strong></p>
<p><strong> Nirvana Venture Advisors, pune</strong><br />
Persistent Systems ,Pune<br />
Josh-software , Pune<br />
Bohiyaanam Technology ,Pune<br />
SUNGARD , Pune<br />
<strong>kadroit ,Pune</strong><br />
<strong>NeovaSolutions ,</strong><strong>Pune</strong></p>
<p>www.highthought.com , Maharashtra, Pune<br />
<strong>SapnaSolutions &#8211; We dare to dream, Pune</strong><br />
Isavera , Mumbai/Pune<br />
Multi Environment Solutions Pvt. Ltd., Pune<br />
e-zest , Pune<br />
True Sparrow Systems , pune<br />
ThinkDRY Technologies , Pune<br />
Exotica Infotech , Pune<br />
Pragmatic Technology Solutions , Pune<br />
ThoughtWorks Technologies Pvt. Ltd. ,Pune, Bangalore, Chennai<br />
Mangospring Technologies Pvt Ltd , Pune</p>
<p><strong>Radiant Infosystems Limited ,Bangalore</strong></p>
<p>Innozon, Hyderabad, www.innozon.com</p>
<p>Ethos Advisors, Safew Labs ,Mumbai, Hyderabad<br />
Personal Life Media , Karnataka, Bangalore<br />
Azri Solutions , Andhra Pradesh, Hyderabad<br />
Concealed , Delhi, New Delhi<br />
GSP Software Consultancy Pvt. Ltd. , AP, Hyderabad<br />
Safew Technology Labs Pvt Ltd , AP, Hyderabad<br />
Market Hero , Karnataka, Bangalore<br />
A product based startup , Karnataka, Bangalore<br />
Bitla Software Pvt., Ltd., , Karnataka, Bangalore<br />
Inventure Global , Karnataka, Bangalore<br />
takeatest.in , Karnataka, Bangalore<br />
Azri Solutions Pvt Ltd , Andhra Pradesh, Hyderabad<br />
Secret , AP, Hyderabad<br />
RAC  , Tamil Nadu, Chennai<br />
BlueCode Software Pvt Ltd , Maharashtra, Mumbai<br />
ROR , Sabsebolo, A-Talent.com or new US startup , Gujrat, Gandhinagar<br />
Complitech Solutions Private Limited , Gujarat, Ahmedabad<br />
BollyVote , WB, Kolkata<br />
Contests2win.com India Pvt. Ltd , Maharashtra, Mumbai<br />
Oorvani Media , KA, Bangalore<br />
Heurion Consulting Pvt. Ltd , Karnataka, Bangalore<br />
ASIAWEBMEDIA TECHNOLOGIES , Delhi, New Delhi</p>
<p><strong>Please add more here to know  all  about more companies !</strong></p>
<p><strong> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abhisheksoft.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abhisheksoft.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abhisheksoft.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abhisheksoft.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abhisheksoft.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abhisheksoft.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abhisheksoft.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abhisheksoft.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abhisheksoft.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abhisheksoft.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abhisheksoft.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abhisheksoft.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abhisheksoft.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abhisheksoft.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abhisheksoft.wordpress.com&amp;blog=8211490&amp;post=3&amp;subd=abhisheksoft&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abhisheksoft.wordpress.com/2009/06/17/ruby-rails-companiesindia/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d916085da18a1ce8de2f5b684a2f9195?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">abhisheksoft</media:title>
		</media:content>
	</item>
	</channel>
</rss>
