code: function(site) {
  		this._detachListeners();
  		this._modelListeners = this._modelListeners || [];
  
  		var editor = this;
  		function bindText(widget, modelField) {
  			function commitWidgetValue(event) {
  				var value = widget.value; //$NON-NLS-0$
  				var oldValue = site[modelField];
  				site[modelField] = value;
  				var isChanged = oldValue !== value;
  				editor.setDirty(isChanged || editor.isDirty());
  			}
  			widget.addEventListener("input", commitWidgetValue); //$NON-NLS-0$
  			editor._modelListeners.push({target: widget, type: "input", listener: commitWidgetValue}); //$NON-NLS-0$
  		}
  
  		bindText(this.name, messages["Name"]);
  		bindText(this.hostHint, messages["HostHint"]);
  
  		var dirtyListener = function(dirtyEvent) {
  			editor.setDirty(dirtyEvent.value);
  		};
  		this.mappings.addEventListener("dirty", dirtyListener); //$NON-NLS-0$
  		this._modelListeners.push({target: this.mappings, type: "dirty", listener: dirtyListener}); //$NON-NLS-0$
  	}
docs: Hook up listeners that perform form widget -> model updates.
  @param site {SiteConfiguration}