APIs

Show:
  1. /**
  2. SceneLoaderView Backbone View
  3. @class SceneLoaderView
  4. @constructor
  5. @return {Object} instantiated SceneLoaderView
  6. **/
  7. define(['jquery', 'backbone', 'SceneSelectionView'], function ($, Backbone, SceneSelectionView) {
  8.  
  9. BB.SERVICES.SCENES_LOADER_VIEW = 'SceneLoaderView';
  10.  
  11. var SceneLoaderView = Backbone.View.extend({
  12.  
  13. /**
  14. Constructor
  15. @method initialize
  16. **/
  17. initialize: function () {
  18. var self = this;
  19. self._listenResourceRemoved();
  20. BB.comBroker.setService(BB.SERVICES['SCENES_LOADER_VIEW'], self);
  21. self.listenTo(self.options.stackView, BB.EVENTS.SELECTED_STACK_VIEW, function (e) {
  22. if (e == self && !self.m_sceneEditorView) {
  23. self._render();
  24. }
  25. });
  26. },
  27.  
  28. /**
  29. Listen to when a resource is removed, and delete it from matching scenes
  30. @method _listenResourceRemoved
  31. **/
  32. _listenResourceRemoved: function () {
  33. var self = this;
  34. BB.comBroker.listen(BB.EVENTS.REMOVED_RESOURCE, function (e) {
  35. pepper.removeAllScenePlayersWithResource(e.edata);
  36. /*var sceneEditView = BB.comBroker.getService(BB.SERVICES['SCENE_EDIT_VIEW']);
  37. if (!_.isUndefined(sceneEditView)){
  38. var selectedSceneID = sceneEditView.getSelectedSceneID();
  39. BB.comBroker.fire(BB.EVENTS.LOAD_SCENE, this, null, selectedSceneID);
  40. }
  41. */
  42. });
  43. },
  44.  
  45. /**
  46. Draw UI settings (singleton event) including station poll slider and load corresponding modules
  47. @method _render
  48. **/
  49. _render: function () {
  50. var self = this;
  51. require(['SceneSliderView', 'SceneEditorView', 'ScenesToolbarView', 'StackView', 'AddBlockView', 'AddBlockLocationView', 'SceneCreatorView', 'SceneCreatorTemplateView'], function (SceneSliderView, SceneEditorView, ScenesToolbarView, StackView, AddBlockView, AddBlockLocationView, SceneCreatorView, SceneCreatorTemplateView) {
  52.  
  53. self.m_sceneSliderView = new SceneSliderView({
  54. el: Elements.SCENES_PANEL
  55. });
  56.  
  57. self.m_sceneSelector = new SceneSelectionView({
  58. stackView: self.m_sceneSliderView,
  59. el: Elements.SCENE_SELECTOR,
  60. to: Elements.SCENE_ADD_NEW_BLOCK
  61. });
  62.  
  63. self.m_sceneAddBlockView = new AddBlockView({
  64. stackView: self.m_sceneSliderView,
  65. from: Elements.SCENE_SLIDER_ELEMENT_VIEW,
  66. el: Elements.SCENE_ADD_NEW_BLOCK,
  67. placement: BB.CONSTS.PLACEMENT_SCENE
  68. });
  69. BB.comBroker.setService(BB.SERVICES.ADD_SCENE_BLOCK_VIEW, self.m_sceneAddBlockView);
  70.  
  71. self.m_sceneCreatorView = new SceneCreatorView({
  72. stackView: self.m_sceneSliderView,
  73. from: Elements.SCENE_SELECTOR,
  74. to: Elements.SCENE_CREATOR_TEMPLATE,
  75. el: Elements.SCENE_CREATOR
  76. });
  77.  
  78. self.m_sceneCreatorTemplateView = new SceneCreatorTemplateView({
  79. stackView: self.m_sceneSliderView,
  80. from: Elements.SCENE_SELECTOR,
  81. el: Elements.SCENE_CREATOR_TEMPLATE
  82. });
  83.  
  84.  
  85. self.m_sceneAddBlockLocationView = new AddBlockLocationView({
  86. stackView: self.m_sceneSliderView,
  87. from: Elements.SCENE_SLIDER_ELEMENT_VIEW,
  88. el: Elements.GOOGLE_MAPS_SCENE_LOCATION,
  89. placement: BB.CONSTS.PLACEMENT_SCENE
  90. });
  91. BB.comBroker.setService(BB.SERVICES.ADD_BLOCK_LOCATION_SCENE_VIEW, self.m_sceneAddBlockLocationView);
  92.  
  93. self.m_sceneEditorView = new SceneEditorView({
  94. stackView: self.m_sceneSliderView,
  95. el: Elements.SCENE_SLIDER_ELEMENT_VIEW
  96. });
  97.  
  98. self.m_sceneSliderView.addView(self.m_sceneSelector);
  99. self.m_sceneSliderView.addView(self.m_sceneEditorView);
  100. self.m_sceneSliderView.addView(self.m_sceneAddBlockView);
  101. self.m_sceneSliderView.addView(self.m_sceneCreatorView);
  102. self.m_sceneSliderView.addView(self.m_sceneCreatorTemplateView);
  103. self.m_sceneSliderView.selectView(self.m_sceneSelector);
  104. });
  105. }
  106. });
  107.  
  108. return SceneLoaderView;
  109. });
  110.  
  111.