Options
All
  • Public
  • Public/Protected
  • All
Menu

Class UITable<T>

Type parameters

  • T

Hierarchy

Implements

  • RequiredProperty<ITable<T>, StrictEventEmitter<EventEmitter, T>>
  • ITable<T>

Constructors

constructor

Properties

Optional addListener

addListener: TypeEventRecordListener<EventEmitter, T, "addListener">

alignItems

alignItems: AlignItems

Свойство указывает как выравнивать элементы. Выравнивание происходит поперек главной оси флекс контейнера.

Добавляет атрибут align-items в HTML элемент. Если свойство не задано, то атрибут не добавляется.

См. AlignItems.

Подробное описание способов выравнивания элементов смотрите здесь.

alignSelf

alignSelf: AlignSelf

Расплагает элемент в одну из девяти позиций:

  • по вертикали: top, center, bottom;
  • по горизонтали: left, center, right.

ПРИМЕР

export var list: IList = <IList>{
     ...
     alignSelf: AlignSelf.topCenter,
     ...
}

Если задано, то к html элементу добавляется соответствующий класс, например для элемента из примера topCenter.

Cм. AlignSelf

Подробное описание способов выравнивания элементов смотрите здесь.

allowOverflow

allowOverflow: boolean

Свойство указывает на наличие полосы прокрутки. Если значение true, то добавляет атрибут overflow-auto в HTML элемент.

allowSelectCell

allowSelectCell: boolean

Включает возможность выбирать ячейки таблицы. По умолчанию выбираются только строки.

bindingProperty

bindingProperty: string

Свойство указывающее на данные.

ПРИМЕР данных

const person = {
 "firstName": "Иван",
 "secondName": "Иванович",
}

ПРИМЕР описания формы, где в коментариях указано, какие данные будет содержать элемент, после установки данных AppManager.forms.setData('dataForm', person).

export var form: IForm = <IForm>{
    ...
    name: "dataForm",
    bindingProperty: '', //data = {"firstName": "Иван", "secondName": "Иванович"}
    elements: [
        <IProperty>{
            ...
            bindingProperty: 'firstName', //data = "Иван"
        },
        <IProperty>{
           ...
            bindingProperty: 'secondNamae', //data = "Иванович"
        },
        <IButton>{
            ...
            onClick: function () {
                alert("Data sent!")
            }
        },
   ]
}

Как система управляет данными в элементах формы смотрите {@link UseData | здесь}

bordered

bordered: boolean

Устанавливает окантовку элементу управления. По умолчанию false.

caption

caption: string

Заголовок элемента.

ПРИМЕР

export var list: IList = <IList>{
     ...
     caption: "Список продуктов",
     ...
}

Заголовок отображается в верхней части элемента. Например:

<div class='app ui-list' id='a57cf348' name='productsList'>
     'Список продуктов'
     <div class='menu fixed'>...</div>
     <div class='content flexible'>...</div>
<div>

Заголовок подставляется в текст элемента, если свойство IElement.value не задано, для следующих элементов: IElement, IDataElement, IButton, IMenuItem.

columns

columns: IColumn[] = ...

Массив с описанием колонок таблицы. Описание колонки таблицы смотрите IColumn.

contextMenu

Описывает контекстное меню элемента.

dom

dom: HTMLElement

Возвращает узел HTML элемента.

ПРИМЕР

export var list: IList = <IList>{
     ... ,
     onclick: function(form: IForm, elem: IList, item: IListItem): Promise<void> {
         var dom: HTMLElement = elem.dom; //IList inherit IElement
     }
}

domContent

domContent: HTMLElement

Возвращает узел HTML элемента контента. Так как IElement.dom разделяется на два элемента menu и content.

domContentEditable

domContentEditable: HTMLElement

domMenu

domMenu: HTMLElement

Возвращает узел HTML элемента меню. Так как IElement.dom разделяется на два элемента menu и content.

Optional emit

emit: TypeEmitRecord<EventEmitter, T>

flex

flex: Flex

