From dafecd3f479fd8c10d91336bd3082137a61c520f Mon Sep 17 00:00:00 2001
From: Amanda Ghassaei <amandaghassaei@gmail.com>
Date: Thu, 26 Mar 2015 02:56:56 -0400
Subject: [PATCH] cell visibility

---
 css/main.css          | 14 +++++++++-----
 js/menus/Ribbon.js    | 10 +++++++++-
 js/models/AppState.js |  1 +
 js/models/Lattice.js  |  6 ++++++
 4 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/css/main.css b/css/main.css
index f84278ef..13487c6b 100644
--- a/css/main.css
+++ b/css/main.css
@@ -250,7 +250,7 @@ input.numberInput{
 
 #navRibbon{
     height: 49px;
-    width: 320px;
+    width: 370px;
     z-index: 1;
     display: block;
     position: absolute;
@@ -272,11 +272,15 @@ input.numberInput{
     height: 49px;
 }
 
+.btn-ribbon span{
+    font-size: 28px!important;
+    display: block;
+    margin-top: 4px!important;
+    color: #7C7B7B;
+}
+
 .fui-cross{
-  font-size: 28px!important;
-  display: block;
-  margin-top: 4px!important;
-  color: #B50303;
+  color: #B50303!important;
 }
 
 .ribbon-selected {
diff --git a/js/menus/Ribbon.js b/js/menus/Ribbon.js
index 4c269fa9..e811836d 100644
--- a/js/menus/Ribbon.js
+++ b/js/menus/Ribbon.js
@@ -10,7 +10,8 @@ Ribbon = Backbone.View.extend({
     events: {
         "click .cellModeBtn":                                    "_updateCellMode",
         "click .deleteMode":                                     "_updateDeleteMode",
-        "click .highlightMode":                                  "_updateHighlightMode"
+        "click .highlightMode":                                  "_updateHighlightMode",
+        "click .cellsVisible":                                   "_updateVisibility"
     },
 
     initialize: function(){
@@ -20,6 +21,7 @@ Ribbon = Backbone.View.extend({
         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(dmaGlobals.lattice, "change:cellType change:connectionType", this.render);
         this.render();
     },
@@ -39,6 +41,11 @@ Ribbon = Backbone.View.extend({
         dmaGlobals.appState.set("highlightMode", !dmaGlobals.appState.get("highlightMode"));
     },
 
+    _updateVisibility: function(e){
+        e.preventDefault();
+        dmaGlobals.appState.set("cellsVisible", !dmaGlobals.appState.get("cellsVisible"));
+    },
+
     render: function(){
         this.$el.html(this.template(_.extend(dmaGlobals.lattice.toJSON(), this.model.toJSON())));
     },
@@ -50,6 +57,7 @@ Ribbon = Backbone.View.extend({
               <% if (allPartTypes[cellType][connectionType]){ %>\
               <a data-type="part" class="btn btn-primary btn-ribbon cellModeBtn<% if (cellMode == "part"){ %> ribbon-selected<% } %>" href="#"><img data-type="part" src="assets/imgs/part-sm.png"></a>\
               <% } %>\
+              <a class="btn btn-primary btn-ribbon cellsVisible<% if (cellsVisible){ %> ribbon-selected<% } %>" href="#"><span class="fui-eye"></span></a>\
               <a class="btn btn-primary btn-ribbon highlightMode<% if (highlightMode){ %> ribbon-selected<% } %>" href="#"><img data-type="part" src="assets/imgs/cursor-light.png"></a>\
               <a class="btn btn-primary btn-ribbon deleteMode<% if (deleteMode){ %> ribbon-selected"<% } %>"><span class="fui-cross"></span></a>\
             </div>\
diff --git a/js/models/AppState.js b/js/models/AppState.js
index e1b81f50..595c0743 100644
--- a/js/models/AppState.js
+++ b/js/models/AppState.js
@@ -138,6 +138,7 @@ AppState = Backbone.Model.extend({
         highlightMode: true,
         extrudeMode: false,
         cellMode: "cell",//show cells vs part
+        cellsVisible: true,
 
         stockSimulationPlaying: false,
         manualSelectOrigin: false//mode that allows user ot select origin from existing cell
diff --git a/js/models/Lattice.js b/js/models/Lattice.js
index a1eb829e..a05b3f3a 100644
--- a/js/models/Lattice.js
+++ b/js/models/Lattice.js
@@ -39,6 +39,7 @@ Lattice = Backbone.Model.extend({
         this.listenTo(this, "change:partType", this._updatePartType);
         this.listenTo(this, "change:cellType change:connectionType", this._updateLatticeType);
         this.listenTo(this, "change:cellSeparation", this._updateCellSeparation);
+        this.listenTo(options.appState, "change:cellsVisible", this._setCellVisibility);
     },
 
     delayedInit: function(){
@@ -352,6 +353,11 @@ Lattice = Backbone.Model.extend({
         this.get("basePlane").updateScale(scale);
     },
 
+    _setCellVisibility: function(){//todo maybe leave wireframes?
+        if (dmaGlobals.appState.get("cellsVisible")) this.showCells();
+        else this.hideCells();
+    },
+
     //hide show cells during stock simulation
     hideCells: function(){
         this._iterCells(this.get("cells"), function(cell){
-- 
GitLab