APIs

Show:
/**
 SceneLoaderView Backbone View
 @class SceneLoaderView
 @constructor
 @return {Object} instantiated SceneLoaderView
 **/
define(['jquery', 'backbone', 'SceneSelectionView'], function ($, Backbone, SceneSelectionView) {

    BB.SERVICES.SCENES_LOADER_VIEW = 'SceneLoaderView';

    var SceneLoaderView = Backbone.View.extend({

        /**
         Constructor
         @method initialize
         **/
        initialize: function () {
            var self = this;
            self._listenResourceRemoved();
            BB.comBroker.setService(BB.SERVICES['SCENES_LOADER_VIEW'], self);
            self.listenTo(self.options.stackView, BB.EVENTS.SELECTED_STACK_VIEW, function (e) {
                if (e == self && !self.m_sceneEditorView) {
                    self._render();
                }
            });
        },

        /**
         Listen to when a resource is removed, and delete it from matching scenes
         @method _listenResourceRemoved
         **/
        _listenResourceRemoved: function () {
            var self = this;
            BB.comBroker.listen(BB.EVENTS.REMOVED_RESOURCE, function (e) {
                pepper.removeAllScenePlayersWithResource(e.edata);
                /*var sceneEditView = BB.comBroker.getService(BB.SERVICES['SCENE_EDIT_VIEW']);
                 if (!_.isUndefined(sceneEditView)){
                 var selectedSceneID = sceneEditView.getSelectedSceneID();
                 BB.comBroker.fire(BB.EVENTS.LOAD_SCENE, this, null, selectedSceneID);
                 }
                 */
            });
        },

        /**
         Draw UI settings (singleton event) including station poll slider and load corresponding modules
         @method _render
         **/
        _render: function () {
            var self = this;
            require(['SceneSliderView', 'SceneEditorView', 'ScenesToolbarView', 'StackView', 'AddBlockView', 'AddBlockLocationView', 'SceneCreatorView', 'SceneCreatorTemplateView'], function (SceneSliderView, SceneEditorView, ScenesToolbarView, StackView, AddBlockView, AddBlockLocationView, SceneCreatorView, SceneCreatorTemplateView) {

                self.m_sceneSliderView = new SceneSliderView({
                    el: Elements.SCENES_PANEL
                });

                self.m_sceneSelector = new SceneSelectionView({
                    stackView: self.m_sceneSliderView,
                    el: Elements.SCENE_SELECTOR,
                    to: Elements.SCENE_ADD_NEW_BLOCK
                });

                self.m_sceneAddBlockView = new AddBlockView({
                    stackView: self.m_sceneSliderView,
                    from: Elements.SCENE_SLIDER_ELEMENT_VIEW,
                    el: Elements.SCENE_ADD_NEW_BLOCK,
                    placement: BB.CONSTS.PLACEMENT_SCENE
                });
                BB.comBroker.setService(BB.SERVICES.ADD_SCENE_BLOCK_VIEW, self.m_sceneAddBlockView);

                self.m_sceneCreatorView = new SceneCreatorView({
                    stackView: self.m_sceneSliderView,
                    from: Elements.SCENE_SELECTOR,
                    to: Elements.SCENE_CREATOR_TEMPLATE,
                    el: Elements.SCENE_CREATOR
                });

                self.m_sceneCreatorTemplateView = new SceneCreatorTemplateView({
                    stackView: self.m_sceneSliderView,
                    from: Elements.SCENE_SELECTOR,
                    el: Elements.SCENE_CREATOR_TEMPLATE
                });


                self.m_sceneAddBlockLocationView = new AddBlockLocationView({
                    stackView: self.m_sceneSliderView,
                    from: Elements.SCENE_SLIDER_ELEMENT_VIEW,
                    el: Elements.GOOGLE_MAPS_SCENE_LOCATION,
                    placement: BB.CONSTS.PLACEMENT_SCENE
                });
                BB.comBroker.setService(BB.SERVICES.ADD_BLOCK_LOCATION_SCENE_VIEW, self.m_sceneAddBlockLocationView);

                self.m_sceneEditorView = new SceneEditorView({
                    stackView: self.m_sceneSliderView,
                    el: Elements.SCENE_SLIDER_ELEMENT_VIEW
                });

                self.m_sceneSliderView.addView(self.m_sceneSelector);
                self.m_sceneSliderView.addView(self.m_sceneEditorView);
                self.m_sceneSliderView.addView(self.m_sceneAddBlockView);
                self.m_sceneSliderView.addView(self.m_sceneCreatorView);
                self.m_sceneSliderView.addView(self.m_sceneCreatorTemplateView);
                self.m_sceneSliderView.selectView(self.m_sceneSelector);
            });
        }
    });

    return SceneLoaderView;
});