puremvc-as3 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/2.0.4/asdoc/all-classes.html +81 -0
- data/2.0.4/asdoc/all-index-A.html +59 -0
- data/2.0.4/asdoc/all-index-B.html +52 -0
- data/2.0.4/asdoc/all-index-C.html +92 -0
- data/2.0.4/asdoc/all-index-D.html +58 -0
- data/2.0.4/asdoc/all-index-E.html +89 -0
- data/2.0.4/asdoc/all-index-F.html +72 -0
- data/2.0.4/asdoc/all-index-G.html +190 -0
- data/2.0.4/asdoc/all-index-H.html +174 -0
- data/2.0.4/asdoc/all-index-I.html +202 -0
- data/2.0.4/asdoc/all-index-J.html +52 -0
- data/2.0.4/asdoc/all-index-K.html +52 -0
- data/2.0.4/asdoc/all-index-L.html +67 -0
- data/2.0.4/asdoc/all-index-M.html +112 -0
- data/2.0.4/asdoc/all-index-N.html +128 -0
- data/2.0.4/asdoc/all-index-O.html +178 -0
- data/2.0.4/asdoc/all-index-P.html +79 -0
- data/2.0.4/asdoc/all-index-Q.html +52 -0
- data/2.0.4/asdoc/all-index-R.html +308 -0
- data/2.0.4/asdoc/all-index-S.html +193 -0
- data/2.0.4/asdoc/all-index-T.html +67 -0
- data/2.0.4/asdoc/all-index-U.html +52 -0
- data/2.0.4/asdoc/all-index-V.html +84 -0
- data/2.0.4/asdoc/all-index-W.html +52 -0
- data/2.0.4/asdoc/all-index-X.html +52 -0
- data/2.0.4/asdoc/all-index-Y.html +52 -0
- data/2.0.4/asdoc/all-index-Z.html +52 -0
- data/2.0.4/asdoc/appendixes.html +47 -0
- data/2.0.4/asdoc/asdoc.js +273 -0
- data/2.0.4/asdoc/class-summary.html +174 -0
- data/2.0.4/asdoc/cookies.js +84 -0
- data/2.0.4/asdoc/images/collapsed.gif +0 -0
- data/2.0.4/asdoc/images/detailHeaderRule.jpg +0 -0
- data/2.0.4/asdoc/images/detailSectionHeader.jpg +0 -0
- data/2.0.4/asdoc/images/expanded.gif +0 -0
- data/2.0.4/asdoc/images/inherit-arrow.gif +0 -0
- data/2.0.4/asdoc/images/inheritedSummary.gif +0 -0
- data/2.0.4/asdoc/images/logo.jpg +0 -0
- data/2.0.4/asdoc/images/titleTableBottom.jpg +0 -0
- data/2.0.4/asdoc/images/titleTableMiddle.jpg +0 -0
- data/2.0.4/asdoc/images/titleTableTop.jpg +0 -0
- data/2.0.4/asdoc/index-list.html +121 -0
- data/2.0.4/asdoc/index.html +63 -0
- data/2.0.4/asdoc/mxml-tags.html +45 -0
- data/2.0.4/asdoc/org/puremvc/as3/core/Controller.html +433 -0
- data/2.0.4/asdoc/org/puremvc/as3/core/Model.html +405 -0
- data/2.0.4/asdoc/org/puremvc/as3/core/View.html +524 -0
- data/2.0.4/asdoc/org/puremvc/as3/core/class-list.html +30 -0
- data/2.0.4/asdoc/org/puremvc/as3/core/package-detail.html +65 -0
- data/2.0.4/asdoc/org/puremvc/as3/interfaces/ICommand.html +110 -0
- data/2.0.4/asdoc/org/puremvc/as3/interfaces/IController.html +226 -0
- data/2.0.4/asdoc/org/puremvc/as3/interfaces/IFacade.html +520 -0
- data/2.0.4/asdoc/org/puremvc/as3/interfaces/IMediator.html +345 -0
- data/2.0.4/asdoc/org/puremvc/as3/interfaces/IModel.html +226 -0
- data/2.0.4/asdoc/org/puremvc/as3/interfaces/INotification.html +269 -0
- data/2.0.4/asdoc/org/puremvc/as3/interfaces/INotifier.html +151 -0
- data/2.0.4/asdoc/org/puremvc/as3/interfaces/IObserver.html +234 -0
- data/2.0.4/asdoc/org/puremvc/as3/interfaces/IProxy.html +217 -0
- data/2.0.4/asdoc/org/puremvc/as3/interfaces/IView.html +350 -0
- data/2.0.4/asdoc/org/puremvc/as3/interfaces/class-list.html +54 -0
- data/2.0.4/asdoc/org/puremvc/as3/interfaces/package-detail.html +93 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/command/MacroCommand.html +284 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/command/SimpleCommand.html +164 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/command/class-list.html +27 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/command/package-detail.html +61 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/facade/Facade.html +940 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/facade/class-list.html +24 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/facade/package-detail.html +57 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/mediator/Mediator.html +402 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/mediator/class-list.html +24 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/mediator/package-detail.html +57 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/observer/Notification.html +312 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/observer/Notifier.html +180 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/observer/Observer.html +253 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/observer/class-list.html +30 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/observer/package-detail.html +65 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/proxy/Proxy.html +338 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/proxy/class-list.html +24 -0
- data/2.0.4/asdoc/org/puremvc/as3/patterns/proxy/package-detail.html +57 -0
- data/2.0.4/asdoc/package-frame.html +36 -0
- data/2.0.4/asdoc/package-list.html +52 -0
- data/2.0.4/asdoc/package-summary.html +68 -0
- data/2.0.4/asdoc/print.css +110 -0
- data/2.0.4/asdoc/style.css +565 -0
- data/2.0.4/asdoc/title-bar.html +55 -0
- data/2.0.4/bin/PureMVC_AS3_2_0_4.swc +0 -0
- data/2.0.4/license.txt +61 -0
- data/2.0.4/src/org/puremvc/as3/core/Controller.as +183 -0
- data/2.0.4/src/org/puremvc/as3/core/Model.as +144 -0
- data/2.0.4/src/org/puremvc/as3/core/View.as +271 -0
- data/2.0.4/src/org/puremvc/as3/interfaces/ICommand.as +21 -0
- data/2.0.4/src/org/puremvc/as3/interfaces/IController.as +64 -0
- data/2.0.4/src/org/puremvc/as3/interfaces/IFacade.as +131 -0
- data/2.0.4/src/org/puremvc/as3/interfaces/IMediator.as +150 -0
- data/2.0.4/src/org/puremvc/as3/interfaces/IModel.as +57 -0
- data/2.0.4/src/org/puremvc/as3/interfaces/INotification.as +76 -0
- data/2.0.4/src/org/puremvc/as3/interfaces/INotifier.as +46 -0
- data/2.0.4/src/org/puremvc/as3/interfaces/IObserver.as +81 -0
- data/2.0.4/src/org/puremvc/as3/interfaces/IProxy.as +61 -0
- data/2.0.4/src/org/puremvc/as3/interfaces/IView.as +106 -0
- data/2.0.4/src/org/puremvc/as3/patterns/command/MacroCommand.as +121 -0
- data/2.0.4/src/org/puremvc/as3/patterns/command/SimpleCommand.as +42 -0
- data/2.0.4/src/org/puremvc/as3/patterns/facade/Facade.as +419 -0
- data/2.0.4/src/org/puremvc/as3/patterns/mediator/Mediator.as +115 -0
- data/2.0.4/src/org/puremvc/as3/patterns/observer/Notification.as +128 -0
- data/2.0.4/src/org/puremvc/as3/patterns/observer/Notifier.as +55 -0
- data/2.0.4/src/org/puremvc/as3/patterns/observer/Observer.as +114 -0
- data/2.0.4/src/org/puremvc/as3/patterns/proxy/Proxy.as +88 -0
- data/2.0.4/src/puremvc-manifest.xml +20 -0
- data/2.0.4/version.txt +117 -0
- data/Gemfile +4 -0
- data/README.textile +107 -0
- data/Rakefile +24 -0
- data/lib/puremvc-as3.rb +29 -0
- data/lib/rake/rename.rb +34 -0
- metadata +198 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*
|
|
2
|
+
PureMVC - Copyright(c) 2006-08 Futurescale, Inc., Some rights reserved.
|
|
3
|
+
Your reuse is governed by the Creative Commons Attribution 3.0 United States License
|
|
4
|
+
*/
|
|
5
|
+
package org.puremvc.as3.interfaces
|
|
6
|
+
{
|
|
7
|
+
/**
|
|
8
|
+
* The interface definition for a PureMVC Notifier.
|
|
9
|
+
*
|
|
10
|
+
* <P>
|
|
11
|
+
* <code>MacroCommand, Command, Mediator</code> and <code>Proxy</code>
|
|
12
|
+
* all have a need to send <code>Notifications</code>. </P>
|
|
13
|
+
*
|
|
14
|
+
* <P>
|
|
15
|
+
* The <code>INotifier</code> interface provides a common method called
|
|
16
|
+
* <code>sendNotification</code> that relieves implementation code of
|
|
17
|
+
* the necessity to actually construct <code>Notifications</code>.</P>
|
|
18
|
+
*
|
|
19
|
+
* <P>
|
|
20
|
+
* The <code>Notifier</code> class, which all of the above mentioned classes
|
|
21
|
+
* extend, also provides an initialized reference to the <code>Facade</code>
|
|
22
|
+
* Singleton, which is required for the convienience method
|
|
23
|
+
* for sending <code>Notifications</code>, but also eases implementation as these
|
|
24
|
+
* classes have frequent <code>Facade</code> interactions and usually require
|
|
25
|
+
* access to the facade anyway.</P>
|
|
26
|
+
*
|
|
27
|
+
* @see org.puremvc.as3.interfaces.IFacade IFacade
|
|
28
|
+
* @see org.puremvc.as3.interfaces.INotification INotification
|
|
29
|
+
*/
|
|
30
|
+
public interface INotifier
|
|
31
|
+
{
|
|
32
|
+
/**
|
|
33
|
+
* Send a <code>INotification</code>.
|
|
34
|
+
*
|
|
35
|
+
* <P>
|
|
36
|
+
* Convenience method to prevent having to construct new
|
|
37
|
+
* notification instances in our implementation code.</P>
|
|
38
|
+
*
|
|
39
|
+
* @param notificationName the name of the notification to send
|
|
40
|
+
* @param body the body of the notification (optional)
|
|
41
|
+
* @param type the type of the notification (optional)
|
|
42
|
+
*/
|
|
43
|
+
function sendNotification( notificationName:String, body:Object=null, type:String=null ):void;
|
|
44
|
+
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/*
|
|
2
|
+
PureMVC - Copyright(c) 2006-08 Futurescale, Inc., Some rights reserved.
|
|
3
|
+
Your reuse is governed by the Creative Commons Attribution 3.0 United States License
|
|
4
|
+
*/
|
|
5
|
+
package org.puremvc.as3.interfaces
|
|
6
|
+
{
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The interface definition for a PureMVC Observer.
|
|
10
|
+
*
|
|
11
|
+
* <P>
|
|
12
|
+
* In PureMVC, <code>IObserver</code> implementors assume these responsibilities:
|
|
13
|
+
* <UL>
|
|
14
|
+
* <LI>Encapsulate the notification (callback) method of the interested object.</LI>
|
|
15
|
+
* <LI>Encapsulate the notification context (this) of the interested object.</LI>
|
|
16
|
+
* <LI>Provide methods for setting the interested object' notification method and context.</LI>
|
|
17
|
+
* <LI>Provide a method for notifying the interested object.</LI>
|
|
18
|
+
* </UL>
|
|
19
|
+
*
|
|
20
|
+
* <P>
|
|
21
|
+
* PureMVC does not rely upon underlying event
|
|
22
|
+
* models such as the one provided with Flash,
|
|
23
|
+
* and ActionScript 3 does not have an inherent
|
|
24
|
+
* event model.</P>
|
|
25
|
+
*
|
|
26
|
+
* <P>
|
|
27
|
+
* The Observer Pattern as implemented within
|
|
28
|
+
* PureMVC exists to support event driven communication
|
|
29
|
+
* between the application and the actors of the
|
|
30
|
+
* MVC triad.</P>
|
|
31
|
+
*
|
|
32
|
+
* <P>
|
|
33
|
+
* An Observer is an object that encapsulates information
|
|
34
|
+
* about an interested object with a notification method that
|
|
35
|
+
* should be called when an </code>INotification</code> is broadcast. The Observer then
|
|
36
|
+
* acts as a proxy for notifying the interested object.
|
|
37
|
+
*
|
|
38
|
+
* <P>
|
|
39
|
+
* Observers can receive <code>Notification</code>s by having their
|
|
40
|
+
* <code>notifyObserver</code> method invoked, passing
|
|
41
|
+
* in an object implementing the <code>INotification</code> interface, such
|
|
42
|
+
* as a subclass of <code>Notification</code>.</P>
|
|
43
|
+
*
|
|
44
|
+
* @see org.puremvc.as3.interfaces.IView IView
|
|
45
|
+
* @see org.puremvc.as3.interfaces.INotification INotification
|
|
46
|
+
*/
|
|
47
|
+
public interface IObserver
|
|
48
|
+
{
|
|
49
|
+
/**
|
|
50
|
+
* Set the notification method.
|
|
51
|
+
*
|
|
52
|
+
* <P>
|
|
53
|
+
* The notification method should take one parameter of type <code>INotification</code></P>
|
|
54
|
+
*
|
|
55
|
+
* @param notifyMethod the notification (callback) method of the interested object
|
|
56
|
+
*/
|
|
57
|
+
function setNotifyMethod( notifyMethod:Function ):void;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Set the notification context.
|
|
61
|
+
*
|
|
62
|
+
* @param notifyContext the notification context (this) of the interested object
|
|
63
|
+
*/
|
|
64
|
+
function setNotifyContext( notifyContext:Object ):void;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Notify the interested object.
|
|
68
|
+
*
|
|
69
|
+
* @param notification the <code>INotification</code> to pass to the interested object's notification method
|
|
70
|
+
*/
|
|
71
|
+
function notifyObserver( notification:INotification ):void;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Compare the given object to the notificaiton context object.
|
|
75
|
+
*
|
|
76
|
+
* @param object the object to compare.
|
|
77
|
+
* @return boolean indicating if the notification context and the object are the same.
|
|
78
|
+
*/
|
|
79
|
+
function compareNotifyContext( object:Object ):Boolean;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/*
|
|
2
|
+
PureMVC - Copyright(c) 2006-08 Futurescale, Inc., Some rights reserved.
|
|
3
|
+
Your reuse is governed by the Creative Commons Attribution 3.0 United States License
|
|
4
|
+
*/
|
|
5
|
+
package org.puremvc.as3.interfaces
|
|
6
|
+
{
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The interface definition for a PureMVC Proxy.
|
|
10
|
+
*
|
|
11
|
+
* <P>
|
|
12
|
+
* In PureMVC, <code>IProxy</code> implementors assume these responsibilities:</P>
|
|
13
|
+
* <UL>
|
|
14
|
+
* <LI>Implement a common method which returns the name of the Proxy.</LI>
|
|
15
|
+
* <LI>Provide methods for setting and getting the data object.</LI>
|
|
16
|
+
* </UL>
|
|
17
|
+
* <P>
|
|
18
|
+
* Additionally, <code>IProxy</code>s typically:</P>
|
|
19
|
+
* <UL>
|
|
20
|
+
* <LI>Maintain references to one or more pieces of model data.</LI>
|
|
21
|
+
* <LI>Provide methods for manipulating that data.</LI>
|
|
22
|
+
* <LI>Generate <code>INotifications</code> when their model data changes.</LI>
|
|
23
|
+
* <LI>Expose their name as a <code>public static const</code> called <code>NAME</code>, if they are not instantiated multiple times.</LI>
|
|
24
|
+
* <LI>Encapsulate interaction with local or remote services used to fetch and persist model data.</LI>
|
|
25
|
+
* </UL>
|
|
26
|
+
*/
|
|
27
|
+
public interface IProxy
|
|
28
|
+
{
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Get the Proxy name
|
|
32
|
+
*
|
|
33
|
+
* @return the Proxy instance name
|
|
34
|
+
*/
|
|
35
|
+
function getProxyName():String;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Set the data object
|
|
39
|
+
*
|
|
40
|
+
* @param data the data object
|
|
41
|
+
*/
|
|
42
|
+
function setData( data:Object ):void;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Get the data object
|
|
46
|
+
*
|
|
47
|
+
* @return the data as type Object
|
|
48
|
+
*/
|
|
49
|
+
function getData():Object;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Called by the Model when the Proxy is registered
|
|
53
|
+
*/
|
|
54
|
+
function onRegister( ):void;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Called by the Model when the Proxy is removed
|
|
58
|
+
*/
|
|
59
|
+
function onRemove( ):void;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/*
|
|
2
|
+
PureMVC - Copyright(c) 2006-08 Futurescale, Inc., Some rights reserved.
|
|
3
|
+
Your reuse is governed by the Creative Commons Attribution 3.0 United States License
|
|
4
|
+
*/
|
|
5
|
+
package org.puremvc.as3.interfaces
|
|
6
|
+
{
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The interface definition for a PureMVC View.
|
|
10
|
+
*
|
|
11
|
+
* <P>
|
|
12
|
+
* In PureMVC, <code>IView</code> implementors assume these responsibilities:</P>
|
|
13
|
+
*
|
|
14
|
+
* <P>
|
|
15
|
+
* In PureMVC, the <code>View</code> class assumes these responsibilities:
|
|
16
|
+
* <UL>
|
|
17
|
+
* <LI>Maintain a cache of <code>IMediator</code> instances.</LI>
|
|
18
|
+
* <LI>Provide methods for registering, retrieving, and removing <code>IMediators</code>.</LI>
|
|
19
|
+
* <LI>Managing the observer lists for each <code>INotification</code> in the application.</LI>
|
|
20
|
+
* <LI>Providing a method for attaching <code>IObservers</code> to an <code>INotification</code>'s observer list.</LI>
|
|
21
|
+
* <LI>Providing a method for broadcasting an <code>INotification</code>.</LI>
|
|
22
|
+
* <LI>Notifying the <code>IObservers</code> of a given <code>INotification</code> when it broadcast.</LI>
|
|
23
|
+
* </UL>
|
|
24
|
+
*
|
|
25
|
+
* @see org.puremvc.as3.interfaces.IMediator IMediator
|
|
26
|
+
* @see org.puremvc.as3.interfaces.IObserver IObserver
|
|
27
|
+
* @see org.puremvc.as3.interfaces.INotification INotification
|
|
28
|
+
*/
|
|
29
|
+
public interface IView
|
|
30
|
+
{
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Register an <code>IObserver</code> to be notified
|
|
34
|
+
* of <code>INotifications</code> with a given name.
|
|
35
|
+
*
|
|
36
|
+
* @param notificationName the name of the <code>INotifications</code> to notify this <code>IObserver</code> of
|
|
37
|
+
* @param observer the <code>IObserver</code> to register
|
|
38
|
+
*/
|
|
39
|
+
function registerObserver( notificationName:String, observer:IObserver ) : void;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Remove a group of observers from the observer list for a given Notification name.
|
|
43
|
+
* <P>
|
|
44
|
+
* @param notificationName which observer list to remove from
|
|
45
|
+
* @param notifyContext removed the observers with this object as their notifyContext
|
|
46
|
+
*/
|
|
47
|
+
function removeObserver( notificationName:String, notifyContext:Object ):void;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Notify the <code>IObservers</code> for a particular <code>INotification</code>.
|
|
51
|
+
*
|
|
52
|
+
* <P>
|
|
53
|
+
* All previously attached <code>IObservers</code> for this <code>INotification</code>'s
|
|
54
|
+
* list are notified and are passed a reference to the <code>INotification</code> in
|
|
55
|
+
* the order in which they were registered.</P>
|
|
56
|
+
*
|
|
57
|
+
* @param notification the <code>INotification</code> to notify <code>IObservers</code> of.
|
|
58
|
+
*/
|
|
59
|
+
function notifyObservers( note:INotification ) : void;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Register an <code>IMediator</code> instance with the <code>View</code>.
|
|
63
|
+
*
|
|
64
|
+
* <P>
|
|
65
|
+
* Registers the <code>IMediator</code> so that it can be retrieved by name,
|
|
66
|
+
* and further interrogates the <code>IMediator</code> for its
|
|
67
|
+
* <code>INotification</code> interests.</P>
|
|
68
|
+
* <P>
|
|
69
|
+
* If the <code>IMediator</code> returns any <code>INotification</code>
|
|
70
|
+
* names to be notified about, an <code>Observer</code> is created encapsulating
|
|
71
|
+
* the <code>IMediator</code> instance's <code>handleNotification</code> method
|
|
72
|
+
* and registering it as an <code>Observer</code> for all <code>INotifications</code> the
|
|
73
|
+
* <code>IMediator</code> is interested in.</p>
|
|
74
|
+
*
|
|
75
|
+
* @param mediatorName the name to associate with this <code>IMediator</code> instance
|
|
76
|
+
* @param mediator a reference to the <code>IMediator</code> instance
|
|
77
|
+
*/
|
|
78
|
+
function registerMediator( mediator:IMediator ) : void;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Retrieve an <code>IMediator</code> from the <code>View</code>.
|
|
82
|
+
*
|
|
83
|
+
* @param mediatorName the name of the <code>IMediator</code> instance to retrieve.
|
|
84
|
+
* @return the <code>IMediator</code> instance previously registered with the given <code>mediatorName</code>.
|
|
85
|
+
*/
|
|
86
|
+
function retrieveMediator( mediatorName:String ) : IMediator;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Remove an <code>IMediator</code> from the <code>View</code>.
|
|
90
|
+
*
|
|
91
|
+
* @param mediatorName name of the <code>IMediator</code> instance to be removed.
|
|
92
|
+
* @return the <code>IMediator</code> that was removed from the <code>View</code>
|
|
93
|
+
*/
|
|
94
|
+
function removeMediator( mediatorName:String ) : IMediator;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Check if a Mediator is registered or not
|
|
98
|
+
*
|
|
99
|
+
* @param mediatorName
|
|
100
|
+
* @return whether a Mediator is registered with the given <code>mediatorName</code>.
|
|
101
|
+
*/
|
|
102
|
+
function hasMediator( mediatorName:String ) : Boolean;
|
|
103
|
+
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/*
|
|
2
|
+
PureMVC - Copyright(c) 2006-08 Futurescale, Inc., Some rights reserved.
|
|
3
|
+
Your reuse is governed by the Creative Commons Attribution 3.0 United States License
|
|
4
|
+
*/
|
|
5
|
+
package org.puremvc.as3.patterns.command
|
|
6
|
+
{
|
|
7
|
+
|
|
8
|
+
import org.puremvc.as3.interfaces.*;
|
|
9
|
+
import org.puremvc.as3.patterns.observer.*;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* A base <code>ICommand</code> implementation that executes other <code>ICommand</code>s.
|
|
13
|
+
*
|
|
14
|
+
* <P>
|
|
15
|
+
* A <code>MacroCommand</code> maintains an list of
|
|
16
|
+
* <code>ICommand</code> Class references called <i>SubCommands</i>.</P>
|
|
17
|
+
*
|
|
18
|
+
* <P>
|
|
19
|
+
* When <code>execute</code> is called, the <code>MacroCommand</code>
|
|
20
|
+
* instantiates and calls <code>execute</code> on each of its <i>SubCommands</i> turn.
|
|
21
|
+
* Each <i>SubCommand</i> will be passed a reference to the original
|
|
22
|
+
* <code>INotification</code> that was passed to the <code>MacroCommand</code>'s
|
|
23
|
+
* <code>execute</code> method.</P>
|
|
24
|
+
*
|
|
25
|
+
* <P>
|
|
26
|
+
* Unlike <code>SimpleCommand</code>, your subclass
|
|
27
|
+
* should not override <code>execute</code>, but instead, should
|
|
28
|
+
* override the <code>initializeMacroCommand</code> method,
|
|
29
|
+
* calling <code>addSubCommand</code> once for each <i>SubCommand</i>
|
|
30
|
+
* to be executed.</P>
|
|
31
|
+
*
|
|
32
|
+
* <P>
|
|
33
|
+
*
|
|
34
|
+
* @see org.puremvc.as3.core.controller.Controller Controller
|
|
35
|
+
* @see org.puremvc.as3.patterns.observer.Notification Notification
|
|
36
|
+
* @see org.puremvc.as3.patterns.command.SimpleCommand SimpleCommand
|
|
37
|
+
*/
|
|
38
|
+
public class MacroCommand extends Notifier implements ICommand, INotifier
|
|
39
|
+
{
|
|
40
|
+
|
|
41
|
+
private var subCommands:Array;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Constructor.
|
|
45
|
+
*
|
|
46
|
+
* <P>
|
|
47
|
+
* You should not need to define a constructor,
|
|
48
|
+
* instead, override the <code>initializeMacroCommand</code>
|
|
49
|
+
* method.</P>
|
|
50
|
+
*
|
|
51
|
+
* <P>
|
|
52
|
+
* If your subclass does define a constructor, be
|
|
53
|
+
* sure to call <code>super()</code>.</P>
|
|
54
|
+
*/
|
|
55
|
+
public function MacroCommand()
|
|
56
|
+
{
|
|
57
|
+
subCommands = new Array();
|
|
58
|
+
initializeMacroCommand();
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Initialize the <code>MacroCommand</code>.
|
|
63
|
+
*
|
|
64
|
+
* <P>
|
|
65
|
+
* In your subclass, override this method to
|
|
66
|
+
* initialize the <code>MacroCommand</code>'s <i>SubCommand</i>
|
|
67
|
+
* list with <code>ICommand</code> class references like
|
|
68
|
+
* this:</P>
|
|
69
|
+
*
|
|
70
|
+
* <listing>
|
|
71
|
+
* // Initialize MyMacroCommand
|
|
72
|
+
* override protected function initializeMacroCommand( ) : void
|
|
73
|
+
* {
|
|
74
|
+
* addSubCommand( com.me.myapp.controller.FirstCommand );
|
|
75
|
+
* addSubCommand( com.me.myapp.controller.SecondCommand );
|
|
76
|
+
* addSubCommand( com.me.myapp.controller.ThirdCommand );
|
|
77
|
+
* }
|
|
78
|
+
* </listing>
|
|
79
|
+
*
|
|
80
|
+
* <P>
|
|
81
|
+
* Note that <i>SubCommand</i>s may be any <code>ICommand</code> implementor,
|
|
82
|
+
* <code>MacroCommand</code>s or <code>SimpleCommands</code> are both acceptable.
|
|
83
|
+
*/
|
|
84
|
+
protected function initializeMacroCommand():void
|
|
85
|
+
{
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Add a <i>SubCommand</i>.
|
|
90
|
+
*
|
|
91
|
+
* <P>
|
|
92
|
+
* The <i>SubCommands</i> will be called in First In/First Out (FIFO)
|
|
93
|
+
* order.</P>
|
|
94
|
+
*
|
|
95
|
+
* @param commandClassRef a reference to the <code>Class</code> of the <code>ICommand</code>.
|
|
96
|
+
*/
|
|
97
|
+
protected function addSubCommand( commandClassRef:Class ): void
|
|
98
|
+
{
|
|
99
|
+
subCommands.push(commandClassRef);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Execute this <code>MacroCommand</code>'s <i>SubCommands</i>.
|
|
104
|
+
*
|
|
105
|
+
* <P>
|
|
106
|
+
* The <i>SubCommands</i> will be called in First In/First Out (FIFO)
|
|
107
|
+
* order.
|
|
108
|
+
*
|
|
109
|
+
* @param notification the <code>INotification</code> object to be passsed to each <i>SubCommand</i>.
|
|
110
|
+
*/
|
|
111
|
+
public final function execute( notification:INotification ) : void
|
|
112
|
+
{
|
|
113
|
+
while ( subCommands.length > 0) {
|
|
114
|
+
var commandClassRef : Class = subCommands.shift();
|
|
115
|
+
var commandInstance : ICommand = new commandClassRef();
|
|
116
|
+
commandInstance.execute( notification );
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
PureMVC - Copyright(c) 2006-08 Futurescale, Inc., Some rights reserved.
|
|
3
|
+
Your reuse is governed by the Creative Commons Attribution 3.0 United States License
|
|
4
|
+
*/
|
|
5
|
+
package org.puremvc.as3.patterns.command
|
|
6
|
+
{
|
|
7
|
+
|
|
8
|
+
import org.puremvc.as3.interfaces.*;
|
|
9
|
+
import org.puremvc.as3.patterns.observer.Notifier;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* A base <code>ICommand</code> implementation.
|
|
13
|
+
*
|
|
14
|
+
* <P>
|
|
15
|
+
* Your subclass should override the <code>execute</code>
|
|
16
|
+
* method where your business logic will handle the <code>INotification</code>. </P>
|
|
17
|
+
*
|
|
18
|
+
* @see org.puremvc.as3.core.controller.Controller Controller
|
|
19
|
+
* @see org.puremvc.as3.patterns.observer.Notification Notification
|
|
20
|
+
* @see org.puremvc.as3.patterns.command.MacroCommand MacroCommand
|
|
21
|
+
*/
|
|
22
|
+
public class SimpleCommand extends Notifier implements ICommand, INotifier
|
|
23
|
+
{
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Fulfill the use-case initiated by the given <code>INotification</code>.
|
|
27
|
+
*
|
|
28
|
+
* <P>
|
|
29
|
+
* In the Command Pattern, an application use-case typically
|
|
30
|
+
* begins with some user action, which results in an <code>INotification</code> being broadcast, which
|
|
31
|
+
* is handled by business logic in the <code>execute</code> method of an
|
|
32
|
+
* <code>ICommand</code>.</P>
|
|
33
|
+
*
|
|
34
|
+
* @param notification the <code>INotification</code> to handle.
|
|
35
|
+
*/
|
|
36
|
+
public function execute( notification:INotification ) : void
|
|
37
|
+
{
|
|
38
|
+
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
}
|
|
42
|
+
}
|