Свойство, указывающее на способ позиционирования элемента внутри группы (по умолчанию гибкое - flexible):

  • гибкое (Flex.flexible) - элемент занимает все свободное место, В реальности элементу устанавливается свойство flex: 1 1 auto; т.е. он может растягиваться или сжиматься вдоль главной оси флекс контейнера.
  • фиксированное (Flex.fixed) - элемент занимает место ровно по своему размеру. В реальности элементу устанавливается свойство flex: 0 1 auto; т.е. он может только сжиматься вдоль главной оси флекс контейнера.

См. Flex.

form

Возвращает форму (IForm), которой принадлежит элемент.

ПРИМЕР

export var list: IList = <IList>{
     ... ,
     async onClick(e: IMouseEvent, form: IForm, elem: IList, item: IListItem): Promise<boolean> {
         var _form: IForm = elem.form; //IList inherit IElement
         return true;
     }
}

grided

grided: boolean

Устанавливает видимость сетки таблицы.

href

href: string

Устанавливает в элемент гиперссылку

let elem: IElement = <IElement>{
 type: 'IElement',
 href: 'https://ui-organizer.ru',
 value: 'ui-organizer',
}

Результат:

 <div class='app ui-element'>
    <a href='https://ui-organizer.ru'>ui-organizer</a>
 </div>

id

id: string

Возвращает идентификатор элемента. Идентификатор задается системой при создании элемента.

ПРИМЕР

export var list: IList = <IList>{
     ... ,
     async onСlick(event:UIMouseEvent, form: IForm, elem: IList, item: IListItem): Promise<void> {
         console.log(`Идентификатор элемента ${elem.id}`);
     }
}

Из идентификатора формируется атрибут id HTML элемента.

Результат следующий:

<div class="..." id="abcff8d5" />

По id, также осуществляется доступ к элементу формы из любого метода объекта:

AppManager.ActiveForm.getElementById('abcff8d5');

justifyContent

justifyContent: JustifyContent

Выравнивание текста внутри элемента. Так как все элементы являются флекс контейнерами, то и выравнивание внутри элемента или группы происходит с использованием HTML стиля justify-content.

Подробное описание способов выравнивания элементов смотрите здесь.

ПРИМЕР

export var someGroup: IGroup = <IGroup>{
     ...
     justifyContent: JustifyContent.start,
     ...
}

Если задано, то соответствующий класс будет добавлен к html элементу.

<div class='... left'/>
.left{
     justify-content: left
}

menu

Описывает меню элемента. Это меню встроится в элемент в соотвествии с {@link IMenuElement.menuPosition}.

menuPosition

menuPosition: Position

Указывает где разместить меню внутри элемента (top, bottom, left, right).

multipleSelect

multipleSelect: MultipleSelect

Включает возможность множественного выбора. Т.е. одновременно выбирать несколько строк.

Если задан ITable.allowSelectCell, то позволяет одновременно выбирать несколько ячеек.

name

name: string

Наименование элемента латиницей. Не должно содержать управляющих символов и пробелов. Необязательно.

ПРИМЕР

export var productsList: IList = <IList>{
     ...
     name: 'productsList',
     ...
}

Из названия формируется атрибут name HTML элемента.

Результат следующий:

<div class="..." name="productsList" />

По названию, также осуществляется доступ к элементу формы из любого метода объекта:

AppManager.ActiveForm.getElement('productsList');

Optional on

on: TypeEventRecordListener<EventEmitter, T, "on">

Optional once

once: TypeEventRecordListener<EventEmitter, T, "once">

owner

Возвращает элемент (наследник IContextElement), которому принадлежит этот элемент.

ПРИМЕР

export var elem: IElement = <IElement>{
     ... ,
     async onClick(e: IMouseEvent, form: IForm, elem: IElement, item: IElement): Promise<boolean> {
         var owner: IContextElement = elem.owner;
         return true;
     }
}

Элемент:

  • либо имеет значение в свойстве owner - это значит, что создан и принадлежит какому-то элементу (например, является элементом строки IList IListItem.element), - тогда свойство parent = undefined;
  • либо имеет значение в свойстве parent - это значит, что добавлен в группу IGroup.elements, - тогда свойство owner = undefined;
  • либо оба свойства undefined - это только у формы IForm.

parent

Возвращает родительскую группу (IGroup), которой принадлежит элемент.

ПРИМЕР

