ActionScript 3.0 :: Role Of Mediator On MVC?
Feb 24, 2010what is the role of mediator on MVC? Perhaps provide a real work example like managing states?
View 1 Replieswhat is the role of mediator on MVC? Perhaps provide a real work example like managing states?
View 1 RepliesI have an application that is coded using Flex 3 on UI side and java @ the service layer, along with BlazeDS. Now we need to authorize the users accessing the system based on the roles that are defined for them in the database, e.g. : say a user with role guest should not be able to access Admin tab on ui and also should not be able to do any operations other than viewing the data displayed on dashboard. Also the point to note here is that roles can be created dynamically by Super users from UI. I came across this link which describes how to perform Role Based Authentication & Authorization. With this approach I need to define the roles in service-config.xml but since my roles are not pre-defined I cannot go with this.
View 1 RepliesCurrently I am working on flex using puremvc framework. Actually my question is related to where to register mediator in puremvc framework. One of my colleague is registering mediator in views(components) creationComplete method only (inside view). While my preference is send some notification from creationComplete method which could be handle by some command and command will register mediator. So which one is better approach in terms of best practice ?
View 3 RepliesI am currently working to a Role-Playing Game in Adobe Flash CS3 with ActionScript 2. I must include doors inside rooms, but when I do that, my player dissapears. I use this code:
Code:
...
for (var i = 0; i<mapHeight; ++i) {
for (var j = 0; j<mapWidth; ++j) {
this.attachMovie("tile","t_"+i+"_"+j,++d);[code].....
I am building a tabbed interface for switching between various similar layers. Each layer will have a number of graphs. By dragging with the mouse the graphs can be rearranged or even moved between layers. My question is, is it best practice to register a unique mediator for each layer that keeps track of the layers content / organization, or should i keep track of it all with one central mediator.some considerations:
the layer contents and organization will be saved(in a db) so that it can be restored when a user comes back to the app.the layers themselves are functionally identical.the user can add and remove layers at will.
I have one question about pureMvc. I use pureMvc to build an engine, in the engine init part i have an requirement
1) moduleA must init firt
2) moduleB , moduleC need init after moduleA init complate.
3) moduleD need init after moduleB & moduleC init complate.
4) moduleA , moduleB , moduleC , moduleD all extends Proxy beacuse the four system all need to send notifiation ,but no need to listen it.
But to fit for the requirement I can't use command to do it, because they have ini order and also they need to remember current state(ex: moudelB is init Complate but moudleC is not init complete then can't init moudleD) but command is stateless. The best way I think is use one Mediator to do it, beacuse it can both listen and send notification. My question is :
1) Is this a good way to use one Mediator to do it?
2) If use Mediator is good way, then when it hear first moduleA is init complate
registerCommand(FIRST_MODULE_INIT_COMPLATE , initStepTwoCommand);
sendNotification(FIRST_MODULE_INIT_COMPLATE);
removeCommand(FIRST_MODULE_INIT_COMPLATE);
Need to do things like that way or just do the inti logic in the Mediator?
I want to display checkbox or button at the same position based on user role. How can I do this. I cannot give x and y position same for both radio button and button as I will not know the location in my application. Is there any other way by which I can display only one component based on boolean value.
Sample code:
<mx:HBox x="272" y="93" width="300" borderThickness="2" borderColor="0x000000" borderStyle="solid">
<mx:CheckBox label="CheckBox" visible="{role}"/>
<mx:Button label="Button" visible="{!role}"/>
[Code].....
I'm trying to mediate the main application class ( the 'Document class' of a Flash *.fla project)I have this on the Application Context startup():
...
mediatorMap.mapView(MyApplication,MyApplicationMediator);
mediatorMap.createMediator(contextView);
The MyApplicationMediator:
public class MyApplicationMediator
extends Mediator {
[Inject][code]....
So onRegister() gets called, but view is null. Also when I try to add the eventListeners I get a null reference error.
Coming from Robotlegs/PureMVC, I am pretty familiar with the concept of the view mediator, i.e. a component that pretty much listens to events/requests coming from the "dummy" view and makes a further request, sends an application-wide signal/event, executes a command, etc, based on the request from the view. Can the host component idea introduced in Flex 4 be considered a the same as a mediator? The only thing that slightly bothers me is that host components are still considered views, because they extend SkinnableComponent or any of the classes that further inherit from it. In my view, the mediator should be completely left out of view logic.
Nevertheless, I do not want to write a skin, a host component, and a view mediator for that host component, because that would be quite an overhead, and would lead to more complexity rather than abstraction.Should I use host components as mediators, and put application-level logic there, for instance application level event dispatching?
I have a mediator that I've registered for a navigation page:
facade.registerMediator(new NavPageMediator(viewComponent));
I'm trying to retrieve that mediator on another page like so:
var navPageMediator:NavPageMediator = facade.retrieveMediator(NavPageMediator.NAME) as NavPageMediator;
However, that statement returns null. If I try to cast it using the NavPageMediator(facade.retrieveMediator(NavPageMediator.NAME)) syntax instead, I get a TypeError: Error #1034: Type Coercion failed: cannot convert com.website.mvc.view.page::NavPageMediator@237560a1 to com.website.mvc.view.page.NavPageMediator.`
I can't, for the life of me, understand why NavPageMediator@237560a1 would be unable to convert to NavPageMediator, nor what happened in between registering the mediator and retrieving it that caused this. Especially since trace(new NavPageMediator() as NavPageMediator); returns [object NavPageMediator].
Incidentally, and this may be part of my problem, I don't understand what the @hash at the end of the object is (@237560a1). Is it simply an internal identifier for that class instance?
Edit:Left a bit of important info: The SWF in which I instantiate and register the mediator is separate from the SWF in which I try to retrieve it.