Browse Source

Remove custom JSComponent inspector code in favor of generic data binding

Josh Engebretson 10 years ago
parent
commit
018c747f62

+ 2 - 55
Script/AtomicEditor/ui/frames/inspector/ComponentInspector.ts

@@ -123,7 +123,8 @@ class ComponentInspector extends Atomic.UISection {
 
 
 
 
         if (component.typeName == "JSComponent") {
         if (component.typeName == "JSComponent") {
-            this.addJSComponentUI(attrsVerticalLayout);
+            // auto expand JSComponents
+            this.value = 1;
         }
         }
 
 
         if (component.typeName == "TileMap2D") {
         if (component.typeName == "TileMap2D") {
@@ -264,60 +265,6 @@ class ComponentInspector extends Atomic.UISection {
         }
         }
 
 
 
 
-    }
-
-    addJSComponentUI(layout: Atomic.UILayout) {
-
-        var js = <Atomic.JSComponent> this.component;
-
-        // expand prefab
-        this.value = 1;
-
-        var o = InspectorUtils.createAttrEditFieldWithSelectButton("Script", layout);
-        var field = o.editField;
-        field.readOnly = true;
-        field.text = js.componentFile ? js.componentFile.name : "";
-
-        var select = o.selectButton;
-
-        select.onClick = () => {
-
-            EditorUI.getModelOps().showResourceSelection("Select JSComponent Script", "JavascriptImporter", function(asset: ToolCore.Asset) {
-
-                js.componentFile = <Atomic.JSComponentFile> Atomic.cache.getResource("JSComponentFile", asset.path);
-
-                if (js.componentFile)
-                    field.text = js.componentFile.name;
-
-            });
-
-        }
-
-        // handle dropping of component on field
-        field.subscribeToEvent(field, "DragEnded", (ev: Atomic.DragEndedEvent) => {
-
-            if (ev.target == field) {
-
-                var importer = this.acceptAssetDrag("JavascriptImporter", ev);
-
-                if (importer) {
-
-                    var jsImporter = <ToolCore.JavascriptImporter> importer;
-
-                    if (jsImporter.isComponentFile()) {
-
-                        js.componentFile = <Atomic.JSComponentFile> Atomic.cache.getResource("JSComponentFile", importer.asset.path);
-                        if (js.componentFile)
-                            ev.target.text = js.componentFile.name;
-
-                    }
-
-                }
-            }
-
-        });
-
-
     }
     }
 
 
 
 

+ 3 - 0
Script/TypeScript/ToolCore.d.ts

@@ -335,11 +335,14 @@ declare module ToolCore {
 
 
    export class JavascriptImporter extends AssetImporter {
    export class JavascriptImporter extends AssetImporter {
 
 
+      resource: Atomic.Resource;
+
       // Construct.
       // Construct.
       constructor(asset: Asset);
       constructor(asset: Asset);
 
 
       setDefaults(): void;
       setDefaults(): void;
       isComponentFile(): boolean;
       isComponentFile(): boolean;
+      getResource(): Atomic.Resource;
 
 
    }
    }
 
 

+ 17 - 0
Source/ToolCore/Assets/JavascriptImporter.cpp

@@ -4,10 +4,13 @@
 #include <Atomic/Resource/ResourceCache.h>
 #include <Atomic/Resource/ResourceCache.h>
 #include <Atomic/Resource/Image.h>
 #include <Atomic/Resource/Image.h>
 
 
+#include <AtomicJS/Javascript/JSComponentFile.h>
+
 #include "Asset.h"
 #include "Asset.h"
 #include "AssetDatabase.h"
 #include "AssetDatabase.h"
 #include "JavascriptImporter.h"
 #include "JavascriptImporter.h"
 
 
+
 namespace ToolCore
 namespace ToolCore
 {
 {
 
 
@@ -76,5 +79,19 @@ bool JavascriptImporter::SaveSettingsInternal()
     return true;
     return true;
 }
 }
 
 
+Resource* JavascriptImporter::GetResource()
+{
+    if (!isComponentFile_)
+        return 0;
+
+    ResourceCache* cache = GetSubsystem<ResourceCache>();
+
+    JSComponentFile* jsc = cache->GetResource<JSComponentFile>(asset_->GetPath());
+
+    return jsc;
+
+}
+
+
 
 
 }
 }

+ 2 - 0
Source/ToolCore/Assets/JavascriptImporter.h

@@ -19,6 +19,8 @@ public:
 
 
     bool IsComponentFile() { return isComponentFile_; }
     bool IsComponentFile() { return isComponentFile_; }
 
 
+    Resource* GetResource();
+
 protected:
 protected:
 
 
     bool Import();
     bool Import();