export var list: IList = <IList>{
     ... ,
     async onClick(e: IMouseEvent, form: IForm, elem: IList, item: IListItem): Promise<boolean> {
         var form: IGroup = elem.parent; //IList inherit IElement
         return true;
     }
}

Элемент:

  • либо имеет значение в свойстве owner - это значит, что создан и принадлежит какому-то элементу (например, является элементом строки IList {@link IList.element}), - тогда свойство parent = undefined;
  • либо имеет значение в свойстве parent - это значит, что добавлен в группу IGroup.elements, - тогда свойство owner = undefined;
  • либо оба свойства undefined - это только у формы IForm.

positionAbsolute

positionAbsolute: boolean

Устанавливает элемент в абсолютную позицию. Чаще испльзуется для задания контекстного меню или всплывающего диалога.

ПРИМЕР

export var list: IList = <IList>{
     ...
     positionAbsolute: true,
     ...
}

Если задано, и значение true, то к html элементу добавляется класс positionAbsolute. CSS

.positionAbsolute{
     position: absolute;
}

Optional prependListener

prependListener: TypeEventRecordListener<EventEmitter, T, "prependListener">

Optional prependOnceListener

prependOnceListener: TypeEventRecordListener<EventEmitter, T, "prependOnceListener">

readonly

readonly: boolean

Доступность элемента только для чтения.

ПРИМЕР

export var list: IList = <IList>{
     ...
     readonly: true,
     ...
}

Если значение true, то к html элементу добавляется класс readonly.

<div class="... readonly"/>

Optional removeListener

removeListener: TypeEventRecordListener<EventEmitter, T, "removeListener">

rows

rows: ItemsCollection<IRow>

Строки таблицы IRow. Внимание! Возвращает не массив, а список {@link ItemsCollection}.

showHeader

showHeader: boolean

Показвает header таблицы - названия столбцов.

size

size: string

tabindex

tabindex: number

Позволяет разработчикам делать элементы управления фокусируемыми, разрешать или запрещать их последовательную фокусировку (обычно с помощью клавиши tab, отсюда и название) и определять их относительный порядок для последовательной навигации между элементами формы

Порядок навигации (при нажатии клавиши tab) следующий:

  • Элементы с положительным tabIndex фокусируются в порядке номера tabIndex. Навигация осуществляется от самого низкого tabIndex к самому высокому tabIndex.
  • Элементы, у которых tabIndex = 0, и элементы, имеющие одинаковые tabIndex значения, фокусируются в порядке их расположения на форме.
  • Элементы с отрицательным tabIndex фокусируются только программно.

textSelect

textSelect: boolean

Возможность выделения текста внутри элемента на html странице.

ПРИМЕР

export var list: IList = <IList>{
     ...
     textSelect: false,
     ...
}

Если задано, и значение false, то к html элементу добавляется класс unselectable. CSS

.unselectable {
     user-select: none;
}

type

type: string = 'ITable'

Свойство, которое описывает тип объекта, который будет создан. Тип должет реализовывать этот интерфейс. В примере ниже тип UIList реализует интерфейс IList.

ПРИМЕР

export var list: IList = <IList>{
     type: 'IList',
     ...
}

По типу объекта формируется название класса HTML элемента. Для этого в начало типа добавляется префикс: "ui-".

Для html элемента объекта из примера результат следующий:

<div class="... ui-list" id="..." />

value

value: any

Устанавливает значения строк таблицы. Строки передаются в виде массива.

Ячейки строк могут передаваться в виде массива или в виде объекта.

Пример предачи ячеек строк в виде массива:

[
 ["Михаил", "м", "18"],
 ["Дмитрий", "м", "22"],
 ["Татьяна", "ж", "20"],
]

Пример передачи ячеек строк в виде объектов:

[
 {name:"Михаил", sex:"м", age:"18"},
 {name:"Дмитрий", sex:"м", age:"22"},
 {name:"Татьяна", sex:"ж", age:"20"},
]
  • Если передать непустой массив строк (например, [['Ячейка11', 'Ячейка11'],['Ячейка11', 'Ячейка11']]), то получим строки c запоненными ячейками с соответствующими значениями.
  • Если передать пустой массив строк (например, []), по получим пустую таблицу.
  • Если передать undefined, по получим пустую таблицу. Но в этом случае возможно заполнение таблицы данными вызовом метода ITable.setData.
