Main
Форма, которая создается внутри Root формы и содержит основные визуальные элементы управления (контролы WigetBar - панель виджетов, ApplicationPanel - контрол для отображения форм во вкладках, Ribbon - основной тулбар с кнопками).
Подклчение собственной главной формы
Создание корневой формы source/index.js
| //./source/index.js
//...
// Импортируем форму
import CustomMainForm from './forms/customMainForm'
//...
// в свойстве MainForm передаем CustomMainForm
new Root({ forms, widgets, routes, MainForm: CustomMainForm })
|
После этого получить доступ к экземпляру главной формы можно через свойство main сервиса application в контексте любой формы (this.services.application.main).
Сценарии использования собственной главной формы
Загрузка данных
Если в классе главной формы осуществлять загрузку данных, то она будет происходить после входа в приложение и полученные данные будут доступны в рамках всего приложения.
| //./source/forms/customMainForm.js
import { Main } from 'ecosoft-lexema8'
import User from '../models/helpDesk/user.model.json'
export class CustomMainForm extends Main {
static get dataCaches() {
return [User]
}
}
|
Настройка кнопок контрола Ribbon
| //./source/forms/customMainForm.js
import { Main } from 'ecosoft-lexema8'
import letterImg from 'current-theme/images/dark/letter.png'
export class CustomMainForm extends Main {
constructor (args) {
super(args)
// скрытие кнопки справки
this.controls.ribbon.tools.help.visible = false
// скрытие кнопки перехода на корневой маршрут
this.controls.ribbon.tools.root.visible = false
// добавление кнопоки
this.controls.ribbon.addItems([{
Ctor: Tool,
properties: {
id: 'myButton', // идентификатор кнопки
image: folderImg, // иконка
hint: 'test', // всплывающая подсказка
label: '3' // короткая подпись на кнопке
}
}])
this.controls.ribbon.tools.myButton.clicked.add(() => {
console.log('test')
})
}
}
|