Browse Source

Support drag and drop in ResourceRef data bindings

Josh Engebretson 10 years ago
parent
commit
86b42d568b
1 changed files with 32 additions and 0 deletions
  1. 32 0
      Script/AtomicEditor/ui/frames/inspector/DataBinding.ts

+ 32 - 0
Script/AtomicEditor/ui/frames/inspector/DataBinding.ts

@@ -186,6 +186,37 @@ class DataBinding {
 
                 }
 
+                // handle dropping of component on field
+                o.editField.subscribeToEvent(o.editField, "DragEnded", (ev: Atomic.DragEndedEvent) => {
+
+                    if (ev.target == o.editField) {
+
+                        var dragObject = ev.dragObject;
+
+                        var importer;
+
+                        if (dragObject.object && dragObject.object.typeName == "Asset") {
+
+                            var asset = <ToolCore.Asset> dragObject.object;
+
+                            if (asset.importerTypeName == importerName) {
+                                importer = asset.importer;
+                            }
+
+                        }
+
+                        if (importer) {
+
+                            var resource = Atomic.cache.getResource(attrInfo.resourceTypeName, importer.asset.path);
+                            object.setAttribute(attrInfo.name, resource);
+                            if (resource)
+                                o.editField.text = resource.name;
+
+                        }
+                    }
+
+                });
+
                 widget = parent;
             }
 
@@ -385,6 +416,7 @@ class DataBinding {
 
     }
 
+
     handleWidgetEvent(ev: Atomic.UIWidgetEvent): boolean {
 
         if (this.objectLocked)