<?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>Teoti Graphix, LLC</title>
	<atom:link href="http://blog.teotigraphix.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.teotigraphix.com</link>
	<description>Flash[Flex] Platform Component Development and Architecture</description>
	<lastBuildDate>Mon, 08 Mar 2010 14:56:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Spark navigators :: ViewStack &#8211; TabNavigator &#8211; Accordion</title>
		<link>http://blog.teotigraphix.com/2010/03/08/spark-navigators-viewstack-tabnavigator-accordion/</link>
		<comments>http://blog.teotigraphix.com/2010/03/08/spark-navigators-viewstack-tabnavigator-accordion/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 14:56:40 +0000</pubDate>
		<dc:creator>Michael Schmalle</dc:creator>
				<category><![CDATA[announcements]]></category>
		<category><![CDATA[navigators]]></category>
		<category><![CDATA[products]]></category>
		<category><![CDATA[spark]]></category>

		<guid isPermaLink="false">http://blog.teotigraphix.com/?p=24</guid>
		<description><![CDATA[Hello,
I&#8217;m happy to announce that Teoti Graphix, LLC will be offering spark framework navigators. Through the over 5 years of flex component development, this widget set was the most fun to create (to this point).
As a component developer since the beginning of flex, I have always found it hard to create rich components due to [...]]]></description>
			<content:encoded><![CDATA[<p>Hello,</p>
<p>I&#8217;m happy to announce that Teoti Graphix, LLC will be offering <strong>spark framework navigators</strong>. Through the over 5 years of flex component development, this widget set was the most fun to create (to this point).</p>
<p>As a component developer since the beginning of flex, I have always found it hard to create rich components due to the fact the component&#8217;s view was always coupled to the component controller (the component class). With the <strong>Spark</strong> framework, all this has changed and the horizons are limitless.</p>
<h2>Component development pattern</h2>
<p>There is a consistent pattern you will see in all of our component releases.</p>
<ul>
<li>All front facing classes IE <code>TabNavigator </code>will include the default skin in it&#8217;s Type style declaration. This means if you don&#8217;t want it linked, subclass the <code>TabNavigatorBase </code>and implement your own default component. <strong>Note:</strong> <em>In the future we may change this to default theme SWCs but for now this is how it works</em></li>
<li>All components follow the base class -&gt; MXML pattern that Adobe has set. After creating a lot of Spark components, I find this very legitimate.</li>
<li>All components have a core Skin, most of our more multi-placement composite holding component&#8217;s implement a default <code>LayoutBase </code>skin layout.</li>
<li>All component skins are simplified. This means some use of abstractions regarding border and state borders. For those designers that use tools to create skins, this will not affect you, just create another version of the skin implementing the <strong>SkinParts </strong>and do your fxg or layered skin graphic elements.</li>
<li>Since we offer commercial components that will be used by many levels of developers, styles will be part of the components that will offer dynamic presentation whenever possible.</li>
<li>Last but not least, anything that can be a skin or renderer is.</li>
</ul>
<h2>The Navigator Widget Toolkit</h2>
<p>The navigator toolkit includes;</p>
<p><strong>Components</strong></p>
<ul>
<li>ViewStack</li>
<li>TabNavigator</li>
<li>TabBar</li>
<li>TabButton</li>
<li>Accordion, AccordionHeader</li>
<li>SimpleBar</li>
<li>SimpleTitleBar</li>
</ul>
<p><strong>Skins</strong></p>
<ul>
<li>ViewStackSkin</li>
<li>TabNavigatorSkin</li>
<li>TabBarSkin, TabTopSkin, TabBottomSkin, TabLeftSkin, TabRightSkin</li>
<li>AccordionSkin, AccordionHeaderSkin</li>
<li>SimpleBorderSkin</li>
</ul>
<p><strong>Layouts</strong></p>
<ul>
<li>ViewStackLayout</li>
<li>TabNavigatorSkinLayout</li>
<li>HorizontalButtonBarLayout</li>
<li>VerticalButtonBarLayout</li>
<li>AccordionSkinLayout</li>
<li>AccordionSkinLayoutAnimated</li>
</ul>
<h3>VeiwStack</h3>
<p>The <code>ViewStack </code>can be hooked up to any <code>ISelectableList </code>implementation such as the spark <code>ButtonBar</code>.</p>
<p><img class="alignnone size-full wp-image-25" title="viewstack01" src="http://blog.teotigraphix.com/wp-content/uploads/2010/03/viewstack01.png" alt="viewstack01" /></p>
<p>Along with this easy plugin functionality, a simple rotated <code>ButtonBar </code>works in a normal layout also.</p>
<p><img class="alignnone size-full wp-image-25" title="viewstack02" src="http://blog.teotigraphix.com/wp-content/uploads/2010/03/viewstack02.png" alt="viewstack02" width="182" height="214" /></p>
<p>The <code>ViewStack </code>also comes with the additional functionality of;</p>
<ul>
<li><code>selectedIndex</code></li>
<li><code>selectedChild </code>which must implement <code>INavigatorContent</code></li>
<li><code>resizeToContent </code>works just like the Halo navigator&#8217;s, the navigator is resized when the <code>selectedIndex </code>changes</li>
</ul>
<h3>TabNavigator</h3>
<p>The <code>TabNavigator </code>inherits all the <code>ViewStack </code>functionality and adds a <code>TabBar</code>.</p>
<p>The TabNavigator also come with the additional functionality of;</p>
<ul>
<li><code>tabBarPlacement </code>(top, right, bottom and left)</li>
<li><code>tabClosePolicy</code>; default close button implementation in the TabButton (on,off,rollover,selected,disabled);</li>
<li>A <code>CHANGING </code>event that is <strong>cancelable </strong>with <code>selectedIndex </code>is set</li>
<li>Drag and Drop support out of the box (rearrange tabs or drag into another navigator)</li>
</ul>
<p>The image below shows the <strong>top </strong>tabBar placement.</p>
<p><img class="alignnone size-full wp-image-25" title="tabnavigator01" src="http://blog.teotigraphix.com/wp-content/uploads/2010/03/tabnavigator01.png" alt="tabnavigator01" /></p>
<p>The image below shows the <strong>right </strong>tabBar placement.</p>
<p><img class="alignnone size-full wp-image-25" title="tabnavigator02" src="http://blog.teotigraphix.com/wp-content/uploads/2010/03/tabnavigator02.png" alt="tabnavigator02" /></p>
<p>The image below shows the <strong>bottom </strong>tabBar placement.</p>
<p><img class="alignnone size-full wp-image-25" title="tabnavigator03" src="http://blog.teotigraphix.com/wp-content/uploads/2010/03/tabnavigator03.png" alt="tabnavigator03" /></p>
<p>The image below shows the <strong>left </strong>tabBar placement.</p>
<p><img class="alignnone size-full wp-image-25" title="tabnavigator04" src="http://blog.teotigraphix.com/wp-content/uploads/2010/03/tabnavigator04.png" alt="tabnavigator04" /></p>
<p>The image below shows the <strong>closePolicy </strong>of disabled.</p>
<p><img class="alignnone size-full wp-image-25" title="tabnavigator05" src="http://blog.teotigraphix.com/wp-content/uploads/2010/03/tabnavigator05.png" alt="tabnavigator05" /></p>
<p>There is so much more to talk about this component but I will save that for later.</p>
<p>Also note, with all tabBar placements, additional configurations include tabOffset, tabBar vertical and horizontal align and corner radii.</p>
<h3>Accordion</h3>
<p>The <code>Accordion </code>works just like the Halo version. Main differences include;</p>
<ul>
<li>Instead of reimplementing the <code>ViewStack </code>class like the Halo Accordion, this component subclasses <code>ViewStackBase</code>.</li>
<li>The Accordion offers the <strong>direction </strong>property to allow for <strong>vertical </strong>and <strong>horizontal </strong>layout states.</li>
<li>Inherits all <code>ISelectableList </code>functionality from the <code>ViewStackBase </code>class.</li>
<li>Is completely skinnable.</li>
<li>All aspects of layout are swappable.</li>
<li>The <code>AccordionHeader </code>skin is direction aware, this means you can swap out any header and base it&#8217;s presentation of the current direction of the <code>Accordion</code>.</li>
</ul>
<p>The image below shows the <strong>vertical </strong>layout direction.</p>
<p><img class="alignnone size-full wp-image-25" title="accordion01" src="http://blog.teotigraphix.com/wp-content/uploads/2010/03/accordion01.png" alt="accordion01" /></p>
<p>The image below shows the <strong>horizontal </strong>layout direction.</p>
<p><img class="alignnone size-full wp-image-25" title="accordion02" src="http://blog.teotigraphix.com/wp-content/uploads/2010/03/accordion02.png" alt="accordion02" /></p>
<h2>Conclusion</h2>
<p>This is a very fun time for flex component development and our company is here to save you development time and money!</p>
<p>This set is scheduled for release just prior to Flex 4&#8217;s official release.</p>
<p><strong>Version 1.0 limitations;</strong></p>
<ul>
<li>History management is not enabled.</li>
<li>Deferred instantiation is not enabled. (this has to do with SkinnableContainer, we are working on it)</li>
<li>The Accordion animated layout is still beta.</li>
</ul>
<p>Thanks,</p>
<p>Mike</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.teotigraphix.com/2010/03/08/spark-navigators-viewstack-tabnavigator-accordion/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Spark Skin Reuse :: Take 1</title>
		<link>http://blog.teotigraphix.com/2010/02/15/spark-skin-reuse-take-1/</link>
		<comments>http://blog.teotigraphix.com/2010/02/15/spark-skin-reuse-take-1/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 14:51:41 +0000</pubDate>
		<dc:creator>Michael Schmalle</dc:creator>
				<category><![CDATA[skins]]></category>
		<category><![CDATA[spark]]></category>

		<guid isPermaLink="false">http://blog.teotigraphix.com/?p=21</guid>
		<description><![CDATA[Ok,
After doing some more research, it is apparent there is a split in this new approach to skinning in Flex 4 Spark.

Companies have designers that use tools to create a full MXML (flat) tree that implements a Component&#8217;s skin part API.
Companies have designers give assets such as images and behaviors to developers, developers touch the [...]]]></description>
			<content:encoded><![CDATA[<p>Ok,</p>
<p>After doing some more research, it is apparent there is a split in this new approach to skinning in Flex 4 Spark.</p>
<ul>
<li>Companies have designers that use tools to create a full MXML (flat) tree that implements a Component&#8217;s skin part API.</li>
<li>Companies have designers give assets such as images and behaviors to developers, developers touch the code, not designers.</li>
</ul>
<p>With this split it is easy to see why some devs like the Spark skinning implementation and others are having a hard time with the copy and paste.</p>
<p>I am in no way saying the copy and paste is wrong, against OOP or whatever other reason. I&#8217;m saying that this new skin implementation depends on tools. I guess this is the changing of tides and more editing programs getting into the mix.</p>
<p><strong>Alternatives</strong></p>
<p>This one I have been racking my brain on for a while; Anything a component developer that sells encapsulated pieces of behavior(components) creates, the component needs to work in a design view tool. Else we are marketing our components to a seemingly diminishing breed of company, the developer controls the code company. Another example of this is someone tweaking the MXML in a code editor.</p>
<p>What this means is, the alternatives shrink in value due to the fact anything that I could come up with is dynamic, which means it is not &#8220;flat&#8221; like an MXML skin, thus a designer has no access to.</p>
<p>Matt Chotin put it frankly in a blog comment; Halo failed because designers could not tweak the skins (ProgrammaticSkin) in the design view of a tool.</p>
<p><strong>What does this mean?</strong></p>
<p>Essentially, a component developer cannot create a <strong>BorderSkin </strong>that is a subclass of a <strong>Group </strong>(implementing a subset of border and background styles) that can then be reused in an actual <strong>Skin </strong>subclass. If you define styles that could be plugged into the composite <strong>BorderSkin</strong>, a tool like catalyst cannot read and display the composite border correctly. Plus with Flash Builder&#8217;s design view, forget it.</p>
<p>To make matters worse, how would you allow the designer to &#8220;<em>apply</em>&#8221; the styles you defined for the composite <strong>BorderSkin </strong>in their implementation of the parent <strong>Skin </strong>class?</p>
<p><strong>Conclusion of Take 1</strong></p>
<p>For me, it&#8217;s easy to create tight component API&#8217;s that allow a greater abstraction of widgets application developers use in their code everyday. We have had hundreds of happy customers with our past Flex2/3 line of components.</p>
<p>The new challenge for my company is realizing the need of the current motivations.</p>
<p>It&#8217;s hard for a component developer that sees abstractions in a component such as the <strong>spark.components.Panel</strong> to take it, slice and dice it to more of a composite approach (titlebar, content, statusbar). Make available a <strong>TitleBar </strong>and <strong>StatusBar</strong> component, when the <strong>Panel </strong>exemplifies what Adobe wants designers to get their hands on, one big chunk of view code in a tree, in the same file.</p>
<p>It&#8217;s easy to take and build sub components, skin them and make them work. The problem I am finding is how to I get the <strong>TitleContainer </strong>that holds these sub components to play nice with design tools.</p>
<p>Mike</p>
<p>Comments are appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.teotigraphix.com/2010/02/15/spark-skin-reuse-take-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spark Component Skins</title>
		<link>http://blog.teotigraphix.com/2010/02/15/spark-component-skins/</link>
		<comments>http://blog.teotigraphix.com/2010/02/15/spark-component-skins/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 11:36:14 +0000</pubDate>
		<dc:creator>Michael Schmalle</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.teotigraphix.com/?p=18</guid>
		<description><![CDATA[Hello,
Time to start writing about components again. For those who have not had much experience with the older Halo component framework, Spark may not seem alien since it&#8217;s what you stepped up to. Coming from 5 years of flex component development, the Spark component framework is creating a lot of garbage regarding skins.
This whole copy [...]]]></description>
			<content:encoded><![CDATA[<p>Hello,</p>
<p>Time to start writing about components again. For those who have not had much experience with the older Halo component framework, Spark may not seem alien since it&#8217;s what you stepped up to. Coming from 5 years of flex component development, the Spark component framework is creating a lot of garbage regarding skins.</p>
<p>This whole copy and paste skin thing has got to stop! <img src='http://blog.teotigraphix.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Well, maybe not stop but needs alternatives, and that is where a component developer comes in. Our new products coming for Flex 4 target this very issue and many more.</p>
<p>Maybe you are a developer coming from Halo and liked some of it&#8217;s more simple style apis to get things done quickly. Maybe you just want a choice to do it one way or another and not always have to right click and select &#8220;<em>Copy new skin</em>&#8220;.</p>
<p>Whatever the case may be, stay tuned, the <strong>Window Widget Tool Kit</strong> is our first offering coming soon and I&#8217;ll start talking about it&#8217;s benefits.</p>
<p>Mike</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.teotigraphix.com/2010/02/15/spark-component-skins/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Teoti Graphix, LLC :: 2010</title>
		<link>http://blog.teotigraphix.com/2010/01/06/teoti-graphix-llc-2010/</link>
		<comments>http://blog.teotigraphix.com/2010/01/06/teoti-graphix-llc-2010/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 17:56:38 +0000</pubDate>
		<dc:creator>Michael Schmalle</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://blog.teotigraphix.com/?p=6</guid>
		<description><![CDATA[Teoti Graphix, LLC is getting a major revitalization for our new products and open-source frameworks coming for this year.
If there are those of you who have followed me since 2005-2006 and Flex, you know that I was a major contributor to the Flex community. Let&#8217;s say I have the top 10 all time poster position [...]]]></description>
			<content:encoded><![CDATA[<p>Teoti Graphix, LLC is getting a major revitalization for our new products and open-source frameworks coming for this year.</p>
<p>If there are those of you who have followed me since 2005-2006 and Flex, you know that I was a major contributor to the Flex community. Let&#8217;s say I have the top <strong>10 all time poster position on flexcoders</strong>.</p>
<p>Image source; <a href="http://dougmccune.com">Doug McCune – Data Visualization Engineer</a></p>
<p><img src="http://dougmccune.com/blog/wp-content/uploads/2009/11/flexcoders_top10_alltime.jpg" alt="" /></p>
<p>This year feels a bit like 2006, new things around the corner and much to talk about. I&#8217;m getting back into the community and want dialog with friends and colleagues.</p>
<p>We will deliver some fantastic frameworks this year as the Spark framework really has opened up a lot of play room for component developers. I also welcome competition, since that is what purifies the waters. <img src='http://blog.teotigraphix.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>We have almost 4 years of blog archives that we need to transfer to this blog, which is going to happen soon.</p>
<p>Other than that, have a great 2010.</p>
<p>Mike</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.teotigraphix.com/2010/01/06/teoti-graphix-llc-2010/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
