///
///
const InspectorBuilderServiceUILabel = "Inspector Builder";
//Add custom inspectors here
import ExampleInspector = require("./ExampleInspectors/ExampleInspector");
class InspectorBuilderService implements
Editor.HostExtensions.HostEditorService,
Editor.HostExtensions.ProjectServicesEventListener,
Editor.HostExtensions.UIServicesEventListener{
name: string = "InspectorBuilderService";
description: string = "This service provides custom inspector functionality.";
private serviceLocator: Editor.HostExtensions.HostServiceLocator = null;
initialize(serviceLoader: Editor.Extensions.ServiceLoader) {
Atomic.print("InspectorBuilder.initialize");
this.serviceLocator = (serviceLoader);
if (this.serviceLocator) {
this.serviceLocator.projectServices.register(this);
this.serviceLocator.uiServices.register(this);
}
}
projectUnloaded() {
this.serviceLocator.uiServices.removePluginMenuItemSource(InspectorBuilderServiceUILabel);
Atomic.print("InspectorBuilder.projectUnloaded");
if (this.serviceLocator) {
this.serviceLocator.projectServices.unregister(this);
this.serviceLocator.uiServices.unregister(this);
}
}
projectAssetClicked(asset: ToolCore.Asset): boolean {
Atomic.print("Inspector.projectAssetClicked with extension: " + asset.extension);
if (asset.extension == ".example") {
var exampleInspector = new ExampleInspector();
this.serviceLocator.uiServices.loadCustomInspector(exampleInspector);
exampleInspector.inspect(asset);
return true;
}
return false;
}
}
const inspectorBuilderService = new InspectorBuilderService();
export default inspectorBuilderService;