APIs

Show:
  1. ///<reference path="../../typings/lite/app_references.d.ts" />
  2. var __extends = (this && this.__extends) || function (d, b) {
  3. for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
  4. function __() { this.constructor = d; }
  5. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  6. };
  7. //GULP_ABSTRACT_END
  8. define(['jquery', 'BlockJsonBase'], function ($, BlockJsonBase) {
  9. TSLiteModules.BlockJsonBase = BlockJsonBase;
  10. var BlockWorldWeather = (function (_super) {
  11. __extends(BlockWorldWeather, _super);
  12. function BlockWorldWeather(options) {
  13. this.m_options = options;
  14. this.m_blockType = 6010;
  15. _.extend(this.m_options, { blockType: this.m_blockType });
  16. _super.call(this);
  17. }
  18. /**
  19. Init sub class and super on base
  20. @method initialize
  21. **/
  22. BlockWorldWeather.prototype.initialize = function () {
  23. var self = this;
  24. _super.prototype.initialize.call(this, this.m_options);
  25. self.m_mimeType = 'Json.weather';
  26. self._initSettingsPanel();
  27. self._listenWeatherUnitsChanged();
  28. self._listenWeatherStyleChanged();
  29. self._listenWeatherAddressChanged();
  30. };
  31. /**
  32. Listen Weather units changed
  33. @method _listenWeatherUnitsChanged
  34. **/
  35. BlockWorldWeather.prototype._listenWeatherUnitsChanged = function () {
  36. var self = this;
  37. self.m_weatherUnitChangedHandler = function (e) {
  38. if (!self.m_selected)
  39. return;
  40. var value = $(Elements.WEATHER_UNIT + ' option:selected').val();
  41. var domPlayerData = self._getBlockPlayerData();
  42. var item = $(domPlayerData).find('Json').find('Data');
  43. $(item).attr('unit', value);
  44. self._setBlockPlayerData(domPlayerData, BB.CONSTS.NO_NOTIFICATION);
  45. };
  46. $(Elements.WEATHER_UNIT).on('change', self.m_weatherUnitChangedHandler);
  47. };
  48. /**
  49. Listen weather style changed
  50. @method _listenWeatherStyleChanged
  51. **/
  52. BlockWorldWeather.prototype._listenWeatherStyleChanged = function () {
  53. var self = this;
  54. self.m_weatherStyleChangedHandler = function (e) {
  55. if (!self.m_selected)
  56. return;
  57. var value = $(Elements.WEATHER_STYLE + ' option:selected').val();
  58. var domPlayerData = self._getBlockPlayerData();
  59. var item = $(domPlayerData).find('Json').find('Data');
  60. $(item).attr('style', value);
  61. self._setBlockPlayerData(domPlayerData, BB.CONSTS.NO_NOTIFICATION);
  62. };
  63. $(Elements.WEATHER_STYLE).on('change', self.m_weatherStyleChangedHandler);
  64. };
  65. /**
  66. Listen weather address changed
  67. @method _listenWeatherAddressChanged
  68. **/
  69. BlockWorldWeather.prototype._listenWeatherAddressChanged = function () {
  70. var self = this;
  71. self.m_weatherAddressChangedHandler = function (e) {
  72. if (!self.m_selected)
  73. return;
  74. var value = $(Elements.WEATHER_ADDRESS).val();
  75. var domPlayerData = self._getBlockPlayerData();
  76. var item = $(domPlayerData).find('Json').find('Data');
  77. $(item).attr('address', value);
  78. self._setBlockPlayerData(domPlayerData, BB.CONSTS.NO_NOTIFICATION);
  79. };
  80. $(Elements.WEATHER_ADDRESS).on('change', self.m_weatherAddressChangedHandler);
  81. };
  82. /**
  83. Init the settings panel that's used by Block common props for JSON based components
  84. @method _initSettingsPanel
  85. **/
  86. BlockWorldWeather.prototype._initSettingsPanel = function () {
  87. var self = this;
  88. self.m_blockProperty.initSettingsPanel(Elements.BLOCK_COMMON_SETTINGS_WEATHER);
  89. };
  90. /**
  91. Load block specific properties
  92. @override
  93. @method _loadBlockSpecificProps
  94. **/
  95. BlockWorldWeather.prototype._loadBlockSpecificProps = function () {
  96. var self = this;
  97. self.m_blockProperty.viewSettingsPanel(Elements.BLOCK_COMMON_SETTINGS_WEATHER);
  98. _super.prototype._loadBlockSpecificProps.call(this);
  99. };
  100. /**
  101. Populate UI
  102. @method _populate
  103. **/
  104. BlockWorldWeather.prototype._populate = function () {
  105. var self = this;
  106. _super.prototype._populate.call(this);
  107. var domPlayerData = self._getBlockPlayerData();
  108. var $data = $(domPlayerData).find('Json').find('Data');
  109. var unit = $data.attr('unit');
  110. var style = $data.attr('style');
  111. var address = $data.attr('address');
  112. $(Elements.WEATHER_UNIT).selectpicker('val', unit);
  113. $(Elements.WEATHER_STYLE).selectpicker('val', style);
  114. $(Elements.WEATHER_ADDRESS).val(address);
  115. };
  116. /**
  117. Delete this block
  118. @method deleteBlock
  119. @params {Boolean} i_memoryOnly if true only remove from existance but not from msdb
  120. **/
  121. BlockWorldWeather.prototype.deleteBlock = function (i_memoryOnly) {
  122. var self = this;
  123. $(Elements.WEATHER_UNIT).off('change', self.m_weatherUnitChangedHandler);
  124. $(Elements.WEATHER_STYLE).off('change', self.m_weatherStyleChangedHandler);
  125. $(Elements.WEATHER_ADDRESS).off('change', self.m_weatherAddressChangedHandler);
  126. _super.prototype.deleteBlock.call(this, i_memoryOnly);
  127. };
  128. return BlockWorldWeather;
  129. })(TSLiteModules.BlockJsonBase);
  130. return BlockWorldWeather;
  131. });
  132. //# sourceMappingURL=BlockWorldWeather.js.map