mako 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (391) hide show
  1. data/bin/mako +133 -0
  2. data/lib/mako/build.rb +336 -0
  3. data/lib/mako/data/flash_widget_dev_core/Dependencies.txt +10 -0
  4. data/lib/mako/data/flash_widget_dev_core/libs/Degrafa_.2.11.swc +0 -0
  5. data/lib/mako/data/flash_widget_dev_core/libs/KogneatoGraphics.swc +0 -0
  6. data/lib/mako/data/flash_widget_dev_core/libs/KogneatoSymbols.swc +0 -0
  7. data/lib/mako/data/flash_widget_dev_core/libs/flash.swc +0 -0
  8. data/lib/mako/data/flash_widget_dev_core/src/assets/images/RichTextEditor.png +0 -0
  9. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/fonts/ARLRDBD.TTF +0 -0
  10. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/fonts/FTD_____.TTF +0 -0
  11. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/fonts/verdana.ttf +0 -0
  12. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/fonts/verdanab.ttf +0 -0
  13. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/fonts/verdanai.ttf +0 -0
  14. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/fonts/verdanaz.ttf +0 -0
  15. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/DefaultError.png +0 -0
  16. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/barbgfill.png +0 -0
  17. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/barshadow.png +0 -0
  18. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/bold.png +0 -0
  19. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/bullets.png +0 -0
  20. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/center.png +0 -0
  21. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/close-x.png +0 -0
  22. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/fullscreenPopup_close.png +0 -0
  23. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/gameTypeIcons/mc.png +0 -0
  24. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/gameTypeIcons/mc2.png +0 -0
  25. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/gameTypeIcons/mc3.png +0 -0
  26. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/gameTypeIcons/qa.png +0 -0
  27. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/gameTypeIcons/so.png +0 -0
  28. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/importIcon.png +0 -0
  29. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/italic.png +0 -0
  30. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/justify.png +0 -0
  31. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/kogLogo.png +0 -0
  32. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/left.png +0 -0
  33. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/oml-href-disabled.png +0 -0
  34. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/oml-href.png +0 -0
  35. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/oml-pagelink-disabled.png +0 -0
  36. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/oml-pagelink.png +0 -0
  37. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/oml-tooltip-delete.png +0 -0
  38. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/oml-tooltip-disabled.png +0 -0
  39. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/oml-tooltip-edit.png +0 -0
  40. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/oml-tooltip.png +0 -0
  41. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/pencil.png +0 -0
  42. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/right.png +0 -0
  43. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/underline.png +0 -0
  44. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/videoPlayButton.png +0 -0
  45. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/videoPlayerPauseButton.png +0 -0
  46. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/videoPlayerPauseButton_over.png +0 -0
  47. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/videoPlayerPlayButton.png +0 -0
  48. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/videoPlayerPlayButton_over.png +0 -0
  49. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/videoPlayerSoundButton.png +0 -0
  50. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/images/videoPlayerSoundButton_over.png +0 -0
  51. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/styles/creatorStyle.css +57 -0
  52. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/styles/style.css +929 -0
  53. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/swf/embeddedfonts.swf +0 -0
  54. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/swf/helpBubble.swf +0 -0
  55. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/swf/kogneatoSymbols.swf +0 -0
  56. data/lib/mako/data/flash_widget_dev_core/src/assets/materia/swf/videobg.swf +0 -0
  57. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/LICENSE.txt +27 -0
  58. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/CubeRotate.as +48 -0
  59. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/Distortion.as +168 -0
  60. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/DistortionConstants.as +16 -0
  61. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/Door.as +57 -0
  62. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/Flip.as +62 -0
  63. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/Gate.as +57 -0
  64. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/Pop.as +53 -0
  65. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/Push.as +48 -0
  66. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/SimpleDistortion.as +619 -0
  67. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/effectClasses/CubeRotateInstance.as +94 -0
  68. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/effectClasses/DistortBaseInstance.as +258 -0
  69. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/effectClasses/DoorInstance.as +116 -0
  70. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/effectClasses/FlipInstance.as +79 -0
  71. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/effectClasses/GateInstance.as +163 -0
  72. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/effectClasses/PopInstance.as +91 -0
  73. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/mxeffects/effectClasses/PushInstance.as +76 -0
  74. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/util/DisplayObjectBounds.as +64 -0
  75. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/util/DisplayObjectBoundsUtil.as +42 -0
  76. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/ac/util/SimpleDisplayObjectBoundsUtil.as +60 -0
  77. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/crypto/HMAC.as +108 -0
  78. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/crypto/MD5.as +250 -0
  79. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/crypto/MD5Stream.as +343 -0
  80. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/crypto/SHA1.as +250 -0
  81. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/crypto/SHA224.as +226 -0
  82. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/crypto/SHA256.as +229 -0
  83. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/crypto/WSSEUsernameToken.as +100 -0
  84. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/effects/SaturationFade.as +107 -0
  85. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/effects/SaturationFadeInstance.as +178 -0
  86. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/effects/SaturationFadePopUpBlocker.as +88 -0
  87. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/errors/IllegalStateError.as +57 -0
  88. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/fileformats/vcard/Address.as +41 -0
  89. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/fileformats/vcard/Email.as +34 -0
  90. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/fileformats/vcard/Phone.as +34 -0
  91. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/fileformats/vcard/VCard.as +47 -0
  92. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/fileformats/vcard/VCardParser.as +234 -0
  93. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/images/BitString.as +34 -0
  94. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/images/JPGEncoder.as +584 -0
  95. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/images/PNGEncoder.as +133 -0
  96. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/net/DynamicURLLoader.as +48 -0
  97. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/net/IURIResolver.as +70 -0
  98. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/net/MimeTypeMap.as +192 -0
  99. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/net/URI.as +2139 -0
  100. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/net/URIEncodingBitmap.as +122 -0
  101. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/net/proxies/RFC2817Socket.as +179 -0
  102. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/Database.as +55 -0
  103. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/Definition.as +59 -0
  104. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/Dict.as +322 -0
  105. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/DictionaryServer.as +50 -0
  106. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/MatchStrategy.as +55 -0
  107. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/Response.as +59 -0
  108. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/events/ConnectedEvent.as +44 -0
  109. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/events/DatabaseEvent.as +54 -0
  110. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/events/DefinitionEvent.as +55 -0
  111. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/events/DefinitionHeaderEvent.as +55 -0
  112. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/events/DictionaryServerEvent.as +55 -0
  113. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/events/DisconnectedEvent.as +44 -0
  114. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/events/ErrorEvent.as +64 -0
  115. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/events/MatchEvent.as +54 -0
  116. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/events/MatchStrategiesEvent.as +56 -0
  117. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/events/NoMatchEvent.as +44 -0
  118. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/util/CompleteResponseEvent.as +55 -0
  119. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/protocols/dict/util/SocketHelper.as +70 -0
  120. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/serialization/json/JSON.as +76 -0
  121. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/serialization/json/JSONDecoder.as +303 -0
  122. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/serialization/json/JSONEncoder.as +277 -0
  123. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/serialization/json/JSONParseError.as +79 -0
  124. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/serialization/json/JSONToken.as +79 -0
  125. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/serialization/json/JSONTokenType.as +49 -0
  126. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/serialization/json/JSONTokenizer.as +605 -0
  127. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/utils/ArrayUtil.as +166 -0
  128. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/utils/DateUtil.as +657 -0
  129. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/utils/DictionaryUtil.as +73 -0
  130. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/utils/IntUtil.as +85 -0
  131. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/utils/NumberFormatter.as +63 -0
  132. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/utils/StringUtil.as +220 -0
  133. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/utils/XMLUtil.as +148 -0
  134. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/webapis/ServiceBase.as +39 -0
  135. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/webapis/URLLoaderBase.as +93 -0
  136. data/lib/mako/data/flash_widget_dev_core/src/com/adobe/webapis/events/ServiceEvent.as +67 -0
  137. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/geom/ColorMatrix.as +1 -0
  138. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/GTween.as +1 -0
  139. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/GTweenTimeline.as +1 -0
  140. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/GTweener.as +1 -0
  141. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/easing/Back.as +1 -0
  142. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/easing/Bounce.as +1 -0
  143. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/easing/Circular.as +1 -0
  144. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/easing/Cubic.as +1 -0
  145. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/easing/Elastic.as +1 -0
  146. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/easing/Exponential.as +1 -0
  147. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/easing/Linear.as +1 -0
  148. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/easing/Quadratic.as +1 -0
  149. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/easing/Quartic.as +1 -0
  150. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/easing/Quintic.as +1 -0
  151. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/easing/Sine.as +1 -0
  152. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/plugins/AutoHidePlugin.as +1 -0
  153. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/plugins/BlurPlugin.as +1 -0
  154. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/plugins/ColorAdjustPlugin.as +1 -0
  155. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/plugins/ColorTransformPlugin.as +1 -0
  156. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/plugins/CurrentFramePlugin.as +1 -0
  157. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/plugins/IGTweenPlugin.as +1 -0
  158. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/plugins/MatrixPlugin.as +1 -0
  159. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/plugins/MotionBlurPlugin.as +1 -0
  160. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/plugins/SmartRotationPlugin.as +1 -0
  161. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/plugins/SnappingPlugin.as +1 -0
  162. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/motion/plugins/SoundTransformPlugin.as +1 -0
  163. data/lib/mako/data/flash_widget_dev_core/src/com/gskinner/utils/SWFBridgeAS3.as +83 -0
  164. data/lib/mako/data/flash_widget_dev_core/src/etc/GUID.as +82 -0
  165. data/lib/mako/data/flash_widget_dev_core/src/etc/MathExt.as +114 -0
  166. data/lib/mako/data/flash_widget_dev_core/src/gs/OverwriteManager.as +143 -0
  167. data/lib/mako/data/flash_widget_dev_core/src/gs/TweenFilterLite.as +502 -0
  168. data/lib/mako/data/flash_widget_dev_core/src/gs/TweenLite.as +512 -0
  169. data/lib/mako/data/flash_widget_dev_core/src/gs/TweenMax.as +987 -0
  170. data/lib/mako/data/flash_widget_dev_core/src/gs/easing/Back.as +14 -0
  171. data/lib/mako/data/flash_widget_dev_core/src/gs/easing/Bounce.as +22 -0
  172. data/lib/mako/data/flash_widget_dev_core/src/gs/easing/Circ.as +14 -0
  173. data/lib/mako/data/flash_widget_dev_core/src/gs/easing/Cubic.as +14 -0
  174. data/lib/mako/data/flash_widget_dev_core/src/gs/easing/Elastic.as +27 -0
  175. data/lib/mako/data/flash_widget_dev_core/src/gs/easing/Expo.as +16 -0
  176. data/lib/mako/data/flash_widget_dev_core/src/gs/easing/Linear.as +16 -0
  177. data/lib/mako/data/flash_widget_dev_core/src/gs/easing/Quad.as +14 -0
  178. data/lib/mako/data/flash_widget_dev_core/src/gs/easing/Quart.as +14 -0
  179. data/lib/mako/data/flash_widget_dev_core/src/gs/easing/Quint.as +14 -0
  180. data/lib/mako/data/flash_widget_dev_core/src/gs/easing/Sine.as +14 -0
  181. data/lib/mako/data/flash_widget_dev_core/src/gs/easing/Strong.as +14 -0
  182. data/lib/mako/data/flash_widget_dev_core/src/gs/easing/easing_readme.txt +14 -0
  183. data/lib/mako/data/flash_widget_dev_core/src/gs/events/TweenEvent.as +26 -0
  184. data/lib/mako/data/flash_widget_dev_core/src/gs/utils/tween/BevelFilterVars.as +63 -0
  185. data/lib/mako/data/flash_widget_dev_core/src/gs/utils/tween/BlurFilterVars.as +42 -0
  186. data/lib/mako/data/flash_widget_dev_core/src/gs/utils/tween/ColorMatrixFilterVars.as +86 -0
  187. data/lib/mako/data/flash_widget_dev_core/src/gs/utils/tween/DropShadowFilterVars.as +66 -0
  188. data/lib/mako/data/flash_widget_dev_core/src/gs/utils/tween/GlowFilterVars.as +57 -0
  189. data/lib/mako/data/flash_widget_dev_core/src/gs/utils/tween/TweenFilterLiteVars.as +93 -0
  190. data/lib/mako/data/flash_widget_dev_core/src/gs/utils/tween/TweenLiteVars.as +269 -0
  191. data/lib/mako/data/flash_widget_dev_core/src/gs/utils/tween/TweenMaxVars.as +103 -0
  192. data/lib/mako/data/flash_widget_dev_core/src/it/animation/TweenEvent.as +17 -0
  193. data/lib/mako/data/flash_widget_dev_core/src/it/animation/TweenObject.as +27 -0
  194. data/lib/mako/data/flash_widget_dev_core/src/it/animation/TweenSingleton.as +86 -0
  195. data/lib/mako/data/flash_widget_dev_core/src/it/animation/methods/Constant.as +7 -0
  196. data/lib/mako/data/flash_widget_dev_core/src/it/animation/methods/FastSlow.as +7 -0
  197. data/lib/mako/data/flash_widget_dev_core/src/it/animation/methods/FastSlowFast.as +8 -0
  198. data/lib/mako/data/flash_widget_dev_core/src/it/animation/methods/Shake.as +12 -0
  199. data/lib/mako/data/flash_widget_dev_core/src/it/animation/methods/SlowFast.as +7 -0
  200. data/lib/mako/data/flash_widget_dev_core/src/it/animation/methods/SlowFastSlow.as +8 -0
  201. data/lib/mako/data/flash_widget_dev_core/src/jac/image/ImageUtils.as +173 -0
  202. data/lib/mako/data/flash_widget_dev_core/src/jac/image/ResizeStyle.as +52 -0
  203. data/lib/mako/data/flash_widget_dev_core/src/materia/CreatorBase.mxml +504 -0
  204. data/lib/mako/data/flash_widget_dev_core/src/materia/CreatorConfig.as +45 -0
  205. data/lib/mako/data/flash_widget_dev_core/src/materia/CreatorEvents.as +38 -0
  206. data/lib/mako/data/flash_widget_dev_core/src/materia/Dialog.as +35 -0
  207. data/lib/mako/data/flash_widget_dev_core/src/materia/MateriaButton.as +35 -0
  208. data/lib/mako/data/flash_widget_dev_core/src/materia/PopUpAlert.mxml +271 -0
  209. data/lib/mako/data/flash_widget_dev_core/src/materia/components/GradientBackground.as +41 -0
  210. data/lib/mako/data/flash_widget_dev_core/src/materia/components/PercentField.mxml +104 -0
  211. data/lib/mako/data/flash_widget_dev_core/src/materia/components/ScrollableSizableImage.mxml +654 -0
  212. data/lib/mako/data/flash_widget_dev_core/src/materia/components/TextAreaWithDefaultText.mxml +94 -0
  213. data/lib/mako/data/flash_widget_dev_core/src/materia/components/TextInputWithDefaultText.mxml +94 -0
  214. data/lib/mako/data/flash_widget_dev_core/src/materia/components/VertCenterTextRenderer.mxml +37 -0
  215. data/lib/mako/data/flash_widget_dev_core/src/materia/components/importer/ImportEvent.as +22 -0
  216. data/lib/mako/data/flash_widget_dev_core/src/materia/components/importer/itemRenderers/CheckBoxColumn.mxml +23 -0
  217. data/lib/mako/data/flash_widget_dev_core/src/materia/components/importer/questions/QuestionDetails.mxml +68 -0
  218. data/lib/mako/data/flash_widget_dev_core/src/materia/components/importer/questions/QuestionDisplay.mxml +38 -0
  219. data/lib/mako/data/flash_widget_dev_core/src/materia/components/importer/questions/QuestionsDataGrid.mxml +247 -0
  220. data/lib/mako/data/flash_widget_dev_core/src/materia/components/importer/questions/QuestionsDataGridEvent.as +20 -0
  221. data/lib/mako/data/flash_widget_dev_core/src/materia/components/questionAnswerDataGrid/QuestionAnswerColumn.as +13 -0
  222. data/lib/mako/data/flash_widget_dev_core/src/materia/components/questionAnswerDataGrid/QuestionAnswerDataGrid.mxml +692 -0
  223. data/lib/mako/data/flash_widget_dev_core/src/materia/components/questionAnswerDataGrid/TextInputItem.mxml +584 -0
  224. data/lib/mako/data/flash_widget_dev_core/src/materia/components/questionAnswerDataGrid/TextInputObject.as +28 -0
  225. data/lib/mako/data/flash_widget_dev_core/src/materia/components/toolTips/KogneatoToolTip.as +196 -0
  226. data/lib/mako/data/flash_widget_dev_core/src/materia/components/toolTips/TipManager.as +150 -0
  227. data/lib/mako/data/flash_widget_dev_core/src/materia/help/HelpBubble.mxml +245 -0
  228. data/lib/mako/data/flash_widget_dev_core/src/materia/help/HelpDot.mxml +21 -0
  229. data/lib/mako/data/flash_widget_dev_core/src/materia/help/HelpManager.as +92 -0
  230. data/lib/mako/data/flash_widget_dev_core/src/materia/help/HelpObject.as +33 -0
  231. data/lib/mako/data/flash_widget_dev_core/src/materia/help/IHelpGuided.as +7 -0
  232. data/lib/mako/data/flash_widget_dev_core/src/materia/media/ImageCacherImage.mxml +56 -0
  233. data/lib/mako/data/flash_widget_dev_core/src/materia/media/MateriaUploader.as +61 -0
  234. data/lib/mako/data/flash_widget_dev_core/src/materia/questionStorage/Question.as +386 -0
  235. data/lib/mako/data/flash_widget_dev_core/src/materia/questionStorage/QuestionGroup.as +313 -0
  236. data/lib/mako/data/flash_widget_dev_core/src/materia/questionStorage/QuestionSet.as +21 -0
  237. data/lib/mako/data/flash_widget_dev_core/src/materia/toolTips/KogneatoToolTip.as +196 -0
  238. data/lib/mako/data/flash_widget_dev_core/src/materia/toolTips/TipManager.as +150 -0
  239. data/lib/mako/data/flash_widget_dev_core/src/materia/utils/CommonUtils.as +186 -0
  240. data/lib/mako/data/flash_widget_dev_core/src/materia/utils/DateUtils.as +273 -0
  241. data/lib/mako/data/flash_widget_dev_core/src/materia/utils/ImageCacher.as +93 -0
  242. data/lib/mako/data/flash_widget_dev_core/src/nm/arrays/Randomize.as +19 -0
  243. data/lib/mako/data/flash_widget_dev_core/src/nm/arrays/SimpleClone.as +32 -0
  244. data/lib/mako/data/flash_widget_dev_core/src/nm/draw/Color.as +102 -0
  245. data/lib/mako/data/flash_widget_dev_core/src/nm/draw/Draw.as +65 -0
  246. data/lib/mako/data/flash_widget_dev_core/src/nm/draw/lines/Dashed.as +48 -0
  247. data/lib/mako/data/flash_widget_dev_core/src/nm/draw/lines/Dotted.as +83 -0
  248. data/lib/mako/data/flash_widget_dev_core/src/nm/draw/shapes/Check.as +27 -0
  249. data/lib/mako/data/flash_widget_dev_core/src/nm/draw/shapes/Rect.as +12 -0
  250. data/lib/mako/data/flash_widget_dev_core/src/nm/draw/shapes/RectBevel.as +35 -0
  251. data/lib/mako/data/flash_widget_dev_core/src/nm/draw/shapes/RectBorder.as +39 -0
  252. data/lib/mako/data/flash_widget_dev_core/src/nm/draw/shapes/RectRound.as +33 -0
  253. data/lib/mako/data/flash_widget_dev_core/src/nm/draw/shapes/RectRoundBorder.as +62 -0
  254. data/lib/mako/data/flash_widget_dev_core/src/nm/draw/shapes/TriangleEquilateral.as +25 -0
  255. data/lib/mako/data/flash_widget_dev_core/src/nm/draw/shapes/X.as +28 -0
  256. data/lib/mako/data/flash_widget_dev_core/src/nm/errors/ScoringError.as +10 -0
  257. data/lib/mako/data/flash_widget_dev_core/src/nm/errors/StorageError.as +10 -0
  258. data/lib/mako/data/flash_widget_dev_core/src/nm/events/ButtonEvent.as +25 -0
  259. data/lib/mako/data/flash_widget_dev_core/src/nm/events/PayloadEvent.as +14 -0
  260. data/lib/mako/data/flash_widget_dev_core/src/nm/events/StandardEvent.as +26 -0
  261. data/lib/mako/data/flash_widget_dev_core/src/nm/gameServ/common/Question.as +72 -0
  262. data/lib/mako/data/flash_widget_dev_core/src/nm/gameServ/common/QuestionGroup.as +87 -0
  263. data/lib/mako/data/flash_widget_dev_core/src/nm/gameServ/common/QuestionSet.as +35 -0
  264. data/lib/mako/data/flash_widget_dev_core/src/nm/gameServ/common/WidgetSettings.as +14 -0
  265. data/lib/mako/data/flash_widget_dev_core/src/nm/gameServ/common/coms/ServerEvents.as +17 -0
  266. data/lib/mako/data/flash_widget_dev_core/src/nm/gameServ/common/coms/ServerMessageEvent.as +31 -0
  267. data/lib/mako/data/flash_widget_dev_core/src/nm/gameServ/common/logging/Log.as +92 -0
  268. data/lib/mako/data/flash_widget_dev_core/src/nm/gameServ/common/scoring/Scoring.as +87 -0
  269. data/lib/mako/data/flash_widget_dev_core/src/nm/gameServ/common/storage/StorageManager.as +91 -0
  270. data/lib/mako/data/flash_widget_dev_core/src/nm/gameServ/common/storage/StorageTable.as +72 -0
  271. data/lib/mako/data/flash_widget_dev_core/src/nm/gameServ/engines/EngineCore.as +222 -0
  272. data/lib/mako/data/flash_widget_dev_core/src/nm/geom/Dimension.as +76 -0
  273. data/lib/mako/data/flash_widget_dev_core/src/nm/respondus/Respondus.as +612 -0
  274. data/lib/mako/data/flash_widget_dev_core/src/nm/respondus/RespondusAnswer.as +11 -0
  275. data/lib/mako/data/flash_widget_dev_core/src/nm/respondus/RespondusError.as +18 -0
  276. data/lib/mako/data/flash_widget_dev_core/src/nm/respondus/RespondusQuestion.as +43 -0
  277. data/lib/mako/data/flash_widget_dev_core/src/nm/respondus/RespondusQuiz.as +68 -0
  278. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/AlertWindow.as +182 -0
  279. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/BlueButton.as +102 -0
  280. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/Button.as +88 -0
  281. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/Button_base.as +168 -0
  282. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/Component.as +98 -0
  283. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/ContentBlocker.as +38 -0
  284. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/FlexUIScaler.as +59 -0
  285. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/FormInput.as +191 -0
  286. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/GrabZoomClip.as +305 -0
  287. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/HelpLayer.as +55 -0
  288. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/Label.as +25 -0
  289. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/List.as +62 -0
  290. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/List_Base.as +644 -0
  291. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/ProcessingBar.as +112 -0
  292. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/ProgressBar.as +35 -0
  293. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/ProgressBar_base.as +69 -0
  294. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/ScrollBar.as +163 -0
  295. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/ScrollBar_base.as +378 -0
  296. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/ScrollClip.as +468 -0
  297. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/ScrollText.as +29 -0
  298. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/ScrollText_base.as +295 -0
  299. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/SimpleScrollBar.as +247 -0
  300. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/StageRef.as +34 -0
  301. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/StorageTank.as +233 -0
  302. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/StorageTankHorizontal.as +109 -0
  303. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/ToolTip.as +930 -0
  304. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/TweeningDragDropBankList.as +503 -0
  305. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/Window.as +144 -0
  306. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/Window_base.as +385 -0
  307. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/layout/CenterScale.as +27 -0
  308. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/layout/WindowManager.as +163 -0
  309. data/lib/mako/data/flash_widget_dev_core/src/nm/ui/layout/WindowStage.as +96 -0
  310. data/lib/mako/data/flash_widget_dev_core/src/nm/util/BitField.as +99 -0
  311. data/lib/mako/data/flash_widget_dev_core/src/nm/util/ObjPeek.as +148 -0
  312. data/lib/mako/data/flash_widget_dev_core/src/nm/util/Objects.as +49 -0
  313. data/lib/mako/data/flash_widget_dev_core/src/nm/util/Printer.as +548 -0
  314. data/lib/mako/data/flash_widget_dev_core/src/nm/util/StringUtil.as +12 -0
  315. data/lib/mako/data/flash_widget_dev_core/src/org/rubyamf/remoting/ssr/FaultEvent.as +37 -0
  316. data/lib/mako/data/flash_widget_dev_core/src/org/rubyamf/remoting/ssr/RemotingCall.as +211 -0
  317. data/lib/mako/data/flash_widget_dev_core/src/org/rubyamf/remoting/ssr/RemotingConnection.as +41 -0
  318. data/lib/mako/data/flash_widget_dev_core/src/org/rubyamf/remoting/ssr/RemotingService.as +214 -0
  319. data/lib/mako/data/flash_widget_dev_core/src/org/rubyamf/remoting/ssr/ResultEvent.as +36 -0
  320. data/lib/mako/data/flash_widget_dev_core/src/sandy/util/DistortImage.as +281 -0
  321. data/lib/mako/data/flash_widget_dev_core/src/sandy/util/SandyPoint.as +29 -0
  322. data/lib/mako/data/flash_widget_dev_core/src/sandy/util/Triangle.as +32 -0
  323. data/lib/mako/data/html/thistest.html +0 -0
  324. data/lib/mako/data/template_creator/src/Creator.mxml +138 -0
  325. data/lib/mako/data/template_creator/src/assets/images/RichTextEditor.png +0 -0
  326. data/lib/mako/data/template_creator/src/assets/materia/images/DefaultError.png +0 -0
  327. data/lib/mako/data/template_creator/src/assets/materia/images/barbgfill.png +0 -0
  328. data/lib/mako/data/template_creator/src/assets/materia/images/barshadow.png +0 -0
  329. data/lib/mako/data/template_creator/src/assets/materia/images/bold.png +0 -0
  330. data/lib/mako/data/template_creator/src/assets/materia/images/bullets.png +0 -0
  331. data/lib/mako/data/template_creator/src/assets/materia/images/center.png +0 -0
  332. data/lib/mako/data/template_creator/src/assets/materia/images/close-x.png +0 -0
  333. data/lib/mako/data/template_creator/src/assets/materia/images/fullscreenPopup_close.png +0 -0
  334. data/lib/mako/data/template_creator/src/assets/materia/images/importIcon.png +0 -0
  335. data/lib/mako/data/template_creator/src/assets/materia/images/italic.png +0 -0
  336. data/lib/mako/data/template_creator/src/assets/materia/images/justify.png +0 -0
  337. data/lib/mako/data/template_creator/src/assets/materia/images/left.png +0 -0
  338. data/lib/mako/data/template_creator/src/assets/materia/images/oml-href-disabled.png +0 -0
  339. data/lib/mako/data/template_creator/src/assets/materia/images/oml-href.png +0 -0
  340. data/lib/mako/data/template_creator/src/assets/materia/images/oml-pagelink-disabled.png +0 -0
  341. data/lib/mako/data/template_creator/src/assets/materia/images/oml-pagelink.png +0 -0
  342. data/lib/mako/data/template_creator/src/assets/materia/images/oml-tooltip-delete.png +0 -0
  343. data/lib/mako/data/template_creator/src/assets/materia/images/oml-tooltip-disabled.png +0 -0
  344. data/lib/mako/data/template_creator/src/assets/materia/images/oml-tooltip-edit.png +0 -0
  345. data/lib/mako/data/template_creator/src/assets/materia/images/oml-tooltip.png +0 -0
  346. data/lib/mako/data/template_creator/src/assets/materia/images/pencil.png +0 -0
  347. data/lib/mako/data/template_creator/src/assets/materia/images/right.png +0 -0
  348. data/lib/mako/data/template_creator/src/assets/materia/images/underline.png +0 -0
  349. data/lib/mako/data/template_creator/src/assets/materia/images/videoPlayButton.png +0 -0
  350. data/lib/mako/data/template_creator/src/assets/materia/images/videoPlayerPauseButton.png +0 -0
  351. data/lib/mako/data/template_creator/src/assets/materia/images/videoPlayerPauseButton_over.png +0 -0
  352. data/lib/mako/data/template_creator/src/assets/materia/images/videoPlayerPlayButton.png +0 -0
  353. data/lib/mako/data/template_creator/src/assets/materia/images/videoPlayerPlayButton_over.png +0 -0
  354. data/lib/mako/data/template_creator/src/assets/materia/images/videoPlayerSoundButton.png +0 -0
  355. data/lib/mako/data/template_creator/src/assets/materia/images/videoPlayerSoundButton_over.png +0 -0
  356. data/lib/mako/data/template_creator/src/assets/materia/styles/creatorStyle.css +63 -0
  357. data/lib/mako/data/template_creator/src/assets/materia/styles/style.css +1127 -0
  358. data/lib/mako/data/template_creator/src/assets/materia/swf/embeddedfonts.swf +0 -0
  359. data/lib/mako/data/template_creator/src/assets/materia/swf/helpBubble.swf +0 -0
  360. data/lib/mako/data/template_creator/src/assets/materia/swf/kogneatoSymbols.swf +0 -0
  361. data/lib/mako/data/template_creator/src/assets/materia/swf/videobg.swf +0 -0
  362. data/lib/mako/data/template_creator/src/components/SmallRichTextEditor.mxml +678 -0
  363. data/lib/mako/data/template_creator/src/components/SmallRichTextEditorToolbar.mxml +133 -0
  364. data/lib/mako/data/templates/html/README.md +11 -0
  365. data/lib/mako/data/templates/html/_creator/build.yaml +12 -0
  366. data/lib/mako/data/templates/html/_creator/creator.html +19 -0
  367. data/lib/mako/data/templates/html/_creator/css/creator.less +29 -0
  368. data/lib/mako/data/templates/html/_creator/js/creator.coffee +122 -0
  369. data/lib/mako/data/templates/html/_creator/test.html +0 -0
  370. data/lib/mako/data/templates/html/_engine/build.yaml +12 -0
  371. data/lib/mako/data/templates/html/_engine/css/widget.scss +18 -0
  372. data/lib/mako/data/templates/html/_engine/js/widget.coffee +143 -0
  373. data/lib/mako/data/templates/html/_engine/widget.html +21 -0
  374. data/lib/mako/data/templates/html/_icons/icon-275.png +0 -0
  375. data/lib/mako/data/templates/html/_icons/icon-394.png +0 -0
  376. data/lib/mako/data/templates/html/_icons/icon-60.png +0 -0
  377. data/lib/mako/data/templates/html/_icons/icon-92.png +0 -0
  378. data/lib/mako/data/templates/html/_score/score_module.php +48 -0
  379. data/lib/mako/data/templates/html/_score/test_score_module.php +157 -0
  380. data/lib/mako/data/templates/html/_screen-shots/1-thumb.png +0 -0
  381. data/lib/mako/data/templates/html/_screen-shots/1.png +0 -0
  382. data/lib/mako/data/templates/html/_screen-shots/2-thumb.png +0 -0
  383. data/lib/mako/data/templates/html/_screen-shots/2.png +0 -0
  384. data/lib/mako/data/templates/html/_screen-shots/3-thumb.png +0 -0
  385. data/lib/mako/data/templates/html/_screen-shots/3.png +0 -0
  386. data/lib/mako/data/templates/html/build.yaml +4 -0
  387. data/lib/mako/data/templates/html/demo.yaml +7 -0
  388. data/lib/mako/data/templates/html/install.yaml +94 -0
  389. data/lib/mako/path.rb +48 -0
  390. data/lib/mako/scaffold.rb +69 -0
  391. metadata +597 -0