let table: ITable = <ITable>{
    type: 'ITable',
    columns: [{},{}], //Описание столбцов
    value: [['Ячейка11', 'Ячейка11'],['Ячейка11', 'Ячейка11']]
}

Либо в процессе выполнения:

let table: ITable = <ITable>{
    type: 'ITable',
    columns: [{},{}], //Описание столбцов
    onAfterLoad: async function (event: UILoadEvent, form: IForm, elem: IContextElement) {
        elem.value = [['Ячейка11', 'Ячейка11'],['Ячейка11', 'Ячейка11']];
    }   
}

Результат следующий:

<div class='app ui-table' id='aa74f5f9'>
     <div class='menu fixed'>...</div>//Не добавляется если не указано свойство menu
     <div class='content flexible'>
         <table>
             //Сюда добавляются строки таблицы <tr>
         </table>
     </div>
<div>

В отличие от элементов IElement, IDataElement, IButton, IMenuItem, - IElement.caption и IElement.name не влияют на содержание

.

Если value == undefined, то значение устанавливается из данных при первоначальном заполнении и последующих вызовах метода setData() для всех наследников IDataElement.

visibility

visibility: boolean

Видимость элемента.

ПРИМЕР

export var list: IList = <IList>{
     ...
     visibility: true,
     ...
}

При установке значения генерируются события:

  • "show" при visibility = true,
  • "hide" при visibility = false.

ПРИМЕР прослушивания этих событий

function addListener(elem: IElement) {
     elem.on("hide", ()=>{
         console.log("Элемент скрыт");
     })
}

Methods

addClass

  • addClass(className: string): void
  • Добавляет класс к HTML элементу.

    ПРИМЕР

    function someFunction(elem: IElement) {
         elem.addClass("someClass");
    }
    

    РЕЗУЛЬТАТ

    <div class="someClass"></div>
    

    Parameters

    • className: string

    Returns void

addRow

  • addRow(value?: any): Promise<IRow>
  • Метод добавляет строку в таблицу.

    При добавлении строки в таблицу вызывается метод {@link ITable.onAddRow} и событие {@link ITableEvents.addRow}.

    Parameters

    • Optional value: any

    Returns Promise<IRow>

    Добавленная строка таблицы IRow.

addStyle

  • addStyle(property: string, value: string): void
  • Добавляет стиль к HTML элементу.

    addStyle('color', 'grey');
    

    Добавит к HTML элементу атрибут style:

    <div class='app ui-element' style='color:grey;'>
    

    Parameters

    • property: string
    • value: string

    Returns void

blur

  • blur(): Promise<void>
  • Убирает фокус с элемента.

    Returns Promise<void>

clear

  • clear(): Promise<void>
  • Удаляет строки таблицы

    Returns Promise<void>

clearSelected

  • clearSelected(): void
  • Снимает выделение со всех строк или ячеек.

    Returns void

collectData

  • collectData(data?: any): any
  • Собирает данные со всех подэлементов. Внутреннее свойство _data остается неизменным. т.е. метод getData() вернет данные, переданные изначально.

    Подробнее в getData().

    Parameters

    • Optional data: any

    Returns any

    Возвращаемые данные зависят от передаваемых данных.

edit

  • edit(elementId: string): Promise<string>
  • Вызывает режим редактирования таблицы (вызывается события beforeEdit и метод onBeforeEdit). Затем вызывается режим редактирования элемента ячейки (вызывается события beforeEdit и метод onBeforeEdit). Возвращает результат редактирования.

    Parameters

    • elementId: string

    Returns Promise<string>

focus

  • focus(): Promise<void>
  • Устанавливает фокус на элементе.

    Returns Promise<void>

