Наследование схем в мобильном приложении

Здравствуйте, уважаемые коллеги. Возник вопрос по мобильному приложению bpm'online.

Появилась необходимость заметить метод initialize из модуля "Terrasoft.view.BaseGridPage.View".

Сталкивался ли кто-то с подобной задачей? Помогите, пожалуйста. Пробовал создавать модуль, в котором писал extend: "Terrasoft.view.BaseGridPage.View", и подключал его в манифест. Сама схема подгружается, но метод вызывается только из родительской схемы.

Изображение удалено.

Нравится

5 комментариев
Лучший ответ

Федоровский Роман Дмитриевич,

Тогда для этой цели используйте override:

Ext.define("Terrasoft.BaseGridPageViewOverride", {
	override: "Terrasoft.BaseGridPageView",
 
	/**
	 * @protected
	 * @overridden
	 */
	initialize: function() {
		/* Your code */
		this.callParent(arguments);
	}
 
});

Только, пожалуйста, обращайте внимание на указанные области видимости методов (ни в коем случае не перекрывайте приватные методы).

Добрый день! Можете описать свою бизнес-задачу? Для какой цели вы хотите заменить initialize() в Terrasoft.view.BaseGridPage.View? Объясню свой вопрос: для ряда задач нет необходимости в расширении базовых классов или их замещению. Например, для изменения стилей страниц можно воспользоваться утилитным методом Terrasoft.util.writeStyles().

S.Kalishenko,

Мне нужно добавить элемент вроде QR-кода на экран, который будет на постоянной основе находиться на экране в момент открытия любого раздела в целях безопасности, для этого я в div главного окна из JS я добавляю автогенерируемый qr-код. Как применять стили страниц я понимаю.

Федоровский Роман Дмитриевич,

Тогда для этой цели используйте override:

Ext.define("Terrasoft.BaseGridPageViewOverride", {
	override: "Terrasoft.BaseGridPageView",
 
	/**
	 * @protected
	 * @overridden
	 */
	initialize: function() {
		/* Your code */
		this.callParent(arguments);
	}
 
});

Только, пожалуйста, обращайте внимание на указанные области видимости методов (ни в коем случае не перекрывайте приватные методы).

А как сгенерировать сам QR-код, пример есть здесь.

Большое спасибо! Это решило все мои проблемы. Прошу прощения за столь длительный ответ

Показать все комментарии