whole_func_string: function init () {
  
      $mdUtil.initOptionalProperties($scope, $attrs, {
        searchText: '',
        selectedItem: null,
        clearButton: false
      });
  
      $mdTheming($element);
      configureWatchers();
      $mdUtil.nextTick(function () {
  
        gatherElements();
        moveDropdown();
  
        // Forward all focus events to the input element when autofocus is enabled
        if ($scope.autofocus) {
          $element.on('focus', focusInputElement);
        }
      });
    }
func_code_string: function init () {
  
      $mdUtil.initOptionalProperties($scope, $attrs, {
        searchText: '',
        selectedItem: null,
        clearButton: false
      });
  
      $mdTheming($element);
      configureWatchers();
      $mdUtil.nextTick(function () {
  
        gatherElements();
        moveDropdown();
  
        // Forward all focus events to the input element when autofocus is enabled
        if ($scope.autofocus) {
          $element.on('focus', focusInputElement);
        }
      });
    }
func_documentation_string: -- initialization methods 
  Initialize the controller, setup watchers, gather elements