getData

  • getData(data?: any): any
  • Получает данные элемента, записанные во внутреннем свойстве _data. Во внутреннем свойстве _data хранятся изначальные данные (если вы их, конечно, не изменяяете в методах) и не зависят от изменений подэлементов.

    ПРИМЕР сначала устанавливаем данные

    export var dataElem: IDataElement = <IDataElement>{
        type: 'IDataElement',
        name: 'dataElement',
        bindingProperty: "firstName"
    }
    ...
    (async function setData(){
         var elem = AppManager.activeForm.getElement("dataElement");
         await elem.setData({firstName: "Иван"});//во внутреннем свойстве elem._data сохранены данные "Иван".
    })();
    

    ПРИМЕР теперь получаем данные:

    • Если передать данные родительского элемента, тогда в передавемых данных изменится только атрибут, соответствующий свойству 'bindingProperty'.
         var elem = AppManager.activeForm.getElement("dataElement");
         console.log(elem.getData({firstName: "Петр", secondName: "Петров"}));
      
      РЕЗУЛЬТАТ
      {
         firstName: "Иван", 
         secondName: "Петров"
      }
      
    • Если передать данные, в которых нет атрибута, соответствующего свойству 'bindingProperty', тогда такой атрибут с данными элемента добавится.
         var elem = AppManager.activeForm.getElement("dataElement");
         console.log(elem.getData({}));
      
      РЕЗУЛЬТАТ
      {
         firstName: "Иван"
      }
      
    • Если передать undefined, тогда будут возвращены непосредственно данные элемента.
         var elem = AppManager.activeForm.getElement("dataElement");
         console.log(elem.getData(undefined));
      
      РЕЗУЛЬТАТ
      "Иван"
      

    Parameters

    • Optional data: any

    Returns any

    Возвращаемые данные зависят от передаваемых данных.

getElement

getSelectedCells

  • getSelectedCells(): ICell[]
  • Возвращает выделенные ячейки таблицы, если задано свойство таблицы ITable.allowSelectCell. Иначе возвращает всегда пустой массив.

    Если не разрешено выделение ячеек используйте метод ITable.getSelectedRows.

    Returns ICell[]

getSelectedRows

  • getSelectedRows(): IRow[]
  • Возвращает выделенные строки таблицы.

    Если задано свойство таблицы ITable.allowSelectCell, то возвращает всегда пустой массив. В этом случае используйте метод ITable.getSelectedCells.

    Returns IRow[]

getType

  • getType(): string
  • Возвращает название типа элемента: "RuntimeElement", "RuntimeDataElement" и т.д.

    Returns string

hasClass

  • hasClass(className: string): boolean
  • Проверяет наличие класса в HTML элементе.

    Parameters

    • className: string

    Returns boolean

isFocused

  • isFocused(): boolean

isType

  • isType(type: string | typeof UIElement): this
  • Проверяет тип элемента. Тип элемента, который определен в свойстве IElement.type.

    Parameters

    • type: string | typeof UIElement

    Returns this

onAfterAddRow

  • Метод, который вызывается после добавления строки таблицы.

    let table: ITable = <ITable>{
        type: 'ITable',
        async onAfterAddRow(event: UIRowEvent, form: IForm, elem: ITable): Promise<void>{
             console.log(`Элемент ${event.row.value} установлен`);
        }   
    }
    

    Добавленная строка IRow доступна в объекте события UIRowEvent.row

    Parameters

    Returns Promise<void>

onAfterEdit

  • Этот метод вызывается после редактирования элемента в результате вызова метода IElement.edit.

    Для получения или изменения значения после редактирования используйте UIEditEvent.value.

    По завершении метода результат редактирования UIEditEvent.value будет подставлен в IElement.value.

    Так как редактирование завершено вызов UIEditEvent.stop игнорируется.

    На данные (если элемент - наследник IDataElement) возвращаемое значение никак не влияет. Если вы хотите изменить данные элемента вызывайте метод this.setData(...).

    ПРИМЕР

    export var form: IForm = <IForm>{
         type: 'IForm',
         name: "emptyForm",
         ...
         elements: [
             <IElement> {
                 type: 'IElement',
                 name: 'elem',
                 async onAfterEdit(editEvent:UIEditEvent, form: IForm, elem: IElement, item:IElement): Promise<void> {
                     editEvent.value = 'prefix-' + editEvent.value;
                 }
             }
         ],
    }
    

    Перед выполнением метода генерируется событие afterEdit.

    Метод не вызывается, если в методе onBeforeEdit() вызван UIEditEvent.stop.

    Parameters

    Returns Promise<void>

