Vraptor 3 + Flex

0 respostas
davelino

Bom Dia,

Estou com o seguinte problema, estou criando um frame em flex para executar meus sistemas no momento to criando um componente no qual exitstem 3 botões um para dar submite no form outro para limpa e outro extra. O problema e o seguinte no botão no qual eu dou o submite ele executa direitinho o submite mas no momento agora eu quero pegar as emnsagens de erro do hibernate e dos validator no flex mas nao estou conseguindo. Segue abaixo trexos dos codigos:

Classe action do frame que estou criando
package br.net.blackview.controls
{
	import br.net.blackview.container.FBTextInput;
	import br.net.blackview.util.FBVariables;
	
	import flash.display.DisplayObjectContainer;
	import flash.events.MouseEvent;
	
	import mx.containers.FormItem;
	import mx.containers.HBox;
	import mx.controls.Alert;
	import mx.controls.Button;
	import mx.core.Container;
	import mx.messaging.messages.ErrorMessage;
	import mx.rpc.events.FaultEvent;
	import mx.rpc.events.ResultEvent;
	import mx.rpc.http.HTTPService;
	
	public class FBFormControls extends FormItem
	{
		private var hBox:HBox = new HBox;
		private var submitButton:Button = new Button();
		private var cancelButton:Button = new Button();
		private var clearButton:Button = new Button();
		public function FBFormControls() { super(); }
		
		public var submitFunction:Function = null;
		public var cancelFunction:Function = null;
		public var clearFunction:Function  = null;
		
		override protected function createChildren():void {
			super.createChildren();
						
			this.setStyle("fontSize",12);
			this.setStyle("fontWeight","bold");;
						
			submitButton.label = "Submit";
			cancelButton.label = "Cancel";
			clearButton.label  = "Clear";
			
			submitButton.toolTip = "Submit";
			cancelButton.toolTip = "Cancel";
			clearButton.toolTip  = "Clear";
			
			cancelButton.visible = false;
			cancelButton.includeInLayout = false;
			
			submitButton.addEventListener("click",defaultSubmitFunction);
			cancelButton.addEventListener("click",defaultCancelFunction);	
			clearButton.addEventListener("click",defaultClearFunction);
			
			addChildAt(hBox,0);
			hBox.addChildAt(submitButton,0);
			hBox.addChildAt(cancelButton,1);
			hBox.addChildAt(clearButton,2);
		}
		
		override protected function commitProperties():void {
			super.commitProperties();
			
			if(_submitLabel != null) 
				submitButton.label = _submitLabel;
			if(_cancelLabel != null)
				cancelButton.label = _cancelLabel;
			if(_clearLabel != null)
				clearButton.label  = _clearLabel;
			
			submitButton.toolTip = _submitHint;
			cancelButton.toolTip = _cancelHint;
			clearButton.toolTip  = _clearHint;	
			
			submitButton.visible = _submitVisible;
			submitButton.includeInLayout = _submitVisible;
			cancelButton.visible = _cancelVisible;
			cancelButton.includeInLayout = _cancelVisible;
			clearButton.visible = _clearVisible;
			clearButton.includeInLayout = _clearVisible;	
			
			invalidateDisplayList();
		}
				
		////////////////
		// LABEL'S
		////////////////
		private var _submitLabel:String=null;
		public function get submitLabel():String {
			return _submitLabel;
		}
		public function set submitLabel(value:String):void {
			_submitLabel = value;
		}
		private var _cancelLabel:String=null;
		public function get cancelLabel():String {
			return _cancelLabel;
		}
		public function set cancelLabel(value:String):void {
			_cancelLabel = value;
		}
		private var _clearLabel:String=null;
		public function get clearLabel():String {
			return _clearLabel;
		}
		public function set clearLabel(value:String):void {
			_clearLabel = value;
		}
		////////////////
		// HINT'S
		////////////////
		private var _submitHint:String=null;
		public function get submitHint():String {
			return _submitHint;
		}
		public function set submitHint(value:String):void {
			_submitHint = value;
		}
		private var _cancelHint:String=null;
		public function get cancelHint():String {
			return _cancelHint;
		}
		public function set cancelHint(value:String):void {
			_cancelHint = value;
		}
		private var _clearHint:String=null;
		public function get clearHint():String {
			return _clearHint;
		}
		public function set clearHint(value:String):void {
			_clearHint = value;
		}
		////////////////
		// VISIBLE'S
		////////////////
		private var _visible:Boolean=true;
		[Inspectable(category="General", defaultValue="true")]
		override public function get visible():Boolean {
			return _visible;
		}
		override public function set visible(value:Boolean):void {
			if(value != _visible){
				_visible = value;
				this.visible = value;
				this.includeInLayout = value;
			}
		}
		private var _submitVisible:Boolean=true;		
		[Inspectable(category="General", defaultValue="true")]
		public function get submitVisible():Boolean {
			return _submitVisible;
		}
		public function set submitVisible(value:Boolean):void {
			if(value != _submitVisible){
				_submitVisible = value;
				submitButton.visible = value;
				submitButton.includeInLayout = value;
			}
		}
		private var _cancelVisible:Boolean=false;		
		[Inspectable(category="General", defaultValue="false")]
		public function get cancelVisible():Boolean {
			return _cancelVisible;
		}
		public function set cancelVisible(value:Boolean):void {
			if(value != _cancelVisible){
				_cancelVisible = value;
				cancelButton.visible = value;
				cancelButton.includeInLayout = value;
			}
		}
		private var _clearVisible:Boolean=true;
		[Inspectable(category="General", defaultValue="true")]
		public function get clearVisible():Boolean {
			return _clearVisible;
		}
		public function set clearVisible(value:Boolean):void {
			if(value != _clearVisible){
				_clearVisible = value;
				clearButton.visible = value;
				clearButton.includeInLayout = value;
			}
		}
		
		////////////////
		// ENABLED'S
		////////////////
		private var _submitEnabled:Boolean=true;		
		[Inspectable(category="General", defaultValue="true")]
		public function get submitEnabled():Boolean {
			return _submitEnabled;
		}
		public function set submitEnabled(value:Boolean):void {
			if(value != _submitEnabled){
				_submitEnabled = value;
				submitButton.enabled = value;
			}
		}
		private var _cancelEnabled:Boolean=true;		
		[Inspectable(category="General", defaultValue="true")]
		public function get cancelEnabled():Boolean {
			return _cancelEnabled;
		}
		public function set cancelEnabled(value:Boolean):void {
			if(value != _cancelEnabled){
				_cancelEnabled = value;
				cancelButton.enabled = value;
			}
		}
		private var _clearEnabled:Boolean=true;
		[Inspectable(category="General", defaultValue="true")]
		public function get clearEnabled():Boolean {
			return _clearEnabled;
		}
		public function set clearEnabled(value:Boolean):void {
			if(value != _clearEnabled){
				_clearEnabled = value;
				clearButton.enabled = value;
			}
		}		
		
//**************************************************************************************************\\
// EVENTOS                                                                                          \\
//**************************************************************************************************\\		
		private function defaultSubmitFunction(event:MouseEvent):void {
			if(submitFunction != null) {
				submitFunction.call(this,event);
			}else {
				httpSend();
			}
		}
		private function defaultCancelFunction(event:MouseEvent):void {
			if(cancelFunction != null) {
				cancelFunction.call(this,event);
			}else {
				Alert.show("CANCEL","ALERTE SHOW");
			}
		}	
		private function defaultClearFunction(event:MouseEvent):void {
			if(clearFunction != null) {
				clearFunction.call(this,event);
			}else {
				Alert.show("CLEAR","ALERTE SHOW");
			}
		}		

//**************************************************************************************************\\
// PRIVATE METHOD                                                                                   \\
//**************************************************************************************************\\	
		private var service:HTTPService;
		private function httpSend():void {
			service = new HTTPService();

			service.url			  		= FBVariables.getAction();
			service.method 		 		= FBVariables.getMethod();
			service.resultFormat	 	= "flashvars";
			service.useProxy			= false;
			service.makeObjectsBindable = true;

			service.addEventListener("result", httpResult);
			service.addEventListener("fault", httpFault);
			
			service.send(getParams(FBVariables.getThisForm()));			
		}
		
		private function getParams(obj:DisplayObjectContainer):Object {
			var params:Object = new Object();
			
			for(var i:int=0;i<obj.numChildren;i++){
				if(obj.getChildAt(i) is FBTextInput) {
					params["entity."+FBTextInput(obj.getChildAt(i)).fieldName] = FBTextInput(obj.getChildAt(i)).text; 
				}else if(obj.getChildAt(i) is Container) {
					var paramsTmp:Object = getParams(Container(obj.getChildAt(i)));
					for(var attrName:String in paramsTmp) {
						params[attrName] = paramsTmp[attrName];
					}
				}
			}			
			
			return params;
		}
		
		private function httpResult(event:ResultEvent):void {
			Alert.show("Operação Realizada com Sucesso", "SUCESSO");
		}
		private function httpFault(event:FaultEvent):void {
            var em:ErrorMessage = ErrorMessage(event.message);
   			if (em != null) {
				switch (em.faultCode) {
		        	case "aplicacao.error": {
		            	Alert.show("", em.faultString);
		            	break;
		         	}
		         	default: {
			            Alert.show("", "Erro geral");
		            	break;
		         	}
		      	}
   			}
        }			
	}
}

Servico no qual eu quero pegar o retorno
@Post
public void create(Country entity) {
try {
validator.validate(entity);

this.dao.create(entity);
result.use(xml()).from(entity).serialize();
}catch (Exception e) {
result.include("msg", e.getMessage());
}
}

Agradeço a ajuda desde ja.>

Criado 24 de agosto de 2010
Respostas 0
Participantes 1