InspectorBuilder.plugin.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /// <reference path="../../typings/Atomic/Atomic.d.ts" />
  2. /// <reference path="../../typings/Atomic/EditorWork.d.ts" />
  3. const InspectorBuilderServiceUILabel = "Inspector Builder";
  4. //Add custom inspectors here
  5. import ExampleInspector = require("./ExampleInspectors/ExampleInspector");
  6. class InspectorBuilderService implements
  7. Editor.HostExtensions.HostEditorService,
  8. Editor.HostExtensions.ProjectServicesEventListener,
  9. Editor.HostExtensions.UIServicesEventListener{
  10. name: string = "InspectorBuilderService";
  11. description: string = "This service provides custom inspector functionality.";
  12. private serviceLocator: Editor.HostExtensions.HostServiceLocator = null;
  13. initialize(serviceLoader: Editor.Extensions.ServiceLoader) {
  14. Atomic.print("InspectorBuilder.initialize");
  15. this.serviceLocator = <Editor.HostExtensions.HostServiceLocator>(serviceLoader);
  16. if (this.serviceLocator) {
  17. this.serviceLocator.projectServices.register(this);
  18. this.serviceLocator.uiServices.register(this);
  19. }
  20. }
  21. projectUnloaded() {
  22. this.serviceLocator.uiServices.removePluginMenuItemSource(InspectorBuilderServiceUILabel);
  23. Atomic.print("InspectorBuilder.projectUnloaded");
  24. if (this.serviceLocator) {
  25. this.serviceLocator.projectServices.unregister(this);
  26. this.serviceLocator.uiServices.unregister(this);
  27. }
  28. }
  29. projectAssetClicked(asset: ToolCore.Asset): boolean {
  30. Atomic.print("Inspector.projectAssetClicked with extension: " + asset.extension);
  31. if (asset.extension == ".example") {
  32. var exampleInspector = new ExampleInspector();
  33. this.serviceLocator.uiServices.loadCustomInspector(<Atomic.UIWidget>exampleInspector);
  34. exampleInspector.inspect(asset);
  35. return true;
  36. }
  37. return false;
  38. }
  39. }
  40. const inspectorBuilderService = new InspectorBuilderService();
  41. export default inspectorBuilderService;