onAfterLoad

  • Этот метод вызывается после загрузки элемента, но до установки данных, для каждого элемента формы.

    ПРИМЕР

    export var form: IForm = <IForm>{
         type: 'IForm',
         name: "emptyForm",
         caption: "Пустая форма",
         ...
         elements: [],
         async onAfterLoad(event: UILoadEvent, form: IForm, elem: IElement): Promise<void> {
             console.log(`Форма ${form.name} после загрузки`);
         }
    }
    

    Перед выполнением метода генерируется событие afterLoad.

    Метод не вызывается, если в методе IElement.onBeforeLoad или событии IElementEvents.beforeLoad вызвали UILoadEvent.stop.

    Parameters

    Returns Promise<void>

onAfterOpenContextMenu

  • onAfterOpenContextMenu(form: IForm<IFormEvents>, elem: IContextMenuElement, data: any): Promise<boolean>
  • Вызывается после открытия контекстного меню.

    ПРИМЕР

    export var form: IList = <IList>{
         type: 'IList',
         name: "IList",
         ...
         onAfterOpenContextMenu: async function(form: IForm, elem: IList, data: any) {
             console.log(`Элемент ${elem.name} после открытия контекстного меню`);
             return true;
         }
    }
    

    Перед выполнением метода генерируется событие {@link IContextMenuElementEvents.afterOpenContextMenu | afterOpenContextMenu}.

    Метод не вызывается, если метод {@link IContextMenuElement.onBeforeOpenContextMenu | onBeforeOpenContextMenu()} вернул false.

    Parameters

    Returns Promise<boolean>

    Возвращаемое значение ни на что не влияет. Тип boolean введен для унификации с onBeforeOpenContextMenu().

onAfterRemoveRow

  • Метод вызывается сразу после удаления строки таблицы. Событие генерируется методом ITable.removeRow.

    let table: ITable = <ITable>{
        type: 'ITable',
        async onAfterRemoveRow(event: UIRowEvent, form: IForm, elem: ITable): Promise<void>{
             console.log(`Элемент ${event.row.value} удален`);
        }   
    }
    

    Удаленная строка IRow доступна в объекте события UIRowEvent.row

    Parameters

    Returns Promise<void>

onAfterSetData

onBeforeAddRow

  • Метод, который вызывается перед добавлением строки таблицы.

    let table: ITable = <ITable>{
        type: 'ITable',
        async onBeforeAddRow(event: UIRowEvent, form: IForm, elem: ITable): Promise<void>{
             console.log(`Значение для установки элемента: ${event.value}`);
        }   
    }
    

    Строка IRow еще не добавлена, поэтому свойство объекта события UIRowEvent.row == undefined.

    В этом событии доступны данные, используемые для добавления строки: UIRowEvent.data, если строка добавляется методом setData(), UIRowEvent.value, если строка добавляется установкой value.

    Отмена добавления вызывается методом UIRowEvent.stop

    Parameters

    Returns Promise<void>

onBeforeEdit

  • Этот метод вызывается перед редактированием элемента в результате вызова метода IElement.edit.

    Для получения значения до изменения используйте UIEditEvent.value.

    Для отмены редактирования выполните UIEditEvent.stop.

    ПРИМЕР:

    export var form: IForm = <IForm>{
         type: 'IForm',
         name: "emptyForm",
         ...
         elements: [
             <IElement> {
                 type: 'IElement',
                 name: 'elem',
                 async onBeforeEdit(editEvent:UIEditEvent, form: IForm, elem: IElement, item:IElement): Promise<void> {
                     console.log(`Значение перед редактированием: ${editEvent.value}`);
                     if (editEvent.value === '') {
                         editEvent.stopPropagation();//Отменить редактирование
                     }
                 }
             }
         ],
    }
    

    Перед выполнением метода генерируется событие beforeEdit.

    Parameters

    Returns Promise<void>

onBeforeLoad

  • Этот метод вызывается перед загрузкой элемента, для каждого элемента формы.

    ПРИМЕР

    export var form: IForm = <IForm>{
         type: 'IForm',
         name: "emptyForm",
         caption: "Пустая форма",
         ...
         elements: [],
         async onBeforeLoad(event: UILoadEvent, form: IForm, elem: IElement): Promise<void> {
             console.log(`Форма ${form.name} перед загрузкой`);
         }
    }
    

    Перед выполнением метода генерируется событие IElementEvents.beforeLoad.

    Если вы хотите получить данные, переданные в событие onBeforeLoad, или хотите остановить загрузку элемента, используйте объект event: UILoadEvent, соответственно UILoadEvent.data и UILoadEvent.stop.

    Parameters

    Returns Promise<void>

