# viewerDragDropMixin

#### viewerDragDropMixin(viewer, options)
Widgets/Viewer/viewerDragDropMixin.js 54

  A mixin which adds default drag and drop support for CZML files to the Viewer widget. Rather than being called directly, this function is normally passed as a parameter to `Viewer#extend`, as shown in the example below.

  Name | Type | Description
  --- | --- | ---
  `viewer` | Viewer | The viewer instance.

  `options`

  Object

  optional Object with the following properties:

  Name | Type | Default | Description
  --- | --- | --- | ---
  `dropTarget` | Element | String | `viewer.container` | optional The DOM element which will serve as the drop target.
  `clearOnDrop` | Boolean | `true` | optional When true, dropping files will clear all existing data sources first, when false, new data sources will be loaded after the existing ones.
  `flyToOnDrop` | Boolean | `true` | optional When true, dropping files will fly to the data source once it is loaded.
  `clampToGround` | Boolean | `true` | optional When true, datasources are clamped to the ground.
  `proxy` | DefaultProxy |  | optional The proxy to be used for KML network links.

  ##### Throws:

  - DeveloperError : Element with id <options.dropTarget> does not exist in the document.
  - DeveloperError : dropTarget is already defined by another mixin.
  - DeveloperError : dropEnabled is already defined by another mixin.
  - DeveloperError : dropError is already defined by another mixin.
  - DeveloperError : clearOnDrop is already defined by another mixin.

  ##### Example:

      // Add basic drag and drop support and pop up an alert window on error.
      var viewer = new Cesium.Viewer('cesiumContainer');
      viewer.extend(Cesium.viewerDragDropMixin);
      viewer.dropError.addEventListener(function(viewerArg, source, error) {
          window.alert('Error processing ' + source + ':' + error);
      });

### Members

#### clampToGround : Boolean
Widgets/Viewer/viewerDragDropMixin.js 192

  Gets or sets a value indicating if the datasources should be clamped to the ground

#### clearOnDrop : Boolean
Widgets/Viewer/viewerDragDropMixin.js 150

  Gets or sets a value indicating if existing data sources should be cleared before adding the newly dropped sources.

#### dropEnabled : Element
Widgets/Viewer/viewerDragDropMixin.js 118

  Gets or sets a value indicating if drag and drop support is enabled.

#### dropError : Event
Widgets/Viewer/viewerDragDropMixin.js 139

  Gets the event that will be raised when an error is encountered during drop processing.

#### dropTarget : Element
Widgets/Viewer/viewerDragDropMixin.js 95

  Gets or sets the element to serve as the drop target.

#### flyToOnDrop : Boolean
Widgets/Viewer/viewerDragDropMixin.js 164

  Gets or sets a value indicating if the camera should fly to the data source after it is loaded.

#### proxy : DefaultProxy
Widgets/Viewer/viewerDragDropMixin.js 178

  Gets or sets the proxy to be used for KML.