code: function TextDND(view, undoStack) {
  		this._view = view;
  		this._undoStack = undoStack;
  		this._dragSelection = null;
  		this._dropOffset = -1;
  		this._dropText = null;
  		var self = this;
  		this._listener = {
  			onDragStart: function (evt) {
  				self._onDragStart(evt);
  			},
  			onDragEnd: function (evt) {
  				self._onDragEnd(evt);
  			},
  			onDragEnter: function (evt) {
  				self._onDragEnter(evt);
  			},
  			onDragOver: function (evt) {
  				self._onDragOver(evt);
  			},
  			onDrop: function (evt) {
  				self._onDrop(evt);
  			},
  			onDestroy: function (evt) {
  				self._onDestroy(evt);
  			}
  		};
  		view.addEventListener("DragStart", this._listener.onDragStart); //$NON-NLS-0$
  		view.addEventListener("DragEnd", this._listener.onDragEnd); //$NON-NLS-0$
  		view.addEventListener("DragEnter", this._listener.onDragEnter); //$NON-NLS-0$
  		view.addEventListener("DragOver", this._listener.onDragOver); //$NON-NLS-0$
  		view.addEventListener("Drop", this._listener.onDrop); //$NON-NLS-0$
  		view.addEventListener("Destroy", this._listener.onDestroy); //$NON-NLS-0$
  	}
docs: $NON-NLS-1$ //$NON-NLS-0$