|
@@ -19,7 +19,6 @@
|
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
// THE SOFTWARE.
|
|
// THE SOFTWARE.
|
|
|
//
|
|
//
|
|
|
-import HostInteropType from "../interop";
|
|
|
|
|
import * as ClientExtensionServices from "./ClientExtensionServices";
|
|
import * as ClientExtensionServices from "./ClientExtensionServices";
|
|
|
|
|
|
|
|
// Initialize and configure the extensions
|
|
// Initialize and configure the extensions
|
|
@@ -34,26 +33,15 @@ import tbExtension from "./languageExtensions/turbobadger/TurboBadgerLanguageExt
|
|
|
export class ClientServiceLocatorType implements Editor.ClientExtensions.ClientServiceLocator {
|
|
export class ClientServiceLocatorType implements Editor.ClientExtensions.ClientServiceLocator {
|
|
|
|
|
|
|
|
constructor() {
|
|
constructor() {
|
|
|
- this.services = new ClientExtensionServices.ExtensionServiceRegistry();
|
|
|
|
|
- this.services.subscribeToEvents(this);
|
|
|
|
|
|
|
+ this.clientServices = new ClientExtensionServices.WebViewServicesProvider();
|
|
|
|
|
+ this.clientServices.subscribeToEvents(this);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private services: ClientExtensionServices.ExtensionServiceRegistry;
|
|
|
|
|
private eventDispatcher: Editor.Extensions.EventDispatcher = new ClientExtensionServices.EventDispatcher();
|
|
private eventDispatcher: Editor.Extensions.EventDispatcher = new ClientExtensionServices.EventDispatcher();
|
|
|
- private userPreferences = {};
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * Sets the preferences for the service locator
|
|
|
|
|
- * @param {any} prefs
|
|
|
|
|
- * @return {[type]}
|
|
|
|
|
- */
|
|
|
|
|
- setPreferences(prefs : any) {
|
|
|
|
|
- this.userPreferences = prefs;
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
|
|
+ clientServices: ClientExtensionServices.WebViewServicesProvider;
|
|
|
loadService(service: Editor.ClientExtensions.ClientEditorService) {
|
|
loadService(service: Editor.ClientExtensions.ClientEditorService) {
|
|
|
try {
|
|
try {
|
|
|
- this.services.register(service);
|
|
|
|
|
service.initialize(this);
|
|
service.initialize(this);
|
|
|
} catch (e) {
|
|
} catch (e) {
|
|
|
alert(`Extension Error:\n Error detected in extension ${service.name}\n \n ${e.stack}`);
|
|
alert(`Extension Error:\n Error detected in extension ${service.name}\n \n ${e.stack}`);
|
|
@@ -82,35 +70,6 @@ export class ClientServiceLocatorType implements Editor.ClientExtensions.ClientS
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /** Methods available to extensions **/
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * Returns the Host Interop module
|
|
|
|
|
- * @return {Editor.ClientExtensions.HostInterop}
|
|
|
|
|
- */
|
|
|
|
|
- getHostInterop(): Editor.ClientExtensions.HostInterop {
|
|
|
|
|
- return HostInteropType.getInstance();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * Return a preference value or the provided default from the user settings file
|
|
|
|
|
- * @param {string} extensionName name of the extension the preference lives under
|
|
|
|
|
- * @param {string} preferenceName name of the preference to retrieve
|
|
|
|
|
- * @param {number | boolean | string} defaultValue value to return if pref doesn't exist
|
|
|
|
|
- * @return {number|boolean|string}
|
|
|
|
|
- */
|
|
|
|
|
- getUserPreference(extensionName: string, preferenceName: string, defaultValue?: number | boolean | string): number | boolean | string {
|
|
|
|
|
- if (this.userPreferences) {
|
|
|
|
|
- let extensionPrefs = this.userPreferences["extensions"];
|
|
|
|
|
- if (extensionPrefs && extensionPrefs[extensionName]) {
|
|
|
|
|
- return extensionPrefs[extensionName][preferenceName] || defaultValue;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // if all else fails
|
|
|
|
|
- return defaultValue;
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Singleton service locator that can be referenced
|
|
// Singleton service locator that can be referenced
|