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 criandopackage 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.>