<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -19,6 +19,10 @@ package com.insideria.twitteria.business {
 		private var username:String;
 		private var password:String;
 		
+		/**
+		 * When constructed, we get the credentials and an event dispatcher to dispatch events through
+		 * so that the EventMap will recieve them
+		 */
 		public function TwitterDelegate(username:String, password:String, dispatcher:IEventDispatcher) {
 			trace(&quot;creating TwitterDelegate with useDummyData: &quot; + useDummyData);
 			this.username = username;</diff>
      <filename>mate/src/com/insideria/twitteria/business/TwitterDelegate.as</filename>
    </modified>
    <modified>
      <diff>@@ -2,6 +2,11 @@ package com.insideria.twitteria.business {
 	
 	import mx.collections.ArrayCollection;
 	
+	/**
+	 * A Manager is something like a model,
+	 * and this one holds onto anything that comes back from 
+	 * Twitter for us
+	 */	
 	public class TwitterManager {
 		
 		[Bindable]</diff>
      <filename>mate/src/com/insideria/twitteria/business/TwitterManager.as</filename>
    </modified>
    <modified>
      <diff>@@ -8,14 +8,21 @@
 	]]&gt;
 	&lt;/mx:Script&gt;
 	
+	&lt;!-- A debugger, for free! --&gt;
 	&lt;Debugger level=&quot;{Debugger.ALL}&quot; /&gt;
 	
+	&lt;!-- EventHandlers do the work corresponding to an event --&gt;
 	&lt;EventHandlers type=&quot;{LoginEvent.LOG_IN}&quot; debug=&quot;true&quot;&gt;
+		&lt;!-- An ObjectBuilder builds an object object of a certain type and caches that object for later use, 
+			indexed by class (see below). We use this so that we can pass arguments to the contructor --&gt;
 		&lt;ObjectBuilder generator=&quot;{TwitterDelegate}&quot; constructorArguments=&quot;{[event.username, event.password, scope.dispatcher]}&quot; /&gt;
+		&lt;!-- The TwitterDelegate used by this MethodInvoker will be the one constructed by the ObjectBuilder --&gt;
 		&lt;MethodInvoker generator=&quot;{TwitterDelegate}&quot; method=&quot;loadTimeline&quot; /&gt;
 	&lt;/EventHandlers&gt;
 	
 	&lt;EventHandlers type=&quot;{TimelineReceivedEvent.TIMELINE_RECEIVED}&quot; debug=&quot;true&quot;&gt;
+		&lt;!-- Without an ObjectBuilder, the first call to a class in the generator attribute of a MethodInvoker
+			will be cached and used the next time the class is referenced --&gt;
 		&lt;MethodInvoker generator=&quot;{TwitterManager}&quot; method=&quot;setCurrentTweets&quot; arguments=&quot;{[event.tweets]}&quot; /&gt;
 		&lt;EventAnnouncer generator=&quot;{ViewStateEvent}&quot; type=&quot;{ViewStateEvent.SHOW_MAIN_VIEW}&quot; bubbles=&quot;true&quot; /&gt;
 	&lt;/EventHandlers&gt;
@@ -28,7 +35,10 @@
 		&lt;MethodInvoker generator=&quot;{TwitterDelegate}&quot; method=&quot;loadTimeline&quot; /&gt;
 	&lt;/EventHandlers&gt;
 	
+	&lt;!-- This injector references the MainView which was already instantiated on the root --&gt;
 	&lt;Injectors target=&quot;{MainView}&quot;&gt;
+		&lt;!-- Whenever the currentTweets property on the cached TwitterManager changes, Mate sets the 
+			currentTweets property on the MainView to point to that property --&gt;
 		&lt;PropertyInjector source=&quot;{TwitterManager}&quot; sourceKey=&quot;currentTweets&quot; targetKey=&quot;currentTweets&quot; /&gt;
 	&lt;/Injectors&gt;
 	</diff>
      <filename>mate/src/com/insideria/twitteria/maps/MainEventMap.mxml</filename>
    </modified>
    <modified>
      <diff>@@ -4,6 +4,8 @@
 		[Event(name='login', type='com.insideria.twitteria.events.LoginEvent')]
 	&lt;/mx:Metadata&gt;
 	
+	&lt;!-- I can't find any Mate here, can you? --&gt;
+	
 	&lt;mx:Script&gt;
 	&lt;![CDATA[
 		import com.insideria.twitteria.events.LoginEvent;</diff>
      <filename>mate/src/com/insideria/twitteria/view/LoginView.mxml</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,8 @@
 &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
 &lt;mx:VBox xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; width=&quot;100%&quot; height=&quot;100%&quot; xmlns:status=&quot;com.insideria.twitteria.view.status.*&quot;&gt;
 
+	&lt;!-- I can't find any Mate here, can you? --&gt;
+
 	&lt;mx:Script&gt;
 	&lt;![CDATA[
 		import com.insideria.twitteria.events.SetStatusEvent;</diff>
      <filename>mate/src/com/insideria/twitteria/view/MainView.mxml</filename>
    </modified>
    <modified>
      <diff>@@ -18,8 +18,10 @@
 	&lt;mx:DropShadowFilter id=&quot;twitteShadow&quot; inner=&quot;true&quot; distance=&quot;1&quot; blurX=&quot;2&quot; blurY=&quot;2&quot; /&gt;
 	&lt;mx:DropShadowFilter id=&quot;riaShadow&quot; distance=&quot;1&quot; blurX=&quot;2&quot; blurY=&quot;2&quot; /&gt;
 
+	&lt;!-- Any event maps need to be instantiated on the root --&gt;
 	&lt;maps:MainEventMap /&gt;
 	
+	&lt;!-- Here is an example of a declarative listener which calls a local method --&gt;
 	&lt;mate:Listener type=&quot;{ViewStateEvent.SHOW_MAIN_VIEW}&quot; method=&quot;showMainView&quot; /&gt;
 	
 	&lt;mx:Label id=&quot;titleTwitteLabel&quot; styleName=&quot;twitTitle&quot; filters=&quot;{[twitteShadow]}&quot; text=&quot;Twitte&quot; /&gt;</diff>
      <filename>mate/src/twitteria_mate.mxml</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>2f8c2f1f3e0e185804819a09d5236ab8d5c5d40b</id>
    </parent>
  </parents>
  <author>
    <name>Tony Hillerson</name>
    <email>tony.hillerson@effectiveui.com</email>
  </author>
  <url>http://github.com/thillerson/twitteria/commit/c43b5bb646fb8009d5ac0ad4f79ca06079aefc89</url>
  <id>c43b5bb646fb8009d5ac0ad4f79ca06079aefc89</id>
  <committed-date>2009-01-30T19:02:01-08:00</committed-date>
  <authored-date>2009-01-30T19:02:01-08:00</authored-date>
  <message>documented some key points about Mate</message>
  <tree>9b755ed30d0a4e63ce3eeafce994dd3597bbc72a</tree>
  <committer>
    <name>Tony Hillerson</name>
    <email>tony.hillerson@effectiveui.com</email>
  </committer>
</commit>
