code: function(object, property, options) {
  
      OptionController.superclass.call(this, object, property);
  
      var _this = this;
  
      /**
       * The drop down menu
       * @ignore
       */
      this.__select = document.createElement('select');
  
      if (common.isArray(options)) {
        var map = {};
        common.each(options, function(element) {
          map[element] = element;
        });
        options = map;
      }
  
      common.each(options, function(value, key) {
  
        var opt = document.createElement('option');
        opt.innerHTML = key;
        opt.setAttribute('value', value);
        _this.__select.appendChild(opt);
  
      });
  
      // Acknowledge original value
      this.updateDisplay();
  
      dom.bind(this.__select, 'change', function() {
        var desiredValue = this.options[this.selectedIndex].value;
        _this.setValue(desiredValue);
      });
  
      this.domElement.appendChild(this.__select);
  
    }
docs: @class Provides a select input to alter the property of an object, using a
  list of accepted values.
  
  @extends dat.controllers.Controller
  
  @param {Object} object The object to be manipulated
  @param {string} property The name of the property to be manipulated
  @param {Object|string[]} options A map of labels to acceptable values, or
  a list of acceptable string values.
  
  @member dat.controllers