SaveImageCommand.as 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package com.imt.intimamedia.commands.acquire
  2. {
  3. import com.adobe.cairngorm.control.CairngormEvent;
  4. import com.imt.flex.cairngormExtended.command.SuperCommand;
  5. import com.imt.flex.cairngormExtended.event.ChainEvent;
  6. import com.imt.intimamedia.business.AcquisitionDelegate;
  7. import com.imt.intimamedia.events.acquire.SaveImageEvent;
  8. import com.imt.intimamedia.model.ApplicationModelLocator;
  9. import com.imt.intimamedia.views.common.ImtToaster;
  10. import com.imt.intimamedia.views.physician.acquire.AcquireView;
  11. import com.imt.intimamedia.vo.DragAndDropVo;
  12. import flash.display.Bitmap;
  13. import flash.display.BitmapData;
  14. import flash.geom.Matrix;
  15. import flash.utils.ByteArray;
  16. import mx.controls.Alert;
  17. import mx.graphics.codec.JPEGEncoder;
  18. import mx.resources.ResourceManager;
  19. import mx.rpc.events.FaultEvent;
  20. import mx.rpc.events.ResultEvent;
  21. /**
  22. * Commande de sauvegarde des images
  23. */
  24. public class SaveImageCommand extends SuperCommand
  25. {
  26. [Bindable]
  27. private var _model : ApplicationModelLocator = ApplicationModelLocator.getInstance();
  28. private var _dispatcher : AcquireView;
  29. /**
  30. * Execution de la commande
  31. *
  32. * @param event Evénement de type CairngormEvent
  33. * @return void
  34. */
  35. override public function execute( event : CairngormEvent ) : void
  36. {
  37. super.execute( event );
  38. var delegate : AcquisitionDelegate = new AcquisitionDelegate( this );
  39. var saveImageEvent : SaveImageEvent = SaveImageEvent( event );
  40. var img : Bitmap = saveImageEvent.dragAndDropVo.imageHigh;
  41. var jpg : JPEGEncoder = new JPEGEncoder();
  42. var bitmapDataHigh : BitmapData = new BitmapData(saveImageEvent.dragAndDropVo.imageHigh.width,saveImageEvent.dragAndDropVo.imageHigh.height);
  43. bitmapDataHigh.draw(saveImageEvent.dragAndDropVo.imageHigh,new Matrix());
  44. var byteArrayHigh : ByteArray = jpg.encode( bitmapDataHigh );
  45. var bitmapDataLow : BitmapData = new BitmapData(saveImageEvent.dragAndDropVo.imageSmall.width,saveImageEvent.dragAndDropVo.imageSmall.height);
  46. // CJ 04092015 : Refonte de Resize
  47. var mat:Matrix = new Matrix();
  48. mat.scale(saveImageEvent.dragAndDropVo.imageSmall.width/saveImageEvent.dragAndDropVo.imageHigh.width, saveImageEvent.dragAndDropVo.imageSmall.height/saveImageEvent.dragAndDropVo.imageHigh.height);
  49. bitmapDataLow.draw(saveImageEvent.dragAndDropVo.imageHigh, mat, null, null, null, true);
  50. // Avant
  51. // bitmapDataLow.draw(saveImageEvent.dragAndDropVo.imageSmall,new Matrix());
  52. var byteArrayLow : ByteArray = jpg.encode( bitmapDataLow );
  53. // Alert.show("Largeur Image : " + saveImageEvent.dragAndDropVo.imageHigh.width.toString() + "Hauteur Image : " + saveImageEvent.dragAndDropVo.imageHigh.height.toString());
  54. delegate.saveImage( saveImageEvent.dragAndDropVo, saveImageEvent.appointment, byteArrayHigh, byteArrayLow );
  55. _dispatcher = this.getDispatcher(this);
  56. }
  57. /**
  58. * Résultat de la commande
  59. *
  60. * @param result Un objet
  61. * @return void
  62. */
  63. override public function result( result : Object ) : void
  64. {
  65. var resultEvent : ResultEvent = ResultEvent( result );
  66. _dispatcher.loadingPopUp.message = ResourceManager.getInstance().getString( "labels", "acquire.popUp.transfert.images.done");
  67. _dispatcher.loadingPopUp.progress.setProgress( 80, 100 );
  68. _dispatcher.saveImageEnded(result.result as int);
  69. super.result( result );
  70. }
  71. /**
  72. * Résultat de la commande
  73. *
  74. * @param result Un objet
  75. * @return void
  76. */
  77. override public function fault( fault : Object ) : void
  78. {
  79. super.fault( fault );
  80. _dispatcher.removeImageFromError();
  81. if (( fault as FaultEvent ).fault.faultString == ApplicationModelLocator.getInstance().ERROR_SESSION )
  82. {
  83. ApplicationModelLocator.displaySessionExpired( fault as FaultEvent );
  84. }
  85. else
  86. {
  87. var toastMessage : ImtToaster = new ImtToaster();
  88. toastMessage.titleMessage = ResourceManager.getInstance().getString('labels', 'error.title');
  89. toastMessage.message = ResourceManager.getInstance().getString('labels', 'error.saveImage');
  90. toastMessage.level = ImtToaster.ERROR;
  91. _model.toaster.toast( toastMessage );
  92. }
  93. }
  94. }
  95. }