InspectorFrame.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import EditorEvents = require("../../editor/EditorEvents");
  2. import ScriptWidget = require("../ScriptWidget");
  3. import DataBinding = require("./DataBinding");
  4. // inspectors
  5. import MaterialInspector = require("./MaterialInspector");
  6. import ModelInspector = require("./ModelInspector");
  7. import NodeInspector = require("./NodeInspector");
  8. class InspectorFrame extends ScriptWidget {
  9. constructor() {
  10. super();
  11. this.gravity = Atomic.UI_GRAVITY_TOP_BOTTOM;
  12. this.load("AtomicEditor/editor/ui/inspectorframe.tb.txt");
  13. var container = this.getWidget("inspectorcontainer");
  14. this.subscribeToEvent(EditorEvents.EditResource, (data) => this.handleEditResource(data));
  15. this.subscribeToEvent("EditorActiveNodeChange", (data) => this.handleActiveNodeChange(data));
  16. }
  17. handleEditResource(ev: EditorEvents.EditResourceEvent) {
  18. var path = ev.path;
  19. var db = ToolCore.getAssetDatabase();
  20. var asset = db.getAssetByPath(path);
  21. if (asset) {
  22. this.inspectAsset(asset);
  23. }
  24. }
  25. handleActiveNodeChange(data) {
  26. var node = <Atomic.Node> data.node;
  27. if (!node) {
  28. return;
  29. }
  30. this.inspectNode(node);
  31. }
  32. inspectAsset(asset: ToolCore.Asset) {
  33. if (asset.importerTypeName == "ModelImporter") {
  34. var container = this.getWidget("inspectorcontainer");
  35. container.deleteAllChildren();
  36. var inspector = new ModelInspector();
  37. container.addChild(inspector);
  38. inspector.inspect(asset);
  39. }
  40. if (asset.importerTypeName == "MaterialImporter") {
  41. var cache = Atomic.getResourceCache();
  42. var material = <Atomic.Material> cache.getResource("Material", asset.path);
  43. if (!material) {
  44. return;
  45. }
  46. var container = this.getWidget("inspectorcontainer");
  47. container.deleteAllChildren();
  48. var materialInspector = new MaterialInspector();
  49. container.addChild(materialInspector);
  50. materialInspector.inspect(asset, material);
  51. }
  52. }
  53. inspectNode(node: Atomic.Node) {
  54. if (!node) return;
  55. var container = this.getWidget("inspectorcontainer");
  56. container.deleteAllChildren();
  57. var inspector = new NodeInspector();
  58. container.addChild(inspector);
  59. inspector.inspect(node);
  60. }
  61. }
  62. export = InspectorFrame;