onBeforeOpenContextMenu

  • onBeforeOpenContextMenu(form: IForm<IFormEvents>, elem: IContextMenuElement, data?: any): Promise<boolean>
  • Вызывается перед открытием контекстного меню.

    ПРИМЕР

    export var form: IList = <IList>{
         type: 'IList',
         name: "IList",
         ...
         onBeforeOpenContextMenu: async function(form: IForm, elem: IList, data: any) {
             console.log(`Элемент ${elem.name} перед открытием контекстного меню`);
             return true;
         }
    }
    

    Перед выполнением метода генерируется событие beforeOpenContextMenu.

    Parameters

    Returns Promise<boolean>

    Если вернуть false, то открытие контекстного меню прекратится.

onBeforeRemoveRow

  • Метод, который вызывается перед удалением строки таблицы.

    let table: ITable = <ITable>{
        type: 'ITable',
        async onBeforeRemoveRow(event: UIRowEvent, form: IForm, elem: ITable): Promise<void>{
             console.log(`Элемент ${event.row.value} будет удален`);
        }   
    }
    

    Удаляемая строка IRow доступна в объекте события UIRowEvent.row Отмена удаления вызывается методом UIRowEvent.stop

    Parameters

    Returns Promise<void>

onBeforeSetData

  • Этот метод вызывается перед установкой данных элемента.

    ПРИМЕР

    export var form: IForm = <IForm>{
         type: 'IForm',
         name: "emptyForm",
         caption: "Пустая форма",
         ...
         elements: [],
         async onBeforeSetData(event: UISetDataEvent, form: IForm, elem: IDataElement): Promise<void> {
             console.log(`Форма ${form.name} перед установкой данных`);
         }
    }
    

    Перед выполнением метода генерируется событие IDataElementEvents.beforeSetData.

    Если внутри метода вызвать UISetDataEvent.stop, то установка данных для элемента прекратится.

    Parameters

    Returns Promise<void>

onBlur

  • Метод вызывается при потере фокуса элементом в следующих случаях:

    • при клике мыши на другом элементе (если на другом элементе установлено свойство tabindex),
    • при переключении между элементами с помощью клавиатуры,
    • при вызове метода IElement.blur.

    Перед выполнением метода генерируется событие IElementEvents.blur.

    Сначала происходит погружение от элемента ко всем подэлементам, т.е. метод onBlur вызывается сначала у элемента, потом по всей иерархии вложенных элементов с фокусом. Затем всплытие от вложенного элемента с фокусом к элементу. При всплытии метод onBlur не вызывается.

    Parameters

    Returns Promise<void>

