// ==========================================================================
//  
//  Author:   jsandoe
//
//  Copyright (c) 2015 by The Concord Consortium, Inc. All rights reserved.
//
//  Licensed under the Apache License, Version 2.0 (the "License");
//  you may not use this file except in compliance with the License.
//  You may obtain a copy of the License at
//
//    http://www.apache.org/licenses/LICENSE-2.0
//
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS,
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  See the License for the specific language governing permissions and
//  limitations under the License.
// ==========================================================================

DG.CaseTableDropTarget = SC.View.extend(SC.SplitChild, (function () {

      return {
        classNames: 'dg-table-drop-target'.w(),
        layout: { width: 50 },
        isDropTarget: true,
        isDragInProgress: false,
        isDragEntered: false,
        minimumSize: 10,
        size: 30,
        dropData: null,

        childViews: 'labelView'.w(),

        classNameBindings: [
          'isDragInProgress:dg-table-drop-target-show',
          'isDragEntered:dg-table-drop-target-highlight'
        ],

        labelView: SC.LabelView.extend({
          value: '',
          layout: {
            left: 2, right: 2, top: 2, bottom: 2
          }
        }),

        showDropHint: function () {
          this.labelView.set('value', 'DG.CaseTableDropTarget.dropMessage'.loc());
        },

        hideDropHint: function () {
          this.labelView.set('value', '');
        },

        isValidAttribute: function( iDrag) {
          var tDragAttr = iDrag.data.attribute;
          return !SC.none( tDragAttr);
        },

        computeDragOperations: function( iDrag) {
          if( this.isValidAttribute( iDrag))
            return SC.DRAG_LINK;
          else
            return SC.DRAG_NONE;
        },

        dragStarted: function( iDrag) {
          this.set('isDragInProgress', true);
          DG.log('dragStarted');
        },

        dragEnded: function () {
          this.set('isDragInProgress', false);
          DG.log('dragEnded');
        },

        dragEntered: function( iDragObject, iEvent) {
          this.showDropHint();
          this.set('isDragEntered', true);
          DG.log('dragEntered');
        },

        dragExited: function( iDragObject, iEvent) {
          this.hideDropHint();
          this.set('isDragEntered', false);
          DG.log('dragExited');
        },

        acceptDragOperation: function() {
          return YES;
        },

        performDragOperation:function ( iDragObject, iDragOp ) {
          this.set('dropData', iDragObject.data);
          DG.log('Got drop: ' + iDragObject.data.attribute.name);
          DG.log('Got dropOp: ' + iDragOp);
        }
      };
    }())
);
@@ -907,16 +907,36 @@
 eturn %7B%0A
+        name: null,%0A
         
@@ -1028,20 +1028,72 @@
 Target: 
-true
+function () %7B%0A          return YES;%0A        %7D.property()
 ,%0A      
@@ -2209,41 +2209,8 @@
 e);%0A
-          DG.log('dragStarted');%0A
     
@@ -2208,32 +2208,32 @@
 ue);%0A        %7D,%0A
+
 %0A        dragEnd
@@ -2301,39 +2301,8 @@
 e);%0A
-          DG.log('dragEnded');%0A
     
@@ -2441,41 +2441,8 @@
 e);%0A
-          DG.log('dragEntered');%0A
     
@@ -2581,40 +2581,8 @@
 e);%0A
-          DG.log('dragExited');%0A
     
@@ -2726,24 +2726,24 @@
 iDragOp ) %7B%0A
+
           th
@@ -2784,118 +2784,8 @@
 a);%0A
-          DG.log('Got drop: ' + iDragObject.data.attribute.name);%0A          DG.log('Got dropOp: ' + iDragOp);%0A
     

Remove logging from CaseTableDropTarget, add a name property and convert isDropTarget to a method.