[Arp] arpx - > CommandControl
Grant Davies
grant at bluetube.com
Fri Dec 22 05:56:55 PST 2006
Nyls, you mentioned you thought that putting the event to command
mapping in an xml document and I agree if your application doesn't
change much... We have cases where a command / event is mapped
differently depending on where its deployed, for example sometimes my
authentiation function will do simple authentication to a file (in
testing) and then authenticate to a database in production, I could put
code in my application with a swtich but using the xml document lets we
swap out commands at runtime. I also don't use imports on the commands
to force them into the swf, I use the -pack option of MTASC to include
my commands folder on my classpath.
I think if your applications event to command mapping doesn't change
very often then you are correct, its easier not to use the xml.
I've used arp and arpx on about 10 major projects now and its really
good, so thanks to Aral and the arp community! :)
Cheers,
Grant
...........................................
> b l u e t u b e i n t e r a c t i v e.
.: grant davies
.: 404.428.6839 (c)
.: 708-983-1577 (F)
> grant at bluetube.com
> http://www.bluetube.com/bti <http://www.bluetube.com/bti>
> A Tribal Chicken Designs Affiliate <http://www.tribalchicken.com/>
________________________________
From: arp-bounces at ariaware.com [mailto:arp-bounces at ariaware.com] On
Behalf Of nyls
Sent: Friday, December 22, 2006 7:51 AM
To: 'General List for Ariaware RIA Platform users and developers'
Subject: Re: [Arp] arpx - > CommandControl
Hello
Here are a few extensions/ extra classes I am using, with some real good
tutorials to go with it..
- Appsettings : singleton which can load application props from
an XML >Christophe Herreman
http://www.herrodius.com/blog/?p=26
- LocaleManager: localization multi-lingual user interfaces
>Christophe Herreman
http://www.herrodius.com/blog/?cat=9
- CommandController/ SystemController >> Grant Davies
http://theresidentalien.typepad.com/ginormous/2005/10/extending_arp.html
- StageManager: wrapper for the Stage class >Christophe
Herreman
During Christmas break (YESS) I will wrap some of the above classes in
the Pizza Example .
nyls
________________________________
Van: arp-bounces at ariaware.com [mailto:arp-bounces at ariaware.com] Namens
Michiel van der Ros
Verzonden: Thursday, December 21, 2006 12:34 PM
Aan: General List for Ariaware RIA Platform users and developers
Onderwerp: Re: [Arp] arpx - > CommandControl
Totally agree. Studying the source of a working example is probably the
best way to understand concepts and patterns like this. I couldn't have
learned ARP without Aral's Pizza Service ;-)
@Sander: Nice to see others in Amsterdam working with ARP!
COLIN LIGHT wrote:
Hi Guys,
It Would be nice to consolidate some of these ideas into one working
example like Aral's Pizza RIA. It would really help and hopefully speed
up understanding for people like myself.
Col.
Sander Wichers <sander at qi-ideas.com> <mailto:sander at qi-ideas.com>
wrote:
Nyls is talking about me :), so here is my (grants) stripped
commandcontroller:
Adding mappings:
CommandController.getInstance().addEventMapping(EventNames.FOO_REQUEST,
"com.foo.command.GetFooCommand", com.foo.command.GetFooCommand);
I prefer to use the commandcontroller instead of the
systemcontroller,
so dispatching would be something like this:
CommandController.getInstance().dispatchEvent({type:
EventNames.FOO_REQUEST, target: this});
-- Sander
import mx.utils.Delegate;
import mx.events.EventDispatcher;
import com.ariaware.arp.CommandTemplate;
class com.foo.CommandController
{
private static var instance : CommandController = null;
private var eventCommandMap : Object;
public var addEventListener : Function;
public var removeEventListener : Function;
public var dispatchEvent : Function;
private function CommandController()
{
EventDispatcher.initialize(this);
this.eventCommandMap = new Object();
}
public static function getInstance() : CommandController
{
if (!instance)
{
instance = new CommandController();
}
return instance;
}
public function addEventMapping(event : String, cmd : String,
classRef : Function) : Void
{
// dynamically create a command:
var command : Function = eval("_global." + cmd);
if (command == null)
{
trace("CommandController:addEventMapping() Could
not create instance for command [" + cmd + "] make sure the
command is
FORCED into your swf file.");
}
if (!this.eventCommandMap [ event ])
{
this.eventCommandMap [ event ] = command;
this.addEventListener(event, this);
}
}
private function handleEvent(event:Object) : Void
{
var cmd : CommandTemplate;
if ((cmd = this.eventCommandMap[event.type]) != null)
{
var theCommand : Object = new cmd();
// Execute the command
theCommand.execute( event.target );
}
else
{
trace("CommandController:handleEvent() Could not
find command for event " + event.type);
}
}
}
________________________________
From: arp-bounces at ariaware.com [mailto:arp-bounces at ariaware.com]
On
Behalf Of henrik weber (freemind-design)
Sent: donderdag 21 december 2006 11:25
To: General List for Ariaware RIA Platform users and developers
Subject: [Arp] arpx - > CommandControl
hi nyls,
this sounds really interesting; totally failed to notice the
CommandControl-class.
your college absolutely has a point... could someone sketch how
we could
use it this way?
@colin: grant explained his thoughts about arpx pretty detailed
here ->
http://theresidentalien.typepad.com/ginormous/2005/10/extending_arp.html
hth
henrik
--
_______freemind design_______
MediaDesign & FlashDevelopment
home: www.freemind-design.de
nyls wrote:
Yeps,
I use the CommandControl class, it just binds commands
to events .. I think it is more elegant then the original ARP
controller
.. speaking with my new upcoming college :> he made his point
that it is
maybe a little overkill to use an external XML file for mapping
commands
to events, why not do the 'binding' in the command controller
class
itself. You need to 'import' the commands anyway (forceImport
for
compiling)
nyls
________________________________
Van: arp-bounces at ariaware.com
[mailto:arp-bounces at ariaware.com] Namens COLIN LIGHT
Verzonden: Wednesday, December 20, 2006 5:32 PM
Aan: General List for Ariaware RIA Platform users and developers
Onderwerp: Re: [Arp] Another ModelLocator Question
Hi Nyls,
I've just been looking at Grants arpx classes. Can you
tell me do you use his CommandControl class? from what I can
make out
brings in commands from the 'command-config.xml'
Col.
COLIN LIGHT
wrote:
Hi Nyls,
Thanks again for getting back to me.
Yeah this does make sense. I've been
getting a little muddled up cos I downloaded Grants arpx (which
doesn't
seem to contain a ModelLocator) and christophes version which
seems
slightly different with a modelLocator with binding etc.
Col.
nyls wrote:
Hey,
The modellocator (ML) is
a singleton so there is only one instance of it in your app.
This is
your single entry point to your data/ models from everywhere in
your
app.
I tend to use the ARPX
-systemcontroller from Grant , So I let views listen to the
systemcontroller for 'update' events.
So when a command get's
it's result it fills a model through the ML and dispatches an
systemEvent
ModelLocator.getInstance().setModel(ModelNames.NAVIGATION_MODEL,OCLiteVO
(response.ocliteVO));
SystemController.getInstance().dispatchEvent({type:EventNames.NAVIGATION
_MODEL_CHANGE})
And in the appropriate
views I listen for thos system events and grab the model from
the
modellocator
SystemController.getInstance().addEventListener(EventNames.NAVIGATION_MO
DEL_CHANGE, Proxy.create(this, navigationModelChanged));
var navModel =
ModelLocator.getInstance().getModel(ModelNames.NAVIGATION_MODEL).getValu
e();
That's how I do it,
Is this of help ??
nyls
________________________________
Van:
arp-bounces at ariaware.com [mailto:arp-bounces at ariaware.com]
Namens COLIN
LIGHT
Verzonden: Wednesday, December 20, 2006 2:37 PM
Aan: arp at ariaware.com
Onderwerp: [Arp] Another ModelLocator Question
Hi List,
I'm (as ever) hoping
someone can help me out with an ARP issue. I've been using arp
for a few
months now and just when I think I'm get it something else comes
along
and I question my own understanding :(
I've been looking at the
ModelLocator pattern, I have read previous post's about this and
found
some sample files although it does seem a little confusing. I
downloaded
the arpx classes
http://www.herrodius.com/upload/arp_extensions.zip
which contain quite a comprehensive version with databinding
etc, I've
also seen and much simpler single class version which I have
been trying
to use.
I have a number of
ArpForms which compose my views. Within these forms are other
Arpforms
which effectively are like components.
What I'm struggling with
is how to populate mx components in my component forms, is it
good
practice to import my modelLocator class and then have an update
method
which gets called from the main application class when the model
gets
populate or create a listener on each form for update events
from the
modelLocator?
Col.
_______________________________________________
Arp mailing list
Arp at ariaware.com
http://ariaware.com/mailman/listinfo/arp_ariaware.com
_______________________________________________
Arp mailing list
Arp at ariaware.com
http://ariaware.com/mailman/listinfo/arp_ariaware.com
________________________________
_______________________________________________
Arp mailing list
Arp at ariaware.com
http://ariaware.com/mailman/listinfo/arp_ariaware.com
_______________________________________________
Arp mailing list
Arp at ariaware.com
http://ariaware.com/mailman/listinfo/arp_ariaware.com
________________________________
_______________________________________________
Arp mailing list
Arp at ariaware.com
http://ariaware.com/mailman/listinfo/arp_ariaware.com
--
[ weblog ][ http://michiel.vanderros.nl ]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: /pipermail/arp_ariaware.com/attachments/20061222/697e722b/attachment-0001.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 1518 bytes
Desc: small.jpg
Url : /pipermail/arp_ariaware.com/attachments/20061222/697e722b/attachment-0001.jpe
More information about the Arp
mailing list