onClick

  • Этот метод вызывается при клике мыши по элементу.

    ПРИМЕР

    export var sendButton: IElement = <IElement>{
         type: 'IElement',
         name: 'elem',
         ...
         async onClick(event: UIMouseEvent, form: IForm, elem: IElement, item: IElement: Promise<void> {
             console.log(`Клик по элементу  ${elem.name}!`);
             return;
         }
    }
    

    Перед выполнением метода генерируется событие click.

    Parameters

    Returns Promise<void>

onDblClick

  • Этот метод вызывается при двойном клике мыши по элементу.

    ПРИМЕР

    export var sendButton: IElement = <IElement>{
         type: 'IElement',
         name: 'elem',
         ...
         async ondblClick(event: UIMouseEvent, form: IForm, elem: IElement, item: IElement: Promise<void> {
             console.log(`Двойной клик по элементу  ${elem.name}!`);
             return;
         }
    }
    

    Перед выполнением метода генерируется событие dblclick.

    Parameters

    Returns Promise<void>

onFocus

  • Фокус на IElement появляется при клике и при навигации клавишами, только если установлено свойство tabindex, кроме IElements, являющихся подэлементом IList, ITable. Для них фокус если IList и ITable с tabindex.

    Метод вызывается при фокусе на элементе в следующих случаях:

    • при клике мыши (если установлено свойство tabindex),
    • при переключении между элементами с помощью клавиатуры (если установлено свойство tabindex),
    • при вызове метода IElement.focus.

    Перед выполнением метода генерируется событие IElementEvents.focus.

    Сначала происходит погружение от формы к элементу, т.е. метод onFocus вызывается сначала у формы, потом по всей иерархии вложенных элементов. Затем всплытие от элемента к форме. При всплытии метод onFocus не вызывается.

    Parameters

    Returns Promise<void>

onKeyDown

  • Метод вызывается при нажатии клавиши на элементе, на котором установлен фокус (IElement.focus):

    Перед выполнением метода генерируется событие IElementEvents.keydown.

    Сначала происходит погружение от формы к элементу с фокусом, т.е. метод onKeyDown вызывается сначала у формы, потом по всей иерархии вложенных элементов до элемента с фокусом. Затем всплытие от элемента с фокусом к форме. При всплытии метод onKeyDown не вызывается.

    Parameters

    Returns Promise<void>

onKeyUp

  • Метод вызывается при отпускании клавиши на элементе, на котором установлен фокус (IElement.focus):

    Перед выполнением метода генерируется событие IElementEvents.keyup.

    Сначала происходит погружение от формы к элементу с фокусом, т.е. метод onKeyUp вызывается сначала у формы, потом по всей иерархии вложенных элементов до элемента с фокусом. Затем всплытие от элемента с фокусом к форме. При всплытии метод onKeyUp не вызывается.

    Parameters

    Returns Promise<void>

removeClass

  • removeClass(className: string): void
  • Удаляет класс из HTML элемента.

    Parameters

    • className: string

    Returns void

removeRow

  • removeRow(id: any): Promise<void>
  • Метод удаляет строку из таблицы.

    При удалении строки из таблицы вызывается метод {@link ITable.onRemoveRow} и событие {@link ITableEvents.removeRow}.

    Parameters

    • id: any

    Returns Promise<void>

removeStyle

  • removeStyle(property: string): void
  • Удаляет стиль из HTML элемента

    Parameters

    • property: string

    Returns void

select

  • Выделяет строку или ячейку. Если передать методу ячейку и у списка установлен аттрибут IList.allowSelectCell, то будет выделена ячейка. Если передать методу ячейку и у списка НЕ установлен аттрибут IList.allowSelectCell, то будет выделена строка.

    Если НЕ передавать методу ячейку и у списка установлены аттрибуты IList.allowSelectCell и IList.multipleSelect, то будут выделены все ячейки строки. Если НЕ передавать методу ячейку и у списка НЕ установлен аттрибут IList.allowSelectCell, то будет выделена строка.

    Если у списка установлен атрибут IList.multipleSelect, то выделение ячейки или строки не снимает уже установленных выделений.

    Parameters

    Returns void

selectRowByData

  • selectRowByData(data: object): IRow
  • Parameters

    • data: object

    Returns IRow

setData

  • setData(data: object): Promise<any>
  • Устанавливает данные элементу, в том числе, всем подэлементам. Если у элемента задано свойство 'bindingProperty', тогда будут установленны данные соответствующие этому свойству.

    ПРИМЕР

    export var dataElem: IDataElement = <IDataElement>{
        type: 'IDataElement',
        name: 'dataElement',
        bindingProperty: "firstName"
    }
    ...
    (async function setData(){
         var elem = AppManager.activeForm.getElement("dataElement");
         await elem.setData({firstName: "Иван"});//во внутреннем свойстве elem._data сохранены данные "Иван".
    })();
    

    Parameters

    • data: object

    Returns Promise<any>

    Возвращаются данные, которые установлены элементу.

stopEdit

  • stopEdit(): void
  • Останавливает редактирование элемента.

    Returns void

unSelect

  • Снимает выделение строки или ячейки. Если передать методу ячейку и у списка установлен аттрибут IList.allowSelectCell, то будет снято выделение ячейки. Если НЕ передавать методу ячейку и у списка установлен аттрибут IList.allowSelectCell, то будет снято выделение со всех ячеек строки. Иначе, если у списка НЕ установлен аттрибут IList.allowSelectCell, снимается выделение строки.

    Parameters

    Returns void

Generated using TypeDoc