/** */ Ext.define("Terrasoft.Designers.PackageDependenciesDiagramViewModel", { extend: "Terrasoft.Designers.ProcessSchemaDesignerViewModel", alternateClassName: "Terrasoft.PackageDependenciesDiagramViewModel", //region Methods: Private /** * Handler for event message. * @private * @param {Object} event Event data. */ onMessageReceived: function (event) { var response = Terrasoft.decode(event.browserEvent.data); if (response.message === "ReadMetaData") { this.loadProcessSchema(response); } }, /** * Loads process schema. * @private * @param {Object} response Server response. */ loadProcessSchema: function (response) { var metaData = response.metaData; var schema = Terrasoft.SchemaDesignerUtilities.createInstanceByMetaData({ metaData: metaData, schemaClassName: "Terrasoft.ProcessSchema", resources: response.resources }); this.onSchemaLoaded(schema); }, /** * Returns location origin. IE fix. * @private * @return {String} */ getLocationOrigin: function () { var origin = window.location.origin; if (!origin) { origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ":" + window.location.port : ""); } return origin; }, /** * Sends to server message of process schema changes. * @param {Object} requestJson Request JSON object. */ sendMessage: function (requestJson) { var message = Terrasoft.encode(requestJson); var locationOrigin = this.getLocationOrigin(); window.parent.postMessage(message, locationOrigin); }, //endregion //region Methods: Protected /** * @inheritdoc Terrasoft.Designers.BaseProcessSchemaDesignerViewModel#init * @override */ init: function () { Ext.EventManager.addListener(window, "message", this.onMessageReceived, this); this.sendMessage({ message: "GetMetaData" }); }, /** * @inheritdoc Terrasoft.Designers.BaseProcessSchemaDesignerViewModel#onSchemaLoaded * @override */ onSchemaLoaded: function (schema) { this.loadItems(schema); this.fireEvent("initialized", this); } //endregion });