From 0ad1785335c1fd4bb42d45e252fc4414959f4844 Mon Sep 17 00:00:00 2001
From: Amanda Ghassaei <amandaghassaei@gmail.com>
Date: Tue, 2 Jun 2015 14:21:04 -0700
Subject: [PATCH] ribbon through require

---
 js/main.js         |   7 +--
 js/menus/Ribbon.js | 132 +++++++++++++++++++++++----------------------
 2 files changed, 71 insertions(+), 68 deletions(-)

diff --git a/js/main.js b/js/main.js
index 18550b93..fb896c99 100644
--- a/js/main.js
+++ b/js/main.js
@@ -27,6 +27,7 @@ requirejs.config({
         //UI
         navbar: 'menus/Navbar',
         navViewMenu: 'menus/NavViewMenu',//view dropdown
+        ribbon: 'menus/Ribbon',
         menuWrapper: 'menus/MenuWrapperView',
         menuParent: 'menus/MenuParentView',
         latticeMenu: 'menus/LatticeMenuView',
@@ -61,12 +62,12 @@ requirejs.config({
 });
 
 //init stuff
-requirejs(['appState', 'lattice', 'menuWrapper', 'navbar', 'threeModel', 'threeView', 'analytics', 'flatUI'],
-    function(appState, lattice, MenuWrapper, Navbar, three, ThreeView){
+requirejs(['appState', 'lattice', 'menuWrapper', 'navbar', 'ribbon', 'threeModel', 'threeView', 'analytics', 'flatUI'],
+    function(appState, lattice, MenuWrapper, Navbar, Ribbon, three, ThreeView){
 
     new MenuWrapper({model:appState});
     new Navbar({model:appState});
-//    new Ribbon({model:appState});
+    new Ribbon({model:appState});
 
     new ThreeView({model:three});
 
diff --git a/js/menus/Ribbon.js b/js/menus/Ribbon.js
index e1d224a3..10169cb5 100644
--- a/js/menus/Ribbon.js
+++ b/js/menus/Ribbon.js
@@ -2,73 +2,75 @@
  * Created by fab on 3/18/15.
  */
 
-
-Ribbon = Backbone.View.extend({
-
-    el: "#navRibbon",
-
-    events: {
-        "click .ribbonCellMode":                                 "_updateCellMode",
-        "click .ribbonDeleteMode":                               "_updateDeleteMode",
-        "click .highlightMode":                                  "_updateHighlightMode",
-        "click .cellsVisible":                                   "_updateCellVisibility"
-    },
-
-    initialize: function(){
-
-        _.bindAll(this, "render");
-
-        this.listenTo(this.model, "change:ribbonIsVisible", this._changeVisibility);
-        this.listenTo(this.model, "change:cellMode", this.render);
-        this.listenTo(this.model, "change:deleteMode", this.render);
-        this.listenTo(this.model, "change:highlightMode", this.render);
-        this.listenTo(this.model, "change:cellsVisible", this.render);
-        this.listenTo(globals.lattice, "change:cellType change:connectionType", this.render);
-        this.render();
-    },
-
-    _updateCellMode: function(e){
-        e.preventDefault();
-        globals.appState.set("cellMode", $(e.target).data("type"));
-    },
-
-    _updateDeleteMode: function(e){
-        e.preventDefault();
-        globals.appState.set("deleteMode", !globals.appState.get("deleteMode"));
-    },
-
-    _updateHighlightMode: function(e){
-        e.preventDefault();
-        globals.appState.set("highlightMode", !globals.appState.get("highlightMode"));
-    },
-
-    _updateCellVisibility: function(e){
-        e.preventDefault();
-        globals.appState.set("cellsVisible", !globals.appState.get("cellsVisible"));
-    },
-
-    _changeVisibility: function(){
-        var state = this.model.get("ribbonIsVisible");
-        if (state) this.$el.show();
-        else this.$el.hide();
-    },
-
-    render: function(){
-        this.$el.html(this.template(_.extend(globals.lattice.toJSON(), this.model.toJSON(), globals.plist)));
-    },
-
-    template: _.template('\
-        <div class="btn-toolbar">\
-            <div class="btn-group">\
-              <a data-type="cell" class="btn btn-primary btn-ribbon ribbonCellMode<% if (cellMode == "cell"){ %> ribbon-selected<% } %>" href="#"><img data-type="cell" src="assets/imgs/cell-sm.png"></a>\
-              <% if (allPartTypes[cellType][connectionType]){ %>\
-              <a data-type="part" class="btn btn-primary btn-ribbon ribbonCellMode<% if (cellMode == "part"){ %> ribbon-selected<% } %>" href="#"><img data-type="part" src="assets/imgs/part-sm.png"></a>\
-              <% } %>\
-              <a class="btn btn-primary btn-ribbon ribbonDeleteMode<% if (deleteMode){ %> ribbon-selected"<% } %>"><span class="fui-cross"></span></a>\
+define(['jquery', 'underscore', 'backbone', 'lattice', 'plist'], function($, _, Backbone, lattice, plist){
+
+    return Backbone.View.extend({
+
+        el: "#navRibbon",
+
+        events: {
+            "click .ribbonCellMode":                                 "_updateCellMode",
+            "click .ribbonDeleteMode":                               "_updateDeleteMode",
+            "click .highlightMode":                                  "_updateHighlightMode",
+            "click .cellsVisible":                                   "_updateCellVisibility"
+        },
+
+        initialize: function(){
+
+            _.bindAll(this, "render");
+
+            this.listenTo(this.model, "change:ribbonIsVisible", this._changeVisibility);
+            this.listenTo(this.model, "change:cellMode", this.render);
+            this.listenTo(this.model, "change:deleteMode", this.render);
+            this.listenTo(this.model, "change:highlightMode", this.render);
+            this.listenTo(this.model, "change:cellsVisible", this.render);
+            this.listenTo(lattice, "change:cellType change:connectionType", this.render);
+            this.render();
+        },
+
+        _updateCellMode: function(e){
+            e.preventDefault();
+            this.model.set("cellMode", $(e.target).data("type"));
+        },
+
+        _updateDeleteMode: function(e){
+            e.preventDefault();
+            this.model.set("deleteMode", !this.model.get("deleteMode"));
+        },
+
+        _updateHighlightMode: function(e){
+            e.preventDefault();
+            this.model.set("highlightMode", !this.model.get("highlightMode"));
+        },
+
+        _updateCellVisibility: function(e){
+            e.preventDefault();
+            this.model.set("cellsVisible", !this.model.get("cellsVisible"));
+        },
+
+        _changeVisibility: function(){
+            var state = this.model.get("ribbonIsVisible");
+            if (state) this.$el.show();
+            else this.$el.hide();
+        },
+
+        render: function(){
+            this.$el.html(this.template(_.extend(lattice.toJSON(), this.model.toJSON(), plist)));
+        },
+
+        template: _.template('\
+            <div class="btn-toolbar">\
+                <div class="btn-group">\
+                  <a data-type="cell" class="btn btn-primary btn-ribbon ribbonCellMode<% if (cellMode == "cell"){ %> ribbon-selected<% } %>" href="#"><img data-type="cell" src="assets/imgs/cell-sm.png"></a>\
+                  <% if (allPartTypes[cellType][connectionType]){ %>\
+                  <a data-type="part" class="btn btn-primary btn-ribbon ribbonCellMode<% if (cellMode == "part"){ %> ribbon-selected<% } %>" href="#"><img data-type="part" src="assets/imgs/part-sm.png"></a>\
+                  <% } %>\
+                  <a class="btn btn-primary btn-ribbon ribbonDeleteMode<% if (deleteMode){ %> ribbon-selected"<% } %>"><span class="fui-cross"></span></a>\
+                </div>\
             </div>\
-        </div>\
-        ')
+            ')
 
+    });
 });
 
 //<a class="btn btn-primary btn-ribbon highlightMode<% if (highlightMode){ %> ribbon-selected<% } %>" href="#"><img data-type="part" src="assets/imgs/cursor-light.png"></a>\
-- 
GitLab