-
Amanda Ghassaei authoredAmanda Ghassaei authored
NavViewMenu.js 3.30 KiB
/**
* Created by aghassaei on 5/27/15.
*/
define(['jquery', 'underscore', 'backbone'], function($, _, Backbone){
return Backbone.View.extend({
el: "#navViewMenu",
events: {
"click a.boolProperty": "_makeSelection",
"click #reset3DView": "_reset3DNavigation"
},
initialize: function(){
_.bindAll(this, "render");
},
_makeSelection: function(e){
e.preventDefault();
var $target = $(e.target);
var property = $target.data("property");
var owner = this._getPropertyOwner($target);
if (owner) owner.set(property, !owner.get(property));
},
_getPropertyOwner: function($target){
if ($target.hasClass("appState")) return this.model;
console.warn("no owner found for " + $target);
return null;
},
_reset3DNavigation: function(){
e.preventDefault();
},
render: function(){
this.$el.html(this.template(this.model.toJSON()));
var self = this;
_.each($(".boolProperty"), function(item){
var $item = $(item);
if (self.model.get($item.data("property"))) $item.html('<span class="fui-check"></span>' + $item.html());
})
},
template: _.template('\
<li class="dropdown-submenu">\
<a tabindex="-1">UI<span class="pull-right fui-arrow-right"></span></a>\
<ul class="dropdown-menu">\
<li><a class="appState boolProperty" data-property="menuIsVisible" href="#">Menu</a></li>\
<li><a class="appState boolProperty" data-property="scriptIsVisible" href="#">Script</a></li>\
<li><a class="appState boolProperty" data-property="consoleIsVisible" href="#">Console</a></li>\
<li><a class="appState boolProperty" data-property="ribbonIsVisible" href="#">Ribbon</a></li>\
</ul></li>\
<li class="dropdown-submenu">\
<a tabindex="-1">3D UI<span class="pull-right fui-arrow-right"></span></a>\
<ul class="dropdown-menu">\
<li><a class="appState boolProperty" data-property="basePlaneIsVisible" href="#">Sketch Plane</a></li>\
<li><a class="appState boolProperty" data-property="highlighterIsVisible" href="#">Hover Tool</a></li>\
</ul></li>\
<li class="dropdown-submenu">\
<a tabindex="-1">Rendering<span class="pull-right fui-arrow-right"></span></a>\
<ul class="dropdown-menu">\
<li><a class="appState boolProperty" data-property="renderAmbientOcclusion" href="#">Ambient Occlusion</a></li>\
<li><a class="appState boolProperty" data-property="realisticColorScheme" href="#">Realistic Color Scheme</a></li>\
</ul></li>\
<li class="dropdown-submenu">\
<a tabindex="-1">3D<span class="pull-right fui-arrow-right"></span></a>\
<ul class="dropdown-menu">\
<li><a class="appState boolProperty" data-property="axesAreVisible" href="#">Axes</a></li>\
<li><a id="reset3DView" href="#">Reset 3D Navigation</a></li>\
</ul></li>\
')
});
});