<?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/"
	>

<channel>
	<title>FlexOOP &#187; Component</title>
	<atom:link href="http://flexoop.com/tag/component/feed/" rel="self" type="application/rss+xml" />
	<link>http://flexoop.com</link>
	<description>Flex, AIR, ColdFusion, and everything in between</description>
	<lastBuildDate>Tue, 13 Jul 2010 03:56:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>MenuItem Class</title>
		<link>http://flexoop.com/2008/11/menuitem-class/</link>
		<comments>http://flexoop.com/2008/11/menuitem-class/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 23:25:27 +0000</pubDate>
		<dc:creator>Gareth</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[MenuItem]]></category>
		<category><![CDATA[MenuItemWithChildren]]></category>

		<guid isPermaLink="false">http://flexfusion.archfamily.com/?p=55</guid>
		<description><![CDATA[I am not completely sure why Adobe decided not to include this in their base classes when creating the Flex framework. They have, more or less, given all of the class structure in the definition of what a menuitem must contain&#8230;enabled, toggle, groupName, etc. I decided that there&#8217;s absolutely no point in rewriting the same [...]]]></description>
			<content:encoded><![CDATA[<p>I am not completely sure why Adobe decided not to include this in their base classes when creating the Flex framework.  They have, more or less, given all of the class structure in the definition of what a menuitem <a href="http://livedocs.adobe.com/flex/201/langref/mx/controls/Menu.html">must contain</a>&#8230;enabled, toggle, groupName, etc.  I decided that there&#8217;s absolutely no point in rewriting the same thing over and over again, so why not create a MenuItem class.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package com.<span style="color: #006600;">archfamily</span>.<span style="color: #006600;">utility</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MenuItem <span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/***********************************
		 * properties
		 **********************************/</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _enabled:<span style="color: #0066CC;">Boolean</span> = <span style="color: #000000; font-weight: bold;">true</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _groupName:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">&quot;&quot;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _icon:<span style="color: #000000; font-weight: bold;">Class</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _label:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">&quot;&quot;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _toggled:<span style="color: #0066CC;">Boolean</span> = <span style="color: #000000; font-weight: bold;">true</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _type:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">&quot;&quot;</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">/***********************************
		 * getters
		 **********************************/</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> <span style="color: #0066CC;">enabled</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Boolean</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #0066CC;">this</span>._enabled;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> groupName<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">String</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #0066CC;">this</span>._groupName;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> icon<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #000000; font-weight: bold;">Class</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #0066CC;">this</span>._icon;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> label<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">String</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #0066CC;">this</span>._label;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> toggled<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Boolean</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #0066CC;">this</span>._toggled;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> <span style="color: #0066CC;">type</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">String</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #0066CC;">this</span>._type;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/***********************************
		 * setters
		 **********************************/</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> <span style="color: #0066CC;">enabled</span><span style="color: #66cc66;">&#40;</span> value:<span style="color: #0066CC;">Boolean</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>._enabled = value;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> groupName<span style="color: #66cc66;">&#40;</span> value:<span style="color: #0066CC;">String</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>._groupName = value;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> icon<span style="color: #66cc66;">&#40;</span> value:<span style="color: #000000; font-weight: bold;">Class</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>._icon = value;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> label<span style="color: #66cc66;">&#40;</span> value:<span style="color: #0066CC;">String</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>._label = value;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> toggled<span style="color: #66cc66;">&#40;</span> value:<span style="color: #0066CC;">Boolean</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>._toggled = value;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #66cc66;">&#91;</span>Inspectable<span style="color: #66cc66;">&#40;</span>enumeration=separator,check,radio,normal<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> <span style="color: #0066CC;">type</span><span style="color: #66cc66;">&#40;</span> value:<span style="color: #0066CC;">String</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>._type = value;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> MenuItem<span style="color: #66cc66;">&#40;</span> label:<span style="color: #0066CC;">String</span>=<span style="color: #ff0000;">&quot;&quot;</span>, <span style="color: #0066CC;">enabled</span>:<span style="color: #0066CC;">Boolean</span>=<span style="color: #000000; font-weight: bold;">true</span>, <span style="color: #0066CC;">type</span>:<span style="color: #0066CC;">String</span>=<span style="color: #ff0000;">&quot;normal&quot;</span>, toggled:<span style="color: #0066CC;">Boolean</span>=<span style="color: #000000; font-weight: bold;">true</span>, groupName:<span style="color: #0066CC;">String</span>=<span style="color: #ff0000;">&quot;&quot;</span>, icon:<span style="color: #000000; font-weight: bold;">Class</span>=<span style="color: #000000; font-weight: bold;">null</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">enabled</span> = <span style="color: #0066CC;">enabled</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">groupName</span> = groupName;
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">icon</span> = icon;
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">label</span> = label;
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">toggled</span> = toggled;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">type</span> = <span style="color: #0066CC;">type</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>I added the properties to the constructor so that the menu items could be created without have to first create a variable for them, but could rather just do something like &#8220;myArray.push( new MenuItem( &#8220;myLabel&#8221;, true ) )&#8221;. Initially I added the &#8220;children&#8221; as a property of this class, but then I found out that this will cause the menu items to show an arrow next to their name as if the MenuItem actually had children (even though the item is an empty array).  In order to circumvent this problem, I decided to create a second class, MenuItemWithChildren, that extends MenuItem, but adds the property &#8220;children&#8221;:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package com.<span style="color: #006600;">archfamily</span>.<span style="color: #006600;">utility</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MenuItemWithChildren <span style="color: #0066CC;">extends</span> MenuItem <span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/***********************************
		 * properties
		 **********************************/</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _children:<span style="color: #0066CC;">Array</span> = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">/***********************************
		 * getters
		 **********************************/</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> children<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Array</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #0066CC;">this</span>._children;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/***********************************
		 * setters
		 **********************************/</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> children<span style="color: #66cc66;">&#40;</span> value:<span style="color: #0066CC;">Array</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>._children = value;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> MenuItemWithChildren<span style="color: #66cc66;">&#40;</span>label:<span style="color: #0066CC;">String</span>=<span style="color: #ff0000;">&quot;&quot;</span>, <span style="color: #0066CC;">enabled</span>:<span style="color: #0066CC;">Boolean</span>=<span style="color: #000000; font-weight: bold;">true</span>, <span style="color: #0066CC;">type</span>:<span style="color: #0066CC;">String</span>=<span style="color: #ff0000;">&quot;normal&quot;</span>, toggled:<span style="color: #0066CC;">Boolean</span>=<span style="color: #000000; font-weight: bold;">true</span>, groupName:<span style="color: #0066CC;">String</span>=<span style="color: #ff0000;">&quot;&quot;</span>, icon:<span style="color: #000000; font-weight: bold;">Class</span>=<span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span>label, <span style="color: #0066CC;">enabled</span>, <span style="color: #0066CC;">type</span>, toggled, groupName, icon<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Now, whenever I want to create a menu item within one of my menu bars, all I have to do is create an array that holds all of my MenuItem or MenuItemWithChildren classes, and I have strongly typed class rather than a plain, old array of generic objects.  The one other thing to note is that if the menu is not created in the property declarations, then you have to set the array to the dataProvider of the menu item, or it will not refresh the view and you will not be able to see your menu items.  The implementation would look something like this:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>mx:Application xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span style="color: #ff0000;">&quot;absolute&quot;</span> creationComplete=<span style="color: #ff0000;">&quot;init()&quot;</span> xmlns:archfamily=<span style="color: #ff0000;">&quot;com.archfamily.utility.*&quot;</span><span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>mx:Script<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;!</span><span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span>
			<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">archfamily</span>.<span style="color: #006600;">utility</span>.<span style="color: #006600;">MenuItemWithChildren</span>;
			<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">archfamily</span>.<span style="color: #006600;">utility</span>.<span style="color: #006600;">MenuItem</span>;
&nbsp;
			<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span> <span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> menuData:<span style="color: #0066CC;">Array</span> = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;
&nbsp;
			<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">var</span> menuItem:MenuItemWithChildren = <span style="color: #000000; font-weight: bold;">new</span> MenuItemWithChildren<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;test 1&quot;</span>, <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span>;
				menuItem.<span style="color: #006600;">children</span>.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> MenuItem<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;test 4&quot;</span>, <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
				menuItem.<span style="color: #006600;">children</span>.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> MenuItem<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;test 5&quot;</span>, <span style="color: #000000; font-weight: bold;">false</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
				menuData.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span> menuItem <span style="color: #66cc66;">&#41;</span>;
				menuData.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> MenuItem<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;test2&quot;</span>, <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
				menuData.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> MenuItem<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;test3&quot;</span>, <span style="color: #000000; font-weight: bold;">false</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
				mb.<span style="color: #006600;">dataProvider</span> = menuData;
&nbsp;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>mx:Script<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>mx:VBox<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>mx:ApplicationControlBar id=<span style="color: #ff0000;">&quot;acb&quot;</span><span style="color: #66cc66;">&gt;</span>
			<span style="color: #66cc66;">&lt;</span>mx:MenuBar id=<span style="color: #ff0000;">&quot;mb&quot;</span> dataProvider=<span style="color: #ff0000;">&quot;{ menuData }&quot;</span> <span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;/</span>mx:ApplicationControlBar<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>mx:VBox<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;/</span>mx:Application<span style="color: #66cc66;">&gt;</span></pre></div></div>

<p>I haven&#8217;t had to use the Menu class very often yet, but I&#8217;m sure this will come in handy to someone else.  If nothing else, it saves typing in Flex Builder.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://flexoop.com/2008/11/menuitem-class/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dedupe ArrayCollection Component</title>
		<link>http://flexoop.com/2008/11/dedupe-arraycollection-component/</link>
		<comments>http://flexoop.com/2008/11/dedupe-arraycollection-component/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 03:53:40 +0000</pubDate>
		<dc:creator>Gareth</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[dedupeArrayCollection]]></category>

		<guid isPermaLink="false">http://flexfusion.archfamily.com/?p=52</guid>
		<description><![CDATA[Building off of my last post, I thought I might as well create a deduped arraycollection as well, just in case anyone wanted to use the data for something other than a combobox.  The implementation for this component is very similar to that of the combobox.  The DedupeArrayCollection allows you to pass it an array [...]]]></description>
			<content:encoded><![CDATA[<p>Building off of my <a title="last post" href="http://flexfusion.archfamily.com/2008/11/deduped-combobox-component/" target="_self">last post</a>, I thought I might as well create a deduped arraycollection as well, just in case anyone wanted to use the data for something other than a combobox.  The implementation for this component is very similar to that of the combobox.  The DedupeArrayCollection allows you to pass it an array (one that has some kind of properties to each of the items within it), then set the dedupeProperty to whatever field you wish to dedupe.</p>
<p>The DedupeArrayCollection:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package com.<span style="color: #006600;">archfamily</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">utils</span>.<span style="color: #006600;">Dictionary</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">collections</span>.<span style="color: #006600;">ArrayCollection</span>;
	<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">events</span>.<span style="color: #006600;">CollectionEvent</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DedupeArrayCollection <span style="color: #0066CC;">extends</span> ArrayCollection <span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _dedupeProperty:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">&quot;&quot;</span>;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> dedupeProperty<span style="color: #66cc66;">&#40;</span> value:<span style="color: #0066CC;">String</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			_dedupeProperty = value;
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">source</span> = <span style="color: #0066CC;">this</span>.<span style="color: #006600;">source</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> dedupeProperty<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">String</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">return</span> _dedupeProperty;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * 
		 * Needed to override the standard dataprovider in order to reset
		 * the duplicate value each time
		 * 
		 */</span>
		override <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> source<span style="color: #66cc66;">&#40;</span> value:<span style="color: #0066CC;">Array</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> _returnArray:<span style="color: #0066CC;">Array</span> = value;
&nbsp;
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> value <span style="color: #66cc66;">&amp;&amp;</span> dedupeProperty.<span style="color: #0066CC;">length</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">var</span> _map:Dictionary = <span style="color: #000000; font-weight: bold;">new</span> Dictionary<span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
				value.<span style="color: #b1b100;">forEach</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span> item:<span style="color: #66cc66;">*</span>, <span style="color: #0066CC;">index</span>:<span style="color: #0066CC;">int</span>, <span style="color: #0066CC;">array</span>:<span style="color: #0066CC;">Array</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
					_map<span style="color: #66cc66;">&#91;</span> item<span style="color: #66cc66;">&#91;</span> <span style="color: #0066CC;">this</span> <span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#93;</span> = item; <span style="color: #808080; font-style: italic;">// in the loop, this == dedupeProperty</span>
				<span style="color: #66cc66;">&#125;</span>, dedupeProperty <span style="color: #66cc66;">&#41;</span>;
&nbsp;
				_returnArray = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;
				<span style="color: #b1b100;">for</span> each <span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">object</span>:<span style="color: #0066CC;">Object</span> <span style="color: #b1b100;">in</span> _map <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
					_returnArray.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">object</span> <span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">&#125;</span>
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #0066CC;">super</span>.<span style="color: #006600;">source</span> = _returnArray;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> DedupeArrayCollection<span style="color: #66cc66;">&#40;</span> source:<span style="color: #0066CC;">Array</span>=<span style="color: #000000; font-weight: bold;">null</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span> source <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>The implementation of the arraycollection:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;</span>mx:Application xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span style="color: #ff0000;">&quot;absolute&quot;</span> creationComplete=<span style="color: #ff0000;">&quot;init()&quot;</span> xmlns:archfamily=<span style="color: #ff0000;">&quot;com.archfamily.*&quot;</span><span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>mx:Script<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;!</span><span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span>
			<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">archfamily</span>.<span style="color: #006600;">DedupeArrayCollection</span>;
&nbsp;
			<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span> <span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> ac:DedupeArrayCollection = <span style="color: #000000; font-weight: bold;">new</span> DedupeArrayCollection<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#91;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;car&quot;</span>, total: <span style="color: #cc66cc;">100</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;bus&quot;</span>, total: <span style="color: #cc66cc;">200</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;bike&quot;</span>, total: <span style="color: #cc66cc;">300</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;train&quot;</span>, total: <span style="color: #cc66cc;">200</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;boat&quot;</span>, total: <span style="color: #cc66cc;">400</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;car&quot;</span>, total: <span style="color: #cc66cc;">500</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;bus&quot;</span>, total: <span style="color: #cc66cc;">200</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;convertible&quot;</span>, total: <span style="color: #cc66cc;">100</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;gizmo&quot;</span>, total: <span style="color: #cc66cc;">300</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;boat&quot;</span>, total: <span style="color: #cc66cc;">300</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;car&quot;</span>, total: <span style="color: #cc66cc;">100</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;dune buggy&quot;</span>, total:<span style="color: #cc66cc;">300</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;motorcycle&quot;</span>, total: <span style="color: #cc66cc;">100</span> <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
				ac.<span style="color: #006600;">dedupeProperty</span> = <span style="color: #ff0000;">&quot;total&quot;</span>;
			<span style="color: #66cc66;">&#125;</span>			
		<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>mx:Script<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>mx:VBox<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>mx:ComboBox id=<span style="color: #ff0000;">&quot;testing&quot;</span> dataProvider=<span style="color: #ff0000;">&quot;{ ac }&quot;</span> labelField=<span style="color: #ff0000;">&quot;name&quot;</span> <span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>mx:VBox<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;/</span>mx:Application<span style="color: #66cc66;">&gt;</span></pre></div></div>

<p>The only thing I would probably change is to figure out what event needs to fire when my dedupeProperty is set to get the arraycollection to reload the source.  Currently I&#8217;m just setting the source to itself so that the event fires and reloads the arraycollection, but just firing the event would probably be less overhead.</p>
]]></content:encoded>
			<wfw:commentRss>http://flexoop.com/2008/11/dedupe-arraycollection-component/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Deduped ComboBox Component</title>
		<link>http://flexoop.com/2008/11/deduped-combobox-component/</link>
		<comments>http://flexoop.com/2008/11/deduped-combobox-component/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 02:52:49 +0000</pubDate>
		<dc:creator>Gareth</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[combobox]]></category>
		<category><![CDATA[dedupedComboBox]]></category>

		<guid isPermaLink="false">http://flexfusion.archfamily.com/?p=48</guid>
		<description><![CDATA[There are times that I have wanted to remove all duplicates from a combobox&#8217;s dataprovider, but haven&#8217;t wanted to requery the database or roll my own code snippet each time to remove those duplicates.  To make my life a little easier (and hopefully anyone else that may be in need of this feature), I&#8217;ve created [...]]]></description>
			<content:encoded><![CDATA[<p>There are times that I have wanted to remove all duplicates from a combobox&#8217;s dataprovider, but haven&#8217;t wanted to requery the database or roll my own code snippet each time to remove those duplicates.  To make my life a little easier (and hopefully anyone else that may be in need of this feature), I&#8217;ve created the DedupeComboBox class.</p>
<p>This handy little item allows you to set the dataprovider of the combobox to an array or arraycollection, and set the labelField value and the combobox will then handle the rest.  The labelfield is important as that is what allows the component to remove the duplicates from the arraycollection (if it is an array, it must also be an array of objects with properties that match the labelField or it will not remove anything).  Also, as the items populate the deduped dictionary instance, the value of that item in the arraycollection is saved to that &#8220;key&#8221; in the dictionary, allowing for retrieval of it later on if necessary.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package com.<span style="color: #006600;">archfamily</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">utils</span>.<span style="color: #006600;">Dictionary</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">collections</span>.<span style="color: #006600;">ArrayCollection</span>;
	<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">controls</span>.<span style="color: #006600;">ComboBox</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DedupeComboBox <span style="color: #0066CC;">extends</span> ComboBox <span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * 
		 * Needed to override the standard dataprovider in order to reset
		 * the duplicate value each time
		 * 
		 */</span>
		override <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> dataProvider<span style="color: #66cc66;">&#40;</span> value:<span style="color: #0066CC;">Object</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">var</span> _localArray:<span style="color: #0066CC;">Array</span> = <span style="color: #66cc66;">&#40;</span> value is ArrayCollection <span style="color: #66cc66;">&#41;</span> ? <span style="color: #66cc66;">&#40;</span> value as ArrayCollection <span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">source</span> : value as <span style="color: #0066CC;">Array</span>;
			<span style="color: #000000; font-weight: bold;">var</span> _map:Dictionary = <span style="color: #000000; font-weight: bold;">new</span> Dictionary<span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> labelField.<span style="color: #0066CC;">length</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				_localArray.<span style="color: #b1b100;">forEach</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span> item:<span style="color: #66cc66;">*</span>, <span style="color: #0066CC;">index</span>:<span style="color: #0066CC;">int</span>, <span style="color: #0066CC;">array</span>:<span style="color: #0066CC;">Array</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
					_map<span style="color: #66cc66;">&#91;</span> item<span style="color: #66cc66;">&#91;</span> <span style="color: #0066CC;">this</span> <span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#93;</span> = item; <span style="color: #808080; font-style: italic;">// in the loop, this == labelField</span>
				<span style="color: #66cc66;">&#125;</span>, labelField <span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">var</span> _returnArray:<span style="color: #0066CC;">Array</span> = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;
			<span style="color: #b1b100;">for</span> each <span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">object</span>:<span style="color: #0066CC;">Object</span> <span style="color: #b1b100;">in</span> _map <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				_returnArray.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">object</span> <span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #0066CC;">super</span>.<span style="color: #006600;">dataProvider</span> = _returnArray;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> DedupeComboBox<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>then to implement it from your code you could do something as simple as this</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;</span>mx:Application xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span style="color: #ff0000;">&quot;absolute&quot;</span> xmlns:archfamily=<span style="color: #ff0000;">&quot;com.archfamily.*&quot;</span><span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>mx:Script<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;!</span><span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span>
			<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">collections</span>.<span style="color: #006600;">ArrayCollection</span>;
			<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span> <span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> ac:ArrayCollection = <span style="color: #000000; font-weight: bold;">new</span> ArrayCollection<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;car&quot;</span>, total: <span style="color: #cc66cc;">100</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;bus&quot;</span>, total: <span style="color: #cc66cc;">200</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;bike&quot;</span>, total: <span style="color: #cc66cc;">300</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;train&quot;</span>, total: <span style="color: #cc66cc;">200</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;boat&quot;</span>, total: <span style="color: #cc66cc;">400</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;car&quot;</span>, total: <span style="color: #cc66cc;">500</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;bus&quot;</span>, total: <span style="color: #cc66cc;">200</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;convertible&quot;</span>, total: <span style="color: #cc66cc;">100</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;gizmo&quot;</span>, total: <span style="color: #cc66cc;">300</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;boat&quot;</span>, total: <span style="color: #cc66cc;">300</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;car&quot;</span>, total: <span style="color: #cc66cc;">100</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;dune buggy&quot;</span>, total:<span style="color: #cc66cc;">300</span> <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;motorcycle&quot;</span>, total: <span style="color: #cc66cc;">100</span> <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>mx:Script<span style="color: #66cc66;">&gt;</span>
&nbsp;
	<span style="color: #66cc66;">&lt;</span>archfamily:DedupeComboBox id=<span style="color: #ff0000;">&quot;testing&quot;</span> dataProvider=<span style="color: #ff0000;">&quot;{ ac }&quot;</span> labelField=<span style="color: #ff0000;">&quot;name&quot;</span> <span style="color: #66cc66;">/&gt;</span>
<span style="color: #66cc66;">&lt;/</span>mx:Application<span style="color: #66cc66;">&gt;</span></pre></div></div>

<p>You can even get just the non-duplicate totals by changing labelField=&#8221;name&#8221; to labelField=&#8221;total&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://flexoop.com/2008/11/deduped-combobox-component/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