@@ -0,0 +1,692 @@
1
+ <?xml version = "1.0" encoding = "utf-8"?>
2
+ <mx:DataGrid
3
+ xmlns:mx = "http://www.adobe.com/2006/mxml"
4
+ xmlns:questionAnswerDataGrid = "materia.components.questionAnswerDataGrid.*"
5
+ editable="true"
6
+ rowHeight="75"
7
+ sortableColumns="false"
8
+ initialize="{init()}"
9
+ creationComplete="{onCreationComplete()}"
10
+ dataProvider = "{dataProvider}"
11
+ itemEditBegin="{onItemFocus(event)}"
12
+ dragEnabled="{draggingEnabled}"
13
+ dropEnabled="{draggingEnabled}"
14
+ dragMoveEnabled="{draggingEnabled}"
15
+ draggableColumns="false"
16
+ >
17
+ <mx:columns>
18
+ <mx:DataGridColumn id = "rowNumberColumn" headerText = "" dataField = "rowIndex" editable="false" width = "50">
19
+ <mx:itemRenderer>
20
+ <mx:Component>
21
+ <mx:Canvas width="100%" height="100%" verticalScrollPolicy="off" >
22
+ <mx:Script>
23
+ <![CDATA[
24
+ import materia.components.toolTips.TipManager;
25
+ private var _colorSet:Boolean = false;
26
+ [Bindable]
27
+ private var _parentGrid:QuestionAnswerDataGrid;
28
+
29
+ public override function set data(value:Object):void
30
+ {
31
+ if (parent == null || !(parent.parent is QuestionAnswerDataGrid))
32
+ {
33
+ return;
34
+ }
35
+ super.data = value;
36
+ _parentGrid = QuestionAnswerDataGrid(parent.parent);
37
+ if(importIcon != null)
38
+ {
39
+ importIcon.visible = (data.imported);
40
+ }
41
+ //Set color if needed
42
+ var textColor:int = _parentGrid.indexLabelColor;
43
+ if(textColor != -1 && _colorSet == false)
44
+ {
45
+ rowLabel.setStyle("color", textColor);
46
+ _colorSet = true;
47
+ }
48
+ //Set visibility
49
+ var len:int = _parentGrid.dataProvider.length;
50
+ if(!rowLabel.visible)
51
+ {
52
+ if(value.rowIndex != len)
53
+ {
54
+ rowLabel.visible = true;
55
+ }
56
+ }
57
+ else
58
+ {
59
+ if(value.rowIndex == len)
60
+ {
61
+ rowLabel.visible = false;
62
+ }
63
+ }
64
+ }
65
+ ]]>
66
+ </mx:Script>
67
+ <mx:Label id="rowLabel" text="{_parentGrid.useLettersForIndex? String.fromCharCode('A'.charCodeAt(0) + data.rowIndex - 1):data.rowIndex}" textAlign="center" horizontalCenter="0" verticalCenter="0" fontSize="{_parentGrid.indexLabelSize}" fontWeight="bold" />
68
+ <mx:Image id="importIcon"
69
+ source="@Embed(source='/assets/materia/images/importIcon.png')"
70
+ alpha=".8" bottom="5" horizontalCenter="-1"
71
+ mouseOver="{TipManager.showTip(importIcon,'This is an imported question');}"
72
+ />
73
+ </mx:Canvas>
74
+ </mx:Component>
75
+ </mx:itemRenderer>
76
+ </mx:DataGridColumn>
77
+ <questionAnswerDataGrid:QuestionAnswerColumn id = "questionColumn" dataField = "question.question" headerText = "Question" rendererIsEditor = "true" characterLimit="{characterLimit}">
78
+ <questionAnswerDataGrid:itemRenderer>
79
+ <questionAnswerDataGrid:TextInputItem id = "questionItemRenderer" explanationText = "{questionExplanationText}" placeHolderText="{placeHolderText}" characterLimit="{questionColumn.characterLimit}" multiline="{multilineFields}" restrict="{restrict}" fieldPadding="{fieldPadding}" errorType="question" />
80
+ </questionAnswerDataGrid:itemRenderer>
81
+ </questionAnswerDataGrid:QuestionAnswerColumn>
82
+ <questionAnswerDataGrid:QuestionAnswerColumn id = "answerColumn" dataField = "question.answer" headerText = "Answer" rendererIsEditor = "true" characterLimit="{characterLimit}">
83
+ <questionAnswerDataGrid:itemRenderer>
84
+ <questionAnswerDataGrid:TextInputItem id = "answerItemRenderer" explanationText = "{answerExplanationText}" placeHolderText="{placeHolderText}" characterLimit="{answerColumn.characterLimit}" multiline="{multilineFields}" restrict="{restrict}" fieldPadding="{fieldPadding}" errorType="answer" />
85
+ </questionAnswerDataGrid:itemRenderer>
86
+ </questionAnswerDataGrid:QuestionAnswerColumn>
87
+ <mx:DataGridColumn id="deleteColumn" headerText = "Options" width = "{useSmallDeleteButton?30:80}" editable="false">
88
+ <mx:itemRenderer>
89
+ <mx:Component>
90
+ <mx:Canvas horizontalScrollPolicy="off" tabEnabled="true" tabChildren="true">
91
+ <mx:Button id = "deleteButton"
92
+ paddingLeft="0"
93
+ paddingRight="0"
94
+ left = "5"
95
+ right = "5"
96
+ height = "25"
97
+ label = "Delete"
98
+ horizontalCenter = "0"
99
+ top = "5"
100
+ click = "{QuestionAnswerDataGrid(parent.parent).onDeleteItem(event)}"
101
+ styleName = "redButton"
102
+ initialize="init()"
103
+ >
104
+ </mx:Button>
105
+ <mx:Script>
106
+ <![CDATA[
107
+ import mx.controls.dataGridClasses.DataGridDragProxy;
108
+ public function init():void
109
+ {
110
+ if(parent.parent is QuestionAnswerDataGrid && QuestionAnswerDataGrid(parent.parent).useSmallDeleteButton)
111
+ {
112
+ deleteButton.setStyle('verticalCenter', 0); deleteButton.label='X';
113
+ }
114
+ }
115
+ //if i remove this "set data" code, everything works fine...
116
+ //if i dont, it breaks :(
117
+ public override function set data(value:Object):void
118
+ {
119
+ if(parent == null || !(parent.parent is QuestionAnswerDataGrid))
120
+ {
121
+ return;
122
+ }
123
+ super.data = value;
124
+ var len:int = QuestionAnswerDataGrid(parent.parent).dataProvider.length;
125
+ if(!deleteButton.visible)
126
+ {
127
+ if(value.rowIndex != len)
128
+ {
129
+ deleteButton.visible = true;
130
+ }
131
+ }
132
+ else
133
+ {
134
+ if(value.rowIndex == len)
135
+ {
136
+ deleteButton.visible = false;
137
+ }
138
+ }
139
+ }
140
+ ]]>
141
+ </mx:Script>
142
+ </mx:Canvas>
143
+ </mx:Component>
144
+ </mx:itemRenderer>
145
+ </mx:DataGridColumn>
146
+ </mx:columns>
147
+ <mx:Script>
148
+ <![CDATA[
149
+ import materia.CreatorBase;
150
+ import mx.core.ScrollPolicy;
151
+ import flash.utils.getTimer;
152
+ import mx.events.ScrollEventDirection;
153
+ import mx.events.ScrollEvent;
154
+ import mx.controls.listClasses.IListItemRenderer;
155
+ import mx.events.DragEvent;
156
+ import nm.ui.Component;
157
+ import mx.managers.IFocusManagerComponent;
158
+ import mx.controls.Alert;
159
+ import mx.events.ListEvent;
160
+ import mx.events.FlexEvent;
161
+ import mx.events.DataGridEvent;
162
+ import mx.collections.ArrayCollection;
163
+ import materia.questionStorage.*;
164
+ public static const DELETE_EVENT:String = "DELETE_EVENT";
165
+ public static const ADD_EVENT:String = "ADD_EVENT";
166
+ public static const ROW_FOCUS_EVENT:String = "FOCUSED";
167
+ public static const ENABLE_DRAGGING:String = "DRAG_ENABLED";
168
+ public static const DISABLE_DRAGGING:String = "DRAG_DISABLED";
169
+ private var _lastScrollTime:int = getTimer();
170
+ private var _onInitAddInitialQuestion:Boolean = true;
171
+ [Bindable]
172
+ public var multilineFields:Boolean = true;
173
+ [Bindable]
174
+ public var restrict:String = null;
175
+ [Bindable]
176
+ /**
177
+ * The padding to be used around the input fields used
178
+ * in this datagrid
179
+ */
180
+ public var fieldPadding:int = 5;
181
+ /**
182
+ * Must be set in xml construction as a tag
183
+ */
184
+ public var questionType:String = "QA";
185
+ private var _optionsToAdd:Array = new Array();
186
+ [Bindable]
187
+ public var showWordCount:Boolean = false;
188
+ [Bindable]
189
+ public var characterLimit:int;
190
+ [Bindable]
191
+ public var placeHolderText:String = "\rClick To Add Item";
192
+ [Bindable]
193
+ public var questionExplanationText:String = "Enter a question here";
194
+ [Bindable]
195
+ public var answerExplanationText:String = "Enter an answer here";
196
+ // note data items will have { question: , rowIndex: }
197
+ protected var _questionsList:ArrayCollection;
198
+ [Bindable]
199
+ public var indexLabelSize:int = 21;
200
+ [Bindable]
201
+ /**
202
+ * If set to true, row index labels will use letters instead of numbers
203
+ */
204
+ public var useLettersForIndex:Boolean = false;
205
+ [Bindable]
206
+ /**
207
+ * If set to true, the delete buttons in the option column will be
208
+ * much smaller and use 'x' as a label instead of 'Delete'
209
+ */
210
+ public var useSmallDeleteButton:Boolean = false;
211
+ [Bindable]
212
+ /**
213
+ * If set to false, dragging will be disabled for this datagrid
214
+ */
215
+ public var draggingEnabled:Boolean = true;
216
+ [Bindable]
217
+ private var _indexLabelColor:int = 0x202020; //set to -1 for no color
218
+
219
+ /**
220
+ * getNewQuestion returns an instance of the widget's Question class
221
+ * Widgets use Question by default as defined by CreatorBase.QUESTION_TYPE
222
+ * but can be overriden in widget's creator to use a custom Question class
223
+ **/
224
+ public function getNewQuestion(type:String = "MC", options:Object = null, id:Number = 0, question:String = null, answer:String = null):Question
225
+ {
226
+ var questionClass:Class = getNewQuestionClass();
227
+ return new questionClass(type, options, id, question, answer);
228
+ }
229
+ public function getNewQuestionClass():Class
230
+ {
231
+ return getDefinitionByName(CreatorBase.QUESTION_TYPE) as Class;
232
+ }
233
+ public static function cleanUpDataProvider(dp:ArrayCollection, keepEmptyLastEntry:Boolean = true, cleanEmptyEntries:Boolean = false):void
234
+ {
235
+ for(var i:int = 0; i < dp.length; i++)
236
+ {
237
+ dp.getItemAt(i).rowIndex = i + 1;
238
+ if(dp.getItemAt(i).question.question.length == 0 && dp.getItemAt(i).question.answer.length == 0 && (!keepEmptyLastEntry || i < dp.length - 1))
239
+ {
240
+ dp.removeItemAt(i);
241
+ i--;
242
+ }
243
+ }
244
+ }
245
+ public override function setFocus():void
246
+ {
247
+ super.setFocus();
248
+ this.validateNow();
249
+ dataProvider.refresh();
250
+ }
251
+ public override function set selectedIndex(value:int):void
252
+ {
253
+ super.selectedIndex = value;
254
+ }
255
+ /**
256
+ * Adds a question to the datagrid
257
+ * @param q The question to be used to populate this row
258
+ * @param stealFocus Whether or not this question should have focus after being added
259
+ * @param stickToBottom To be used only to maintain a placeholder at the bottom of the datagrid
260
+ */
261
+ public function addQuestion(q:Question = null, stealFocus:Boolean = true, stickToBottom:Boolean = false):void
262
+ {
263
+ //Where this item will be added (to bottom or 1 from bottom)
264
+ var rowIndex:int = dataProvider.length - (stickToBottom? 0:1);
265
+ if(rowIndex < 0)
266
+ {
267
+ rowIndex = 0;
268
+ }
269
+ //Create a question if none was passed
270
+ if(q == null)
271
+ {
272
+ q = getNewQuestion(questionType, null, 0, "", "");
273
+ for(var i:int = 0; i < _optionsToAdd.length; i++)
274
+ {
275
+ q.addOption(_optionsToAdd[i],'');
276
+ }
277
+ }
278
+ /*
279
+ * Items in data grid will contain the following variables:
280
+ * rowIndex
281
+ * question
282
+ * answer
283
+ * imported
284
+ * importModified
285
+ * id
286
+ */
287
+ var listItem:TextInputObject = new TextInputObject(stealFocus, rowIndex + 1, q, (q.id > 0), false);
288
+ //Add item at the given position
289
+ dataProvider.addItemAt(listItem, rowIndex);
290
+ //Update the "row count" numbers (used for more than just display purposes)
291
+ updateItemIndexes(rowIndex + 1);
292
+ //select the new item
293
+ this.selectedIndex = rowIndex - (stickToBottom? 1:0);
294
+ if(stickToBottom)
295
+ {
296
+ callLater(validateMe);
297
+ }
298
+ dispatchEvent(new Event(ADD_EVENT));
299
+ }
300
+ /**
301
+ * Deletes an item from the datagrid and updates numbers in the
302
+ * numbers column for proceeding items. Dispatches a delete event
303
+ * and an item edit event.
304
+ *
305
+ * @deleteIndex
306
+ */
307
+ public function deleteItem(deleteIndex:int = -1):void
308
+ {
309
+ var selectionIndex:int = this.selectedIndex - 1;
310
+ var index:int = deleteIndex == -1? this.selectedIndex : deleteIndex;
311
+ var allowDelete:Boolean = false; // deleting only allowed if >1 item exists
312
+ // establish boundaries
313
+ if(index < 0)
314
+ {
315
+ index = 0;
316
+ }
317
+ // if deleting any item other than the last item
318
+ if(index < dataProvider.length-1)
319
+ {
320
+ allowDelete = true;
321
+ }
322
+ // if selecting the last item
323
+ else if(index > 0)
324
+ {
325
+ var listItem:Object = dataProvider.getItemAt(index-1);
326
+ //If prior question is empty, allow deletion of this question (the last question)
327
+ if(!listItem.question.answer.length && !listItem.question.question.length)
328
+ {
329
+ allowDelete = true;
330
+ }
331
+ }
332
+ // if deletion is not allowed, we're done here
333
+ if(!allowDelete)
334
+ {
335
+ return;
336
+ }
337
+ /* Proceed to delete item */
338
+ var obj:Object = dataProvider.getItemAt(index); // the object to delete
339
+ var wasEmpty:Boolean = false; // if deleted object is empty
340
+ // determine if deleted object is empty
341
+ if(obj.question.question.length == 0 && obj.question.answer.length == 0)
342
+ {
343
+ wasEmpty = true;
344
+ }
345
+ // remove the item and update the numbers (on the left) for all proceeding items
346
+ dataProvider.removeItemAt(index);
347
+ updateItemIndexes(index);
348
+ // restore selection (useful if we deleted the item we had selected)
349
+ this.selectedIndex = selectionIndex;
350
+ //only consider data changed if there was content in deleted item
351
+ if(wasEmpty == false)
352
+ {
353
+ dispatchEvent(new Event(FlexEvent.DATA_CHANGE));
354
+ }
355
+ // let listeners know we deleted this item and "edited" it
356
+ dispatchEvent(new Event(DELETE_EVENT));
357
+ dispatchEvent(new DataGridEvent(DataGridEvent.ITEM_EDIT_END));
358
+ }
359
+ public function equalizeColumnWidths():void
360
+ {
361
+ this.horizontalScrollPolicy = ScrollPolicy.ON;
362
+ var totalWidth:int = 0;
363
+ var numColumns:int = 0;
364
+ // set helper columns to original size
365
+ rowNumberColumn.width = 50;
366
+ deleteColumn.width = useSmallDeleteButton ? 30 : 80;
367
+ totalWidth = this.width - rowNumberColumn.width - deleteColumn.width;
368
+ //Calculate total width of columns to be adjusted
369
+ for(var j:int = 0; j < columns.length; j++)
370
+ {
371
+ if(DataGridColumn(columns[j]).visible && (DataGridColumn(columns[j]).editable))
372
+ {
373
+ numColumns++;
374
+ }
375
+ else if(!DataGridColumn(columns[j]).visible)
376
+ {
377
+ DataGridColumn(columns[j]).width = 0; // no width for invisible columns
378
+ }
379
+ }
380
+ //Store target width for columns ( the -1 is a hack fix >_< )
381
+ var colWidth:int = totalWidth/numColumns-1;
382
+ //Adjust width of each column based on calculations
383
+ for(var i:int = 0; i < columns.length; i++)
384
+ {
385
+ if(DataGridColumn(columns[i]).visible && (DataGridColumn(columns[i]).editable))
386
+ {
387
+ DataGridColumn(columns[i]).width = colWidth;
388
+ }
389
+ }
390
+ this.horizontalScrollPolicy = ScrollPolicy.OFF;
391
+ }
392
+ /**
393
+ * Adds a standard column to the datagrid using the TextInput item from the other columns
394
+ * Returns the datagrid column that was added
395
+ */
396
+ public function addOptionColumn(header:String, dataField:String, position:int = -1, isOptional:Boolean = false, characterLimit:int = 0, explanationText:String = "Enter text here", restrict:String = null):DataGridColumn
397
+ {
398
+ ////trace("QuestionAnswerDataGrid::addOptionColumn");
399
+ //Add the custom field into the question object
400
+ _optionsToAdd.push(dataField);
401
+ if(dataProvider != null)
402
+ {
403
+ for(var i:int = 0; i < dataProvider.length; i++)
404
+ {
405
+ var question:Question = (dataProvider[i].question as Question)
406
+ if(question.options == null || question.options.hint == null)
407
+ {
408
+ question.addOption(_optionsToAdd[_optionsToAdd.length-1],'');
409
+ }
410
+ }
411
+ }
412
+ var newColumn:DataGridColumn = new DataGridColumn();
413
+ newColumn.headerText = header;
414
+ newColumn.dataField = 'question.options.' + dataField;
415
+ var itemR:TextInputItem = new TextInputItem();
416
+ itemR.errorColoringEnabled = false;
417
+ itemR.showWordCount = showWordCount;
418
+ if (characterLimit > 0)
419
+ {
420
+ itemR.characterLimit = characterLimit;
421
+ }
422
+ else
423
+ {
424
+ itemR.characterLimit = this.characterLimit;
425
+ }
426
+ newColumn.itemRenderer = itemR;
427
+ newColumn.rendererIsEditor = true;
428
+ itemR.placeHolderText = placeHolderText;
429
+ itemR.explanationText = explanationText;
430
+ itemR.restrict = restrict;
431
+ //Add the column to the datagrid
432
+ addCustomColumn(newColumn, position);
433
+ return newColumn;
434
+ }
435
+ /**
436
+ * Adds a given column to the datagrid. The given DataGridColumn object can be specified as liked
437
+ */
438
+ public function addCustomColumn(newColumn:DataGridColumn, position:int = -1):void
439
+ {
440
+ ////trace("QuestionAnswerDataGrid::addCustomColumn");
441
+ var currentColumns:Array = this.columns;
442
+ if(position == -1)
443
+ {
444
+ if(currentColumns[currentColumns.length - 1] != deleteColumn) currentColumns.push(newColumn);
445
+ else currentColumns.splice(currentColumns.length - 1, 0, newColumn);
446
+ }
447
+ else
448
+ {
449
+ currentColumns.splice(position, 0, newColumn);
450
+ }
451
+ this.columns = currentColumns;
452
+ }
453
+ /**
454
+ * Generates a QuestionGroup object from the items in the datagrid
455
+ */
456
+ public function generateQGroup(title:String = '', random:Boolean = false, id:int = 0):QuestionGroup
457
+ {
458
+ ////trace("QuestionAnswerDataGrid::generateQGroup");
459
+ var qGroup:QuestionGroup = new QuestionGroup(title, null, random, id);
460
+ var arr:ArrayCollection = ArrayCollection(dataProvider);
461
+ var n:int = arr.length;
462
+ for(var i:int = 0; i < n-1; i++) // ignore placeholder
463
+ {
464
+ qGroup.addQuestion(arr.getItemAt(i).question);
465
+ }
466
+ // if we don't have a placeholder, add the last item too
467
+ if(n > 0 && arr.getItemAt(n-1).question.question.length > 0)
468
+ {
469
+ qGroup.addQuestion(arr.getItemAt(n-1).question);
470
+ }
471
+ return qGroup;
472
+ }
473
+ // similar to generate qGroup, but takes gets the data from a given dataprovider
474
+ // theDataProvider is formated as if it is used in a QuestionAnswerDataGrid
475
+ // this lets us get a qgroup from this kind of dataprovider without having to load it into a
476
+ // QuestionAnswerDataGrid
477
+ public static function generateQGroupFromDataProvider(theDataProvider:ArrayCollection,
478
+ title:String = '', random:Boolean = false, id:int = 0):QuestionGroup
479
+ {
480
+ var qGroup:QuestionGroup = new QuestionGroup(title, null, random, id);
481
+ var arr:ArrayCollection = theDataProvider;
482
+ var n:int = arr.length;
483
+ for(var i:int = 0; i < n-1; i++)
484
+ {
485
+ qGroup.addQuestion(arr.getItemAt(i).question);
486
+ }
487
+ if(n > 0 && arr.getItemAt(n-1).question.question.length > 0)
488
+ {
489
+ qGroup.addQuestion(arr.getItemAt(n-1).question);
490
+ }
491
+ return qGroup;
492
+ }
493
+ public function set answerHeaderLabel(label:String):void
494
+ {
495
+ answerColumn.headerText = label;
496
+ }
497
+ public function set indexLabelColor(label:int):void
498
+ {
499
+ _indexLabelColor = label;
500
+ }
501
+ public function get indexLabelColor():int
502
+ {
503
+ return _indexLabelColor;
504
+ }
505
+ public function set questionHeaderLabel(label:String):void
506
+ {
507
+ questionColumn.headerText = label;
508
+ }
509
+ public function set onInitAddInitialQuestion(addFirst:Boolean):void
510
+ {
511
+ _onInitAddInitialQuestion = addFirst;
512
+ }
513
+ // this should be given when creating this component
514
+ public function set questionsList(qList:ArrayCollection):void
515
+ {
516
+ _questionsList = qList;
517
+ }
518
+ public function refreshRowData(rowIndex:int):void
519
+ {
520
+ dataProvider.setItemAt(dataProvider.getItemAt(rowIndex), rowIndex);
521
+ }
522
+ public function setRowData(rowIndex:int, data:Object):void
523
+ {
524
+ dataProvider.setItemAt(data, rowIndex);
525
+ }
526
+ public function onDeleteItem(event:Event):void
527
+ {
528
+ deleteItem(event.target.parentDocument.data.rowIndex-1);
529
+ }
530
+ /**
531
+ * Updates the displayed index of each row starting with the one given
532
+ */
533
+ public function updateItemIndexes(startIndex:int = 0):void
534
+ {
535
+ if(dataProvider == null)
536
+ {
537
+ return;
538
+ }
539
+ for(var i:int = startIndex; i < dataProvider.length; i++)
540
+ {
541
+ dataProvider.getItemAt(i).rowIndex = i + 1;
542
+ }
543
+ }
544
+ /**
545
+ * Returns the item renderer at the given index.
546
+ * This is different from the indicesToItemRender function that returns
547
+ * an item renderer at a given recycled index.
548
+ *
549
+ * i.e.
550
+ * to access the item in the 37th row in the 4th column, call
551
+ * indicesToItemRendererUnrecycled(37, 4). If this item isn't visible,
552
+ * it return null.
553
+ * the original indicesToItemRender function returns the item at the visible
554
+ * indeces provided. if 100 items are on screen and items 20-30 are visible,
555
+ * indicesToItemRender(5, 0) returns the 5th visible element in the list which
556
+ * is equivalent to the 25th element in the list.
557
+ */
558
+ public function indicesToItemRendererUnrecycled(rowIndex:int, colIndex:int):IListItemRenderer
559
+ {
560
+ var firstItemIndex:int = verticalScrollPosition - offscreenExtraRowsTop;
561
+ if (rowIndex < firstItemIndex || rowIndex >= firstItemIndex + listItems.length)
562
+ {
563
+ return null;
564
+ }
565
+ return listItems[rowIndex - firstItemIndex][colIndex];
566
+ }
567
+ [Bindable (event='varChanged_numQuestions')]
568
+ public function get numQuestions():int
569
+ {
570
+ return dataProvider.length - 1;
571
+ }
572
+ protected function init():void
573
+ {
574
+ //trace("QuestionAnswerDataGrid::init");
575
+ }
576
+ /**
577
+ * Update item indexes whenever an item is dropped after dragging.
578
+ * Also makes sure that if we drag an item below the empty
579
+ * "Click To Add Item" placeholder, we swap the last two elements
580
+ * so the placeholder stays at the bottom.
581
+ */
582
+ override protected function dragDropHandler(event:DragEvent):void
583
+ {
584
+ super.dragDropHandler(event);
585
+ // if we dropped below the last item (the placeholder), swap the
586
+ // placeholder back down
587
+ if(calculateDropIndex(event) > dataProvider.length - 1 && dataProvider.length > 1)
588
+ {
589
+ var temp:Object = dataProvider[dataProvider.length - 1];
590
+ dataProvider[dataProvider.length - 1] = dataProvider[dataProvider.length - 2];
591
+ dataProvider[dataProvider.length - 2] = temp;
592
+ }
593
+ // update the item indexes
594
+ updateItemIndexes(0);
595
+ }
596
+ /**
597
+ * Overridedn to prevent dragging of the last item (the placeholder)
598
+ */
599
+ override protected function dragStartHandler(event:DragEvent):void
600
+ {
601
+ if(selectedIndex == dataProvider.length - 1)
602
+ {
603
+ return;
604
+ }
605
+ super.dragStartHandler(event);
606
+ }
607
+ // Attempt to slow down mouse wheel:
608
+ override protected function mouseWheelHandler(event:MouseEvent):void
609
+ {
610
+ if(event.delta > 0)
611
+ {
612
+ event.delta = Math.max(1, event.delta / 8);
613
+ }
614
+ else
615
+ {
616
+ event.delta = -Math.max(1, Math.abs(event.delta / 8));
617
+ }
618
+
619
+ super.mouseWheelHandler(event);
620
+ }
621
+ protected function onCreationComplete():void
622
+ {
623
+ if (_onInitAddInitialQuestion !== false)
624
+ {
625
+ addQuestion(null, false, true);
626
+ }
627
+ validateMe(null);
628
+ if (_questionsList != null)
629
+ {
630
+ // make the data provider based on the questions list
631
+ for (var i:int = 0; i < _questionsList.length; i++)
632
+ {
633
+ // Need to cast each question to widget's Question class
634
+ addQuestion((getNewQuestionClass())(_questionsList.getItemAt(i)), false);
635
+ }
636
+ }
637
+ // Add listeners to temporarily disable dragging (i.e. when selecting text)
638
+ // These events are bubbled from TextInputItem
639
+ addEventListener(ENABLE_DRAGGING, enableDragging, false, 0, true);
640
+ addEventListener(DISABLE_DRAGGING, disableDragging, false, 0, true);
641
+ }
642
+ protected function validateMe(event:Event = null):void
643
+ {
644
+ try
645
+ {
646
+ this.validateNow();
647
+ dataProvider.refresh();
648
+ }
649
+ catch (e:Error)
650
+ {
651
+ trace("datagrid validation error");
652
+ }
653
+ }
654
+ /**
655
+ * Event triggered function that enables dragging.
656
+ * Called whenever focus leaves an input field (i.e. clicking
657
+ * somewhere to start dragging)
658
+ */
659
+ private function enableDragging(e:Event):void
660
+ {
661
+ if(draggingEnabled)
662
+ {
663
+ e.stopPropagation();
664
+ this.dragMoveEnabled = true;
665
+ this.dragEnabled = true;
666
+ this.dropEnabled = true;
667
+ }
668
+ }
669
+ /**
670
+ * Event triggered function that disables dragging.
671
+ * Called whenever focus enters an input field (i.e. selecting
672
+ * text). This makes it so the user can select text without the
673
+ * entire row going into drag mode.
674
+ */
675
+ private function disableDragging(e:Event):void
676
+ {
677
+ e.stopPropagation();
678
+ this.dragMoveEnabled = false;
679
+ this.dragEnabled = false;
680
+ this.dropEnabled = false;
681
+ }
682
+ private function onItemFocus(event:Event):void
683
+ {
684
+ // User selected placeholder, add a new question
685
+ if(selectedIndex == dataProvider.length-1)
686
+ {
687
+ addQuestion(null, false, true);
688
+ }
689
+ }
690
+ ]]>
691
+ </mx:Script>
692
+ </mx:DataGrid>