Estoy utilizando Cairngorm, llega al result, sólo en un if no entra, pero no sé bien por qué no entra, si alguien tiene un poco día, se lo agradecería:
Código ActionScript :
package com.GymAdmin.command.Rutina
{
import com.AM.lib.interfaces.IView;
import com.GymAdmin.business.Rutina.RutinaAgregarRutinaDelegate;
import com.GymAdmin.event.RutinaEvent;
import com.GymAdmin.vo.RutinaVO;
import com.adobe.cairngorm.commands.ICommand;
import mx.controls.Alert;
import mx.rpc.IResponder;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import com.adobe.cairngorm.control.CairngormEvent;
public class RutinaAgregarRutinaCommand implements ICommand,IResponder
{
public function execute(event: CairngormEvent):void{
var clone: RutinaVO = (event as RutinaEvent).paramItem.store();
new RutinaAgregarRutinaDelegate(this).agregarRutina(event,clone);
}
public function fault(info:Object):void{
Alert.show(FaultEvent(info).fault.message);
}
public function result(data :Object):void{
var event:ResultEvent = ResultEvent( data );
if( event.result ) {
RutinaCommand.addObjectsToModel( [event.result] );
if(event.token.originator.data is IView) //ACA NO ENTRA. PERO NO SÉ POR QUÉ, LO DEMÁS TODO OK
event.token.originator.data.update(event.token.originator,event);
Alert.show("La Rutina se ha realizado con exito!");
}
else {
Alert.show( "No se pudo hacer la consulta.","Error" );
}
}
}
}
Y acá la vista dónde lo llamo
Código ActionScript :
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
width="100%" height="100%"
implements="com.AM.lib.interfaces.IView" creationComplete="init()"
xmlns:views="com.GymAdmin.views.*">
<mx:Script>
<![CDATA[
import com.GymAdmin.business.EjercicioSubRutina.EjercicioSubRutinaGetAllDelegate;
import mx.collections.ArrayCollection;
import com.GymAdmin.vo.RutinaVO;
import com.GymAdmin.event.RutinaEvent;
import com.AM.lib.structure.TypedArrayCollection;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
import mx.rpc.events.AbstractEvent;
import com.adobe.cairngorm.control.CairngormEventDispatcher;
import com.GymAdmin.model.AppModel;
import com.GymAdmin.vo.ProfesorVO;
[Bindable] private var _model : AppModel = AppModel.getInstance();
[Bindable] private var currentItem : RutinaVO = new RutinaVO;
public function update(originalEvent:Event, serviceEvent:AbstractEvent = null):void{
if (serviceEvent is ResultEvent)
switch (originalEvent.type){
//update view as needed based on command
default:
dispatchEvent(new DataEvent(
"statusUpdate",false,false,originalEvent.type + " completado!"));
}
else {
Alert.show(FaultEvent(serviceEvent).fault.faultDetail);
}
}
private function getOneRutina():RutinaVO {
currentItem.idRutina = 0;
return(
RutinaVO.construct(
currentItem.idRutina,
this.txtNombreRutina.text,
this.txtDescripcion.text,
0
));
}
public function init():void{
this.cg_getAll();
}
private function cg_agregarRutina():void {
var ev:RutinaEvent = new RutinaEvent(RutinaEvent.RUTINA_AGREGAR_RUTINA,this);
ev.paramItem = this.getOneRutina();
CairngormEventDispatcher.getInstance().dispatchEvent(ev);
}
]]>
</mx:Script>
<mx:Button x="316" y="376" label="Agregar" id="btnAgregar" click="{this.cg_agregarRutina()}"/>
</mx:Canvas>
Sólo se me queda ahí, en ese if, y no tengo forma de que funcione! De que me guarde, pero no me tira error en ningún lado, simplemente al hacer click, no psa nada.
Espero su ayuda!
