From f9a23b504fc04371b9be7427eb3936b3f9de07d6 Mon Sep 17 00:00:00 2001
From: Amanda Ghassaei <amandaghassaei@gmail.com>
Date: Sun, 1 Feb 2015 13:42:59 -0500
Subject: [PATCH] default connection types and part types

---
 js/menus/LatticeMenuView.js | 37 +++++++++++++++++++++++++++++++++----
 js/menus/PartMenuView.js    | 10 +++++++++-
 js/models/Lattice.js        |  5 +++--
 3 files changed, 45 insertions(+), 7 deletions(-)

diff --git a/js/menus/LatticeMenuView.js b/js/menus/LatticeMenuView.js
index 690230ee..1347e678 100644
--- a/js/menus/LatticeMenuView.js
+++ b/js/menus/LatticeMenuView.js
@@ -42,17 +42,46 @@ LatticeMenuView = Backbone.View.extend({
     _changeCellType: function(e){
         e.preventDefault();
         var cellType = $(e.target).data("type");
-        var currentCellType = this.model.get("cellType");
-        if (cellType != currentCellType){
-            if (currentCellType == "cube") this.model.set("connectionType", "face", {silent:true});
-        else if (currentCellType == "octa") this.model.set("connectionType", "face", {silent:true});
+
+        //reset everything to defaults silently
+        if (cellType != this.model.get("cellType")){
+            this._setLatticeToDefaultsSilently(cellType);
         }
         this.model.set("cellType", cellType);
     },
 
+    _setLatticeToDefaultsSilently: function(newCellType, newConnectionType){
+        if (newCellType == "cube") {
+            if (!newConnectionType){
+                newConnectionType = "face";
+                this.model.set("connectionType", newConnectionType, {silent:true});
+            }
+            this.model.set("connectionType", newConnectionType, {silent:true});
+            if (newConnectionType == "face"){
+                this.model.set("partType", null, {silent:true});
+            }
+        }
+        else if (newCellType == "octa") {
+            if (!newConnectionType){
+                newConnectionType = "face";
+                this.model.set("connectionType", newConnectionType, {silent:true});
+            }
+            if (newConnectionType == "face"){
+                this.model.set("partType", "triangle", {silent:true});
+            } else if (newConnectionType == "edge"){
+                this.model.set("partType", "triangle", {silent:true});
+            } else if (newConnectionType == "vertex"){
+                this.model.set("partType", "square", {silent:true});
+            }
+        }
+    },
+
     _changeConnectionType: function(e){
         e.preventDefault();
         var connectionType = $(e.target).data("type");
+        if (connectionType != this.model.get("connectionType")){
+            this._setLatticeToDefaultsSilently(this.model.get("cellType"), connectionType);
+        }
         this.model.set("connectionType", connectionType);
     },
 
diff --git a/js/menus/PartMenuView.js b/js/menus/PartMenuView.js
index 664db085..50f28204 100644
--- a/js/menus/PartMenuView.js
+++ b/js/menus/PartMenuView.js
@@ -24,7 +24,15 @@ PartMenuView = Backbone.View.extend({
     },
 
     template: _.template('\
-        Part Type: &nbsp;&nbsp;<%= partType %><br/>\
+        Part Type: &nbsp;&nbsp;\
+        <div class="btn-group">\
+                <button data-toggle="dropdown" class="btn dropdown-toggle" type="button"><%= allPartTypes[cellType][connectionType][partType] %><span class="caret"></span></button>\
+                <ul role="menu" class="dropdown-menu">\
+                    <% _.each(_.keys(allPartTypes[cellType][connectionType]), function(key){ %>\
+                        <li><a class="partType" data-type="<%= key %>" href="#"><%= allPartTypes[cellType][connectionType][key] %></a></li>\
+                    <% }); %>\
+                </ul>\
+            </div><br/><br/>\
         Column Separation:<br/>\
         ')
 
diff --git a/js/models/Lattice.js b/js/models/Lattice.js
index 5bf88bd9..1deb9964 100644
--- a/js/models/Lattice.js
+++ b/js/models/Lattice.js
@@ -17,8 +17,8 @@ Lattice = Backbone.Model.extend({
         allPartTypes:{
             octa:{
                 face: {triangle:"Triangle"},
-                edge: {traingle:"Triangle"},
-                vertex:{square:"Square", x:"X"}
+                edge: {triangle:"Triangle"},
+                vertex:{square:"Square", xShape:"X"}
             },
             cube:{
                 face: null
@@ -229,6 +229,7 @@ Lattice = Backbone.Model.extend({
     },
 
     _changeLatticeStructure: function(){
+        console.log("amanda");
         this.clearCells();
         this.get("basePlane").updateGeometry(this.get("cellType"), this.get("connectionType"), this.get("scale"));
     },
-- 
GitLab