ViewInjectionProcessor now caches views weakly
Updates Swiftsuspenders to v2.1.0
Destroys more aggressively
Updates Swiftsuspenders to v2.0.0 release
Fixes #161 - Mediator synchronisation
Adds metadata check to VigilanceExtension
EventMap - opens up routeEventToListener
Fixes RobotlegsInjector.createChild() bug
A brand new day.
Breaking change: Introduces IInjector
Fix: Change your injector references from Injector to IInjector
Adds ViewProcessorMap to MVCS bundle
Adds context Lifecycle Event relaying to the EventDispatcher Extension
Adds Module Connector - for easy event relaying between modules
Removes ScopedEventDispatcherExtension - replaced by Module Connector
Removes MessageDispatcher related extensions
Ensures that certain extensions can only be installed before context initialization.
Removes Hamcrest dependency from framework. Replaced with custom IMatcher.
Complete Command Center revamp.
Introduces DirectCommandMap (experimental).
Fixes #109 (mediator autoRemove)
Fixes #110 (Event Command Map bug)
Fixes #112 (Modularity issues)
Fixes #113 (naughty PreDestroy)
Detain and Release events dispatched by context (Issue #104)
Switches back to official Swiftsuspenders build (v2.0.0rc2)
Modularity timing fix.
Introduces StageCrawler Extension. This extension scans for view components that are already on stage when the context initializes.
Lifecycle
Important: The lifecycle getter has been removed from the Context. Instead, the Lifecycle API methods have been added to the Context directly.
So, context.lifecycle.whenInitializing(callback) is now simply context.whenInitializing(callback)
Adds Vigilance Extension to MVCS Bundle
MVCS Bundle sets the LogLevel to DEBUG
Lifecycle dispatches stateChange event
Adds uninitialized getter to ILifecycle
Adds addChild() and removeChild() to IContext
Asdocs
EventCommandMap optimisations
Robotlegs 2 public beta
Fixed: #25
Fixed: #24
CommandMap Abstract Event Injection
For event-triggered commands the event is now also mapped to "Event". For example:
[Inject] public var abstractEvent:Event;
[Inject] public var concreteEvent:SomeEvent;
MVCS Mediator
Added syntactic sugar methods removeViewListener() and removeContextListener()
SwiftSuspenders
Updated SwiftSuspenders to v1.6.0
ViewMap & MediatorMap
contextView stage listener optimizations.
MediatorMap
Added IMediatorMap#hasMapping(viewClassOrName:*):Boolean;
ApplicationDomain
Added applicationDomain getter/setter to IInjector to help with Application Domains.
MediatorMap.mapType
The injectViewAs parameter is changed from expecting a Class to expecting a Class or an Array of Classes.
ASDocs
Build script updated to bundle ASDocs into SWC for inline display in Flash Builder 4. Build needs to be run against Flex SDK 4.x
Mediator
Fixed: http://github.com/robotlegs/robotlegs-framework/issues/#issue/6
SwiftSuspenders
Updated SwiftSuspenders to v1.5.1
PLEASE NOTE: mapValue no longer injects into the value instance - the old behaviour was incorrect.
Injector
Added IInjector#hasMapping(clazz:Class, named:String = ""):Boolean;
Added IInjector#getInstance(clazz:Class, named:String = ""):*;
Added IInjector#createChild():IInjector;
CommandMap
Added ICommandMap#execute(commandClass:Class, payload:Object = null, payloadClass:Class = null, named:String = ''):void
Added ICommandMap#unmapEvents() - unmaps all event mappings
Added ICommandMap#detain() and release() - enables Async Commands
Mediator
Added mvcs.Mediator EventMap Sugar: addViewListener() and addContextListener()
Misc
mvcs.Context: CommandMap and MediatorMap are handed child injectors - to enable non-destructive temporary mappings.
Deprecated IContextProvider
Fixed: http://github.com/robotlegs/robotlegs-framework/issues#issue/2
Fixed: http://github.com/robotlegs/robotlegs-framework/issues#issue/2
Updated SwiftSuspenders to v1.0.1
Whammo, and the Robot has Legs. We managed to avoid hitting double digits for the RCs!
Fixes to SwiftSuspenders
Added IMediatorMap.unmapType()
ViewMap.mapClass() changed to ViewMap.mapType()
Internal changes: ContextBase cleaned up - initialize() removed. Overriding the default apparatus:
public function MyContext()
{
injector = new SwiftSuspendersInjector(xmlConfig);
super();
}
Fixes to SwiftSuspenders
Removed nometa package
CommandMap Bug fix
No changes
Removed ICommand
MediatorMap
Merged MediatorMap#mapModule into MediatorMap#mapType
New view mapping signature
mapType(viewClassOrName:*, mediatorClass:Class, injectViewAs:Class = null, autoCreate:Boolean = true, autoRemove:Boolean = true):void
Enabled XML configuration of injection points
Added the dispatch() helper method back to mvcs actors
Removed named injection points
MediatorMap
Enabled automatic creation of mediator for contextView if mapped
ContextBase
Made all ContextBase constructor arguments optional to enable declarative (mxml) Context instantiation
Nometa
Introduced Nometa implementation
Actor
Unified Model and Service into Actor Removed Model Removed Service
EventMap
Added strong event mapping to EventMap
CommandMap
Re-ordered the mapping arguments
From: mapEvent(commandClass:Class, eventType:String, eventClass:Class = null, oneshot:Boolean = false):void
To: mapEvent(eventType:String, commandClass:Class, eventClass:Class = null, oneshot:Boolean = false):void
Removed dispatchEvent() helper method - Again, really sorry about that little mixup there
Mediator
addEventListenerTo() becomes eventMap.mapListener()
Proxy renamed to Model
CommandMap bugfix
No changes!
dispatch() helper method renamed to dispatchEvent()
Removed "as3commons-logging":http://www.as3commons.org/
Removed EventBroadcaster
MediatorFactory renamed to MediatorMap
CommandFactory renamed to CommandMap
IInjector.bind* renamed to IInjector.map*
ICommandMap
CommandMap now accepts optional Event class parameter for stronger mapping.
The argument order had to be re-arranged so that the optional eventClass would come after the mandatory commandClass.
From: mapEvent(type:String, commandClass:Class, oneshot:Boolean = false):void;
To: mapEvent(commandClass:Class, eventType:String, eventClass:Class = null, oneshot:Boolean = false):void;
Constructor Injection
Changed all automated instantiation to use IInjector#instantiate to enable constructor injection, changed DI adapters accordingly and added new SwiftSuspenders support constructor injection
Bonus Adapters Removed
Removed Spring Action Script and SmartyPants-IOC adapters (they can be installed separately)
Added adapters for "SwiftSuspenders":http://github.com/tschneidereit/SwiftSuspenders
FlexMediator decoupled from Flex and merged into Mediator
Removed FlexMediator
Added dispatch() helper method
Introduced "as3commons-logging":http://www.as3commons.org/
IMediator.onRegisterComplete renamed to IMediator.onRegister
net.boyblack.robotlegs.* renamed to org.robotlegs.*
Added Spring ActionScript adapters
Provided adapters: "SmartyPants-IOC":http://smartypants.expantra.net/
Provided adapters: "SpringActionScript":http://www.springactionscript.org/
Introduced DI and reflection adapters
Provided adapters: "SmartyPants-IOC":http://smartypants.expantra.net/
Proof-of-concept prototype