Пытаюсь создать и использовать собственный элемент управления основанный на ListView. По поводу создания никаких проблем (создать модуль и унаследоваться от модуля компонента). Вопрос, как создать элемент управления в клиентской схеме?
Нравится
Здравствуйте, Иван!
Реализация зависит от того, какая именно версия bpmonline используется (выше или ниже 7.3), но ключевым является указание свойства "className" при добавлении контрола. Пример с кнопкой для 7.3 и выше:
{ "operation": "insert", "name": "DataGridActiveRowOpenAction", "parentName": "DataGrid", "propertyName": "activeRowActions", "values": { "className": "Terrasoft.Button", "style": Terrasoft.controls.ButtonEnums.style.BLUE, "caption": {"bindTo": "Resources.Strings.OpenRecordGridRowButtonCaption"}, "tag": "edit" } },
Пример для 7.2 и ниже:
var btnConfig = { type: ConfigurationEnums.CustomViewModelSchemaItem.CUSTOM_ELEMENT, className: 'Terrasoft.Button', caption: "Кнопка", style: Terrasoft.controls.ButtonEnums.style.GREEN, enabled: true, click: { bindTo: 'sayHello' } }; this.schema.leftPanel.push(btnConfig);
Также можно создавать конфиг с помощью Ext.create:
var buttonsConfig = Ext.create('Terrasoft.Button', { imageConfig: resources.localizableImages.CloseIcon, style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT, classes: {wrapperClass: 'close-btn-user-class'}, selectors: { wrapEl: '#googlemap' }, click: {bindTo: 'onClickCloseMaps'} });
В этом случае можно также сразу указать свойство renderTo, передв туда контейнер, в который будет помещен контрол, тогда контрол сразу будет отрисован, иначе нужно будет вызывать метод render(renderTo). Это должно работать примерно одинаково для всех версий 7.х.