Welcome to InfinniUI documentation!¶
Getting Started¶
This article will guide you to make required prerequisities to start out developing with infinniUI.
Install¶
Install InfinniUI as a bower package:
bower install infinni-ui
or clone the git repository github,
or download
as a regular file.
To proceed with running innfinniUI you must install Node.js. Please download Node.js here.
Then add ./node_modules/.bin to the PATH environment variable.
Start Application¶
The easiest way to begin with infinniUI development is to use a example project. Go to the folder where InfinniUI was installed and find a folder example
.
Execute runExample.bat
. This will start a project build and run a local web server available at http://localhost:4444.
Editing project¶
Project contents are metadata described as JSON-schema compatible text. Example project displays a generated page by default defined in <example>/testConfigurations/stab.json
. In this folder you will find other examples of JSON-schemas pages. You can change metadata source in the following file <example>/www/config.js
- change window.InfinniUI.config.homePage
parameter.
To view more elements which can be used in JSON-schema as well as their syntax please refer to documentation. InfinniUI functionality can be expanded by custom developed elements; you can read more about it here.
Configuration variables¶
To read description of configuration variables please refer to the following part of documentation /Core/InfinniUI/InfinniUI.config.
To overlap required fields one should define them before linking to the platform main js-file.
In example you may see that in <example>/www/config.js
file please note config.js
is linked before platform.js
is.
Styling¶
InfinniUI gives flexible styling features from setting up basic colors and sizes to styles of each element. To read more about styling please refer to the following part of documentation.
Extending functionality¶
New functionality can be added easily just link a file with required functionality.
You should do this before linking infinniUI to keep access to platform global variables.
You can either create completely new elements, please refer to an example in folder <example>/js/elements/
or
use functionality of ExtensionPanel, please refer an example in <example>/js/extentionPanels/
.
Keep in mind that many crucial settings are located in <example>/www/js/main.js
.
Architecture description¶
The biggest blocks in infinniUI architecture are data sources and elements of User Interface. Those two are completely independent on each other.
Data sources¶
Data sources rely on data can be retireved from various sources for instance remote services like http-services and applied logic. Sources can grant CRUD access to the data and subscribe to the data update as well.
User interface elements¶
Each element defines UI entities for instance button, text field, label, contaner elements like panels and so on.
Data source and elements binding. Metadata.¶
Binding process is automatic based on defined metadata. Metadata is a JSON-schema document which has UI structure, data sources list and data bindings described in it.
UI structure can be described as:
//infinni-ui-demo
{
"DataSources": [],
"Items": [
{
//infinni-ui-display-begin
"GridPanel": {
"Items": [
{
"Cell": {
"ColumnSpan": 4,
"Items": [
{
"Label": {
"Text": "Some label",
"HorizontalAlignment": "Right"
}
}
]
}
},{
"Cell": {
"ColumnSpan": 4,
"Items": [
{
"TextBox": {
"Name": "TB",
"Value": "Some value"
}
}
]
}
}
]
}
//infinni-ui-display-end
}
]
}
Data source, in this case pre-defined local data set, can be defined as:
{
"DataSources": [{
"ObjectDataSource": {
"Name": "MainDataSource",
"Items":[{
"someField": "value"
}]
}
}]
}
Data binding to a text field:
//infinni-ui-demo
{
"DataSources": [{
"ObjectDataSource": {
"Name": "MainDataSource",
"Items":[{
"someField": "value"
}]
}
}],
"Items": [{
"GridPanel": {
"Items": [
{
"Cell": {
"ColumnSpan": 4,
"Items": [
{
"Label": {
"Text": "Some label",
"HorizontalAlignment": "Right"
}
}
]
}
},{
"Cell": {
"ColumnSpan": 4,
"Items": [
{
"TextBox": {
"Name": "TB",
"Value": {
"Source": "MainDataSource",
"Property": "$.someField"
}
}
}
]
}
}
]
}
}]
}
Thus InfinniUI processes data in the following way:
- InfinniUI recieves metadata described as JSON-schema.
- InfinniUI transits metadata to builders.
- In accordance with metadata descriptions builders generate web user interface, create data sources and perform data binding.
Core¶
В данном разделе описана документация базовых сущностей InfinniUI.
Actions¶
Actions are used to perform typical actions in infinniUI. Actions implement base API.
At this moment Infinni UI has got the following actions:
Name | Description |
---|---|
OpenAction | Opens view |
AcceptAction | Sets as a work result of View value DialogResult.accepted |
CancelAction | Sets as a work result of View value DialogResult.canceled |
AddAction | Add a new element in Data Source |
CreateItemAction | Create a new element in Data Source |
EditAction | Edits element from Data Source |
DeleteAction | Deletes element from Data Sources |
UpdateAction | Updates list of elements Data Sources |
SaveAction | Saves changes of selected element in Data Source |
SelectAction | Fills a field of element in Data Source by data from other Data Source element |
ServerAction | Sends http request |
RouteToAction | Follows a pre-defined route |
AcceptAction¶
Устанавливает в качестве результата работы родительского представления значение DialogResult.accepted.
Extends¶
Syntax¶
new AcceptAction(parentView)
Properties¶
Нет
Examples¶
var acceptAction = new AcceptAction(parentView);
acceptAction.execute(); //parentView.getDialogResult() === DialogResult.accepted
AcceptAction.metadata¶
Метаданные типа AcceptAction.
Properties¶
Нет
Examples¶
{
"AcceptAction": {
}
}
See Also¶
AcceptAction.metadata¶
Метаданные типа AcceptAction.
Нет
{
"AcceptAction": {
}
}
AddAction¶
Добавляет новый элемент в источнике данных.
Extends¶
Syntax¶
new AddAction(parentView)
Properties¶
Для работы с данными свойствами используйте методы getProperty и setProperty.
Name | Type | Description |
---|---|---|
linkView* | LinkView | Объект, который будет создавать и настраивать представление для создания нового элемента |
sourceSource* | String |
Название редактируемого источника данных на представлении создания |
destinationSource | String |
Название редактируемого источника данных, на представлении, откуда создание было вызвано |
destinationProperty | String |
Путь до поля в источнике данных, которое будет редактироваться. Данное поле должно быть представлено массивом |
* Обязательное свойство.
Обратите внимание, что если не указать destinationProperty, то новый элемент будет добавляться непосредственно в источник данных, соответствующий destinationSource, иначе - добавиться в список элементов, соответствующий destinationProperty.

Examples¶
Рассмотрим вариант, когда на представлении parentView, нужно задать действие добавления пациента (пациенты хранятся в источнике данных Patients):
var linkView = (new InlineViewBuilder()).build(null, {
builder: args.builder,
metadata: {View: editPatientView},
parentView: parentView
});
var addAction = new AddAction(parentView);
addAction.setProperty('linkView', linkView);
addAction.setProperty('sourceSource', 'MainDataSource');
addAction.setProperty('destinationSource', 'Patients');
addAction.execute();
Теперь рассмотрим случай, когда текущему пациенту необходимо добавлять госпитализации (поле Hospitalizations):
var linkView = (new InlineViewBuilder()).build(null, {
builder: args.builder,
metadata: {View: editHospitalizationView},
parentView: parentView
});
var addAction = new AddAction(parentView);
addAction.setProperty('linkView', linkView);
addAction.setProperty('sourceSource', 'MainDataSource');
addAction.setProperty('destinationSource', 'Patients');
addAction.setProperty('destinationProperty', '$.Hospitalizations');
addAction.execute();
AddAction.metadata¶
Метаданные типа AddAction.
Properties¶
Name | Type | Description |
---|---|---|
LinkView* | LinkView.metadata | Объект, который будет создавать и настраивать представление |
SourceValue.Source* | String |
Название редактируемого источника данных на представлении редактирования |
DestinationValue.Source | String |
Название редактируемого источника данных, на представлении, откуда редактирование было вызвано |
DestinationValue.Property | String |
Путь до поля в источнике данных, которое будет редактироваться. Данное поле должно быть представлено массивом |
* Обязательное свойство.
Examples¶
{
"AddAction": {
"DestinationValue": {
"Source": "ParentsDataSource",
"Property": "$.Children"
},
"SourceValue": {
"Source": "MainDataSource"
},
"LinkView": {
"InlineView": {
...
}
}
}
}
See Also¶
AddAction.metadata¶
Метаданные типа AddAction.
Name | Type | Description |
---|---|---|
LinkView* | LinkView.metadata | Объект, который будет создавать и настраивать представление |
SourceValue.Source* | String |
Название редактируемого источника данных на представлении редактирования |
DestinationValue.Source | String |
Название редактируемого источника данных, на представлении, откуда редактирование было вызвано |
DestinationValue.Property | String |
Путь до поля в источнике данных, которое будет редактироваться. Данное поле должно быть представлено массивом |
* Обязательное свойство.
{
"AddAction": {
"DestinationValue": {
"Source": "ParentsDataSource",
"Property": "$.Children"
},
"SourceValue": {
"Source": "MainDataSource"
},
"LinkView": {
"InlineView": {
...
}
}
}
}
CreateItemAction¶
Создает новый элемент в источнике данных не открывая новых view.
Extends¶
Properties¶
Для работы с данными свойствами используйте методы getProperty и setProperty.
destinationSource* | String |
Название редактируемого источника данных, куда необходимо добавить новый пустой элемент |
---|---|---|
destinationProperty | String |
Путь до поля в источнике данных, куда необходимо добавить новый пустой элемент. Данное поле должно быть представлено массивом |
* Обязательное свойство.
Обратите внимание, что если не указать destinationProperty, то новый элемент будет добавляться непосредственно в источник данных, соответствующий destinationSource, иначе - добавиться в список элементов, соответствующий destinationProperty.
Examples¶
var view = new InfinniUI.View();
var builder = new InfinniUI.ApplicationBuilder();
var metadata = {
CreateItemAction: {
DestinationValue: {
Source: 'SomeDS'
}
}
};
var createItemAction = builder.build( metadata, {parentView: view} );
createItemAction.execute();
CreateItemAction.metadata¶
Метаданные типа CreateItemAction.
Properties¶
DestinationValue.Source* | String |
Название источника данных, куда будет добавлен новый пустой элемент |
---|---|---|
DestinationValue.Property | String |
Путь до поля в источнике данных, куда будет добавлен новый пустой элемент. Данное поле должно быть представлено массивом |
* Обязательное свойство.
Examples¶
{
"CreateItemAction": {
"DestinationValue": {
"Source": "ParentsDataSource"
}
}
}
{
"CreateItemAction": {
"DestinationValue": {
"Source": "ParentsDataSource",
"Property": "0.items"
}
}
}
See Also¶
CreateItemAction.metadata¶
Метаданные типа CreateItemAction.
DestinationValue.Source* | String |
Название источника данных, куда будет добавлен новый пустой элемент |
---|---|---|
DestinationValue.Property | String |
Путь до поля в источнике данных, куда будет добавлен новый пустой элемент. Данное поле должно быть представлено массивом |
* Обязательное свойство.
{
"CreateItemAction": {
"DestinationValue": {
"Source": "ParentsDataSource"
}
}
}
{
"CreateItemAction": {
"DestinationValue": {
"Source": "ParentsDataSource",
"Property": "0.items"
}
}
}
BaseAction¶
Description¶
Действия, представленные в InfinniUI, являются потомками BaseAction. В BaseAction реализованы базовые API, которые предоставлят все действия InfinniUI.
Syntax¶
new BaseAction(parentView)
Properties¶
Нет
Methods¶
Name | Description |
---|---|
execute | Выполняет заданное действие |
initDefaultValues | Инициирует значения по умолчанию |
getProperty | Возвращает значение свойства по имени |
setProperty | Устанавливает значение свойства по имени |
Events¶
Нет
BaseAction.execute()¶
Выполняет заданное действие.
var updateAction = new UpdateAction(parentView);
updateAction.setProperty('dataSource', parentView.context.dataSources['DataSource1']);
updateAction.execute(function(){ alert('DataSource1 was updated'); }); // обновит DataSource1
BaseAction.getProperty()¶
Возвращает значение свойства по имени.
action.getProperty(propertyName);
Name | Description |
---|---|
propertyName | Название свойства |
Значение указанного свойства
var linkView = addAction.getProperty('linkView');
BaseAction.initDefaultValues()¶
Инициирует свойства action’а значениями по умолчанию.
BaseAction.metadata¶
Метаданные, которые реализованы во всех действиях InfinniUI.
Name | Type | Description |
---|---|---|
OnExecuted | Script | Устанавливает обработчик завершения действия. |
CanExecute | Script | Проверка условия для выполнения экшена. Возможно использование Promise. Для выполнения экшена необходимо вернуть true и для предотвращения выполнения экшена необходимо вернуть false. |
function canExecute( context, args ) {
return new Promise( function( resolve, reject ) {
// some async action
setTimeout( function() {
resolve();
}, 1000 );
} )
.then( function() {
return true;
} );
}
{
"CancelAction": {
"OnExecuted": "{ alert('OnCancel'); }",
"CanExecute": "{ return canExecute( context, args ); }"
}
}
BaseAction.setProperty()¶
Устанавливает значение свойства по имени.
action.setProperty(propertyName, value)
Name | Description |
---|---|
propertyName | Название свойства |
value | Значение, которое необходимо установить |
Метод ничего не возвращает
addAction.setProperty('linkView', linkView);
BaseAction.metadata¶
Метаданные, которые реализованы во всех действиях InfinniUI.
Properties¶
Name | Type | Description |
---|---|---|
OnExecuted | Script | Устанавливает обработчик завершения действия. |
CanExecute | Script | Проверка условия для выполнения экшена. Возможно использование Promise. Для выполнения экшена необходимо вернуть true и для предотвращения выполнения экшена необходимо вернуть false. |
Examples¶
function canExecute( context, args ) {
return new Promise( function( resolve, reject ) {
// some async action
setTimeout( function() {
resolve();
}, 1000 );
} )
.then( function() {
return true;
} );
}
{
"CancelAction": {
"OnExecuted": "{ alert('OnCancel'); }",
"CanExecute": "{ return canExecute( context, args ); }"
}
}
CancelAction¶
Устанавливает в качестве результата работы родительского представления значение DialogResult.canceled.
Extends¶
Syntax¶
new CancelAction(parentView)
Properties¶
Нет
Examples¶
var cancelAction = new CancelAction(parentView);
cancelAction.execute(); //parentView.getDialogResult() === DialogResult.canceled
CancelAction.metadata¶
Метаданные типа CancelAction.
Properties¶
Нет
Examples¶
{
"CancelAction": {
}
}
See Also¶
CancelAction.metadata¶
Метаданные типа CancelAction.
Нет
{
"CancelAction": {
}
}
DeleteAction¶
Удаляет элемент из источника данных.
Extends¶
Syntax¶
new DeleteAction(parentView)
Properties¶
Для работы с данными свойствами используйте методы getProperty и setProperty.
Name | Type | Default | Description |
---|---|---|---|
destinationSource* | String |
– | Название источника данных, из которого производится удаление |
destinationProperty* | String |
– | Путь до документа в источнике данных, который будет удалятся |
canClose | Boolean |
true | Значение, определяющее, нужно ли перед удалением спросить согласие пользователя на удаление |
* Обязательное свойство.
Examples¶
var deleteAction = new DeleteAction(parentView);
deleteAction.setProperty('destinationSource', 'Patients');
deleteAction.setProperty('destinationProperty', '$.Hospitalizations.0');
deleteAction.execute(); // удалит первую госпитализацию у текущего пациента
DeleteAction.metadata¶
Метаданные типа DeleteAction.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
DestinationValue.Source* | String |
– | Название источника данных, из которого производится удаление |
DestinationValue.Property* | String |
– | Путь до документа в источнике данных, который будет удалятся |
Accept | Boolean |
true | Значение, определяющее, нужно ли перед удалением спросить согласие пользователя на удаление |
AcceptMessage | String |
Текст для сообщения во всплывающем окне | |
AcceptMessageType | String |
default | Тип всплывающего окна. Доступные варианты: default, error, warning |
OnSuccess | Script | – | Устанавливает обработчик успешного завершения действия |
OnError | Script | – | Устанавливает обработчик завершения действия с ошибкой |
* Обязательное свойство.
Examples¶
{
"DeleteAction": {
"AcceptMessage": "Do you really want to delete it?",
"AcceptMessageType": "error",
"DestinationValue": {
"Source": "DataSource1",
"Property": "$"
},
"Accept": false,
"OnSuccess": "{ alert('onSuccess'); }",
"OnError": "{ alert('onError'); }"
}
}
{
"DeleteAction": {
"AcceptMessage": "Do you seriously want to delete it?",
"AcceptMessageType": "warning",
"DestinationValue": {
"Source": "DataSource1",
"Property": "$.Hospitalizations.0"
},
"Accept": false
}
}
See Also¶
DeleteAction.metadata¶
Метаданные типа DeleteAction.
Name | Type | Default | Description |
---|---|---|---|
DestinationValue.Source* | String |
– | Название источника данных, из которого производится удаление |
DestinationValue.Property* | String |
– | Путь до документа в источнике данных, который будет удалятся |
Accept | Boolean |
true | Значение, определяющее, нужно ли перед удалением спросить согласие пользователя на удаление |
AcceptMessage | String |
Текст для сообщения во всплывающем окне | |
AcceptMessageType | String |
default | Тип всплывающего окна. Доступные варианты: default, error, warning |
OnSuccess | Script | – | Устанавливает обработчик успешного завершения действия |
OnError | Script | – | Устанавливает обработчик завершения действия с ошибкой |
* Обязательное свойство.
{
"DeleteAction": {
"AcceptMessage": "Do you really want to delete it?",
"AcceptMessageType": "error",
"DestinationValue": {
"Source": "DataSource1",
"Property": "$"
},
"Accept": false,
"OnSuccess": "{ alert('onSuccess'); }",
"OnError": "{ alert('onError'); }"
}
}
{
"DeleteAction": {
"AcceptMessage": "Do you seriously want to delete it?",
"AcceptMessageType": "warning",
"DestinationValue": {
"Source": "DataSource1",
"Property": "$.Hospitalizations.0"
},
"Accept": false
}
}
EditAction¶
Редактирует элемент из источника данных.
Extends¶
Syntax¶
new EditAction(parentView)
Properties¶
Для работы с данными свойствами используйте методы getProperty и setProperty.
Name | Type | Description |
---|---|---|
linkView | LinkView | Объект, который будет создавать и настраивать представление для редактирования элемента |
sourceSource | String |
Название редактируемого источника данных на представлении редактирования |
destinationSource | String |
Название редактируемого источника данных на представлении, откуда редактирование было вызвано |
destinationProperty | String |
Путь до поля в источнике данных, которое будет редактироваться |

Examples¶
var linkView = (new InlineViewBuilder()).build(null, {
builder: args.builder,
metadata: {View: editPatientView},
parentView: parentView
});
var editAction = new EditAction(parentView);
editAction.setProperty('linkView', linkView);
editAction.setProperty('sourceSource', 'MainDataSource');
editAction.setProperty('destinationSource', 'Patients');
editAction.setProperty('destinationProperty', '$');
editAction.execute(); // откроется форма редактирования текущего пациента
EditAction.metadata¶
Метаданные типа EditAction.
Properties¶
Name | Type | Description |
---|---|---|
LinkView* | LinkView.metadata | Объект, который будет создавать и настраивать представление |
SourceValue.Source* | String |
Название редактируемого источника данных на представлении редактирования |
DestinationValue.Source* | String |
Название редактируемого источника данных, на представлении, откуда редактирование было вызвано |
DestinationValue.Property* | String |
Путь до поля в источнике данных, которое будет редактироваться |
* Обязательное свойство.
Examples¶
{
"EditAction": {
"DestinationValue": {
"Source": "ParentsDataSource",
"Property": "$"
},
"SourceValue": {
"Source": "MainDataSource"
},
"LinkView": {
"InlineView": {
...
}
}
}
}
See Also¶
EditAction.metadata¶
Метаданные типа EditAction.
Name | Type | Description |
---|---|---|
LinkView* | LinkView.metadata | Объект, который будет создавать и настраивать представление |
SourceValue.Source* | String |
Название редактируемого источника данных на представлении редактирования |
DestinationValue.Source* | String |
Название редактируемого источника данных, на представлении, откуда редактирование было вызвано |
DestinationValue.Property* | String |
Путь до поля в источнике данных, которое будет редактироваться |
* Обязательное свойство.
{
"EditAction": {
"DestinationValue": {
"Source": "ParentsDataSource",
"Property": "$"
},
"SourceValue": {
"Source": "MainDataSource"
},
"LinkView": {
"InlineView": {
...
}
}
}
}
OpenAction¶
Открывает представление.
Extends¶
Syntax¶
new OpenAction(parentView)
Properties¶
Для работы с данными свойствами используйте методы getProperty и setProperty.
Name | Type | Description |
---|---|---|
linkView | LinkView | Объект, который будет создавать и настраивать представление |
Метод execute¶
Если при вызове метода execute указан параметр callback, то вызов данного обработчика осуществляется с параметром view.
Name | Type | Description |
---|---|---|
view | Представление | Открытое представление |
Examples¶
var linkView = (new InlineViewBuilder()).build(null, {
builder: args.builder,
metadata: {View: viewMetadata},
parentView: args.parentView
});
var openActionCallback = function(view){
console.log('%s was opened', view.name);
};
var openAction = new OpenAction(args.parentView);
openAction.setProperty('linkView', linkView);
openAction.execute(openActionCallback);
OpenAction.metadata¶
Метаданные типа OpenAction.
Properties¶
Name | Type | Description |
---|---|---|
LinkView* | LinkView.metadata | Объект, который будет создавать и настраивать представление |
* Обязательное свойство.
Examples¶
{
"OpenAction": {
"LinkView": {
"InlineView": {
...
}
}
}
}
See Also¶
OpenAction.metadata¶
Метаданные типа OpenAction.
Name | Type | Description |
---|---|---|
LinkView* | LinkView.metadata | Объект, который будет создавать и настраивать представление |
* Обязательное свойство.
{
"OpenAction": {
"LinkView": {
"InlineView": {
...
}
}
}
}
RouteToAction¶
Производит переход по указанному имени маршрута. Путь соотвествующий имени определен в InfinniUI.config.routes.
Extends¶
Properties¶
Нет
Examples¶
var routeToAction = new RouteToAction();
routeToAction.execute();
RouteToAction.metadata¶
Метаданные типа RouteToAction.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Name* | String |
Имя маршрута. Имя должно быть однозначно определенно в InfinniUI.config.routes | |
Replace | Boolean |
false | Возможность обновить URL без создания записи в истории браузера. |
Params | Object |
Массив с параметрами маршрута, которые будут переданы в callback. Где Name - имя параметра, а Value - значение параметра. Значение параметра можно задать как через String , так и через DataBinding |
|
Query | Object |
Массив с параметрами запроса, которые будут переданы в callback. Где Name - имя параметра запроса, а Value - значение параметра запроса. Значение параметра можно задать как через String , так и через DataBinding |
* Обязательное свойство.
Examples¶
"RouteToAction": {
"Name": "routeName",
"Replace": true,
"Params": [
{
"Name": "user",
"Value": {
"Source": "ds2",
"Property": "$.user"
}
},
{
"Name": "pageNumber",
"Value": "lastPage"
}
],
"Query": [
{
"Name": "queryId",
"Value": {
"Source": "ds2",
"Property": "$.queryId"
}
},
{
"Name": "userAge",
"Value": "teenager"
}
]
}
See Also¶
RouteToAction.metadata¶
Метаданные типа RouteToAction.
Name | Type | Default | Description |
---|---|---|---|
Name* | String |
Имя маршрута. Имя должно быть однозначно определенно в InfinniUI.config.routes | |
Replace | Boolean |
false | Возможность обновить URL без создания записи в истории браузера. |
Params | Object |
Массив с параметрами маршрута, которые будут переданы в callback. Где Name - имя параметра, а Value - значение параметра. Значение параметра можно задать как через String , так и через DataBinding |
|
Query | Object |
Массив с параметрами запроса, которые будут переданы в callback. Где Name - имя параметра запроса, а Value - значение параметра запроса. Значение параметра можно задать как через String , так и через DataBinding |
* Обязательное свойство.
"RouteToAction": {
"Name": "routeName",
"Replace": true,
"Params": [
{
"Name": "user",
"Value": {
"Source": "ds2",
"Property": "$.user"
}
},
{
"Name": "pageNumber",
"Value": "lastPage"
}
],
"Query": [
{
"Name": "queryId",
"Value": {
"Source": "ds2",
"Property": "$.queryId"
}
},
{
"Name": "userAge",
"Value": "teenager"
}
]
}
SaveAction¶
Сохраняет изменения для текущего элемента в источнике данных.
Extends¶
Syntax¶
new SaveAction(parentView)
Properties¶
Для работы с данными свойствами используйте методы getProperty и setProperty.
Name | Type | Default | Description |
---|---|---|---|
dataSource | DataSource | – | Источник данных, который будет сохранятся |
canClose | Boolean |
true | Значение, определяющее, нужно ли закрыть родительское представление после сохранения |
Метод execute¶
Если при вызове метода execute указан параметр callback, то вызов данного обработчика осуществляется с параметрами context и argument.
Name | Type | Description |
---|---|---|
context | Контекст представления | Контекст родительского представления |
argument | Object |
В случае, если сохранение произошло успешно, то argument содержит поле source - источник данных, в который осуществляется сохранение. Если же при сохранении произошла ошибка, то argument содержить поле value, которое содержит результаты проверки валидации |
Examples¶
var saveAction = new SaveAction(parentView);
saveAction.setProperty('dataSource', parentView.context.dataSources['DataSource1']);
saveAction.setProperty('canClose', true);
saveAction.execute(); // сохранит выбранный элемент DataSource1 и закроет parentView
SaveAction.metadata¶
Метаданные типа SaveAction.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
DestinationValue.Source* | String |
– | Название источника данных |
CanClose | Boolean |
true | Значение, определяющее, нужно ли закрыть родительское представление после сохранения |
OnSuccess | Script | – | Устанавливает обработчик успешного завершения действия |
OnError | Script | – | Устанавливает обработчик завершения действия с ошибкой |
* Обязательное свойство.
Examples¶
{
"SaveAction": {
"DestinationValue": {
"Source": "DataSource1"
},
"CanClose": false,
"OnSuccess": "{ alert('onSuccess'); }",
"OnError": "{ alert('onError'); }"
}
}
See Also¶
See Also¶
SaveAction.metadata¶
Метаданные типа SaveAction.
Name | Type | Default | Description |
---|---|---|---|
DestinationValue.Source* | String |
– | Название источника данных |
CanClose | Boolean |
true | Значение, определяющее, нужно ли закрыть родительское представление после сохранения |
OnSuccess | Script | – | Устанавливает обработчик успешного завершения действия |
OnError | Script | – | Устанавливает обработчик завершения действия с ошибкой |
* Обязательное свойство.
{
"SaveAction": {
"DestinationValue": {
"Source": "DataSource1"
},
"CanClose": false,
"OnSuccess": "{ alert('onSuccess'); }",
"OnError": "{ alert('onError'); }"
}
}
SelectAction¶
Заполняет поле элемента в источнике данных данными из другого элемента источника данных.
Extends¶
Syntax¶
new SelectAction(parentView)
Properties¶
Для работы с данными свойствами используйте методы getProperty и setProperty.
Name | Type | Description |
---|---|---|
linkView | LinkView | Объект, который будет создавать и настраивать представление для выбора нового значения поля |
sourceSource | String |
Название источника данных, из которого будет заполняться редактируемый источник данных |
sourceProperty | String |
Путь до поля в источнике данных, которое будет копироваться |
destinationSource | String |
Название редактируемого источника данных |
destinationProperty | String |
Путь до поля в источнике данных, которое будет редактироваться |

Метод execute¶
Если при вызове метода execute указан параметр callback, то вызов данного обработчика осуществляется с параметром value.
Name | Description |
---|---|
value | Выбранное значение |
Examples¶
var linkView = (new InlineViewBuilder()).build(null, {
builder: args.builder,
metadata: {View: selectPatientView},
parentView: parentView
});
var selectActionCallback = function(value) {
console.log(value);
};
var selectAction = new SelectAction(parentView);
selectAction.setProperty('linkView', linkView);
selectAction.setProperty('destinationSource', 'Hospitalizations');
selectAction.setProperty('destinationProperty', '$.Patient');
selectAction.setProperty('sourceSource', 'Patients');
selectAction.setProperty('sourceProperty', '$');
selectAction.execute(selectActionCallback);//откроет окно выбора пациента. Выбранный пацент будет записан в текущей госпитализации
SelectAction.metadata¶
Метаданные типа SelectAction.
Properties¶
Name | Type | Description |
---|---|---|
LinkView* | LinkView.metadata | Объект, который будет создавать и настраивать представление |
SourceValue.Source* | String |
Название источника данных, из которого будет заполняться редактируемый источник данных |
SourceValue.Property* | String |
Путь до поля в источнике данных, которое будет копироваться |
DestinationValue.Source* | String |
Название редактируемого источника данных |
DestinationValue.Property* | String |
Путь до поля в источнике данных, которое будет редактироваться |
* Обязательное свойство.
Examples¶
{
"SelectAction": {
"DestinationValue": {
"Source": "Hospitalizations",
"Property": "$.Patient"
},
"SourceValue": {
"Source": "Patients",
"Property": "$"
},
"LinkView": {
"InlineView": {
...
}
}
}
}
See Also¶
SelectAction.metadata¶
Метаданные типа SelectAction.
Name | Type | Description |
---|---|---|
LinkView* | LinkView.metadata | Объект, который будет создавать и настраивать представление |
SourceValue.Source* | String |
Название источника данных, из которого будет заполняться редактируемый источник данных |
SourceValue.Property* | String |
Путь до поля в источнике данных, которое будет копироваться |
DestinationValue.Source* | String |
Название редактируемого источника данных |
DestinationValue.Property* | String |
Путь до поля в источнике данных, которое будет редактироваться |
* Обязательное свойство.
{
"SelectAction": {
"DestinationValue": {
"Source": "Hospitalizations",
"Property": "$.Patient"
},
"SourceValue": {
"Source": "Patients",
"Property": "$"
},
"LinkView": {
"InlineView": {
...
}
}
}
}
ServerAction¶
Отправляет http запрос.
Extends¶
Syntax¶
new ServerAction(parentView)
Properties¶
Для работы с данными свойствами используйте методы getProperty и setProperty.
Name | Type | Default | Description |
---|---|---|---|
origin* | String 1 |
– | Хост и порт |
path* | String 1 |
– | Строка пути (относительно хоста) |
data | Object 1 |
– | Данные запроса |
contentType | String |
‘application/x-www-form-urlencoded; charset=utf-8’ | Тип данных |
method | String |
‘GET’ | Метод запроса |
Url запроса определяется конкатинацией свойств origin и path.
* Обязательное свойство. 1 Шаблонизируемая величина
Parameters Templating¶
Зачастую при описании запроса возникает необходимость использовать изменяемые значения.
Для этого в ServerAction введены параметры. Вы можете задать значение
параметра с помощью метода setParam. А
затем использовать его в шаблонизируемых величинах, обозначив
<%[paramName]%>
.
Например, задан параметр userId, тогда в свойстве path можно обратится к нему следующим образом:
"/users?filter=eq(userId,<%userId%>)"
.
При отправке запроса вместо <%userId%> будет установлено соответсвующее значение параметра.
Метод execute¶
Если при вызове метода execute указан параметр callback, то вызов данного обработчика осуществляется с параметром value.
Name | Description |
---|---|
value.requestUrl | Url запроса |
value.method | Метод запроса |
value.contentType | Тип данных |
value.args | Данные запроса |
Methods¶
Name | Description |
---|---|
getParam | Возвращает значение параметра |
setParam | Устанавливает значение параметра |
ServerAction.getParam()¶
Возвращает значение параметра.
serverAction.getParam(name)
Name | Description |
---|---|
name | Название параметра |
Значение указанного параметра.
var documentName = serverAction.getParam('documentName');
ServerAction.metadata¶
Метаданные типа ServerAction.
Name | Type | Default | Description |
---|---|---|---|
Origin | String 1 |
– | Базовая часть url запроса |
Path* | String 1 |
– | Уточняющая часть url запроса |
Method | String |
‘GET’ | Метод запроса |
ContentType | String |
‘application/x-www-form-urlencoded; charset=utf-8’ | Тип данных |
Data | Object 1 |
– | Данные запроса |
Params | Object |
– | Параметры запроса |
OnSuccess | Script | – | Устанавливает обработчик успешного завершения действия |
OnError | Script | – | Устанавливает обработчик завершения действия с ошибкой |
* Обязательное свойство.
{
"ServerAction": {
"Method": "Get",
"Origin": "http://localhost:<%port%>",
"Path": "/documents/<%document%>",
"Data": {
"filter": "eq(_id,'<%_id%>')"
},
"Params": {
"port": "9900",
"document": "GetCompanyProfile988Response",
"_id": {
"Source": "MainDataSource",
"Property": "$._id"
}
},
"OnSuccess": "{ alert('onSuccess'); }",
"OnError": "{ alert('onError'); }"
}
}
ServerAction.metadata¶
Метаданные типа ServerAction.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Origin | String 1 |
– | Базовая часть url запроса |
Path* | String 1 |
– | Уточняющая часть url запроса |
Method | String |
‘GET’ | Метод запроса |
ContentType | String |
‘application/x-www-form-urlencoded; charset=utf-8’ | Тип данных |
Data | Object 1 |
– | Данные запроса |
Params | Object |
– | Параметры запроса |
OnSuccess | Script | – | Устанавливает обработчик успешного завершения действия |
OnError | Script | – | Устанавливает обработчик завершения действия с ошибкой |
* Обязательное свойство.
Examples¶
{
"ServerAction": {
"Method": "Get",
"Origin": "http://localhost:<%port%>",
"Path": "/documents/<%document%>",
"Data": {
"filter": "eq(_id,'<%_id%>')"
},
"Params": {
"port": "9900",
"document": "GetCompanyProfile988Response",
"_id": {
"Source": "MainDataSource",
"Property": "$._id"
}
},
"OnSuccess": "{ alert('onSuccess'); }",
"OnError": "{ alert('onError'); }"
}
}
UpdateAction¶
Обновляет список элементов источника данных.
Extends¶
Syntax¶
new UpdateAction(parentView)
Properties¶
Для работы с данными свойствами используйте методы getProperty и setProperty.
Name | Type | Description |
---|---|---|
dataSource | DataSource | Источник данных, который будет обновляться |
Метод execute¶
Если при вызове метода execute указан параметр callback, то вызов данного обработчика осуществляется с параметрами context и argument.
Name | Type | Description |
---|---|---|
context | Контекст представления | Контекст родительского представления |
argument.value | Array |
Новый список элементов источника данных |
Examples¶
var updateAction = new UpdateAction(parentView);
updateAction.setProperty('dataSource', parentView.context.dataSources['DataSource1']);
updateAction.execute(); // обновит DataSource1
UpdateAction.metadata¶
Метаданные типа UpdateAction.
Name | Type | Description |
---|---|---|
DestinationValue.Source* | String |
Название источника данных |
OnSuccess | Script | Устанавливает обработчик успешного завершения действия |
OnError | Script | Устанавливает обработчик завершения действия с ошибкой |
* Обязательное свойство.
{
"UpdateAction": {
"DestinationValue": {
"Source": "DataSource1"
},
"OnSuccess": "{ alert('onSuccess'); }",
"OnError": "{ alert('onError'); }"
}
}
UpdateAction.metadata¶
Метаданные типа UpdateAction.
Properties¶
Name | Type | Description |
---|---|---|
DestinationValue.Source* | String |
Название источника данных |
OnSuccess | Script | Устанавливает обработчик успешного завершения действия |
OnError | Script | Устанавливает обработчик завершения действия с ошибкой |
* Обязательное свойство.
Examples¶
{
"UpdateAction": {
"DestinationValue": {
"Source": "DataSource1"
},
"OnSuccess": "{ alert('onSuccess'); }",
"OnError": "{ alert('onError'); }"
}
}
See Also¶
Builders¶
InfinniUI builders interprete metadata transmitted to them creating and setting up elements and data sources, as well as, binding them.
There are single type element builders (ie only for buttons or for aprticular data sources). All of them must be registered in main builder which may recieve data from each element and interprete them.
Single type element builders requirements¶
Only one requirement exists for single type element builders that is implementation of method build(context, args)
.
Context
must recieve View context in which the builder is invoked by. Args
recieves parameters for elements creation, always accompanied by args.metadata
and parent element``args.parent``.
Collection¶
Collections of elements can recieve notifications upon change updates.
Description¶
In many cases data is processed by user is a collection of elements. It is required while modifying collection that changes are properly indicated in UI. To resolve this Collection
type can be implemented. It has all methods required to work with the collection and list of events to get notified about all changes that occured to the collection.
Syntax¶
new Collection(items, idProperty, comparator)
Parameters¶
Name | Type | Description |
---|---|---|
items | Array |
Array to initialize collection. |
idProperty | String |
Property identificator of collection elements. |
comparator | comparator | Function that compares collection of elements. |
Properties¶
Name | Type | Description |
---|---|---|
length | Integer |
Returns number of elements in collection. |
idProperty | String |
Returns identificator property of element in collection. |
comparator | comparator | Returns function of comparison of elements in collection. |
Methods¶
Name | Description |
---|---|
size | Возвращает количество элементов в коллекции. |
push | Добавляет элемент в конец коллекции. |
add | Добавляет элемент в конец коллекции. |
addAll | Добавляет элементы в конец коллекции. |
insert | Вставляет элемент в указанную позицию коллекции. |
insertAll | Вставляет элементы, начиная с указанной позиции коллекции. |
reset | Устанавливает список элементов коллекции. |
set | Обновляет список элементов коллекции. |
replace | Заменяет элемент коллекции на указанный. |
pop | Удаляет последний элемент из коллекции. |
remove | Удаляет указанный элемент из коллекции. |
removeById | Удаляет элемент с указанным идентификатором из коллекции. |
removeAt | Удаляет элемент с указанным индексом из коллекции. |
removeAll | Удаляет указанные элементы из коллекции. |
removeRange | Удаляет диапазон элементов из коллекции. |
removeEvery | Удаляет все элементы из коллекции, удовлетворяющие указанному условию. |
clear | Удаляет все элементы из коллекции. |
getById | Возвращает элемент коллекции с заданным идентификатором. |
getByIndex | Возвращает элемент коллекции с заданным индексом. |
find | Возвращает первый найденный элемент коллекции, удовлетворяющий условию. |
indexOf | Возвращает индекс первого найденного элемента коллекции при поиске с начала. |
lastIndexOf | Возвращает индекс первого найденного элемента коллекции при поиске с конца. |
findIndex | Возвращает индекс первого найденного элемента коллекции, удовлетворяющего условию. |
contains | Проверяет наличие указанного элемента в коллекции. |
contains | Проверяет наличие указанного элемента в коллекции. |
every | Проверяет, что каждый элемент коллекции удовлетворяет указанному условию. |
some | Проверяет, что некоторый элемент коллекции удовлетворяет указанному условию. |
forEach | Перечисляет все элементы коллекции. |
filter | Возвращает элементы коллекции, удовлетворяющие указанному условию. |
take | Возвращает указанный диапазон элементов коллекции. |
toArray | Возвращает массив всех элементов коллекции. |
move | Перемещает элемент коллекции в позицию с указанным индексом. |
sort | Сортирует список элементов коллекции. |
clone | Создает копию коллекции элементов. |
setProperty | Устанавливает значение атрибута для элемента. |
getProperty | Возвращает значение атрибута элемента. |
Events¶
Name | Description |
---|---|
onAdd | Устанавливает обработчик события о том, что произошло добавление элементов. |
onReplace | Устанавливает обработчик события о том, что произошла замена элементов. |
onRemove | Устанавливает обработчик события о том, что произошло удаление элементов. |
onMove | Устанавливает обработчик события о том, что произошло перемещение элементов. |
onReset | Устанавливает обработчик события о том, что произошли существенные изменения. |
onChange | Устанавливает обработчик события о том, что произошли какие-то изменения. |
Collection.add¶
Добавляет элемент в конец коллекции.
Description¶
Метод add() добавляет указанный элемент в конец коллекции. Успешное выполнение данного метода приводит к возникновению события onAdd. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.add(newItem)
Name | Type | Description |
---|---|---|
newItem |
* | Элемент, который необходимо добавить в коллекцию. |
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection();
collection.add('A'); // [ 'A' ]
collection.add('B'); // [ 'A', 'B' ]
collection.add('C'); // [ 'A', 'B', 'C' ]
Collection.addAll¶
Добавляет элементы в конец коллекции.
Description¶
Метод addAll() добавляет указанные элементы в конец коллекции. Успешное выполнение данного метода приводит к возникновению события onAdd. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.addAll(newItems)
Name | Type | Description |
---|---|---|
newItems |
Array |
Массив элементов, которые необходимо добавить в коллекцию. |
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection();
collection.addAll([ 'A', 'B' ]); // [ 'A', 'B' ]
collection.addAll([ 'C', 'D' ]); // [ 'A', 'B', 'C', 'D' ]
Collection.clear¶
Удаляет все элементы из коллекции.
Description¶
Метод clear() удаляет все элементы из коллекции. Успешное выполнение данного метода приводит к возникновению события onRemove. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Examples¶
var collection = new Collection([ 'A', 'B', 'C' ]);
collection.clear(); // [ ]
Collection.clone¶
Создает копию коллекции элементов.
Description¶
Метод создает создает новый экземпляр коллекции элементов, который является копией исходной коллекции. При этом копируется только состав и порядок элементов, сами элементы не клонируются. Также не копируются обработчики событий исходной коллекции. Полученный экземпляр является абсолютно независимым от исходной коллекции, также, как и исходная коллекция не зависит от созданного экземпляра. Таким образом, модификация одной коллекции никак не сказывается на состоянии другой и наоборот.
Syntax¶
Collection.clone()
Новый экземпляр коллекции элементов, который является копией исходной коллекции.
Examples¶
var collection1 = new Collection([ 'A', 'B', 'C' ]);
var collection2 = collection1.clone();
collection1.add('X');
collection2.add('Y');
collection1.forEach(function(item) {
console.log(item);
});
// Output:
// A
// B
// C
// X
collection2.forEach(function(item) {
console.log(item);
});
// Output:
// A
// B
// C
// Y
Collection.comparator¶
Возвращает функцию сравнения элементов коллекции.
Syntax¶
Collection.comparator
Функция сравнения элементов коллекции, указанная при ее создании.
Examples¶
var items = [
{ key: 3, value: 'C' },
{ key: 2, value: 'B' },
{ key: 1, value: 'A' }
];
var comparator = function(a, b) {
if (a.key < b.key) return -1;
if (a.key > b.key) return 1;
return 0;
};
var collection = new Collection(items, 'key', comparator);
collection.forEach(function(item) {
console.log(item.value);
});
// Output:
// C
// B
// A
collection.sort();
collection.forEach(function(item) {
console.log(item.value);
});
// Output:
// A
// B
// C
See Also¶
Collection.contains¶
Проверяет наличие указанного элемента в коллекции.
Syntax¶
Collection.contains(item, fromIndex)
Name | Type | Default | Description |
---|---|---|---|
item * |
* | – | Искомый элемент коллекции. |
fromIndex |
Integer |
0 | Индекс элемента, с которого необходимо начать поиск. |
* Обязательный аргумент.
Возвращает true
, если указанный элемент содержится в коллекции,
иначе - false
.
Examples¶
var collection = new Collection([ 'A', 'B', 'C' ]);
collection.contains('A'); // true
collection.contains('B'); // true
collection.contains('C'); // true
collection.contains('A', 1); // false
collection.contains('B', 2); // false
collection.contains('C', 3); // false
Collection.every¶
Проверяет, что каждый элемент коллекции удовлетворяет указанному условию.
Syntax¶
Collection.every(predicate, thisArg)
Name | Type | Description |
---|---|---|
predicate * |
Function |
Предикат, определяющий условие поиска элемента. Предикат принимает три параметра: ● item - проверяемый элемент коллекции, ● index - индекс проверяемого элемента коллекции, ● collection - обрабатываемая коллекция. Предикат возвращает true , если проверяемый элемент удовлетворяет условию, иначе - false . |
thisArg |
* | Объект, используемый как контекст исполнения this предиката predicate . |
* Обязательный аргумент.
Возвращает true
, если каждый элемент удовлетворяют указанному
условию, иначе - false
.
Examples¶
var isBigEnough = function(item, index, collection) {
return element >= 10;
};
new Collection([ 12, 5, 8, 130, 44 ]).every(isBigEnough); // false
new Collection([ 12, 54, 18, 130, 44 ]).every(isBigEnough); // true
See Also¶
Collection.filter¶
Возвращает элементы коллекции, удовлетворяющие указанному условию.
Syntax¶
Collection.filter(predicate, thisArg)
Name | Type | Description |
---|---|---|
predicate * |
Function |
Предикат, определяющий условие поиска элемента. Предикат принимает три параметра: ● item - проверяемый элемент коллекции, ● index - индекс проверяемого элемента коллекции, ● collection - обрабатываемая коллекция. Предикат возвращает true , если проверяемый элемент удовлетворяет условию, иначе - false . |
thisArg |
* | Объект, используемый как контекст исполнения this предиката predicate . |
* Обязательный аргумент.
Массив элементов коллекции, удовлетворяющих указанному условию.
Examples¶
var isBigEnough = function(item, index, collection) {
return element >= 10;
};
var collection = new Collection([ 12, 5, 8, 130, 44 ]);
var filtered = collection.filter(isBigEnough); // [ 12, 130, 44 ]
Collection.find¶
Возвращает первый найденный элемент коллекции, удовлетворяющий условию.
Syntax¶
Collection.find(predicate, thisArg)
Name | Type | Description |
---|---|---|
predicate * |
Function |
Предикат, определяющий условие поиска элемента. Предикат принимает три параметра: ● item - проверяемый элемент коллекции, ● index - индекс проверяемого элемента коллекции, ● collection - обрабатываемая коллекция. Предикат возвращает true , если проверяемый элемент удовлетворяет условию, иначе - false . |
thisArg |
* | Объект, используемый как контекст исполнения this предиката predicate . |
* Обязательный аргумент.
Первый найденный элемент коллекции, удовлетворяющий указанному условию.
Examples¶
var collection = new Collection([ 1, 3, 5, 6, 7, 9, 11, 12 ]);
var result = collection.find(function(item, index, collection) {
return item % 2 === 0;
}); // result === 6
Collection.findIndex¶
Возвращает индекс первого найденного элемента коллекции, удовлетворяющего условию.
Syntax¶
Collection.findIndex(predicate, thisArg)
Name | Type | Description |
---|---|---|
predicate * |
Function |
Предикат, определяющий условие поиска элемента. Предикат принимает три параметра: ● item - проверяемый элемент коллекции, ● index - индекс проверяемого элемента коллекции, ● collection - обрабатываемая коллекция. Предикат возвращает true , если проверяемый элемент удовлетворяет условию, иначе - false . |
thisArg |
* | Объект, используемый как контекст исполнения this предиката predicate . |
* Обязательный аргумент.
Индекс первого найденного элемента коллекции, удовлетворяющего указанному условию.
Examples¶
var collection = new Collection([ 1, 3, 5, 6, 7, 9, 11, 12 ]);
var result = collection.findIndex(function(item, index, collection) {
return item % 2 === 0;
}); // result === 3
See Also¶
Collection.forEach¶
Перечисляет все элементы коллекции.
Syntax¶
Collection.forEach(callback, thisArg)
Name | Type | Description |
---|---|---|
predicate * |
Function |
Функция для обработки очередного элемента коллекции. Функция принимает три параметра: ● item - очередной элемент коллекции, ● index - индекс очередного элемента коллекции, ● collection - обрабатываемая коллекция. |
thisArg |
* | Объект, используемый как контекст исполнения this предиката predicate . |
* Обязательный аргумент.
Examples¶
var collection = new Collection([ 'A', 'B', 'C' ]);
collection.forEach(function(item, index, collection) {
console.log(item);
});
// Output:
// A
// B
// C
Collection.getById¶
Возвращает элемент коллекции с заданным идентификатором.
Syntax¶
Collection.getById(id)
Name | Type | Description |
---|---|---|
id |
* | Идентификатор элемента. |
Элемент коллекции с заданным идентификатором.
Examples¶
var collection = new Collection([
{ key: 1, value: 'A' },
{ key: 2, value: 'B' },
{ key: 3, value: 'C' }
], 'key');
var item1 = collection.getById(1); // { key: 1, value: 'A' }
var item2 = collection.getById(2); // { key: 2, value: 'B' }
var item3 = collection.getById(3); // { key: 3, value: 'C' }
Collection.getByIndex¶
Возвращает элемент коллекции с заданным индексом.
Syntax¶
Collection.getByIndex(index)
Name | Type | Description |
---|---|---|
index |
Integer |
Индекс элемента. |
Элемент коллекции с заданным индексом.
Examples¶
var collection = new Collection([ 'A', 'B', 'C' ]);
var item0 = collection.getByIndex(0); // 'A'
var item1 = collection.getByIndex(1); // 'B'
var item2 = collection.getByIndex(2); // 'C'
See Also¶
Collection.getProperty¶
Возвращает значение атрибута для заданного элемента коллекции.
Syntax¶
collection.getProperty(index, propertyName);
Name | Type | Description |
---|---|---|
index |
Integer |
Порядковый индекс элемента коллекции |
propertyName |
String |
Имя атрибута |
Значение атрибута или undefined
.
Examples¶
var collection = new Collection([3,2,1]);
collection
.setProperty(0, 'name', 'three')
.setProperty(1, 'name', 'two')
.setProperty(2, 'name', 'one');
collection.sort();
console.log(collection.toArray()); // Output: [1, 2, 3]
console.log(collection.getProperty(0, 'name')); // Output: 'one';
console.log(collection.getProperty(1, 'name')); // Output: 'two';
console.log(collection.getProperty(2, 'name')); // Output: 'three';
See Also¶
Collection.idProperty¶
Возвращает свойство с идентификатором элемента коллекции.
Description¶
Идентификатор элемента используется при реализации целого ряда методов коллекции и служит для уникальной идентификации искомого элемента или элемента, над которым следует произвести какое-то действие. Если элемент коллекции не имеет свойства с уникальным идентификатором, он сам выступает в роли этого идентификатора.
Пример функции сравнения элементов, когда свойство idProperty
указано:
function equals(a, b) {
return a[idProperty] === b[idProperty];
}
Пример функции сравнения элементов, когда свойство idProperty
не
указано:
function equals(a, b) {
return a === b;
}
Syntax¶
Collection.idProperty
Свойство с идентификатором элемента коллекции, указанное при ее создании.
Examples¶
var collection = new Collection([
{ key: 1, value: 'A' },
{ key: 2, value: 'B' },
{ key: 3, value: 'C' }
], 'key');
var value1 = collection.getById(1); // 'A'
var value2 = collection.getById(2); // 'B'
var value3 = collection.getById(3); // 'C'
Collection.indexOf¶
Возвращает индекс первого найденного элемента коллекции при поиске с начала.
Syntax¶
Collection.indexOf(item, fromIndex)
Name | Type | Default | Description |
---|---|---|---|
item * |
* | – | Искомый элемент коллекции. |
fromIndex |
Integer |
0 | Индекс элемента, с которого необходимо начать поиск. |
* Обязательный аргумент.
Индекс первого найденного элемента коллекции или -1
, если элемент не
найден.
Examples¶
var collection = new Collection([ 'A', 'B', 'C', 'A', 'B', 'C' ]);
var index1 = collection.indexOf('C'); // index1 === 2
var index2 = collection.indexOf('C', 3); // index2 === 5
var index3 = collection.indexOf('D'); // index3 === -1
See Also¶
Collection.insert¶
Вставляет элемент в указанную позицию коллекции.
Description¶
Метод insert() добавляет указанный элемент в заданную позицию коллекции. Успешное выполнение данного метода приводит к возникновению события onAdd. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.insert(index, newItem)
Name | Type | Description |
---|---|---|
index |
Integer |
Индекс вставляемого элемента. |
newItem |
* | Элемент, который необходимо добавить в коллекцию. |
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection();
collection.insert(0, 'A'); // [ 'A' ]
collection.insert(0, 'B'); // [ 'B', 'A' ]
collection.insert(0, 'C'); // [ 'C', 'B', 'A' ]
Collection.insertAll¶
Вставляет элементы, начиная с указанной позиции коллекции.
Description¶
Метод insertAll() добавляет указанные элементы, начиная с заданной позиции. Успешное выполнение данного метода приводит к возникновению события onAdd. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.insertAll(index, newItems)
Name | Type | Description |
---|---|---|
index |
Integer |
Индекс первого вставляемого элемента. |
newItems |
Array |
Массив элементов, которые необходимо добавить в коллекцию. |
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection();
collection.insertAll(0, [ 'A', 'B' ]); // [ 'A', 'B' ]
collection.insertAll(0, [ 'C', 'D' ]); // [ 'C', 'D', 'A', 'B' ]
Collection.lastIndexOf¶
Возвращает индекс первого найденного элемента коллекции при поиске с конца.
Syntax¶
Collection.lastIndexOf(item, fromIndex)
Name | Type | Default | Description |
---|---|---|---|
item * |
* | – | Искомый элемент коллекции. |
fromIndex |
Index |
Collection.length - 1 | Индекс элемента, с которого необходимо начать поиск. |
* Обязательный аргумент.
Индекс первого найденного элемента коллекции или -1
, если элемент не
найден.
Examples¶
var collection = new Collection([ 'A', 'B', 'C', 'A', 'B', 'C' ]);
var index1 = collection.lastIndexOf('C'); // index1 === 5
var index2 = collection.lastIndexOf('C', 4); // index2 === 2
var index3 = collection.lastIndexOf('D'); // index3 === -1
See Also¶
Collection.length¶
Возвращает количество элементов в коллекции.
Examples¶
var collection = new Collection(); // Collection.length === 0
collection.add('A'); // Collection.length === 1
collection.add('B'); // Collection.length === 2
collection.add('C'); // Collection.length === 3
Collection.move¶
Перемещает элемент коллекции в позицию с указанным индексом.
Description¶
Метод move() перемещает элемент коллекции в позицию с указанным индексом. Успешное выполнение данного метода приводит к возникновению события onMove. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.move(oldIndex, newIndex)
Name | Type | Description |
---|---|---|
oldIndex |
Integer |
Индекс элемента, который необходимо переместить. |
newIndex |
Integer |
Индекс нового местоположения элемента. |
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection([ 'A', 'B', 'C' ]);
collection.move(2, 0); // [ 'C', 'A', 'B' ]
collection.move(2, 1); // [ 'C', 'B', 'A' ]
Collection.onAdd¶
Устанавливает обработчик события о том, что произошло добавление элементов.
Description¶
Успешное выполнение методов push(), add(), addAll(), insert() и insertAll() приводит к возникновению события onAdd. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.onAdd(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что произошло добавление одного или нескольких элементов в коллекцию. В параметре argument передается информация о произошедшем событии. Свойство argument.action содержит тип действия и в данном случае равно 'add' (добавление); argument.newItems - массив добавленных элементов; argument.newStartingIndex - индекс, по которому были добавлены элементы (или -1 , если элементы были добавлены в конец коллекции). |
Examples¶
var collection = new Collection();
collection.onAdd(function(context, argument) {
alert('New items are added!');
});
collection.add('A');
Collection.onChange¶
Устанавливает обработчик события о том, что произошли какие-то изменения.
Description¶
Любые операции над коллекцией, которые приводят к ее изменению (добавление новых элементов, замена существующих элементов, удаление существующих элементов, изменение порядка элементов), приводят к возникновению события onChange.
Syntax¶
Collection.onChange(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что в коллекции произошли какие-то изменения. В параметре argument передается информация о произошедшем событии. Свойство argument.action содержит тип действия ('add' , 'replace' , 'remove' , 'move' или 'reset' ). Значение остальных возможных свойств (argument.oldItems , argument.newItems , argument.oldStartingIndex и argument.newStartingIndex ) интерпретируются в зависимости от типа действия (см. описание обработчиков соответствующих событий). |
Examples¶
var collection = new Collection();
collection.onChange(function(context, argument) {
alert('Collection is changed!');
});
collection.add('A');
collection.remove('A');
Collection.onMove¶
Устанавливает обработчик события о том, что произошло перемещение элементов.
Description¶
Успешное выполнение метода move() приводит к возникновению события onMove. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.onMove(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что произошло перемещение одного или нескольких элементов в коллекции. В параметре argument передается информация о произошедшем событии. Свойство argument.action содержит тип действия и в данном случае равно 'move' (сброс); свойства argument.oldItems и argument.newItems равны и содержат массив элементов, которые были перемещены; argument.oldStartingIndex - индекс, откуда были перемещены элементы; argument.newStartingIndex - индекс, куда были перемещены элементы. |
Examples¶
var collection = new Collection([ 'A', 'B' ]);
collection.onReset(function(context, argument) {
alert('Some items are moved!');
});
collection.move(1, 0); // [ 'B', 'A' ]
Collection.onRemove¶
Устанавливает обработчик события о том, что произошло удаление элементов.
Description¶
Успешное выполнение методов pop(), remove(), removeById(), removeAt(), removeAll(), removeRange(), removeEvery() и clear() приводит к возникновению события onRemove. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.onRemove(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что произошло удаление одного или нескольких элементов из коллекции. В параметре argument передается информация о произошедшем событии. Свойство argument.action содержит тип действия и в данном случае равно 'remove' (удаление); argument.oldItems - массив элементов, которые были удалены; argument.oldStartingIndex - индекс, начиная с которого были удалены элементы (или -1 , если элементы удалялись не подряд). |
Examples¶
var collection = new Collection([ 'A' ]);
collection.onRemove(function(context, argument) {
alert('Some items are removed!');
});
collection.remove('A');
Collection.onReplace¶
Устанавливает обработчик события о том, что произошла замена элементов.
Description¶
Успешное выполнение метода replace() приводит к возникновению события onReplace. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.onReplace(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что произошла замена одного или нескольких элементов в коллекции. В параметре argument передается информация о произошедшем событии. Свойство argument.action содержит тип действия и в данном случае равно 'replace' (замена); argument.oldItems - массив старых элементов, которые были заменены; argument.newItems - массив новых элементов, которыми были заменены старые элементы. |
Examples¶
var collection = new Collection([ 'A' ]);
collection.onReplace(function(context, argument) {
alert('Some items are replaced!');
});
collection.replace('A', 'B');
Collection.onReset¶
Устанавливает обработчик события о том, что произошли существенные изменения.
Description¶
Выполнение некоторых операций может существенно изменять коллекцию. К таким методам относятся reset(), set() и sort(). Успешное выполнение одного из этих методов приводит к возникновению события onReset. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.onReset(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что в коллекции произошли существенные изменения. В параметре argument передается информация о произошедшем событии. Свойство argument.action содержит тип действия и в данном случае равно 'reset' (сброс). |
Examples¶
var collection = new Collection();
collection.onReset(function(context, argument) {
alert('Collection is changed!');
});
collection.reset([ 'A', 'B', 'C' ]);
Collection.pop¶
Удаляет последний элемент из коллекции.
Description¶
Метод pop() удаляет последний элемент из коллекции и возвращает его в качестве результата работы. Успешное выполнение данного метода приводит к возникновению события onRemove. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Examples¶
var collection = new Collection([ 'A', 'B', 'C' ]);
var item2 = collection.pop(); // 'C'
var item1 = collection.pop(); // 'B'
var item0 = collection.pop(); // 'A'
Collection.push¶
Добавляет элемент в конец коллекции.
Description¶
Метод push() добавляет указанный элемент в конец коллекции. Успешное выполнение данного метода приводит к возникновению события onAdd. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.push(newItem)
Name | Type | Description |
---|---|---|
newItem |
* | Элемент, который необходимо добавить в коллекцию. |
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection();
collection.push('A'); // [ 'A' ]
collection.push('B'); // [ 'A', 'B' ]
collection.push('C'); // [ 'A', 'B', 'C' ]
Collection.remove¶
Удаляет указанный элемент из коллекции.
Description¶
Метод remove() удаляет указанный элемент из коллекции. Успешное выполнение данного метода приводит к возникновению события onRemove. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.remove(item)
Name | Type | Description |
---|---|---|
item |
* | Элемент, который необходимо удалить из коллекции. |
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection([ 'A', 'B', 'C' ]);
collection.remove('B'); // [ 'A', 'C' ]
collection.remove('A'); // [ 'C' ]
collection.remove('C'); // [ ]
Collection.removeAll¶
Удаляет указанные элементы из коллекции.
Description¶
Метод removeAll() удаляет указанные элементы из коллекции. Успешное выполнение данного метода приводит к возникновению события onRemove. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.removeAll(items)
Name | Type | Description |
---|---|---|
items |
Array |
Массив элементов, которые необходимо удалить из коллекции. |
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection([ 'A', 'B', 'C', 'D' ]);
collection.removeAll([ 'A', 'C' ]); // [ 'B', 'D' ]
collection.removeAll([ 'B', 'D' ]); // [ ]
Collection.removeAt¶
Удаляет элемент с указанным индексом из коллекции.
Description¶
Метод removeAt() удаляет элемент с указанным индексом из коллекции. Успешное выполнение данного метода приводит к возникновению события onRemove. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.removeAt(index)
Name | Type | Description |
---|---|---|
index |
Integer |
Индекс элемента, который необходимо удалить из коллекции. |
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection([ 'A', 'B', 'C' ]);
collection.removeAt(1); // [ 'A', 'C' ]
collection.removeAt(0); // [ 'C' ]
collection.removeAt(0); // [ ]
Collection.removeById¶
Удаляет элемент с указанным идентификатором из коллекции.
Description¶
Метод removeById() удаляет элемент с указанным идентификатором из коллекции. Успешное выполнение данного метода приводит к возникновению события onRemove. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.removeById(id)
Name | Description |
---|---|
id | Идентификатор элемента, который необходимо удалить из коллекции. |
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection([
{ key: 1, value: 'A' },
{ key: 2, value: 'B' },
{ key: 3, value: 'C' }
], 'key');
collection.removeById(2);
collection.removeById(1);
collection.removeById(3);
Collection.removeEvery¶
Удаляет все элементы из коллекции, удовлетворяющие указанному условию.
Description¶
Метод removeEvery() удаляет все элементы из коллекции, удовлетворяющие указанному условию. Успешное выполнение данного метода приводит к возникновению события onRemove. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.removeEvery(predicate, thisArg)
Name | Type | Description |
---|---|---|
predicate * |
Function |
Предикат, определяющий условие удаление элемента. Предикат принимает три параметра: ● item - проверяемый элемент коллекции, ● index - индекс проверяемого элемента коллекции, ● collection - обрабатываемая коллекция. Предикат возвращает true , если проверяемый элемент удовлетворяет условию, иначе - false . |
thisArg |
Объект, используемый как контекст исполнения this предиката predicate . |
* Обязательный аргумент.
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection([ 1, 10, 2, 20, 3, 30 ]);
collection.removeEvery(function(item, index, collection) {
return item >= 10;
}); // [ 1, 2, 3 ]
Collection.removeRange¶
Удаляет диапазон элементов из коллекции.
Description¶
Метод removeRange() удаляет диапазон элементов из коллекции. Успешное выполнение данного метода приводит к возникновению события onRemove. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.removeRange(fromIndex, count)
Name | Type | Description |
---|---|---|
fromIndex * |
Integer |
Индекс начала диапазона элементов, которые необходимо удалить из коллекции. |
count |
Integer |
Количество удаляемых элементов. Если количество элементов не определено, из коллекции будут удалены все элементы, начиная с позиции, указанной в параметре fromIndex . |
* Обязательный аргумент.
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection([ 'A', 'B', 'C', 'D' ]);
collection.removeRange(1, 2); // [ 'A', 'D' ]
collection.removeRange(0); // [ ]
Collection.replace¶
Заменяет элемент коллекции на указанный.
Description¶
Метод replace() заменяет элемент коллекции на указанный. При этом новый элемент помещается в ту же позицию, в которой находился существующий элемент. Успешное выполнение данного метода приводит к возникновению события onReplace. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.replace(oldItem, newItem)
Name | Type | Description |
---|---|---|
oldItem |
* | Существующий элемент коллекции, который нужно заменить. |
newItem |
* | Новый элемент коллекции, которым нужно заменить существующий. |
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection([ 'A', 'B', 'C' ]);
collection.replace('C', 'D'); // [ 'A', 'B', 'D' ]
Collection.reset¶
Устанавливает список элементов коллекции.
Description¶
Метод reset() заменяет элементы коллекции новым набором элементов. Успешное выполнение данного метода приводит к возникновению события onReset. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.reset(newItems)
Name | Type | Description |
---|---|---|
newItems |
Array |
Массив новых элементов коллекции. |
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection();
collection.reset([ 'A', 'B' ]); // [ 'A', 'B' ]
collection.reset([ 'C', 'D' ]); // [ 'C', 'D' ]
Collection.set¶
Обновляет список элементов коллекции.
Description¶
Метод set() осуществляет интеллектуальное обновление списка элементов коллекции на основе заданного массива. Элементы, которые не содержатся в коллекции, но не содержатся в заданном массиве, будут добавлены. Элементы, которые содержатся и в коллекции и в заданном массиве, будут заменены на соответствующие элементы из массива. Элементы, которые содержатся в коллекции, но не содержатся в заданном массиве, будут удалены.
Успешное выполнение данного метода приводит к возникновению события onReset. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.set(newItems)
Name | Type | Description |
---|---|---|
newItems |
Array |
Массив новых элементов коллекции. |
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection([
{ key: 1, value: 'Apple' },
{ key: 2, value: 'Banana' },
{ key: 3, value: 'Pineapple' },
], 'key');
collection.forEach(function(item) {
console.log(item.value);
});
// Output:
// Apple
// Banana
// Pineapple
collection.set([
{ key: 1, value: 'Apple' },
{ key: 2, value: 'Melon' }
]);
collection.forEach(function(item) {
console.log(item.value);
});
// Output:
// Apple
// Melon
See Also¶
Collection.setProperty¶
Устанавливает значение атрибута для заданного элемента коллекции. Установка значений атрибута не изменяет сам элемент коллекции.
Syntax¶
collection.setProperty(index, propertyName, propertyValue);
Name | Type | Description |
---|---|---|
index |
Integer |
Порядковый индекс элемента коллекции |
propertyName |
String |
Имя атрибута |
value |
* | Значение атрибута |
Нет
Examples¶
collection.setProperty(0, 'originalIndex', 0);
var index = collection.getProperty(0, 'originalIndex');
See Also¶
Collection.size¶
Возвращает количество элементов в коллекции.
Examples¶
var collection = new Collection(); // Collection.size() === 0
collection.add('A'); // Collection.size() === 1
collection.add('B'); // Collection.size() === 2
collection.add('C'); // Collection.size() === 3
Collection.some¶
Проверяет, что некоторый элемент коллекции удовлетворяет указанному условию.
Syntax¶
Collection.some(predicate, thisArg)
Name | Type | Description |
---|---|---|
predicate * |
Function |
Предикат, определяющий условие поиска элемента. Предикат принимает три параметра: ● item - проверяемый элемент коллекции, ● index - индекс проверяемого элемента коллекции, ● collection - обрабатываемая коллекция. Предикат возвращает true , если проверяемый элемент удовлетворяет условию, иначе - false . |
thisArg |
* | Объект, используемый как контекст исполнения this предиката predicate . |
* Обязательный аргумент.
Возвращает true
, если есть элемент, удовлетворяющий указанному
условию, иначе - false
.
Examples¶
var isBigEnough = isBiggerThan10(item, index, collection) {
return element > 10;
};
new Collection([ 2, 5, 8, 1, 4 ]).some(isBiggerThan10); // false
new Collection([ 12, 5, 8, 1, 4 ]).some(isBiggerThan10); // true
See Also¶
Collection.sort¶
Сортирует список элементов коллекции.
Description¶
Метод sort() сортирует список элементов коллекции. Успешное выполнение данного метода приводит к возникновению события onReset. Вместе с этим событием также генерируется событие onChange, которое информирует о наличии любых изменений. Аргументы обеих событий в данном случае будут идентичны.
Syntax¶
Collection.sort(comparator)
Name | Type | Description |
---|---|---|
comparator |
Function |
Функция сравнения элементов коллекции. Если не указана, то используется функция Collection.comparator, которая была указана при создании коллекции. |
Возвращает true
, если коллекция была изменена, иначе - false
.
Examples¶
var collection = new Collection([ 3, 30, 2, 20, 1, 10 ]);
collection.sort(function(a, b) { return a - b }); // [ 1, 2, 3, 10, 20, 30 ]
Collection.take¶
Возвращает указанный диапазон элементов коллекции.
Syntax¶
Collection.take(fromIndex, count)
Name | Type | Description |
---|---|---|
fromIndex * |
Integer |
Индекс начала диапазона элементов, которые необходимо выбрать из коллекции. |
count |
Integer |
Количество выбираемых элементов. Если количество элементов не определено, из коллекции будут выбраны все элементы, начиная с позиции, указанной в параметре fromIndex . |
* Обязательный аргумент.
Массив элементов коллекции из указанного диапазона.
Examples¶
var collection = new Collection([ 'A', 'B', 'C', 'D' ]);
collection.take(1, 2); // [ 'B', 'C' ]
collection.take(2); // [ 'C', 'D' ]
Collection.toArray¶
Возвращает массив всех элементов коллекции.
Syntax¶
Collection.toArray()
Массив, содержащий все элементы коллекции в том же порядке, в котором они были представлены на момент вызова данной функции. Массив хранит ссылки на элементы соответствующей коллекции, но его модификация не меняет внутреннее состояние коллекции также, как и модификация коллекции не меняет состав массива.
Examples¶
var collection = new Collection([ 'A', 'B', 'C' ]);
var array = collection.toArray();
collection.push('X');
array.push('Y');
collection.forEach(function(item) {
console.log(item);
});
// Output:
// A
// B
// C
// X
array.forEach(function(item) {
console.log(item);
});
// Output:
// A
// B
// C
// Y
Comparator¶
Функция сравнения элементов коллекции.
Syntax¶
function(a, b)
Name | Type | Description |
---|---|---|
a |
* | Элемент коллекции. |
b |
* | Элемент коллекции. |
Возвращает целое число:
-1
(или число меньше0
), еслиa
меньшеb
;1
(или число больше0
), еслиa
большеb
;0
, еслиa
равноb
.
Examples¶
Общая форма функции сравнения:
function comparator(a, b) {
if (a is less than b by some ordering criterion) {
return -1;
}
if (a is greater than b by the ordering criterion) {
return 1;
}
// a must be equal to b
return 0;
}
Пример функции сравнения целых чисел:
function comparator(a, b) {
if (a < b) return -1;
if (a > b) return 1;
return 0;
}
Пример использования при сортировке:
var items = [
{ key: 3, value: 'C' },
{ key: 2, value: 'B' },
{ key: 1, value: 'A' }
];
var comparator = function(a, b) {
if (a.key < b.key) return -1;
if (a.key > b.key) return 1;
return 0;
};
var collection = new Collection(items, 'key', comparator);
collection.forEach(function(item) {
console.log(item.value);
});
// Output:
// C
// B
// A
collection.sort();
collection.forEach(function(item) {
console.log(item.value);
});
// Output:
// A
// B
// C
Config¶
Параметры конфигурации приложения.
Объект доступен через InfinniUI.config
.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
serverUrl |
String |
Адрес сервера. | |
configName |
String |
Название конфигурации. | |
lang |
String |
en-US |
Текущая локаль. |
homePage |
String |
Путь для получения домашней страницы. | |
cacheMetadata |
Boolean |
false | Кэширование метаданных. |
enableAutoHeightService |
Boolean |
false | Флаг, определяющий запуск сервиса, регулирующего высоту элементов. Если сервис не запущен, ScrollPanel не прокручивается. |
historyAPI |
Object |
Параметры History API для запуска роутинга. Принимает такие же параметры как и Backbone.history.start() | |
routes |
Array |
Массив объектов конфигурации роутинга приложения. |
Example¶
window.InfinniUI.config.serverUrl = 'http://localhost:9900';
window.InfinniUI.config.configName = 'Хабинет';
window.InfinniUI.config.lang = 'en-US';
window.InfinniUI.config.homePage = 'content/metadata/Views/common/homePage.json';
window.InfinniUI.config.cacheMetadata = true;
window.InfinniUI.config.enableAutoHeightService = true;
window.InfinniUI.config.historyAPI = {
pushState: true
};
window.InfinniUI.config.routes = [
{
Name: "HomePageRoute",
Path: "/",
Action: "{ routeCallback(context, args) }"
},
{
Name: "UserPageRoute",
Path: "/user/<% userId %>",
Action: "{ routeCallback2(context, args) }"
}
];
See Also¶
ViewContext¶
View context is a program object which stores its view state and provides API to access to view elements. Any applied script or event processor invocation accompanied by view context transmittance. Context is created for each view instance and its lifetime is defined by corresponding life time view instance.
Properties¶
Name | Description |
---|---|
view | Returns View context |
global | Returns global application context |
messageBus | Returns Message Bus View |
scripts | Returns associative list of Script View |
parameters | Returns associative list of Parameters View |
dataSources | Returns associative list of Data Sources View |
controls | Returns associative list of Visual View Elements |
ViewContext.controls¶
Возвращает ассоциативный список визуальных элементов представления.
Syntax¶
ViewContext.controls
Examples¶
var control1 = ViewContext.controls.button1;
var control2 = ViewContext.controls['button1']; // control2 === control1
ViewContext.dataSources¶
Возвращает ассоциативный список источников данных представления.
Syntax¶
ViewContext.dataSources
Examples¶
var dataSource1 = ViewContext.dataSources.myDataSource;
var dataSource2 = ViewContext.dataSources['myDataSource']; // dataSource2 === dataSource1
See Also¶
ViewContext.global¶
Возвращает глобальный контекст приложения.
Syntax¶
ViewContext.global
Examples¶
var globalContext = ViewContext.global;
See Also¶
ViewContext.messageBus¶
Возвращает шину сообщений представления.
Syntax¶
ViewContext.messageBus
Examples¶
var messageBus = ViewContext.messageBus;
See Also¶
ViewContext.parameters¶
Возвращает ассоциативный список параметров представления.
Syntax¶
ViewContext.parameters
Examples¶
var parameter1 = ViewContext.parameters.myParameter;
var parameter2 = ViewContext.parameters['myParameter']; // parameter2 === parameter1
ViewContext.scripts¶
Возвращает ассоциативный список скриптов представления.
Syntax¶
ViewContext.scripts
Examples¶
var function1 = ViewContext.scripts.myFunction;
var function2 = ViewContext.scripts['myFunction']; // function2 === function1
DataBinding¶
Data binding is a linking between elements and sources.
Description¶
Data binding allows synchronize property values of two different objects. One is conditionally called element while another is source. Elements are often representations of visual view while sources are - data sources. Typically that doesn’t matter which element will be the element and wich be the source because both represent the same interface. Objects that can bind data are all types of visual elements, all types of Data Sources and View Parameters.
Any data binding can be representd as non-visual programm object which can define the data conversion rules for both element and source, as well as desirable direction of data streams in binding mode:
- Bi-directional exchange between element and source - if source has got updates then element gets updated otherwise if element has got updates then element gets updated accordingly.
- To source updates - if source has got updates then no change to element is done, otherwise if element has got updates then source gets updated.
- To element update - if source has got updates element gets updated otherwise source gets no update.
Data binding thus conceals complexity of synchronizing between elements and sources and simplifies the code to great extent and makes behaviour of all elements controllable.

Usage¶
//js-demo
var element = new InfinniUI.TextBox();
var $element = element.render();
element.setLabelText("Element");
var source = new InfinniUI.TextBox();
var $source = source.render();
source.setLabelText("Source");
var binding = new InfinniUI.DataBinding();
binding.setMode('ToSource');
binding.bindSource(source, 'value');
binding.bindElement(element, 'value');
$elementForExample.append($element);
$elementForExample.append($source);
Methods¶
Name | Description |
---|---|
getMode | Returns direction of data stream in binding mode |
setMode | Sets direction of data stream in binding mode |
getConverter | Returns data converter between element and source |
setConverter | Sets data converter between element and source |
bindSource | Sets binding to source |
getSource | Returns data source binding |
getSourceProperty | Returns path to data source property binding |
bindElement | Sets binding to element |
getElement | Returns element binding |
getElementProperty | returns path to element binding property |
getDefaultValue | Returns element defaul value |
setDefaultValue | Sets default value for element |
Events¶
No
BindingConverter¶
Преобразователь данных между элементом и источником.
Description¶
Встречаются ситуации, когда формат представления данных в элементе и источнике данных отличается. Наряду с этим остается необходимость в привязке данных (синхронизации данных между элементом и источником). Для решения этой проблемы используется преобразователь данных - объект с двумя методами конвертации данных.
Properties¶
Name | Type | Description |
---|---|---|
toSource |
Функция | Функция конвертации, осуществляющая преобразование данных элемента в формат данных источника. Функция вызывается при изменении данных в элементе, если направление обмена данными в привязке установлено в twoWay или toSource. В параметре args передается информация, необходимая для осуществления конвертации. Свойство args.value содержит данные элемента для конвертации. Возвращаемое значение функции интерпретируется, как результат конвертации. |
toElement |
Функция | Функция конвертации, осуществляющая преобразование данных источника в формат данных элемента. Функция вызывается при изменении данных в источнике, если направление обмена данными в привязке установлено в twoWay или toElement. В параметре args передается информация, необходимая для осуществления конвертации. Свойство args.value содержит данные источника для конвертации. Возвращаемое значение функции интерпретируется, как результат конвертации. |
Examples¶
{
toSource: function(context, args) {
return parseInt(args.value); // string to integer
},
toElement: function(context, args) {
return args.value.toString(); // integer to string
}
}
BindingConverter.metadata¶
Метаданные типа BindingConverter.
Name | Type | Description |
---|---|---|
ToSource | String |
Функция конвертации, осуществляющая преобразование данных элемента в формат данных источника |
ToElement | String |
Функция конвертации, осуществляющая преобразование данных источника в формат данных элемента |
В качестве функции конвертации может быть указано как название прикладного скрипта,
{
"Scripts": [
{
"Name": "ElementToSourceConverter",
"Body": "..."
},
{
"Name": "SourceToElementConverter",
"Body": "..."
}
],
...
"Converter": {
"ToSource": "ElementToSourceConverter",
"ToElement": "SourceToElementConverter"
}
}
так и тело функции.
{
"Converter": {
"ToSource": "{ return (args.value == '-' ? false : true); }",
"ToElement": "{ return args.value ? '+' : '-'; }"
}
}
See Also¶
Метаданные типа BindingConverter.
Name | Type | Description |
---|---|---|
ToSource | String |
Функция конвертации, осуществляющая преобразование данных элемента в формат данных источника |
ToElement | String |
Функция конвертации, осуществляющая преобразование данных источника в формат данных элемента |
В качестве функции конвертации может быть указано как название прикладного скрипта,
{
"Scripts": [
{
"Name": "ElementToSourceConverter",
"Body": "..."
},
{
"Name": "SourceToElementConverter",
"Body": "..."
}
],
...
"Converter": {
"ToSource": "ElementToSourceConverter",
"ToElement": "SourceToElementConverter"
}
}
так и тело функции.
{
"Converter": {
"ToSource": "{ return (args.value == '-' ? false : true); }",
"ToElement": "{ return args.value ? '+' : '-'; }"
}
}
BindingMode¶
Направление потока данных в привязке.
Syntax¶
InfinniUI.BindingModes = {
twoWay: 'TwoWay',
toSource: 'ToSource',
toElement: 'ToElement'
}
Name | Description |
---|---|
twoWay |
Двунаправленный обмен между элементом и источником (two way) - если в источнике произошли изменения, элемент обновляется, и, наоборот, если изменения произошли в элементе, источник обновляется |
toSource |
Только обновление источника (to source) - если в источнике произошли изменения, элемент не обновляется, но, если изменения произошли в элементе, источник обновляется. |
toElement |
Только обновление элемента (to element) - если в источнике произошли изменения, элемент обновляется, но, если изменения произошли в элементе, источник не обновляется. |
DataBinding.bindElement()¶
Устанавливает привязку к элементу.
Description¶
Осуществляет подписку на событие изменения указанного свойства
элемента привязки - onPropertyChanged
. В обработчике этого события
производится оповещение источника данных привязки, ранее
установленного в методе bindSource(),
о произошедших в источнике изменениях.
При этом проверяется, что направление обмена данными в привязке
установлено в twoWay или
toSource. Если данное условие выполняется, у
источника вызывается метод setProperty()
, которому передается
наименование целевого свойства источника и новое значение этого
свойства.
Если в привязке был указан преобразователь
данных для источника, в качестве нового
значения будет передан результат конвертации значения элемента в
формат данных источника.
Syntax¶
dataBinding.bindElement(element, property)
Name | Type | Description |
---|---|---|
element | визуальный элемент / источник данных / параметр представления | Элемент привязки |
property | String |
Путь к свойству элемента привязки |
Метод ничего не возвращает.
Examples¶
dataBinding.bindElement(context.controls['TextBox1'], 'Value');
DataBinding.bindSource()¶
Устанавливает привязку к источнику.
Description¶
Осуществляет подписку на событие изменения указанного свойства
источника данных привязки - onPropertyChanged
. В обработчике этого
события производится оповещение элемента, ранее установленного в
методе bindElement(), о произошедших
в источнике изменениях.
При этом проверяется, что направление обмена данными в привязке
установлено в twoWay или
toElement. Если данное условие выполняется, у
элемента вызывается метод setProperty()
, которому передается
наименование целевого свойства элемента и новое значение этого
свойства.
Если в привязке был указан преобразователь
данных для элемента, в качестве нового
значения будет передан результат конвертации значения источника в
формат данных элемента.
Syntax¶
dataBinding.bindSource(source, property)
Name | Type | Description |
---|---|---|
source | визуальный элемент / источник данных / параметр представления | Источник данных привязки |
property | String |
Путь к свойству источника данных привязки |
Метод ничего не возвращает.
Examples¶
dataBinding.bindSource(context.dataSources['DataSource1'], '$.FirstName');
DataBinding.getConverter()¶
Возвращает преобразователь данных между элементом и источником.
Examples¶
var converter = dataBinding.getConverter();
See Also¶
DataBinding.getDefaultValue()¶
Возвращает значение по умолчанию для элемента.
Examples¶
var defaultValue = dataBinding.getDefaultValue();
See Also¶
DataBinding.getElement()¶
Возвращает элемент привязки.
Syntax¶
dataBinding.getElement()
Нет
Элемент привязки, установленный вызовом метода bindElement().
Examples¶
dataBinding.bindElement(context.controls['TextBox1'], 'Value');
var element = dataBinding.getElement(); // element === context.controls['TextBox1']
See Also¶
DataBinding.getElementProperty()¶
Возвращает путь к свойству элемента привязки.
Syntax¶
dataBinding.getElementProperty()
Нет
Путь к свойству элемента привязки, установленный вызовом метода bindElement().
Examples¶
dataBinding.bindElement(context.controls['TextBox1'], 'Value');
var elementProperty = dataBinding.getElementProperty(); // elementProperty === 'Value'
See Also¶
DataBinding.getMode()¶
Возвращает направление обмена данными в привязке.
Examples¶
var bindingMode = dataBinding.getMode();
See Also¶
DataBinding.getSource()¶
Возвращает источник данных привязки.
Syntax¶
dataBinding.getSource()
Нет
Источник данных привязки, установленный вызовом метода bindSource().
Examples¶
dataBinding.bindSource(context.dataSources['DataSource1'], '$.FirstName');
var source = dataBinding.getSource(); // source === context.dataSources['DataSource1']
See Also¶
DataBinding.getSourceProperty()¶
Возвращает путь к свойству источника данных привязки.
Syntax¶
dataBinding.getSourceProperty()
Нет
Путь к свойству источника данных привязки, установленный вызовом метода bindSource().
Examples¶
dataBinding.bindSource(context.dataSources['DataSource1'], '$.FirstName');
var sourceProperty = dataBinding.getSourceProperty(); // sourceProperty === '$.FirstName'
See Also¶
DataBinding.metadata¶
Метаданные типа DataBinding.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Source* | String |
– | Наименование источника данных привязки |
Property | String |
– | Путь к свойству источника данных привязки |
Mode | BindingMode | TwoWay |
Направление потока данных в привязке |
Converter | BindingConverter | – | Преобразователь данных между элементом и источником |
* Обязательное свойство.
Examples¶
Метаданные поля ввода, привязанного к параметру Parameter_1:
{
"TextBox": {
"Value": {
"Source": "Parameter_1"
}
}
}
Пусть теперь поле ввода привязано к полю Name источника данных DataSource_1. И пусть при изменении источника, необходимо обновлять поле ввода, но изменение значения поля ввода не должно влиять на значение в источнике. Тогда метаданные выглядят так
{
"TextBox": {
"Value": {
"Source": "DataSource_1",
"Property": "Name",
"Mode": "ToElement"
}
}
}
Пример, когда данные необходимо конвертировать:
{
"TextBox": {
"Value": {
"Source": "DataSource_1",
"Property": "Name",
"Converter": {
"ToElement": "{ return args.value == '-' ? 'minus': 'plus'; }",
"ToSource": "ConvertTextBoxToDataSource_1" //выполнится скрипт из контекста родительской view
}
}
}
}
DataBinding.setConverter()¶
Устанавливает преобразователь данных между элементом и источником.
Syntax¶
dataBinding.setConverter(value)
Name | Type | Description |
---|---|---|
value | BindingConverter | Преобразователь данных между элементом и источником |
Метод ничего не возвращает.
Examples¶
dataBinding.setConverter({
toSource: function(context, args) {
return parseInt(args.value); // string to integer
},
toElement: function(context, args) {
return args.value.toString(); // integer to string
}
});
See Also¶
DataBinding.setDefaultValue()¶
Устанавливает значение по умолчанию для элемента. Элемент принимает это значение, если направление обмена данными в привязке установлено в twoWay или toElement, до тех пор, пока источник данных не загрузится и не установит значение для элемента.
Syntax¶
dataBinding.setDefaultValue(value)
Name | Description |
---|---|
value | Значение по умолчанию для элемента |
Метод ничего не возвращает.
Examples¶
dataBinding.setDefaultValue("Ivanov");
See Also¶
DataBinding.setMode()¶
Устанавливает направление обмена данными в привязке.
Syntax¶
dataBinding.setMode(value)
Name | Type | Description |
---|---|---|
value | BindingMode | Направление обмена данными в привязке |
Метод ничего не возвращает.
Examples¶
dataBinding.setMode(InfinniUI.BindingModes.twoWay);
See Also¶
DataBinding.metadata¶
Метаданные типа DataBinding.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Source* | String |
– | Наименование источника данных привязки |
Property | String |
– | Путь к свойству источника данных привязки |
Mode | BindingMode | TwoWay |
Направление потока данных в привязке |
Converter | BindingConverter | – | Преобразователь данных между элементом и источником |
* Обязательное свойство.
Examples¶
Метаданные поля ввода, привязанного к параметру Parameter_1:
{
"TextBox": {
"Value": {
"Source": "Parameter_1"
}
}
}
Пусть теперь поле ввода привязано к полю Name источника данных DataSource_1. И пусть при изменении источника, необходимо обновлять поле ввода, но изменение значения поля ввода не должно влиять на значение в источнике. Тогда метаданные выглядят так
{
"TextBox": {
"Value": {
"Source": "DataSource_1",
"Property": "Name",
"Mode": "ToElement"
}
}
}
Пример, когда данные необходимо конвертировать:
{
"TextBox": {
"Value": {
"Source": "DataSource_1",
"Property": "Name",
"Converter": {
"ToElement": "{ return args.value == '-' ? 'minus': 'plus'; }",
"ToSource": "ConvertTextBoxToDataSource_1" //выполнится скрипт из контекста родительской view
}
}
}
}
DataProvider¶
Method that provides data
Methods¶
Name | Description |
---|---|
getItems | Requests list of elements |
createItem | Creates asynchronously new element |
createLocalItem | Creates synchronously new element |
saveItem | Saves element |
deleteItem | Deletes element |
createIdFilter | Returns identificator of element filter |
Events¶
No
DataProvider.createIdFilter()¶
Возвращает фильтр по идентификатору элемента.
Syntax¶
DataProvider.createIdFilter(itemId)
Name | Description |
---|---|
itemId | Идентификатор элемента |
Фильтр, соответсвующий идентификатору itemId.
Examples¶
var idFilter = dataProvider.createIdFilter(itemId);
DataProvider.createItem()¶
Создает новый элемент.
Description¶
- Для создания нового элемента в DataProvider используются 2 метода:
- createLocalItem и
createItem
. - Существенное отличие методов в том, что
- createLocalItem создает новый
элемент локально, в то время как при вызове
createItem
создание происходит на сервере. Для сохранения нового элемента используйте метод saveItem.
Syntax¶
DataProvider.createItem(callback, idProperty)
Name | Description |
---|---|
callback | Обработчик события о том, что элемент создан. Первым параметром получает новый элемент |
idProperty | Наименование свойства, хранящего идентификатор элемента |
Метод ничего не возвращает.
Examples¶
BaseDataSource.createItem(
function(newItem) { alert('Id:' + newItem['_id']); },
"_id"
);
See Also¶
DataProvider.createLocalItem()¶
Создает новый элемент.
Description¶
- Для создания нового элемента в DataProvider используются 2 метода:
createLocalItem
и createItem.- Существенное отличие методов в том, что
createLocalItem
создает - новый элемент локально, в то время как при вызове createItem создание происходит на сервере. Для сохранения нового элемента используйте метод saveItem.
Syntax¶
DataProvider.createLocalItem(idProperty)
Name | Description |
---|---|
idProperty | Наименование свойства, хранящего идентификатор элемента |
Новый элемент.
Examples¶
var newItem = DataProvider.createLocalItem("_id");
See Also¶
DataProvider.deleteItem()¶
Удаляет элемент.
Syntax¶
DataProvider.deleteItem(item, success, error)
Name | Description |
---|---|
item* | Элемент источника данных |
success | Обработчик события о том, что элемент удален |
error | Обработчик события о том, что при удалении элемента произошла ошибка |
* Обязательный аргумент.
Метод ничего не возвращает.
Examples¶
DataProvider.getItems(
function (items) {
DataProvider.deleteItem(items[0]);
});
DataProvider.getItems()¶
Запрашивает список элементов.
Syntax¶
DataProvider.getItems(success, error)
Name | Description |
---|---|
success | Обработчик события о том, что список элементов получен. Первым параметром получает список элементов |
error | Обработчик события о том, что получить список элементов не удалось |
Метод ничего не возвращает.
Examples¶
DataProvider.getItems(
function (data) {
console.log(data);
},
function () {
console.log('error');
});
DataProvider.saveItem()¶
Сохраняет элемент.
Syntax¶
DataProvider.saveItem(item, success, error)
Name | Description |
---|---|
item* | Элемент источника данных |
success | Обработчик события о том, что элемент сохранен |
error | Обработчик события о том, что при сохранении элемента произошла ошибка |
* Обязательный аргумент.
Метод ничего не возвращает.
Examples¶
var item = DataProvider.createLocalItem();
DataProvider.saveItem(item);
See Also¶
DataSources¶
Web interface is always linked with certain type of data. To work with data InfinniUI uses Data Sources. Each Data Source implements base API, but each type of Data Source also has particular functions.
Data source provides the following closely related functionality:
- Incapsulates Data Provider
- Incapsulates Tracking Changes
- Creates, reads, updates and deletes data (CRUD)
- Page navigation Страничная навигация по данным (Paging)
- Provides Data Filtering
- Provides Data Validation
At this moment a few data sources can be outlined that can work out the most of visual data representaion tasks.
- BaseDataSource - base Data Source type.
- ObjectDataSource - Data Source type for any type of data array.
- LocalStorageDataSource - Тип источника данных, который хранит массив данных в локальном хранилище браузера.
- RestDataSource - Data Source for any http-like data services.
- DocumentDataSource - InfinniPlatform document Data Source.
BaseDataSource¶
Функция-конструктор, определяющий базовый тип источников данных.
Description¶
Источники данных, представленные в InfinniUI, являются потомками BaseDataSource. В BaseDataSource реализованы базовые API, которые предоставлят все источники данных InfinniUI.
Syntax¶
new BaseDataSource(parameters)
Parameters¶
Name | Type | Description |
---|---|---|
parameters | Object |
Объект с параметрами представления. Один из параметров обязательный: parameters.view - родительское представление источника данных |
Properties¶
Name | Type | Description |
---|---|---|
name | String |
Содержит наименование источника данных |
onProviderErrorHandler | Script | Содержит обработчик события о том, что поставщик данных вернул ошибку |
Specific Properties¶
Для работы с данными свойствами используйте методы getProperty и setProperty. Обратите внимание, что для работы с данными свойствами необходимо указывать точку в названии.
Name | Description |
---|---|
items | Список элементов источника данных |
selectedItem | Выделенный элемент |
filter | Правило фильтрации документов |
filterParams | Параметры фильтра |
search | Строка полнотекстового поиска |
Methods¶
Name | Description |
---|---|
getView | Возвращает родительское представление |
getContext | Возвращает контекст родительского представления |
getName | Возвращает наименование источника данных |
setName | Устанавливает наименование источника данных |
suspendUpdate | Запрещает обновление списка элементов |
resumeUpdate | Разрешает обновление списка элементов |
isUpdateSuspended | Возвращает значение, указывающее, запрещено ли обновление списка элементов |
updateItems | Обновляет список элементов источника данных |
tryInitData | Пытается обновить список элементов источника. Делает это только в случае, если до этого источник не был прогружен данными |
isDataReady | Возвращает значение, указывающее, загрузились ли данные в источник или нет |
getItems | Возвращает список элементов источника данных |
createItem | Создает новый элемент в источнике данных |
saveItem | Сохраняет элемент в источнике данных |
deleteItem | Удаляет элемент из источника данных |
getSelectedItem | Возвращает выделенный элемент |
setSelectedItem | Устанавливает выделенный элемент |
getProperty | Возвращает значение указанного свойства источника |
setProperty | Устанавливает значение указанного свойства источника |
isLazy | Возвращает значение, является ли прогрузка данных в источнике “ленивой” или нет |
setIsLazy | Устанавливает значение, является ли прогрузка данных в источнике “ленивой” или нет |
isModified | Проверяет, является ли элемент несохраненным |
isModifiedItems | Проверяет, есть ли несохраненные элементы |
getFilter | Возвращает правило фильтрации документов |
setFilter | Устанавливает правило фильтрации документов |
getFilterParams | Возвращает параметры фильтра |
setFilterParams | Устанавливает параметры фильтра |
getSearch | Возвращает строку полнотекстового поиска |
setSearch | Устанавливает строку полнотекстового поиска |
getIdProperty | Возвращает наименование свойства с идентификатором элемента (по умолчанию Id) |
setIdProperty | Устанавливает наименование свойства с идентификатором элемента |
idOfItem | Возвращает значение идентификатора по переданному элементу item |
getFillCreatedItem | Возвращает, нужно ли предзаполнение новых элементов на сервере |
setFillCreatedItem | Устанавливает, нужно ли предзаполнение новых элементов на сервере |
getErrorValidator | Возвращает функцию проверки элемента на ошибки |
setErrorValidator | Устанавливает функцию проверки элемента на ошибки |
getValidationResult | Возвращает результат проверки на ошибки |
initDataProvider | Определяет обязательное свойство dataProvider. Наследники BaseDataSource должны переопределять этот метод! |
beforeDeleteItem | Вы можете переопределить этот метод в наследнике BaseDataSource, если есть необходимость выполнять некие действия перед удалением элемента |
Events¶
Name | Description |
---|---|
onSelectedItemChanged | станавливает обработчик события о том, что выделенный элемент изменился |
onPropertyChanged | Устанавливает обработчик события о том, что одно из свойств источника изменилось |
onItemCreated | Устанавливает обработчик события о том, что элемент создан |
onItemSaved | Устанавливает обработчик события о том, что элемент сохранен |
onItemDeleted | Устанавливает обработчик события о том, что элемент удален |
onItemsUpdated | Устанавливает обработчик события о том, что список элементов обновлен |
onErrorValidator | Устанавливает обработчик события о том, что произошла ошибка валидации |
onProviderError | Устанавливает обработчик события о том, что поставщик данных вернул ошибку |
BaseDataSource.metadata¶
Метаданные базового типа источников данных представления.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Name | String |
– | Наименование источника данных |
SuspendUpdate | String |
– | Причина запрета на обновление списка элементов. Для снятия запрета необходимо воспользоваться методом resumeUpdate(). |
Filter | String 1 |
– | Правило фильтрации документов |
FilterParams | Object |
– | Объект со значениями параметров. Параметр может быть задан как DataBinding. |
Search | String |
– | Строка полнотекстового поиска |
IdProperty | String |
‘_id’ | Свойство с идентификатором элемента |
FillCreatedItem | Boolean |
true | Логическое значение, указывающее, нужно ли предзаполнение новых элементов на сервере |
IsLazy | Boolean |
true | Логическое значение, определяющее, будет ли прогрузка данных в источнике “ленивой” или нет |
ResolvePriority | Integer |
0 | Приоритет прогрузки источника данных. Чем выше приоритет, тем раньше источник будет прогружен |
ValidationErrors | Script | – | Функция проверки элемента на ошибки |
CustomProperties | Object |
– | Вспомогательные параметры. Могут пригодиться, например, для настройки взаимодействия DataNavigation и RestDataSource. Объект является ассоциативным массивом, в котором key - это название свойства, а value - значение. |
OnErrorValidator | Script | – | Обработчик события о том, что проверка на ошибки завершена |
OnSelectedItemChanged | Script | – | Обработчик события о том, что выделенный элемент изменился |
OnPropertyChanged | Script | – | Обработчик события о том, что одно из свойств источника изменилось |
OnItemDeleted | Script | – | Обработчик события о том, что элемент удален |
OnItemsUpdated | Script | – | Обработчик события о том, что список элементов обновлен |
OnProviderError | Script | – | Обработчик события о том, что поставщик данных вернул ошибку |
1 Шаблонизируемая величина. Заполняется значениями из FilterParams.
Exampes¶
Создать экземпляр BaseDataSource нельзя (это абстрактный класс), однако можно создать ObjectDataSource, который наследуется от BaseDataSource.
{
"ObjectDataSource": {
"Name": "DocumentTypes",
"IdProperty": "guid",
"IsLazy": false,
"ValidationErrors": "{ return { IsValid: (args.Name != null), Items: [{Message: 'Name is required'}] }; }",
"OnPropertyChanged": "{ alert('Property ' + args.property + ' is changed!'); }"
}
}
Допустим возникла зависимость между источниками данных, и для корректной работы MainDataSource необходим загруженный TerminologyDataSource. Для решения этой проблемы достаточно указать ResolvePriority для TerminologyDataSource выше, чем для MainDataSource.
{
"DataSources": [
{
"DocumentDataSource": {
"Name": "MainDataSource",
"ConfigId": "configuration",
"DocumentId": "patients",
"SuspendUpdate": "SomeReason",
"Filter": "gt(Birthday,<%startDate%>)",
"FilterParams": {
"startDate": "date('1985-01-01')"
}
}
},
{
"DocumentDataSource": {
"Name": "TerminologyDataSource",
"ConfigId": "configuration",
"DocumentId": "diseases",
"Search": "Иванов Иван Иванович",
"ResolvePriority": 1
}
}
]
}
Реализация фильтра.
{
"DataSources": [
{
"ObjectDataSource": {
"Name": "ObjectDataSource",
"Items": [
{"_id": 1, "Name": "Mobile small", "currency": 1100, "Display": "480x320"},
{"_id": 2, "Name": "Mobile middle", "currency": 1200, "Display": "640x320"},
{"_id": 3, "Name": "Mobile large", "currency": 1300, "Display": "771x375"},
{"_id": 4, "Name": "Tablet", "currency": 1400, "Display": "960x480"},
{"_id": 5, "Name": "Desktop small", "currency": 1500, "Display": "1024x768"},
{"_id": 6, "Name": "Desktop middle", "currency": 1600, "Display": "1600x900"},
{"_id": 7, "Name": "Desktop", "currency": 2000, "Display": "1920x1080"}
],
"Filter": "and(contains(Name, <%filterName%>),contains(currency, <%filterPrice%>),contains(Display, <%filterDisplay%>))",
"FilterParams": {
"filterName": {
"Source": "ObjectDataSource2",
"Property": "$.FilterName"
},
"filterPrice": {
"Source": "ObjectDataSource2",
"Property": "$.FilterPrice"
},
"filterDisplay": {
"Source": "ObjectDataSource2",
"Property": "$.FilterDisplay"
}
}
}
},
{
"ObjectDataSource": {
"Name": "ObjectDataSource2",
"Items": [
{"_id": 1, "FilterName": "", "FilterPrice": "", "FilterDisplay": ""}
]
}
}
]
}
Пример заморозки DataSource из метаданных
{
"DataSources": [
{
"ObjectDataSource": {
"Name": "ObjectDataSource",
"SuspendUpdate": "SomeReason",
"Items": []
}
}
]
}
Пример настройки RestDataSource для работы с DataNavigation
{
"RestDataSource": {
"Name": "MainDataSource",
"CustomProperties": {
"pageNumber": 0,
"pageSize": 20
},
"GettingParams": {
"Origin": "http://localhost:9900",
"Method": "post",
"Params": {
"skip": {
"Source": "MainDataSource",
"Property": ".pageNumber",
"Converter": {
"ToElement": "{return args.source.getProperty('.pageSize') * args.value;}"
},
"DefaultValue": 0
},
"take": {
"Source": "MainDataSource",
"Property": ".pageSize",
"DefaultValue": 20
}
},
"Path": "/documents/PublicationInfo?skip=<%skip%>&take=<%take%>&count=true",
"Data": {}
},
"UpdatingItemsConverter": "{args.source.setProperty('.totalCount', args.value.Result.Count); return args.value.Result.Items;}"
}
}
See Also¶
BaseDataSource.beforeDeleteItem()¶
Вы можете переопределить этот метод в наследнике BaseDataSource, если есть необходимость выполнять некие действия перед удалением элемента
BaseDataSource.beforeDeleteItem(item)
Name | Description |
---|---|
item | Элемент источника данных |
Метод ничего не возвращает
var selectedItem = BaseDataSource.getSelectedItem();
BaseDataSource.beforeDeleteItem(selectedItem);
BaseDataSource.createItem()¶
Создает новый элемент в источнике данных.
Вызов метода createItem() приводит к созданию нового элемента в источнике данных, однако этот элемент создается только в оперативной памяти на стороне клиента, иначе говоря не сохраняется на сервере до тех пор, пока явно не будет вызван метод saveItem(). При создании нового элемента в источнике данных может происходить предзаполнение нового элемента. Необходимость предзаполнения можно установить с помощью метода setFillCreatedItem(). Успешное создание нового нового элемента в источнике данных приводит к возникновению события onItemCreated.
BaseDataSource.createItem(success, error)
Name | Description |
---|---|
success | Обработчик события о том, что элемент создан. Параметр args данного обработчика содержит поле value, в котором хранится ссылка на созданный элемент |
error | Обработчик события о том, что при создании элемента произошла ошибка |
Метод ничего не возвращает.
BaseDataSource.createItem(
function(context, args) { alert('New item is created!'); }
);
BaseDataSource.deleteItem()¶
Удаляет элемент в источнике данных.
Вызов метода deleteItem() производит удаление указанного элемента в соответствующем источнику данных хранилище. Успешное удаление элемента приводит к возникновению события onItemDeleted. В случае, когда сервер сообщает о невозможности удалить элемент, возникает событие onErrorValidator.
BaseDataSource.deleteItem(item, success, error)
Name | Description |
---|---|
item* | Элемент источника данных |
success | Обработчик события о том, что элемент удален. Параметр args данного обработчика содержит поля: item - сохраненный элемент, validationResult - результат валидации (чтобы данное поле было заполнено, запрашиваемый сервис должен реализовать интерфейс IDocumentStorageInterceptor), originalResponse - ответ сервера |
error | Обработчик события о том, что при удалении элемента произошла ошибка. Параметр args данного обработчика содержит поля: item - удаляемый элемент, validationResult - результат валидации (чтобы данное поле было заполнено, запрашиваемый сервис должен реализовать интерфейс IDocumentStorageInterceptor), originalResponse - ответ сервера |
* Обязательный аргумент.
Метод ничего не возвращает.
var items = BaseDataSource.getItems();
BaseDataSource.deleteItem(items[0]);
BaseDataSource.getContext()¶
Возвращает контекст родительского представления.
var viewContext = BaseDataSource.getContext();
BaseDataSource.getErrorValidator()¶
Возвращает функцию проверки элемента на ошибки.
Функция проверки элемента на ошибки в параметре
args
принимает элемент источника данных, который необходимо
проверить. Результатом работы функции является объект предопределенного
формата.
var errorValidator = BaseDataSource.getErrorValidator();
BaseDataSource.getFillCreatedItem()¶
Возвращает, нужно ли предзаполнение новых элементов на сервере.
BaseDataSource.getFillCreatedItem()
Нет
Логическое значение, указывающее, нужно ли предзаполнение новых элементов на сервере.
var fillCreatedItem = BaseDataSource.getFillCreatedItem();
BaseDataSource.getFilter()¶
Возвращает правило фильтрации документов.
var filter = dataSource.getFilter();
BaseDataSource.getFilterParams()¶
Возвращает значение параметра.
BaseDataSource.getFilterParams(value)
Name | Description |
---|---|
value | Название параметра |
Значение указанного параметра, либо объект со всеми параметрами, если метод вызывался без названия параметра.
var filterParams = dataSource.getFilterParams();
var documentName = dataSource.getFilterParams('documentName');
BaseDataSource.getSearch()¶
Возвращает строку полнотекстового поиска.
var searchStr = BaseDataSource.getSearch();
BaseDataSource.getIdProperty()¶
Возвращает наименование свойства с идентификатором элемента.
BaseDataSource.getIdProperty()
Нет
Наименование свойства с идентификатором элемента.
var idProperty = BaseDataSource.getIdProperty();
BaseDataSource.getItems()¶
Возвращает список элементов источника данных.
Вызов метода getItems() возвращает список элементов источника данных, который был загружен ранее. Список элементов содержит актуальное состояние источника данных, включая все изменения, которые производились над элементами.
var items = BaseDataSource.getItems();
BaseDataSource.getName()¶
Возвращает наименование источника данных.
var dataSourceName = BaseDataSource.getName();
BaseDataSource.getProperty()¶
Возвращает значение указанного свойства источника.
Методы getProperty(), setProperty() и событие onPropertyChanged используются механизмом привязки данных. Вместе с этим они предоставляют универсальный унифицированный интерфейс для работы со свойствами источника данных.
BaseDataSource.getProperty(property)
Name | Description |
---|---|
property | Путь к свойству (подробности использования см. в разделе Path rules) |
Значение свойства.
По умолчанию методы getProperty, setProperty и onPropertyChanged обращаются к свойствам элементов источников данных. Например, dataSource.getProperty(‘0.Name’) вернёт свойство Name первого элемента. Однако, иногда необходимо обращаться к собственным свойствам источника данных, тогда передназванием свойства укажите точку. Например, dataSource.getProperty(‘.selectedItem’) вернёт текущий элемент.
var value = BaseDataSource.getProperty('$.Property1');
BaseDataSource.getSelectedItem()¶
Возвращает выделенный элемент.
В каждый момент времени пользователь может работать только с одним элементом - выделенным элементом. Зачастую это элемент, на котором установлен фокус ввода. Например, редактируемый элемент, выбранный элемент в списке и т.д. Источник данных хранит информацию о выделенном элементе, благодаря чему имеется возможность определять элемент данных, с которым работает пользователь.
BaseDataSource.getSelectedItem()
Нет
Выделенный элемент источника данных.
var selectedItem = BaseDataSource.getSelectedItem();
BaseDataSource.getValidationResult()¶
Возвращает результат проверки на ошибки.
BaseDataSource.getValidationResult([item])
Name | Type | Description |
---|---|---|
item | – | Элемент источника данных. Если указан, на наличие ошибок проверяется только указанный элемент; если не указан на наличие ошибок проверяются все элементы |
var validationResult = BaseDataSource.getValidationResult(
BaseDataSource.getSelectedItem()
);
BaseDataSource.getView()¶
Возвращает родительское представление.
BaseDataSource.getView()
Нет
Родительское представление источника данных.
var parentView = BaseDataSource.getView();
BaseDataSource.idOfItem()¶
Возвращает значение идентификатора по переданному элементу item.
BaseDataSource.idOfItem(item)
Name | Description |
---|---|
item | Элемент источника данных |
Значение идентификатора.
var selectedItem = BaseDataSource.getSelectedItem();
var selectedId = BaseDataSource.idOfItem(selectedItem);
BaseDataSource.initDataProvider()¶
Определяет обязательное свойство dataProvider. Наследники BaseDataSource обязаны переопределять этот метод!
BaseDataSource.initDataProvider();
BaseDataSource.isDataReady()¶
Возвращает значение, указывающее, загрузились ли данные в источник или нет.
BaseDataSource.isDataReady()
Нет
Возвращает true
, если данные уже загружены, иначе возвращает
false
.
var isDataReady = BaseDataSource.isDataReady();
BaseDataSource.isLazy()¶
Возвращает значение, является ли прогрузка данных в источнике “ленивой” или нет.
Если источник ленивый, то данные не будут загружаться автоматически. Инициировать запрос за данными можно либо создав соответсвующий DataBinding, либо с помощью вызова updateItems. По умолчанию источник данных является ленивым.
BaseDataSource.isLazy()
Нет
Возвращает true
, если прогрузка данных в источнике является
“ленивой”, иначе возвращает false
.
var isLazy = BaseDataSource.isLazy();
BaseDataSource.isModified()¶
Проверяет, является ли элемент несохраненным.
BaseDataSource.isModified(item)
Name | Description |
---|---|
item | Элемент источника данных. Если указан, на наличие изменений проверяется только указанный элемент; если не указан, на наличие изменений проверяются все элементы |
Возвращает true
, если элемент был изменен, иначе возвращает
false
.
var selectedItem = BaseDataSource.getSelectedItem();
var selectedIsModified = BaseDataSource.isModified(selectedItem);
BaseDataSource.isModifiedItems()¶
Проверяет, есть ли несохраненные элементы.
BaseDataSource.isModifiedItems()
Нет
Возвращает true
, если есть несохраненные элементы, иначе возвращает
false
.
var haveModifiedItems = BaseDataSource.isModifiedItems();
BaseDataSource.isUpdateSuspended()¶
Возвращает значение, указывающее, запрещено ли обновление списка элементов.
BaseDataSource.isUpdateSuspended()
Нет
Возвращает true
, если обновление списка элементов запрещено, иначе
возвращает false
.
var isUpdateSuspended = BaseDataSource.isUpdateSuspended();
BaseDataSource.metadata¶
Метаданные базового типа источников данных представления.
Name | Type | Default | Description |
---|---|---|---|
Name | String |
– | Наименование источника данных |
SuspendUpdate | String |
– | Причина запрета на обновление списка элементов. Для снятия запрета необходимо воспользоваться методом resumeUpdate(). |
Filter | String 1 |
– | Правило фильтрации документов |
FilterParams | Object |
– | Объект со значениями параметров. Параметр может быть задан как DataBinding. |
Search | String |
– | Строка полнотекстового поиска |
IdProperty | String |
‘_id’ | Свойство с идентификатором элемента |
FillCreatedItem | Boolean |
true | Логическое значение, указывающее, нужно ли предзаполнение новых элементов на сервере |
IsLazy | Boolean |
true | Логическое значение, определяющее, будет ли прогрузка данных в источнике “ленивой” или нет |
ResolvePriority | Integer |
0 | Приоритет прогрузки источника данных. Чем выше приоритет, тем раньше источник будет прогружен |
ValidationErrors | Script | – | Функция проверки элемента на ошибки |
CustomProperties | Object |
– | Вспомогательные параметры. Могут пригодиться, например, для настройки взаимодействия DataNavigation и RestDataSource. Объект является ассоциативным массивом, в котором key - это название свойства, а value - значение. |
OnErrorValidator | Script | – | Обработчик события о том, что проверка на ошибки завершена |
OnSelectedItemChanged | Script | – | Обработчик события о том, что выделенный элемент изменился |
OnPropertyChanged | Script | – | Обработчик события о том, что одно из свойств источника изменилось |
OnItemDeleted | Script | – | Обработчик события о том, что элемент удален |
OnItemsUpdated | Script | – | Обработчик события о том, что список элементов обновлен |
OnProviderError | Script | – | Обработчик события о том, что поставщик данных вернул ошибку |
1 Шаблонизируемая величина. Заполняется значениями из FilterParams.
Создать экземпляр BaseDataSource нельзя (это абстрактный класс), однако можно создать ObjectDataSource, который наследуется от BaseDataSource.
{
"ObjectDataSource": {
"Name": "DocumentTypes",
"IdProperty": "guid",
"IsLazy": false,
"ValidationErrors": "{ return { IsValid: (args.Name != null), Items: [{Message: 'Name is required'}] }; }",
"OnPropertyChanged": "{ alert('Property ' + args.property + ' is changed!'); }"
}
}
Допустим возникла зависимость между источниками данных, и для корректной работы MainDataSource необходим загруженный TerminologyDataSource. Для решения этой проблемы достаточно указать ResolvePriority для TerminologyDataSource выше, чем для MainDataSource.
{
"DataSources": [
{
"DocumentDataSource": {
"Name": "MainDataSource",
"ConfigId": "configuration",
"DocumentId": "patients",
"SuspendUpdate": "SomeReason",
"Filter": "gt(Birthday,<%startDate%>)",
"FilterParams": {
"startDate": "date('1985-01-01')"
}
}
},
{
"DocumentDataSource": {
"Name": "TerminologyDataSource",
"ConfigId": "configuration",
"DocumentId": "diseases",
"Search": "Иванов Иван Иванович",
"ResolvePriority": 1
}
}
]
}
Реализация фильтра.
{
"DataSources": [
{
"ObjectDataSource": {
"Name": "ObjectDataSource",
"Items": [
{"_id": 1, "Name": "Mobile small", "currency": 1100, "Display": "480x320"},
{"_id": 2, "Name": "Mobile middle", "currency": 1200, "Display": "640x320"},
{"_id": 3, "Name": "Mobile large", "currency": 1300, "Display": "771x375"},
{"_id": 4, "Name": "Tablet", "currency": 1400, "Display": "960x480"},
{"_id": 5, "Name": "Desktop small", "currency": 1500, "Display": "1024x768"},
{"_id": 6, "Name": "Desktop middle", "currency": 1600, "Display": "1600x900"},
{"_id": 7, "Name": "Desktop", "currency": 2000, "Display": "1920x1080"}
],
"Filter": "and(contains(Name, <%filterName%>),contains(currency, <%filterPrice%>),contains(Display, <%filterDisplay%>))",
"FilterParams": {
"filterName": {
"Source": "ObjectDataSource2",
"Property": "$.FilterName"
},
"filterPrice": {
"Source": "ObjectDataSource2",
"Property": "$.FilterPrice"
},
"filterDisplay": {
"Source": "ObjectDataSource2",
"Property": "$.FilterDisplay"
}
}
}
},
{
"ObjectDataSource": {
"Name": "ObjectDataSource2",
"Items": [
{"_id": 1, "FilterName": "", "FilterPrice": "", "FilterDisplay": ""}
]
}
}
]
}
Пример заморозки DataSource из метаданных
{
"DataSources": [
{
"ObjectDataSource": {
"Name": "ObjectDataSource",
"SuspendUpdate": "SomeReason",
"Items": []
}
}
]
}
Пример настройки RestDataSource для работы с DataNavigation
{
"RestDataSource": {
"Name": "MainDataSource",
"CustomProperties": {
"pageNumber": 0,
"pageSize": 20
},
"GettingParams": {
"Origin": "http://localhost:9900",
"Method": "post",
"Params": {
"skip": {
"Source": "MainDataSource",
"Property": ".pageNumber",
"Converter": {
"ToElement": "{return args.source.getProperty('.pageSize') * args.value;}"
},
"DefaultValue": 0
},
"take": {
"Source": "MainDataSource",
"Property": ".pageSize",
"DefaultValue": 20
}
},
"Path": "/documents/PublicationInfo?skip=<%skip%>&take=<%take%>&count=true",
"Data": {}
},
"UpdatingItemsConverter": "{args.source.setProperty('.totalCount', args.value.Result.Count); return args.value.Result.Items;}"
}
}
BaseDataSource.name¶
Возвращает наименование источника данных. Свойство предназначено только для чтения.
var dataSourceName = BaseDataSource.name;
BaseDataSource.onErrorValidator¶
Устанавливает обработчик события о том, что произошла ошибка валидации.
BaseDataSource.onErrorValidator(callback)
Name | Type | Description |
---|---|---|
callback | Script | Обработчик события о том, что проверка на ошибки завершена. Параметр args данного обработчика в поле value содержит результаты проверки в предопределенном формате |
BaseDataSource.onErrorValidator(
function(context, args) {
alert('Validation result does not have any errors: ' + args.value.IsValid);
}
);
BaseDataSource.onItemCreated¶
Устанавливает обработчик события о том, что элемент создан.
Вызов метода createItem() приводит к созданию нового элемента в источнике данных, однако этот элемент создается только в оперативной памяти на стороне клиента, иначе говоря не сохраняется на сервере до тех пор, пока явно не будет вызван метод saveItem(). Успешное создание нового нового элемента в источнике данных приводит к возникновению события onItemCreated.
BaseDataSource.onItemCreated(callback)
BaseDataSource.onItemCreated(
function(context, args) { alert('New item is created!'); }
);
BaseDataSource.onItemDeleted¶
Устанавливает обработчик события о том, что элемент удален.
Вызов метода deleteItem() производит удаление указанного элемента в соответствующем источнику данных хранилище. Успешное удаление элемента приводит к возникновению события onItemDeleted.
BaseDataSource.onItemDeleted(callback)
Name | Type | Description |
---|---|---|
callback | Script | Обработчик события о том, что элемент удален. Параметр args данного обработчика содержит поля: source - ссылка на источник данных, value - удаленный элемент |
BaseDataSource.onItemDeleted(
function(context, args) { alert('Item is deleted!'); }
);
BaseDataSource.onItemSaved¶
Устанавливает обработчик события о том, что элемент сохранен.
Вызов метода saveItem() производит сохранение всех изменений указанного элемента в соответствующем источнику данных хранилище. Успешное сохранение элемента приводит к возникновению события onItemSaved.
BaseDataSource.onItemSaved(callback)
Name | Type | Description |
---|---|---|
callback | Script | Обработчик события о том, что элемент сохранен. Параметр args данного обработчика содержит поля: source - ссылка на источник данных, value - сохраненный элемент, result - информация о сохранении |
BaseDataSource.onItemSaved(
function(context, args) { alert('Item is saved!'); }
);
BaseDataSource.onItemsUpdated¶
Устанавливает обработчик события о том, что список элементов обновлен.
Вызов метода updateItems() производит загрузку списка элементов из соответствующего источнику данных хранилища. Если в источнике данных были несохраненные изменения, они будут потеряны, так как загруженные ранее данные будут заменены (обновлены) новыми. Успешное обновление списка элементов приводит к возникновению события onItemsUpdated.
BaseDataSource.onItemsUpdated(callback)
BaseDataSource.onItemsUpdated(
function(context, args) { alert('Items are updated!'); }
);
BaseDataSource.onPropertyChanged¶
Устанавливает обработчик события о том, что одно из свойств источника изменилось.
Методы getProperty(), setProperty() и событие onPropertyChanged используются механизмом привязки данных. Вместе с этим они предоставляют универсальный унифицированный интерфейс для работы со свойствами источника данных.
BaseDataSource.onPropertyChanged(property, callback, owner)
BaseDataSource.onPropertyChanged(callback, owner)
Второй вариант сигнатуры позволяет подписаться на изменение всех свойств.
Name | Type | Description |
---|---|---|
property | String |
Название свойства, изменения которого необходимо отслеживать (подробности использования см. в разделе Path rules) |
callback* | Script | Обработчик события о том, что одно из свойств источника изменилось. Параметр args данного обработчика содержит измененное свойство в поле property |
owner | – | Родительский элемент, используется для автоматической отписки. Должен иметь поле или метод isRemoved. Если isRemoved возвращает истину, происходит автоматическая отписка |
* Обязательный аргумент.
BaseDataSource.onPropertyChanged(
function(context, args) { alert('Property ' + args.property + ' is changed!'); }
);
BaseDataSource.onProviderError¶
Устанавливает обработчик события о том, что поставщик данных вернул ошибку. Узнать (только получить, но не переопределить!) текущий обработчик можно с помощью свойства onProviderErrorHandler.
BaseDataSource.onProviderError(callback)
Name | Type | Description |
---|---|---|
callback | Script | Обработчик события о том, что поставщик данных вернул ошибку |
BaseDataSource.onProviderError(
function(context, args) { alert('Provider Error'); }
);
BaseDataSource.onProviderErrorHandler¶
Возвращает обработчик события о том, что поставщик данных вернул ошибку. Свойство предназначено только для чтения.
BaseDataSource.onProviderErrorHandler
Обработчик события о том, что поставщик данных вернул ошибку.
var oldOnProviderErrorHandler = BaseDataSource.onProviderErrorHandler;
BaseDataSource.onProviderError(function(context, args){
if( oldOnProviderErrorHandler instanceof Function ) {
oldOnProviderErrorHandler(context, args);
}
newOnProviderErrorHandler(context, args);
});
BaseDataSource.onSelectedItemChanged¶
Устанавливает обработчик события о том, что выделенный элемент изменился.
BaseDataSource.onSelectedItemChanged(callback, owner)
Name | Type | Description |
---|---|---|
callback* | Script | Обработчик события о том, что выделенный элемент изменился. Параметр args данного обработчика содержит поля: source - ссылка на источник данных, value - выбранный элемент |
owner | – | Родительский элемент, используется для автоматической отписки. Должен иметь поле или метод isRemoved. Если isRemoved возвращает истину, происходит автоматическая отписка |
* Обязательный аргумент.
BaseDataSource.onSelectedItemChanged(
function(context, args) { alert('Selected item is changed!'); }
);
BaseDataSource.resumeUpdate()¶
Разрешает обновление списка элементов.
BaseDataSource.resumeUpdate(value)
Name | Description |
---|---|
value | Причина запрета на обновление |
Обратите внимание, что причина запрета, указанная в resumeUpdate должна совпадать с той, что была указана в suspendUpdate(). Пока не будут вызваны resumeUpdate для всех тех причин, которые указывались при вызовах suspendUpdate(), обновление списка элементов будет запрещено. Узнать, есть ли запрет на обновление списка элементов можно с помощью метода isUpdateSuspended().
Метод ничего не возвращает
BaseDataSource.resumeUpdate('updateParamsNotReady');
BaseDataSource.saveItem()¶
Сохраняет элемент в источнике данных.
Вызов метода saveItem() производит сохранение всех изменений указанного элемента в соответствующем источнику данных хранилище. Сохранение производится только в том случае, если указанный элемент не содержит ошибок, в противном случае возникает событие onErrorValidator. Успешное сохранение элемента приводит к возникновению события onItemSaved.
BaseDataSource.saveItem(item, success, error)
Name | Description |
---|---|
item* | Элемент источника данных |
success | Обработчик события о том, что элемент сохранен. Параметр args данного обработчика содержит поля: item - сохраненный элемент, validationResult - результат валидации (чтобы данное поле было заполнено, запрашиваемый сервис должен реализовать интерфейс IDocumentStorageInterceptor), originalResponse - ответ сервера |
error | Обработчик события о том, что при сохранении элемента произошла ошибка. Параметр args данного обработчика содержит поля: item - сохраняемый элемент, validationResult - результат валидации (чтобы данное поле было заполнено, запрашиваемый сервис должен реализовать интерфейс IDocumentStorageInterceptor), originalResponse - ответ сервера |
* Обязательный аргумент.
Метод ничего не возвращает.
var items = BaseDataSource.getItems();
BaseDataSource.saveItem(items[0]);
BaseDataSource.setErrorValidator()¶
Устанавливает функцию проверки элемента на ошибки.
Функция проверки элемента на ошибки в параметре
args
принимает элемент источника данных, который необходимо
проверить. Результатом работы функции является объект предопределенного
формата.
BaseDataSource.setErrorValidator(
function(context, args) {
if (/^[a-z]+$/i.test(args.FirstName)) {
return {
IsValid: true
};
}
else {
return {
IsValid: false,
Items: [
{
Property: 'FirstName',
Message: 'First name should contains Latin symbols only'
}
]
};
}
}
);
BaseDataSource.setFillCreatedItem()¶
Устанавливает, нужно ли предзаполнение новых элементов на сервере.
BaseDataSource.setFillCreatedItem(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Логическое значение, указывающее, нужно ли предзаполнение новых элементов на сервере |
Метод ничего не возвращает.
BaseDataSource.setFillCreatedItem(true);
BaseDataSource.setFilter()¶
Устанавливает правило фильтрации документов.
Если в источнике данных разрешено обновление списка элементов и он уже обновлялся, изменение фильтра приводит к автоматическому обновлению списка элементов источника данных.
BaseDataSource.setFilter(value)
Name | Type | Description |
---|---|---|
value | String 1 |
Правило фильтрации документов |
1 Шаблонизируемая величина. Для определения параметров используйте метод setFilterParams().
Метод ничего не возвращает.
Syntax | Description |
---|---|
Логические функции | |
Обозначим, через f_1, f_2, … - функции возвращающие булевы значения | |
not(f_1) | Вернёт элементы, которые не подходят под условие filter_1 |
or(f_1, f_2, …) | Вернёт элементы, в которых выполняется хотя бы одно из условий filter_1, filter_2, … |
and(f_1, f_2, …) | Вернёт элементы, в которых выполняются все условия filter_1, filter_2, … |
Функции фильтрации по свойствам элементов источника данных | |
exists(propertyName[, flag]) | Вернёт элементы, которые содержат свойство propertyName (причем его значение != null и != undefined). Если указан flag=false, то, напротив, будут выбраны элементы, которые не содержат свойства propertyName |
type(propertyName, type) | Вернёт элементы, в которых свойство propertyName принимает значение типа type |
in(propertyName, arg1, arg2, …) | Вернёт элементы, которые в свойстве propertyName содержат значения arg1, arg2, … |
notIn(propertyName, arg1, arg2, …) | Вернёт элементы, которые в свойстве propertyName не содержат значений arg1, arg2, … |
eq(propertyName, value) | Вернёт элементы, в которых свойство propertyName принимает значение value |
notEq(propertyName, value) | Вернёт элементы, в которых свойство propertyName принимает значение отличное от value |
gt(propertyName, value) | Вернёт элементы, в которых свойство propertyName принимает значение большее, чем value |
gte(propertyName, value) | Вернёт элементы, в которых свойство propertyName принимает значение, которое больше либо равно value |
lt(propertyName, value) | Вернёт элементы, в которых свойство propertyName принимает значение меньшее, чем value |
lte(propertyName, value) | Вернёт элементы, в которых свойство propertyName принимает значение, которое меньше либо равно value |
regex(propertyName, pattern[, arg1, arg2, …]) | Вернёт элементы, в которых свойство propertyName соответсвут шаблону pattern. В качестве arg1, arg2, … можно передать настройки regex. Возможны следующие настройки: IgnoreCase - Игнорирует регистр символов. Singleline - Указывает однострочный режим. Изменяет значение точки (.) так, что она соответствует любому символу (вместо любого символа, кроме “n”). Multiline - Многострочный режим. Изменяет значение символов “^” и “$” так, что они совпадают, соответственно, в начале и конце любой строки, а не только в начале и конце целой строки. |
startsWith(propertyName, value[, ignoreCase = true]) | Вернёт элементы, в которых свойство propertyName начинается подстрокой value |
endsWith(propertyName, value[, ignoreCase = true]) | Вернёт элементы, в которых свойство propertyName заканчивается подстрокой value |
contains(propertyName, value[, ignoreCase = true]) | Вернёт элементы, в которых свойство propertyName содержит подстроку value |
Функции фильтрации по содержимому массивов, хранящихся в элементах | |
Обозначим через arrayProperty - свойство ссылающееся на массив | |
match(arrayProperty, f_1) | Хотя бы один из элементов массива удовлетворяет условию f_1 |
all(arrayProperty, arg1, arg2, …) | Все элементы из массива входят в множество [arg1, arg2, …] |
anyIn(arrayProperty, arg1, arg2, …) | Хотя бы один из элементов массива входит в множество [arg1, arg2, …] |
anyNotIn(arrayProperty, arg1, arg2, …) | Хотя бы один из элементов массива не входит в множество [arg1, arg2, …] |
anyEq(arrayProperty, value) | Хотя бы один из элементов массива принимает значение value |
anyNotEq(arrayProperty, value) | Хотя бы один из элементов массива принимает значение отличное от value |
anyGt(arrayProperty, value) | Хотя бы один из элементов массива принимает значение большее, чем value |
anyGte(arrayProperty, value) | Хотя бы один из элементов массива принимает значение, которое больше либо равно value |
anyLt(arrayProperty, value) | Хотя бы один из элементов массива принимает значение меньшее, чем value |
anyLte(arrayProperty, value) | Хотя бы один из элементов массива принимает значение, которое меньше либо равно value |
sizeEq(arrayProperty, size) | Число элементов массива равно size |
sizeGt(arrayProperty, size) | Число элементов массива больше чем size |
sizeGte(arrayProperty, size) | Число элементов массива больше либо равно size |
sizeLt(arrayProperty, size) | Число элементов массива меньше чем size |
sizeLte(arrayProperty, size) | Число элементов массива меньше либо равно size |
Полнотекстовый поиск | |
text(search[, language = null[, caseSensitive = false[, diacriticSensitive = false]]]) | Вернёт элементы, в которых содержится строка search. Если указать language(напр, ‘ru’), то поиск будет осуществляться с учётом особенностей данного языка. Если в параметрах caseSensitive и diacriticSensitive передать значение true, то поиск будет осуществляться с учётом регистра и диакритических знаков |
Вернет элементы, в которых поле ‘_id’ равно 123:
dataSource.setFilter("eq(_id,123)");
Вернет элементы, в которых ‘birthday’ > ‘2012-01-26T13:51:50.417Z’:
dataSource.setFilter("gt(birthday,date('2012-01-26T13:51:50.417Z'))");
Вернет элементы, в которых ‘FirstName’ соответсвует маске ‘^И(ван|рина)$’ (не зависит от регистра):
dataSource.setFilter("regex(FirstName, '^И(ван|рина)$', IgnoreCase)");
Вернет элементы, в которых ‘FirstName’ начинается с ‘Але’ (с учётом регистра):
dataSource.setFilter("startsWith(FirstName, 'Але', false)");
Вернет элементы, в которых хотя бы один из элементов массива props содержит значение ‘font’ в поле name:
dataSource.setFilter("match(props, eq(name,'font'))");
Вернет элементы, в которых хотя бы один из элементов массива items не входит в множество [true, 34535, ‘hello’]:
dataSource.setFilter("anyNotIn(items, true, 34535, 'hello')");
Вернет элементы, в которых либо id=423434, либо id=231 и isActive=true:
dataSource.setFilter("or(and(eq(id,231),eq(isActive,true)),eq(id,423434))");
Сработает регистрозависимый полнотекстовый поиск:
dataSource.setFilter("text('Иванов Иван Иванович', null, true)");
BaseDataSource.setFilterParams()¶
Устанавливает значение параметра.
BaseDataSource.setFilterParams(name, value)
Name | Description |
---|---|
name | Название параметра |
value | Значение, которое необходимо установить |
Метод ничего не возвращает
var filter = 'and(contains(Name, <%filterName%>),contains(currency, <%filterPrice%>))';
dataSource.setFilter(filter);
dataSource.setFilterParams('filterName', 'name');
dataSource.setFilterParams('filterPrice', '999');
BaseDataSource.setSearch()¶
Устанавливает строку полнотекстового поиска.
BaseDataSource.setSearch(value)
Name | Type | Description |
---|---|---|
value | String |
Строка полнотекстового поиска |
Метод ничего не возвращает.
BaseDataSource.setSearch("Иванов Иван Иванович");
BaseDataSource.setIdProperty()¶
Устанавливает наименование свойства с идентификатором элемента.
BaseDataSource.setIdProperty(value)
Name | Description |
---|---|
value | Наименование свойства с идентификатором элемента |
Метод ничего не возвращает.
BaseDataSource.setIdProperty('Id');
BaseDataSource.setIsLazy()¶
Устанавливает значение, является ли прогрузка данных в источнике “ленивой” или нет.
Если источник ленивый, то данные не будут загружаться автоматически. Инициировать запрос за данными можно либо создав соответсвующий DataBinding, либо с помощью вызова updateItems. По умолчанию источник данных является ленивым.
BaseDataSource.setIsLazy(value)
Name | Description |
---|---|
value | Логическое значение, определяющее, является ли прогрузка данных в источнике “ленивой” или нет |
Метод ничего не возвращает.
BaseDataSource.setIsLazy(false);
BaseDataSource.setName()¶
Устанавливает наименование источника данных.
BaseDataSource.setName(value)
Name | Description |
---|---|
value | Наименование источника данных |
Метод ничего не возвращает.
BaseDataSource.setName('dataSource1');
BaseDataSource.setProperty()¶
Устанавливает значение указанного свойства источника.
Методы getProperty(), setProperty() и событие onPropertyChanged используются механизмом привязки данных. Вместе с этим они предоставляют универсальный унифицированный интерфейс для работы со свойствами источника данных.
BaseDataSource.setProperty(property, value)
Name | Description |
---|---|
property | Путь к свойству (подробности использования см. в разделе Path rules) |
value | Значение свойства |
Метод ничего не возвращает.
BaseDataSource.setProperty('$.Property1', 123);
BaseDataSource.setSelectedItem()¶
Устанавливает выделенный элемент.
В каждый момент времени пользователь может работать только с одним элементом - выделенным элементом. Зачастую это элемент, на котором установлен фокус ввода. Например, редактируемый элемент, выбранный элемент в списке и т.д. Источник данных хранит информацию о выделенном элементе, благодаря чему имеется возможность определять элемент данных, с которым работает пользователь. Изменение выделенного элемента приводит к возникновению события onSelectedItemChanged.
BaseDataSource.setSelectedItem(item, success, error)
Name | Description |
---|---|
item* | Элемент источника данных |
success | Обработчик события о том, что выделенный элемент изменился. Параметр args данного обработчика содержит поле source, в котором хранится ссылка на источник данных |
error | Обработчик события о том, что при изменении выделенного элемента произошла ошибка. Параметр args данного обработчика содержит поле error, хранящее сообщение об ошибке |
* Обязательный аргумент.
Метод ничего не возвращает.
var items = BaseDataSource.getItems();
BaseDataSource.setSelectedItem(items[0]);
BaseDataSource.suspendUpdate()¶
Запрещает обновление списка элементов.
BaseDataSource.suspendUpdate(value)
Name | Description |
---|---|
value | Причина запрета на обновление |
Метод ничего не возвращает
BaseDataSource.suspendUpdate('updateParamsNotReady');
BaseDataSource.tryInitData()¶
Пытается обновить список элементов источника. Делает это только в случае, если до этого источник не был прогружен данными.
BaseDataSource.tryInitData();
BaseDataSource.updateItems()¶
Обновляет список элементов источника данных.
Вызов метода updateItems() производит загрузку списка элементов из соответствующего источнику данных хранилища. Если в источнике данных были несохраненные изменения, они будут потеряны, так как загруженные ранее данные будут заменены (обновлены) новыми. Загрузка элементов производится с учетом всех имеющихся фильтров. Успешное обновление списка элементов приводит к возникновению события onItemsUpdated.
BaseDataSource.updateItems(success, error)
Name | Description |
---|---|
success | Обработчик события о том, что список элементов обновлен. Параметр args данного обработчика содержит поле value, в котором хранится новый список элементов источника данных |
error | Обработчик события о том, что при обновлении списка элементов произошла ошибка |
Метод ничего не возвращает.
BaseDataSource.updateItems();
ValidationResult¶
Результат проверки объекта.
Результатом работы любой функции проверки элемента источника данных
должен быть объект указанного ниже формата. Свойство IsValid
содержит логическое значение, указывающее на признак успешности
проверки. Если IsValid
равен true
, считается, что объект прошел
проверку; если IsValid
равен false
- объект не прошел проверку.
В случае, если объект не прошел проверку, массив Items
необходимо
заполнить результатами проверки объекта - информацией об ошибках.
Name | Description |
---|---|
IsValid | Признак успешности проверки |
Items | Список результатов проверки свойств объекта |
Name | Description |
---|---|
error | Добавлет элемент с информацией об ошибке в массив Items и устанавливает значение IsValid в false |
{
IsValid: false,
Items: [
{
Property: 'FirstName',
Message: 'First name should contains Latin symbols only'
}
]
}
var validationResult = new window.InfinniUI.ValidationResult();
if (!args.value.requiredProperty) {
validationResult.error('error message', 'path of required property');
}
return validationResult;
ValidationResult.error()¶
Добавление информации об ошибке
Добавлет элемент с информацией об ошибке в массив Items
и устанавливает значение IsValid в false.
ValidationResult.error(message, pathToProperty)
Name | Type | Description |
---|---|---|
message | String |
Сообщение об ошибке |
pathToProperty | String |
Путь до property |
Метод ничего не возвращает
var validationResult = new window.InfinniUI.ValidationResult();
validationResult.error('some mesage', 'path to property');
DocumentDataSource¶
Источник данных представления для документов InfinniPlatform.
Description¶
Для работы с документами, хранящимися в InfinniPlatform, следует
использовать источник данных DocumentDataSource
. Для определения
источника данных достаточно указать идентификатор документа, с которым
будет осуществляться работа.
Extends¶
Syntax¶
new DocumentDataSource(parameters)
Parameters¶
Name | Type | Description |
---|---|---|
parameters | Object |
Объект с параметрами представления. Один из параметров обязательный: parameters.view - родительское представление источника данных |
Properties¶
Нет
Specific Properties¶
Для работы с данными свойствами используйте методы getProperty и setProperty. Обратите внимание, что для работы с данными свойствами необходимо указывать точку в названии.
Name | Default | Description |
---|---|---|
documentId | – | Идентификатор документа |
pageNumber | 0 | Номер страницы |
pageSize | 15 | Размер страницы |
select | – | Правило отображения документов |
order | – | Правило сортировки документов |
needTotalCount | false | Необходимость подсчета общего количества документов |
totalCount 1 | – | Общее число документов ( заполняется, когда needTotalCount == true ) |
additionalResult 1 | – | Дополнительные результаты запроса на получение данных |
1 поле только для чтения
Изменение параметров filter, filterParams, pageSize
,
search, order
приводит к обнулению pageNumber
.
Methods¶
Name | Description |
---|---|
getDocumentId | Возвращает идентификатор документа |
setDocumentId | Устанавливает идентификатор документа |
setIdFilter | Устанавливает фильтр элементов по идентификатору |
getPageNumber | Возвращает номер страницы |
setPageNumber | Устанавливает номер страницы |
getPageSize | Возвращает размер страницы |
setPageSize | Устанавливает размер страницы |
getSelect | Возвращает правило отображения документов |
setSelect | Устанавливает правило отображения документов |
getOrder | Возвращает правило сортировки документов |
setOrder | Устанавливает правило сортировки документов |
getNeedTotalCount | Возвращает значение, определяющее необходимость подсчета общего количества документов |
setNeedTotalCount | Устанавливает значение, определяющее необходимость подсчета общего количества документов |
getTotalCount | Возвращает общее количество документов, хранящихся в InfinniPlatform и соответсвующих запросу |
Events¶
Нет
DocumentDataSource.getDocumentId()¶
Возвращает идентификатор документа.
var documentId = DocumentDataSource.getDocumentId();
DocumentDataSource.getNeedTotalCount()¶
Возвращает значение, определяющее необходимость подсчета общего количества документов.
Функции setPageNumber и setPageSize определяют, какие документы, из хранящихся в InfinniPlatform, будут загружены в источник данных и сколько их будет. Однако, иногда возникает необходимость узнать общее количество документов. В таком случае необходимо установить needTotalCount равным true (например, с помощью метода setNeedTotalCount), обновить список элементов источника данных и получит искомое количество с помощью метода getTotalCount.
DocumentDataSource.getNeedTotalCount()
Нет
Логическое значение, определяющее необходимость подсчета общего количества документов.
var needTotalCount = DocumentDataSource.getNeedTotalCount();
DocumentDataSource.getOrder()¶
Возвращает правило сортировки документов.
var order = DocumentDataSource.getOrder();
DocumentDataSource.getPageNumber()¶
Возвращает номер страницы.
BaseDataSource.getPageNumber()
Нет
Номер страницы. Целое число, начиная с 0.
var pageNumber = BaseDataSource.getPageNumber();
DocumentDataSource.getPageSize()¶
Возвращает размер страницы.
DocumentDataSource.getPageSize()
Нет
Размер страницы. Положительное число.
var pageSize = DocumentDataSource.getPageSize();
DocumentDataSource.getSelect()¶
Возвращает правило отображения документов.
var selectFormat = DocumentDataSource.getSelect();
DocumentDataSource.getTotalCount()¶
Возвращает общее количество документов, хранящихся в InfinniPlatform и соответсвующих запросу.
Функции setPageNumber и
setPageSize определяют, какие
документы, из хранящихся в InfinniPlatform, будут загружены в источник
данных и сколько их будет. Однако, иногда возникает необходимость узнать
общее количество документов. В таком случае необходимо установить
needTotalCount равным true (например, с
помощью метода
setNeedTotalCount),
обновить список элементов источника
данных и получит
искомое количество с помощью метода getTotalCount
.
DocumentDataSource.getTotalCount()
Нет
Общее количество документов, хранящихися в InfinniPlatform и соответсвующих запросу.
var totalCount = DocumentDataSource.getTotalCount();
DocumentDataSource.metadata¶
Метаданные источника данных представления для документов InfinniPlatform.
Name | Type | Default | Description |
---|---|---|---|
DocumentId | String |
– | Идентификатор документа |
PageNumber | Integer |
0 | Номер страницы |
PageSize | Integer |
15 | Размер страницы |
Select | String |
– | Правило отображения документов |
Order | String |
– | Правило сортировки документов |
NeedTotalCount | Boolean |
– | Необходимость подсчета количества |
{
"DocumentDataSource": {
"Name": "documentDataSource1",
"DocumentId": "MyDocument",
"PageNumber": 3,
"PageSize": 50,
"Select": "include(LastName, FirstName, Address, Birthday)",
"Order": "asc(LastName, FirstName)"
}
}
{
"DocumentDataSource": {
"Name": "documentDataSource2",
"DocumentId": "MyDocument",
"NeedTotalCount": true
}
}
DocumentDataSource.setDocumentId()¶
Устанавливает идентификатор документа.
DocumentDataSource.setDocumentId(value)
Name | Description |
---|---|
value | Идентификатор документа |
Метод ничего не возвращает
DocumentDataSource.setDocumentId('MyDocument');
DocumentDataSource.setIdFilter()¶
Устанавливает фильтр элементов по идентификатору.
DocumentDataSource.setIdFilter(itemId)
Name | Description |
---|---|
itemId | Идентификатор элемента |
Метод ничего не возвращает.
DocumentDataSource.setIdFilter('dd4d1bb3-5571-453c-9686-d04d4d0f0316');
DocumentDataSource.setNeedTotalCount()¶
Устанавливает значение, определяющее необходимость подсчета общего количества документов.
Функции setPageNumber и
setPageSize определяют, какие
документы, из хранящихся в InfinniPlatform, будут загружены в источник
данных и сколько их будет. Однако, иногда возникает необходимость узнать
общее количество документов. В таком случае необходимо установить
needTotalCount равным true (например, с
помощью метода setNeedTotalCount
, обновить список элементов
источника данных и
получит искомое количество с помощью метода
getTotalCount.
DocumentDataSource.setNeedTotalCount(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Значение, определяющее необходимость подсчета общего количества документов |
Метод ничего не возвращает.
BaseDataSource.setNeedTotalCount(true);
DocumentDataSource.setOrder()¶
Устанавливает правило сортировки документов.
DocumentDataSource.setOrder(value)
Name | Type | Description |
---|---|---|
value | String |
Правило сортировки документов |
Метод ничего не возвращает.
Правила сортировки можно указывать через запятую. При этом приоритет сортировки будет зависеть от порядка следования.
Syntax | Description |
---|---|
asc(f1, f2, …) | Элементы источника данных будут сортироваться по возврастанию полей f1, f2, … |
desc(f1, f2, …) | Элементы источника данных будут сортироваться по убыванию полей f1, f2, … |
BaseDataSource.setOrder("asc(LastName),desc(FirstName,MiddleName),asc(Birthday)");
DocumentDataSource.setPageNumber()¶
Устанавливает номер страницы.
Если в источнике данных разрешено обновление списка элементов, изменение номера страницы приводит к автоматическому обновлению списка элементов источника данных.
DocumentDataSource.setPageNumber(value)
Name | Description |
---|---|
value | Номер страницы. Целое число, начиная с 0 |
Метод ничего не возвращает
DocumentDataSource.setPageNumber(5);
DocumentDataSource.setPageSize()¶
Устанавливает размер страницы.
Если в источнике данных разрешено обновление списка элементов, изменение размера страницы приводит к автоматическому обновлению списка элементов источника данных.
DocumentDataSource.setPageSize(value)
Name | Description |
---|---|
value | Размер страницы. Положительное число |
Метод ничего не возвращает
DocumentDataSource.setPageSize(50);
DocumentDataSource.setSelect()¶
Устанавливает правило отображения документов.
DocumentDataSource.setSelect(value)
Name | Type | Description |
---|---|---|
value | String |
Правило отображения документов |
Метод ничего не возвращает.
Syntax | Description |
---|---|
include(f1, f2, …) | Элементы источника данных будут содержать только поля f1, f2, … |
exclude(f1, f2, …) | Элементы источника данных будут содержать все свои исходные поля, кроме f1, f2, … |
BaseDataSource.setSelect("include(name, full_address, stage)");
DocumentDataSource.metadata¶
Метаданные источника данных представления для документов InfinniPlatform.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
DocumentId | String |
– | Идентификатор документа |
PageNumber | Integer |
0 | Номер страницы |
PageSize | Integer |
15 | Размер страницы |
Select | String |
– | Правило отображения документов |
Order | String |
– | Правило сортировки документов |
NeedTotalCount | Boolean |
– | Необходимость подсчета количества |
Examples¶
{
"DocumentDataSource": {
"Name": "documentDataSource1",
"DocumentId": "MyDocument",
"PageNumber": 3,
"PageSize": 50,
"Select": "include(LastName, FirstName, Address, Birthday)",
"Order": "asc(LastName, FirstName)"
}
}
{
"DocumentDataSource": {
"Name": "documentDataSource2",
"DocumentId": "MyDocument",
"NeedTotalCount": true
}
}
ObjectDataSource¶
Источник данных представления для произвольного массива.
Description¶
Очень часто встречаются ситуации, когда визуальное представление
оперирует предопределенным набором данных, которые не имеет смысла
хранить во внешнем источнике данных, и можно жестко прописать в коде.
Например, выпадающий список, разрешающий выбрать значение из строго
определенного множества элементов. При решении подобных задач следует
использовать ObjectDataSource
- он позволяет определить произвольный
массив данных в качестве поставщика данных.
Extends¶
Syntax¶
new ObjectDataSource(parameters)
Parameters¶
Name | Type | Description |
---|---|---|
parameters | Object |
Объект с параметрами представления. Один из параметров обязательный: parameters.view - родительское представление источника данных |
Properties¶
Нет
Specific Properties¶
Нет
Events¶
Нет
ObjectDataSource.metadata¶
Метаданные ObjectDataSource.
Name | Type | Description |
---|---|---|
Items | Array (⇔) |
Массив элементов источника данных |
(⇔) Свойство может быть задано, как DataBinding.
{
"ObjectDataSource": {
"Name": "objectDataSource1",
"Items": [
{ "Id": 1, "Display": "LTE" },
{ "Id": 2, "Display": "3G" },
{ "Id": 3, "Display": "2G" }
]
}
}
{
"ObjectDataSource": {
"Name": "convertedDataSource",
"Items": {
"Source": "MainDataSource",
"Property": "",
"Mode": "ToElement",
"Converter": {
"ToElement": "{ return args.value.map(function(item){return {FullName: item.LastName + ' ' + item.FirstName, Birthday: item.Birthday}; }); }"
}
}
}
}
ObjectDataSource.setItems()¶
Устанавливает список элементов источника данных.
Вызов метода setItems()
устанавливает указанный массив в качестве
поставщика данных. Данный метод не обновляет список элементов источника
данных. Для обновления списка элементов необходимо вызвать метод
updateItems().
ObjectDataSource.setItems(items)
Name | Description |
---|---|
items | Массив элементов источника данных |
Метод ничего не возвращает
ObjectDataSource.setItems([
{ Id: 1, Display: 'LTE' },
{ Id: 2, Display: '3G' },
{ Id: 3, Display: '2G' }
]);
ObjectDataSource.updateItems();
ObjectDataSource.metadata¶
Метаданные ObjectDataSource.
Properties¶
Name | Type | Description |
---|---|---|
Items | Array (⇔) |
Массив элементов источника данных |
(⇔) Свойство может быть задано, как DataBinding.
Examples¶
{
"ObjectDataSource": {
"Name": "objectDataSource1",
"Items": [
{ "Id": 1, "Display": "LTE" },
{ "Id": 2, "Display": "3G" },
{ "Id": 3, "Display": "2G" }
]
}
}
{
"ObjectDataSource": {
"Name": "convertedDataSource",
"Items": {
"Source": "MainDataSource",
"Property": "",
"Mode": "ToElement",
"Converter": {
"ToElement": "{ return args.value.map(function(item){return {FullName: item.LastName + ' ' + item.FirstName, Birthday: item.Birthday}; }); }"
}
}
}
}
LocalStorageDataSource¶
Источник данных представления для произвольного массива.
Description¶
Очень часто встречаются ситуации, когда визуальное представление
оперирует предопределенным набором данных, которые необходимо хранить в local storage браузера.
Например, индивидуальные конфигурации страницы, для каждого пользователя. При решении подобных задач следует
использовать LocalStorageDataSource
- он позволяет определить произвольный
массив данных, которые будут сохранены в браузере ползователя. Источник данных создается в единственном экземпляре на страницу.
Extends¶
Syntax¶
window.InfinniUI.localStorageDataSource
Parameters¶
Нет
В метаданных LocalStorageDataSource может задаваться в качестве источника для DataBinding. При этом имя источника необходимо указывать как LocalStorageDS
.
{
"Label": {
"Name": "SomeLabel",
"Value": {
"Source": "LocalStorageDS",
"Property": "0.FirstName"
}
}
}
{
"Button": {
"Name": "SomeButton",
"Text": {
"Source": "LocalStorageDS",
"Property": "0.BtnName"
}
}
}
LocalStorageDataSource.metadata¶
В метаданных LocalStorageDataSource может задаваться в качестве источника для DataBinding. При этом имя источника необходимо указывать как LocalStorageDS
.
Examples¶
{
"Label": {
"Name": "SomeLabel",
"Value": {
"Source": "LocalStorageDS",
"Property": "0.FirstName"
}
}
}
{
"Button": {
"Name": "SomeButton",
"Text": {
"Source": "LocalStorageDS",
"Property": "0.BtnName"
}
}
}
RestDataSource¶
Источник данных представления для произвольных http-сервисов данных.
Extends¶
Syntax¶
new RestDataSource(parameters)
Parameters¶
Name | Type | Description |
---|---|---|
parameters | Object |
Объект с параметрами представления. Один из параметров обязательный: parameters.view - родительское представление источника данных |
Properties¶
Нет
Specific Properties¶
Для работы с данными свойствами используйте методы getProperty и setProperty.
Обратите внимание, что для работы с данными свойствами необходимо указывать точку в названии.
Name | Description |
---|---|
urlParams.get | Параметры запроса на получение данных |
urlParams.set | Параметры запроса на сохранение данных |
urlParams.delete | Параметры запроса на удаление |
urlParams Format¶
Параметры запроса хранятся в виде объекта со следующими полями:
Name | Type | Description |
---|---|---|
origin | String 1 |
Хост и порт |
path | String 1 |
Строка пути (относительно хоста) |
method | String |
Метод запроса |
data | Object 1 |
Данные запроса |
params | Object |
Параметры запроса |
Parameters Templating¶
Зачастую при описании запроса возникает необходимость использовать изменяемые значения.
Для этого в RestDataSource введены параметры. Вы можете задать
значение параметра в свойстве params. А затем использовать его в
шаблонизируемых величинах, обозначив <%[paramName]%>
.
Например, задан параметр userId, тогда в свойстве path можно
обратится к нему следующим образом:
"/users?filter=eq(userId,<%userId%>)"
. При отправке запроса вместо
<%userId%> будет установлено соответсвующее значение параметра.
RestDataSource.setGettingUrlParams('params.userId', '12345');
RestDataSource.setGettingUrlParams('path', '/users?filter=eq(userId,<%userId%>)');
Methods¶
Name | Description |
---|---|
getGettingUrlParams | Возвращает параметры запроса на получение данных |
setGettingUrlParams | Устанавливает параметры запроса на получение данных |
getSettingUrlParams | Возвращает параметры запроса на сохранение данных |
setSettingUrlParams | Устанавливает параметры запроса на сохранение данных |
getDeletingUrlParams | Возвращает параметры запроса на удаление |
setDeletingUrlParams | Устанавливает параметры запроса на удаление |
setUpdatingItemsConverter | Устанавливает конвертер ответа http-сервиса в контейнер элементов источника данных |
Events¶
Нет
RestDataSource.getDeletingUrlParams()¶
Возвращает параметры запроса на удаление.
RestDataSource.getDeletingUrlParams(propertyName)
Name | Description |
---|---|
propertyName | Название параметра |
Значение указанного парметра. Если propertyName не было указано, то вернёт объект со значениями всех параметров.
RestDataSource.getDeletingUrlParams('origin');
RestDataSource.getGettingUrlParams()¶
Возвращает параметры запроса на получение данных.
RestDataSource.getGettingUrlParams(propertyName)
Name | Description |
---|---|
propertyName | Название параметра |
Значение указанного парметра. Если propertyName не было указано, то вернёт объект со значениями всех параметров.
RestDataSource.getGettingUrlParams('path');
RestDataSource.getSettingUrlParams()¶
Возвращает параметры запроса на сохранение данных.
RestDataSource.getSettingUrlParams(propertyName)
Name | Description |
---|---|
propertyName | Название параметра |
Значение указанного парметра. Если propertyName не было указано, то вернёт объект со значениями всех параметров.
RestDataSource.getSettingUrlParams('data');
RestDataSource.metadata¶
Метаданные RestDataSource.
Name | Type | Description |
---|---|---|
GettingParams | Object |
Параметры запроса на получение данных |
SettingParams | Object |
Параметры запроса на сохранение данных |
DeletingParams | Object |
Параметры запроса на удаление |
{
"RestDataSource": {
"GettingParams": {
"Method": "Get",
"Origin": "http://<%ip%>:<%port%>",
"Path": "/documents/<%document%>",
"Data": {
"filter": "eq(_id,'<%_id%>')"
},
"Params": {
"ip": "localhost",
"port": "9900",
"document": "Patients",
"_id": "73eba46a-0c6f-42d3-8a7b-2962f0fbf06d"
}
},
"SettingParams": {
"Method": "Post",
"Origin": "http://<%ip%>:<%port%>",
"Path": "/documents/edit/<%document%>",
"Data": {
"newValue": "<%patinet%>"
},
"Params": {
"ip": "localhost",
"port": "9900",
"document": "Patient",
"patinet": {
"Source": "MainDataSource",
"Property": "$"
}
}
},
"DeletingParams": {
"Method": "Delete",
"Origin": "http://<%ip%>:<%port%>",
"Path": "/documents/delete/<%document%>",
"Data": {
"filter": "eq(_id,'<%_id%>')"
},
"Params": {
"ip": "localhost",
"port": "9900",
"document": "Patients",
"_id": "73eba46a-0c6f-42d3-8a7b-2962f0fbf06d"
}
}
}
}
RestDataSource.setDeletingUrlParams()¶
Устанавливает параметры запроса на удаление.
RestDataSource.setDeletingUrlParams(propertyName, value)
RestDataSource.setDeletingUrlParams(value)
Name | Description |
---|---|
propertyName | Название параметра |
value | Значение параметров/параметра |
Метод ничего не возвращает
RestDataSource.setDeletingUrlParams("data.filter", "eq(_id, '<%_id%>')");
RestDataSource.setDeletingUrlParams({
type: 'delete',
origin:'http://some.ru',
path:'/delete/user/',
params: {
_id: 'c852edce7d'
}
});
RestDataSource.setGettingUrlParams()¶
Устанавливает параметры запроса на получение данных.
RestDataSource.setGettingUrlParams(propertyName, value)
RestDataSource.setGettingUrlParams(value)
Name | Description |
---|---|
propertyName | Название параметра |
value | Значение параметров/параметра |
Метод ничего не возвращает
RestDataSource.setGettingUrlParams('origin', 'http://some.ru');
RestDataSource.setGettingUrlParams({
type: 'get',
origin:'http://some.ru',
path:'/some/id<%param1%><%param2%>?a=2&b=<%param1%><%param3%>',
data: {},
params: {
param1: 4,
param2: missParam ? undefined : '/',
param3: '&c=4'
}
});
RestDataSource.setSettingUrlParams()¶
Устанавливает параметры запроса на сохранение данных.
RestDataSource.setSettingUrlParams(propertyName, value)
RestDataSource.setSettingUrlParams(value)
Name | Description |
---|---|
propertyName | Название парметра |
value | Значение параметров/парметра |
Метод ничего не возвращает
RestDataSource.setSettingUrlParams('type', 'post');
RestDataSource.setSettingUrlParams({
type: 'post',
origin:'http://some.ru',
path:'/some/<%param1%>/<%param2%>',
data: {
a: 2,
b: '<%param1%>',
c: '!1<%param2%>2!'
},
params: {
param1: '',
param2: ''
}
});
RestDataSource.setUpdatingItemsConverter()¶
Устанавливает конвертер ответа http-сервиса в контейнер элементов источника данных.
В общем случае, http-сервис может возвращать данные произвольного
формата. Однако источники данных работают только с контейнерами
элементов. Для конвертации ответа http-сервиса в требуемый формат
используется функция setUpdatingItemsConverter
.
RestDataSource.setUpdatingItemsConverter(value)
Name | Description |
---|---|
value | Функция конвертации ответов http-сервиса в контейнер элементов |
Метод ничего не возвращает
RestDataSource.setUpdatingItemsConverter(function(data){
return data['Items'];
});
RestDataSource.metadata¶
Метаданные RestDataSource.
Properties¶
Name | Type | Description |
---|---|---|
GettingParams | Object |
Параметры запроса на получение данных |
SettingParams | Object |
Параметры запроса на сохранение данных |
DeletingParams | Object |
Параметры запроса на удаление |
Examples¶
{
"RestDataSource": {
"GettingParams": {
"Method": "Get",
"Origin": "http://<%ip%>:<%port%>",
"Path": "/documents/<%document%>",
"Data": {
"filter": "eq(_id,'<%_id%>')"
},
"Params": {
"ip": "localhost",
"port": "9900",
"document": "Patients",
"_id": "73eba46a-0c6f-42d3-8a7b-2962f0fbf06d"
}
},
"SettingParams": {
"Method": "Post",
"Origin": "http://<%ip%>:<%port%>",
"Path": "/documents/edit/<%document%>",
"Data": {
"newValue": "<%patinet%>"
},
"Params": {
"ip": "localhost",
"port": "9900",
"document": "Patient",
"patinet": {
"Source": "MainDataSource",
"Property": "$"
}
}
},
"DeletingParams": {
"Method": "Delete",
"Origin": "http://<%ip%>:<%port%>",
"Path": "/documents/delete/<%document%>",
"Data": {
"filter": "eq(_id,'<%_id%>')"
},
"Params": {
"ip": "localhost",
"port": "9900",
"document": "Patients",
"_id": "73eba46a-0c6f-42d3-8a7b-2962f0fbf06d"
}
}
}
}
DisplayFormat¶
Display format is way to display data. To describe the way of data input EditMask is used.
Extends¶
See also¶
BaseFormat¶
Базовый тип для формата отображения данных.
Properties¶
Name | Type | Description |
---|---|---|
separator |
String |
Разделитель для форматирования коллекций. |
Methods¶
Name | Description |
---|---|
format | Форматирует один или несколько объектов. |
formatValue | Форматирует значение. |
getFormat | Возвращает строку форматирования значения. |
setFormat | Устанавливает строку форматирования значения. |
Форматирует один или несколько объектов.. Если для форматирования передано несколько объектов, то возвращается строка отформатированных значений, разделенных символами [BaseFormat.Separator].
Отформатированное представление.
Format.format([33, 44]);
Форматирует значение.
Format.formatValue(value);
Name | Type | Description |
---|---|---|
value |
* | Форматируемое значение. |
Отформатированное представление значения.
Format.formatValue(33);
BooleanFormat¶
Формат отображения логического значения.
Methods¶
Name | Description |
---|---|
getFalseText | Возвращает текст для отображения ложного значения. |
setFalseText | Устанавливает текст для отображения ложного значения. |
getTrueText | Возвращает текст для отображения истинного значения. |
setTrueText | Устанавливает текст для отображения истинного значения. |
Example¶
//js-demo
format = new InfinniUI.BooleanFormat();
format.setTrueText('Y');
format.setFalseText('N');
$elementForExample.append(format.formatValue(true));
$elementForExample.append('<hr>');
$elementForExample.append(format.formatValue(false));
Возвращает текст для отображения ложного значения.
Текст для отображения ложного значения.
format.getFalseText();
Возвращает текст для отображения истинного значения.
Текст для отображения истинного значения.
format.getTrueText();
Метаданные типа BooleanFormat.
Name | Type | Default | Description |
---|---|---|---|
TrueText | String |
"True" |
Текст для отображения истинного значения |
FalseText | String |
"False" |
Текст для отображения ложного значения |
{
"TrueText": "Да",
"FalseText": "Нет"
}
Устанавливает текст для отображения ложного значения.
Format.setFalseText(value);
Name | Type | Description |
---|---|---|
value |
String |
Текст для отображения ложного значения. |
Нет.
format.setFalseText('Нет');
BooleanFormat.metadata¶
Метаданные типа BooleanFormat.
Name | Type | Default | Description |
---|---|---|---|
TrueText | String |
"True" |
Текст для отображения истинного значения |
FalseText | String |
"False" |
Текст для отображения ложного значения |
{
"TrueText": "Да",
"FalseText": "Нет"
}
DateTimeFormat¶
Формат отображения даты/времени. Строка форматирования должна записываться в формате, который описан в разделе dateTimeFormatting.
Extends¶
Example¶
//js-demo
format = new InfinniUI.DateTimeFormat();
format.setFormat('dd-MM-yyyy');
$elementForExample.append(format.formatValue(new Date()));
See also¶
Метаданные типа DateTimeFormat.
Name | Type | Default | Description |
---|---|---|---|
Format | String |
"G" |
Строка форматирования даты/времени. |
{
"Format": "d"
}
DateTimeFormat.metadata¶
Метаданные типа DateTimeFormat.
Name | Type | Default | Description |
---|---|---|---|
Format | String |
"G" |
Строка форматирования даты/времени. |
{
"Format": "d"
}
NumberFormat¶
Формат отображения числового значения. Строка форматирования должна записываться в формате, который описан в разделе numberFormatting.
Extends¶
Example¶
//js-demo
format = new InfinniUI.NumberFormat();
format.setFormat('n2');
$elementForExample.append(format.formatValue(1/3));
See also¶
Настройки форматирования для числового значения
Метаданные типа NumberFormat.
Name | Type | Default | Description |
---|---|---|---|
Format | String |
"n" |
Строка форматирования числовых значений. |
{
"Format": "n2"
}
NumberFormat.metadata¶
Метаданные типа NumberFormat.
Name | Type | Default | Description |
---|---|---|---|
Format | String |
"n" |
Строка форматирования числовых значений. |
{
"Format": "n2"
}
ObjectFormat¶
Формат отображения объекта. Строка форматирования должна записываться в формате, который описан в разделе ObjectFormat.format.
Extends¶
Example¶
//js-demo
format = new InfinniUI.ObjectFormat();
format.setFormat('${:n3}');
$elementForExample.append(format.formatValue(1/3));
See also¶
Настройки форматирования объекта
Строка форматирования объекта определяет правила построения текстового представления заданного объекта.
Путь к свойству объекта записывается в формате, который описан в разделе DotNotation.
Строка форматирования для даты и времени записываться в формате, который описан в разделе dateTimeFormatFormatting.
Строка форматирования для числовых значений записываться в формате, который описан в разделе NumberFormat.format.
Ниже приведены правила построения строки форматирования в форме Бэкуса-Наура.
<Строка форматирования> ::= ${ <Произвольный текст> | <Формат значения> } <Формат значения> ::= ${ [ <Путь к свойству объекта> ] [ ":" <Настройки форматирования> ] } <Настройки форматирования> ::= <Форматирование даты и времени> | <Форматирование числовых значений> <Форматирование даты и времени> ::= DateTimeFormating <Форматирование числовых значений> ::= NumberFormatting
Формат | Форматируемое значение | Результат форматирования (en-US) |
---|---|---|
Простые типы данных | ||
“Hello, ${}!” | “Ivan” | “Hello, Ivan!” |
“Birth date: ${:d}” | “2014-09-04T12:34:56” | “Birth date: 9/4/2014” |
“Birth time: ${:T}” | “2014-09-04T12:34:56” | “Birth time: 12:34:56 AM” |
“Weight: ${:n2} kg” | 123.456 | “Weight: 123.46 kg” |
Сложные типы данных | ||
“Hello, ${FirstName} ${MiddleName}!” | { FirstName: “Ivan”, MiddleName: “Ivanovich” } | “Hello, Ivan Ivanovich!” |
“Birth date: ${BirthDate:d}” | { BirthDate: “2014-09-04T12:34:56” } | “Birth date: 9/4/2014” |
“Birth time: ${BirthDate:T}” | { BirthDate: “2014-09-04T12:34:56” } | “Birth time: 12:34:56 AM” |
“Weight: ${Weight:n2} kg” | { Weight: 123.456 } | “Weight: 123.46 kg” |
Метаданные типа ObjectFormat.
Name | Type | Description |
---|---|---|
Format | String |
Строка форматирования объекта. |
{
"Format": "${:n2}"
}
{
"Format": "Birth date: ${BirthDate:d}"
}
{
"Format": "Weight: ${Weight:n2} kg"
}
ObjectFormat.metadata¶
Метаданные типа ObjectFormat.
Name | Type | Description |
---|---|---|
Format | String |
Строка форматирования объекта. |
{
"Format": "${:n2}"
}
{
"Format": "Birth date: ${BirthDate:d}"
}
{
"Format": "Weight: ${Weight:n2} kg"
}
EditMask¶
Edit mask is implemented in case if a user should enter data in strictly-defind format. Mask shall only be appled in input mode, to display data use DisplayFormat . Editor using a mask gets into input mode provides text field which allows to enter data only pre-defined by mask. For example, input field can only accept 24-hours format time, integer numbers or phone number.
Edit Mask types¶
Base properies of Edit Mask data can be read in article BaseEditMask, below listed base Edit Mask types.
Editor allows enter date/time in a particular format.
Mask simplifies date/time input in certain format especially when it comes to keboard input. It can use a few pre-defined most freuently used date/time templates. In addition to that, it is possible to define a specific format string for date/time input including year, month, day, hour, minute, seconds etc.
Editor allows to input numeric values only in certain format.
Mask significantly eases keyboard input of numeric values in certain format eg integer, fractional number, currency, percent etc. A few pre-defined most frequently used templates can be used in addition to specific format string.
Editor allows to input fix format string.
Mask supports symbols which define simple rules of input. For example, one can define a rule that phone number must start with a 3-digit code. Special symbols and literals can be dispayed in input mode while can be bypassed in edit mode eg dashes in phone numbers can be added automatically. Unlike regular expressions mask is simple and helps to auto-fill data.
DateTimeEditMask¶
Маска ввода даты/времени.
Маска должна записываться в формате, который описан в разделе DateTimeFormatting.
Поведение маски ввода:
- Нажатие клавиши “пробел” выделяет следующий раздел маски, который можно редактировать.
- Ввод разделителя даты выделяет следующий раздел маски по редактированию даты.
- Ввод разделителя времени выделяет следующий раздел маски по редактированию времени.
- Нажатие клавиш
↑
и↓
увеличивает или уменьшает в допустимых диапазонах выделенный раздел маски (год, месяц, день, час, минута, секунда, половина суток).
Properties¶
Name | Type | Description |
---|---|---|
Mask | String |
Маска редактирования |
Examples¶
{
"DateTimeEditMask": {
"Mask": "d"
}
}
{
"DateTimeEditMask": {
"Mask": "d MMMM yyyy"
}
}
//js-demo
var metadata = {
TextBox: {
EditMask: {
DateTimeEditMask: {
Mask: "dd MM yyyy"
}
},
DisplayFormat: {
DateTimeFormat: {
Format: "dd MMMM yyyy"
}
}
}
};
var builder = new InfinniUI.ApplicationBuilder();
var textbox = builder.build(metadata);
// Render
$elementForExample.append(textbox.render());
NumberEditMask¶
Маска ввода числового значения.
Маска должна записываться в формате, который описан в разделе NumberFormatting.
Поведение маски ввода:
- Нажатие клавиши
-
меняет знак редактируемого значения, не меняя значения каретки, где бы она не находилась. - Нажатие клавиш
↑
и↓
увеличивает или уменьшает на 1 значение цифры слева от каретки.
Properties¶
Name | Type | Description |
---|---|---|
Mask | String |
Маска редактирования |
Examples¶
{
"NumberEditMask": {
"Mask": "n3"
}
}
{
"NumberEditMask": {
"Mask": "c3"
}
}
//js-demo
var metadata = {
TextBox: {
EditMask: {
NumberEditMask: {
Mask: "c3"
}
},
DisplayFormat: {
NumberFormat: {
Format: "c3"
}
}
}
};
var builder = new InfinniUI.ApplicationBuilder();
var textbox = builder.build(metadata);
// Render
$elementForExample.append(textbox.render());
TemplateEditMask¶
Маска ввода строки по шаблону.
Маска должна записываться в формате, который использует символы, определяющие правила ввода.
Mask¶
Каждому метасимволу соответствует определенный диапазона символов. Конечный пользователь может вводить текст только в те позиции маски, в которых определены метасимволы. В результате пользователь, находясь определенной позиции маски ввода может ввести только те символы, которые входят в диапазон, соответствующий метасимволу этой позиции ввода. Ниже перечислены все доступные метасимволы.
Символ | Описание |
---|---|
c |
Необязательный ввод любого символа. |
C |
Обязательный ввод любого символа. |
l |
Необязательный ввод буквы. |
L |
Обязательный ввод буквы. |
a |
Необязательный ввод буквы или цифры. |
A |
Обязательный ввод буквы или цифры. |
# |
Необязательный ввод цифры, знака “-” или “+”. |
9 |
Необязательный ввод цифры. |
0 |
Обязательный ввод цифры. |
Спецсимволы представляют различные разделители, символы валют и т.п. Ниже перечислены все доступные спецсимволы.
Символ | Описание |
---|---|
/ |
Должен заменяться на GlobalContext. Localizations.dateTimeFormatInfo.dateSeparator. |
: |
Должен заменяться на GlobalContext. Localizations.dateTimeFormatInfo.timeSeparator. |
% |
Должен заменяться на GlobalContext. Localizations.numberFormatInfo.percentSymbol. |
$ |
Должен заменяться на GlobalContext. Localizations.numberFormatInfo.currencySymbol. |
Символы, которые не являются метасимволами и спецсимволами называются литералами. Литералы вставляются автоматически, как есть, без изменения. Конечный пользователь не может заменить литерал на иной символ. Во время ввода данных курсор перепрыгивает литералы и спецсимволы. Если метасимвол или спецсимвол требуется записать, как литерал, перед ним нужно поставить символ “”.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Mask | String |
– | Маска редактирования |
MaskSaveLiteral | Boolean |
true |
Сохранять литералы в редактируемом значении. |
MaskPlaceHolder | String |
_ |
Символ заполнителя для метасимволов. |
Если свойство MaskSaveLiteral
равно true
, редактируемое значение
будет включать не только введенные пользователем символы, но и все
спецсимволы и литералы, определенные в маске. Если свойство
MaskSaveLiteral
равно false
, редактируемое значение будет
включать только введенные пользователем символы. Например, указана
маска: “(999)000-00-00”, пользователь не стал вводить первые три цифры:
“(___)456-78-90”. Тогда в случае, если свойство MaskSaveLiteral
равно true
, редактор сохранит значение “()456-78-90”; а в случае,
если свойство MaskSaveLiteral
равно false
, редактор сохранит
значение “4567890”.
Examples¶
//js-demo
var metadata = {
TextBox: {
EditMask: {
TemplateEditMask: {
Mask: "(000)000-00-00"
}
}
}
};
var builder = new InfinniUI.ApplicationBuilder();
var textbox = builder.build(metadata);
// Render
$elementForExample.append(textbox.render());
Elements¶
Element structure¶
Every element comprises of a few parts each one has its own functions.
- Element builder
- Element
- Control
- Control model
- View control
Element builder¶
Javascript-object which creates and sets up element accordingly to metadata transmitted to builder.
Element¶
Javascript-object representing certain visual element. This Javascript-object has got all required API for the current element. Thus practically this element is a facade for some control which can be derived from a third party library not compliant with required API however compliant to the requirements of the visual element.
Control¶
Control is a Javascript-object specifically representing a visual element. At the moment, InfinniUI uses elements coded with Backbone library. Each element comprises of a Backbone-model and Backbone-view, control is the link between those.
Control model¶
Backbone-model of a specific control.
Control view¶
Backbone-view of a specific control.
Container¶
Базовый тип для контейнеров визуальных элементов представления.
Description¶
Визуальные элементы, которые могут содержать внутри себя другие визуальные элементы, называются контейнерами, композитными или составными элементами. При этом сам контейнер называют родительским элементом, а его содержимое - дочерними элементами. Дочерние элементы не могут выходить за границы контейнера, но способ их расположения определяется каждым типом контейнера в отдельности и может не зависеть от настроек дочерних элементов.
Methods¶
Name | Description |
---|---|
getItemTemplate | Возвращает функцию шаблонизации дочерних элементов контейнера |
setItemTemplate | Устанавливает функцию шаблонизации дочерних элементов контейнера |
getItems | Возвращает коллекцию дочерних элементов контейнера |
getGroupValueSelector | Возвращает функцию, определяющую условие группировки дочерних элементов контейнера |
setGroupValueSelector | Устанавливает функцию, определяющую условие группировки дочерних элементов контейнера |
getGroupItemTemplate | Возвращает функцию шаблонизации заголовков групп |
setGroupItemTemplate | Устанавливает функцию шаблонизации заголовков групп |
Events¶
Нет
Container.getGroupItemTemplate()¶
Возвращает функцию шаблонизации заголовков групп.
Если в контейнере задана группировка, то, воспользовавшись setGroupItemTemplate, можно определить заголовки групп.
container.getGroupItemTemplate()
Нет
Функция шаблонизации заголовков групп.
Данная функция в параметре args
принимает информацию о группах:
args.index
- индекс текущей группы,args.item
- элементы текущей группы.
Результатом работы функции должен быть визуальный элемент.
var groupItemTemplate = container.getGroupItemTemplate();
Container.getGroupValueSelector()¶
Возвращает функцию, определяющую условие группировки дочерних элементов контейнера.
container.getGroupValueSelector()
Нет
Функция, определяющая условие группировки дочерних элементов контейнера.
- Данная функция в параметре
args
принимает информацию об элементе - контейнера. Свойство
args.value
содержит исходный элемент. - Результатом работы функции должно быть некоторое значение, по которому
- будут группироваться элементы.
var groupValueSelector = container.getGroupValueSelector();
Container.getItems()¶
Возвращает коллекцию дочерних элементов контейнера.
var items = container.getItems();
Container.getItemTemplate()¶
Возвращает функцию шаблонизации дочерних элементов контейнера.
Если функция шаблонизации дочерних элементов определена, то она используется при изменении коллекции дочерних элементов контейнера - getItems(). Если шаблон не определен, коллекция дочерних элементов контейнера должна содержать ссылки на готовые визуальные элементы.
container.getItemTemplate()
Нет
Функция шаблонизации дочерних элементов контейнера.
В параметре args
передается информация, необходимая для
формирования визуального элемента. Свойство
args.value
содержит исходный элемент.
Результатом работы функции должен быть визуальный
элемент.
var itemTemplate = container.getItemTemplate();
Container.metadata¶
Метаданные типа Container.
Name | Type | Description |
---|---|---|
Items* | Array /Object |
Элементы контейнера |
ItemTemplate | Element | Шаблон дочерних элементов контейнера, |
ItemFormat | DisplayFormat | Формат отображения дочерних элементов контейнера |
ItemSelector | Script | Функция, которая по переданным данным конструирует отображаемое значение |
ItemProperty | String |
Свойство дочерних элементов контейнера для отображения в контейнере |
GroupValueSelector | Script | Функция, определяющую условие группировки дочерних элементов контейнера |
GroupValueProperty | String |
Свойство, определяющее условие группировки дочерних элементов контейнера |
GroupItemTemplate | Element | Функция шаблонизации заголовков групп |
GroupItemFormat | DisplayFormat | Формат заголовков групп |
GroupItemSelector | Script | Функция, которая по переданным данным конструирует значение заголовков групп |
GroupItemProperty | String |
Свойство, отображаемое в качестве заголовков групп |
* Обязательное свойство.
Если поле Items заданно массивом, то Container не является шаблонизируемым и строится по метаданным Items. Если же Items является объектом, то он содержит привязку на источник элементов, для отображения которых необходимо задать шаблон.
ItemSelector и GroupItemSelector должны возвращать элементарные значения: строку или число.
Свойства ItemTemplate, ItemFormat, ItemSelector и ItemProperty являются взаимоисключающими. Если указать несколько из них, то для отображения будет выбрано наиболее приоритетное. В схеме свойства указаны в порядке приоритета. Кроме того, взаимноисключающими являются GroupValueSelector и GroupValueProperty, а также GroupItemTemplate, GroupItemFormat, GroupItemSelector и GroupItemProperty.
Рассмотрим случай, когда Items является массивом.
{
"StackPanel": {
"Items": [
{
"Icon": {
"Value": "remove"
}
},
{
"Label": {
"Text": "delete"
}
}
]
}
}
Пример шаблонизируемого контейнера:
{
"StackPanel": {
"Items": {
"Source": "People",
"Property": ""
},
"ItemTemplate": {
"StackPanel": {
"Items": [
{
"Label": {
"Value": {
"Source": "People",
"Property": "$.FullName"
}
}
},
{
"Label": {
"Value": {
"Source": "People",
"Property": "$.Age"
}
}
}
]
}
}
}
}
Контейнер с группировкой:
{
"ListBox": {
"ItemTemplate": {
"TextBox": {
"Name": "TextBox1",
"Value": {
"Source": "MainDataSource",
"Property": "#.Display"
}
}
},
"GroupItemFormat": "Connect: ${Display}",
"GroupValueProperty": "Display",
"Items" : {
"Source": "MainDataSource",
"Property": ""
}
}
}
Container.setGroupItemTemplate()¶
Устанавливает функцию шаблонизации заголовков групп.
Если в контейнере задана
группировка, то,
воспользовавшись setGroupItemTemplate
, можно определить заголовки
групп.
container.setGroupItemTemplate(value)
Name | Type | Description |
---|---|---|
value | Script | Функция шаблонизации заголовков групп |
Данная функция в параметре args
принимает информацию о группах:
args.index
- индекс текущей группы,args.item
- элементы текущей группы.
Результатом работы функции должен быть визуальный элемент.
Метод ничего не возвращает.
var headerCreator = function(context, args) {
var element = new Label();
var header = args.index + ') ' + args.item[0].Class
element.setValue(header);
return element;
};
container.setGroupItemTemplate(headerCreator);
Container.setGroupValueSelector()¶
Устанавливает функцию, определяющую условие группировки дочерних элементов контейнера.
container.setGroupValueSelector(value)
Name | Type | Description |
---|---|---|
value | Script | Функция, определяющая условие группировки дочерних элементов контейнера |
Данная функция в параметре args
принимает информацию об элементе
контейнера. Свойство args.value
содержит исходный элемент.
Результатом работы функции должно быть некоторое значение, по которому
будут группироваться элементы.
Метод ничего не возвращает.
var selector = function(context, args) {
var item = args.value;
return item.Class;
};
container.setGroupValueSelector(selector);
Container.setItemTemplate()¶
Устанавливает функцию шаблонизации дочерних элементов контейнера.
Если функция шаблонизации дочерних элементов определена, то она используется при изменении коллекции дочерних элементов контейнера - getItems(). Если шаблон не определен, коллекция дочерних элементов контейнера должна содержать ссылки на готовые визуальные элементы.
container.setItemTemplate(value)
Name | Type | Description |
---|---|---|
value | Script | Функция шаблонизации дочерних элементов контейнера |
В параметре args
передается информация, необходимая для формирования
визуального элемента. Свойство args.value
содержит исходный элемент. Результатом работы функции должен быть
визуальный элемент.
Метод ничего не возвращает.
container.setItemTemplate(function(context, args) {
var element = new Label();
element.setValue(args.value);
return element;
});
container.getItems().reset([
'One',
'Two',
'Three'
]);
Container.metadata¶
Метаданные типа Container.
Properties¶
Name | Type | Description |
---|---|---|
Items* | Array /Object |
Элементы контейнера |
ItemTemplate | Element | Шаблон дочерних элементов контейнера, |
ItemFormat | DisplayFormat | Формат отображения дочерних элементов контейнера |
ItemSelector | Script | Функция, которая по переданным данным конструирует отображаемое значение |
ItemProperty | String |
Свойство дочерних элементов контейнера для отображения в контейнере |
GroupValueSelector | Script | Функция, определяющую условие группировки дочерних элементов контейнера |
GroupValueProperty | String |
Свойство, определяющее условие группировки дочерних элементов контейнера |
GroupItemTemplate | Element | Функция шаблонизации заголовков групп |
GroupItemFormat | DisplayFormat | Формат заголовков групп |
GroupItemSelector | Script | Функция, которая по переданным данным конструирует значение заголовков групп |
GroupItemProperty | String |
Свойство, отображаемое в качестве заголовков групп |
* Обязательное свойство.
Если поле Items заданно массивом, то Container не является шаблонизируемым и строится по метаданным Items. Если же Items является объектом, то он содержит привязку на источник элементов, для отображения которых необходимо задать шаблон.
ItemSelector и GroupItemSelector должны возвращать элементарные значения: строку или число.
Свойства ItemTemplate, ItemFormat, ItemSelector и ItemProperty являются взаимоисключающими. Если указать несколько из них, то для отображения будет выбрано наиболее приоритетное. В схеме свойства указаны в порядке приоритета. Кроме того, взаимноисключающими являются GroupValueSelector и GroupValueProperty, а также GroupItemTemplate, GroupItemFormat, GroupItemSelector и GroupItemProperty.
Examples¶
Рассмотрим случай, когда Items является массивом.
{
"StackPanel": {
"Items": [
{
"Icon": {
"Value": "remove"
}
},
{
"Label": {
"Text": "delete"
}
}
]
}
}
Пример шаблонизируемого контейнера:
{
"StackPanel": {
"Items": {
"Source": "People",
"Property": ""
},
"ItemTemplate": {
"StackPanel": {
"Items": [
{
"Label": {
"Value": {
"Source": "People",
"Property": "$.FullName"
}
}
},
{
"Label": {
"Value": {
"Source": "People",
"Property": "$.Age"
}
}
}
]
}
}
}
}
Контейнер с группировкой:
{
"ListBox": {
"ItemTemplate": {
"TextBox": {
"Name": "TextBox1",
"Value": {
"Source": "MainDataSource",
"Property": "#.Display"
}
}
},
"GroupItemFormat": "Connect: ${Display}",
"GroupValueProperty": "Display",
"Items" : {
"Source": "MainDataSource",
"Property": ""
}
}
}
Element¶
Базовый класс для всех визуальных элементов InfinniUI.
Description¶
Все визуальные элементы (далее просто “элементы”), представленные в InfinniUI, являются потомками Element. В Element реализованы базовые API, которые в итоге будут предоставлять все элементы InfinniUI.
Syntax¶
new Element(parent, viewMode);
Parameters¶
Name | Type | Description |
---|---|---|
parent | Element | Родительский элемент |
viewMode | String |
Строка со значением режима отображения |
Usage¶
Создать экземпляр Element нельзя, однако можно создать, к примеру, экземпляр кнопки, которая наследуется от Element. Сделаем это, а так же зададим кнопке текст.
//js-demo
var button = new InfinniUI.Button();
var $button = button.render();
button.setText("ButtonText")
$elementForExample.append($button);
Methods¶
Name | Description |
---|---|
getView | Возвращает родительское представление |
getParent | Возвращает родительский элемент |
setParent | Устанавливает родительский элемент |
getChildElements | Возвращает список дочерних элементов. Речь идет о непосредственных потомках, дочерние дочерних элементов в этот список не входят. В отличии от следующих методов |
findAllChildrenByType | Возвращает список потомков (дочерних, их дочерних и т. д.) элементов с заданным типом (Button, Label и др.) |
findAllChildrenByName | Возвращает список потомков (дочерних, их дочерних и т. д.) элементов с заданным именем |
addChild | Добавляет заданный элемент в качестве дочернего |
removeChild | Удаляет заданный элемент из списка дочерних |
getProperty | Возвращает значение указанного свойства элемента. Например ‘text’, ‘visible’ ‘value’, и др. |
setProperty | Устанавливает значение указанного свойства элемента |
getName | Возвращает имя элемента |
setName | Устанавливает имя элемента |
getText | Возвращает текст элемента (в разных потомках Element, поле text используется по разному. Например, во View это заголовок представления, а в ImageBox это текст кнопки, инициирующей выбор загружаемого изображения) |
setText | Устанавливает текст элемента |
getFocusable | Возвращает значение, определяющее, может ли элемент получить фокус |
setFocusable | Устанавливает значение, определяющее, может ли элемент получить фокус |
getFocused | Возвращает значение, определяющее, установлен ли на элементе фокус |
setFocused | Устанавливает/снимает фокус с элемента (в зависимости от передаваемого значения) |
getTag | Возвращает специальное значение, хранящяеся в элементе. Тег можно использовать для привязки произвольных значений к элементу |
setTag | Устанавливает специальное значение. Оно может быть любого типа. Тег можно использовать для привязки произвольных значений к элементу |
getEnabled | Возвращает значение, определяющее, возможен ли доступ к элементу |
setEnabled | Устанавливает значение, определяющее, возможен ли доступ к элементу |
getVisible | Возвращает значение, определяющее, отображается ли элемент в интерфейсе |
setVisible | Устанавливает значение, определяющее, отображается ли элемент в интерфейсе |
getHorizontalAlignment | Возвращает горизонтальное выравнивание в родительском элементе |
setHorizontalAlignment | Устанавливает горизонтальное выравнивание в родительском элементе |
getTextHorizontalAlignment | Возвращает горизонтальное выравнивание текста в элементе |
setTextHorizontalAlignment | Устанавливает горизонтальное выравнивание текста в элементе |
getToolTip | Возвращает устанавленное всплывающее сообщение элемента |
setToolTip | Устанавливает всплывающее сообщение для элемента |
getValidationState | Возвращает валидационный статус элемента |
setValidationState | Устанавливает заданный валидационный статус и валидационное сообщение |
getTextStyle | Возвращает стиль текста элемента |
setTextStyle | Устанавливает стиль текста элемента |
getForeground | Возвращает цвет текста элемента |
setForeground | Устанавливает цвет текста элемента |
getBackground | Возвращает цвет фона элемента |
setBackground | Устанавливает цвет фона элемента |
getStyle | Возвращает кастомный стиль элемента (на деле это класс, стили которых могут быть заданы в подключаемых на страницу стилях) |
setStyle | Устанавливает элементу кастомный стиль (на деле устанавливает ему одноименный класс, стили которого можно задать самому в подключаемых на страницу стилях). Этот способ кастомизации внешнего вида череват разными последствиями, поскольку примененные к классу css-правила могут противоречить правилам задуманным InfinniUI, в следствии чего верстка может “поехать” неожиданным образом. Следует применять эту возможность как можно реже и как можно аккуратнее |
render | Создает DOM-представление элемента |
remove | Удаляет элемент и его DOM-представление |
isLoaded | Проверяет, готов ли элемент. Возвращает соответствующее значение |
Events¶
Name | Description |
---|---|
onLoaded | Устанавливает обработчик события о том, что элемент был загружен. |
onGotFocus | Устанавливает обработчик события о том, что элемент получил фокус ввода |
onLostFocus | Устанавливает обработчик события о том, что элемент потерял фокус ввода |
onBeforeClick | Устанавливает обработчик события клика мыши, который будет срабатывать при захвате события на элементе |
onClick | Устанавливает обработчик события о том, что по элементу сделали одинарный клик мыши |
onDoubleClick | Устанавливает обработчик события о том, что по элементу сделали двойной клик мыши |
onMouseDown | Устанавливает обработчик события о том, что на элементе произвели двойное нажатие кнопкой мыши |
onMouseUp | Устанавливает обработчик события о том, что на элементе отпустили кнопку мыши |
onMouseWheel | Устанавливает обработчик события о том, что на элементе прокрутили колесо мыши |
onMouseEnter | Устанавливает обработчик события о том, что указатель мыши вошел в границы элемента |
onMouseLeave | Устанавливает обработчик события о том, что указатель мыши покинул границы элемента |
onMouseMove | Устанавливает обработчик события о том, что указатель мыши двигался внутри элемента |
onKeyDown | Устанавливает обработчик события о том, что на элементе нажали клавишу клавиатуры |
onKeyUp | Устанавливает обработчик события о том, что на элементе отпустили клавишу клавиатуры |
onPropertyChanged | Устанавливает обработчик события о том, что одно из свойств элемента изменилось |
ElementBuilder¶
ElementHorizontalAlignment¶
Горизонтальное выравнивание в родительском элементе.
ElementHorizontalAlignment = {
left: 'Left',
center: 'Center',
right: 'Right',
stretch: 'Stretch'
}
left
Элемент выравнивается по левому краю родительского элемента.
center
Элемент выравнивается по центру горизонтали родительского элемента.
right
Элемент выравнивается по правому краю родительского элемента.
stretch
Элемент занимает всю область родительского элемента по горизонтали.
KeyboardEvent¶
Событие от клавиатуры.
new KeyboardEvent()
source
¶Источник события - визуальный элемент.
key
¶Возвращает код нажатой клавиши.
altKey
¶Возвращает true
, если событие произошло, когда была нажата кнопка
Alt
, иначе - false
.
ctrlKey
¶Возвращает true
, если событие произошло, когда была нажата кнопка
Ctrl
, иначе - false
.
shiftKey
¶Возвращает true
, если событие произошло, когда была нажата кнопка
Shift
, иначе - false
.
nativeEventData
¶Возвращает KeyboardEvent Object.
MouseEvent¶
Событие от мыши.
new MouseEvent()
source
¶Источник события - визуальный элемент.
button
¶Возвращает код нажатой кнопки мыши.
altKey
¶Возвращает true
, если событие произошло, когда была нажата кнопка
Alt
, иначе - false
.
ctrlKey
¶Возвращает true
, если событие произошло, когда была нажата кнопка
Ctrl
, иначе - false
.
shiftKey
¶Возвращает true
, если событие произошло, когда была нажата кнопка
Shift
, иначе - false
.
nativeEventData
¶Возвращает MouseEvent Object.
TextHorizontalAlignment¶
Горизонтальное выравнивание текста в элементе.
TextHorizontalAlignment = {
left: 'Left',
right: 'Right',
center: 'Center',
justify: 'Justify'
}
left
Текст выравнивается по левому краю родительского элемента.
right
Текст выравнивается по правому краю родительского элемента.
center
Текст выравнивается по центру родительского элемента.
justify
Текст выравнивается по ширине родительского элемента.
Element.addChild()¶
Добавляет заданный элемент в качестве дочернего.
Добавление элемента в список дочерних не добавляет его визуально. Связи родитель - дочерний элемент используются для построения логической иерархии элементов, котоая в итоге используется для поиска внутри иерархи, каскадного удаления элементов и др.
Element.addChild(someElement)
Name | Type | Description |
---|---|---|
child |
Element |
Элемент, добавляемый в качестве нового дочернего. |
Метод не возвращает значений.
Element.findAllChildrenByName()¶
Возвращает список потомков (дочерних, их дочерних и т. д.) элементов с заданным именем.
Метод возвращает список элементов с заданным именем, которые являются потомками данного элемента или его потомков. Иначе говоря, в результирующий список будут включены элементы с заданным именем со всех уровней вложенности (прямые потомки, их дочерние элементы и т.д.).
Element.findAllChildrenByName(name)
Name | Type | Description |
---|---|---|
value | String |
Наименование элемента |
var allMyButtons = Element.findAllChildrenByName('MyButton');
Element.findAllChildrenByType()¶
Возвращает список потомков (дочерних, их дочерних и т. д.) элементов с заданным типом.
Метод возвращает список элементов с заданным типом, которые являются потомками данного элемента или его потомков. Иначе говоря, в результирующий список будут включены элементы заданного типа со всех уровней вложенности (прямые потомки, их дочерние элементы и т.д.).
Element.findAllChildrenByType(type)
Name | Type | Description |
---|---|---|
type |
String |
Тип элемента. |
var allButtons = Element.findAllChildrenByType('Button');
Element.getBackground()¶
Возвращает цвет фона элемента.
var background = Element.getBackground();
Element.getChildElements()¶
Возвращает список дочерних элементов.
Метод возвращает список элементов, которые являются непосредственными потомками данного элемента. Иначе говоря, если элемент содержит внутри себя композитный элемент, то в результирующий список будет включен только сам композитный элемент, но не будут включены его потомки.
var childElements = Element.getChildElements();
Element.getEnabled()¶
Возвращает значение, определяющее, возможен ли доступ к элементу или он заблокирован.
Свойство выключается каскадно, то есть, если родительский элемент
заблокирован (enabled = false
), то у дочерних элементов, это
свойство будет автоматически выставлено в false
. Когда родительский
элемент будет разблокирован, дочерний вернет первоначальное значение
этого свойства.
//js-demo
var textbox = new InfinniUI.TextBox();
var $textbox = textbox.render();
var enabledOfButton = textbox.getEnabled();
var buttonForToggling = new InfinniUI.Button();
var $buttonForToggling = buttonForToggling.render();
buttonForToggling.setText('Disable textbox');
$elementForExample.prepend($textbox);
$elementForExample.prepend($buttonForToggling);
buttonForToggling.onClick(function(){
if(textbox.getEnabled() == true){
buttonForToggling.setText('Enable textbox');
textbox.setEnabled(false);
}else{
buttonForToggling.setText('Disable textbox');
textbox.setEnabled(true);
}
});
Element.getFocusable()¶
Возвращает значение, определяющее, возможно ли установить фокус ввода на элемент.
Возможность установки фокуса ввода на элемент зависит от нескольких параметров. Во-первых, от значения соответствующего свойства, которое можно установить с помощью метода setFocusable(). Во-вторых, от текущего состояния элемента. Например, элемент может быть заблокирован или скрыт, либо находится внутри контейнера, который в свою очередь заблокирован или скрыт. Наконец, некоторые элементы на уровне реализации могут запрещать установку фокуса ввода.
Вызов метода setFocused() с параметром
true
учитывает все вышеперечисленные аспекты и пытается установить
фокус ввода на элемент. Если все проверки прошли успешно и элемент
получил фокус ввода, у соответствующего элемента возникает событие
onGotFocus. Следует отметить, что событие
onGotFocus также может возникать и
вследствие действий пользователя.
Установка фокуса ввода на элемент означает также то, что другой, ранее
сфокусированный элемент, теряет фокус ввода, что в свою очередь приводит
к тому, что у соответствующего элемента возникает событие
onLostFocus. Событие
onLostFocus также может спровоцировать
вызов метода setFocused() с параметром
false
, если на элемент был установлен фокус ввода.
Element.getFocusable()
Нет
Логическое значение, определяющее, возможно ли установить фокус ввода на
элемент. Значение true
означает, что установить фокус возможно,
значение false
- нельзя.
var focusable = Element.getFocusable();
Element.getFocused()¶
Возвращает значение, определяющее, установлен ли фокус ввода на элемент.
Возможность установки фокуса ввода на элемент зависит от нескольких параметров. Во-первых, от значения соответствующего свойства, которое можно установить с помощью метода setFocusable(). Во-вторых, от текущего состояния элемента. Например, элемент может быть заблокирован или скрыт, либо находится внутри контейнера, который в свою очередь заблокирован или скрыт. Наконец, некоторые элементы на уровне реализации могут запрещать установку фокуса ввода.
Вызов метода setFocused() с параметром
true
учитывает все вышеперечисленные аспекты и пытается установить
фокус ввода на элемент. Если все проверки прошли успешно и элемент
получил фокус ввода, у соответствующего элемента возникает событие
onGotFocus. Следует отметить, что событие
onGotFocus также может возникать и
вследствие действий пользователя.
Установка фокуса ввода на элемент означает также то, что другой, ранее
сфокусированный элемент, теряет фокус ввода, что в свою очередь приводит
к тому, что у соответствующего элемента возникает событие
onLostFocus. Событие
onLostFocus также может спровоцировать
вызов метода setFocused() с параметром
false
, если на элемент был установлен фокус ввода.
Element.getFocused()
Нет
Логическое значение, определяющее, установлен ли фокус ввода на элемент.
Значение true
означает, что фокус установлен, значение false
-
не установлен.
var isFocused = Element.getFocused();
Element.getForeground()¶
Возвращает цвет текста элемента.
var foreground = Element.getForeground();
Element.getHorizontalAlignment()¶
Возвращает горизонтальное выравнивание в родительском элементе.
Element.getHorizontalAlignment()
Нет
Горизонтальное выравнивание в родительском элементе.
//js-demo
var label = new InfinniUI.Label();
var $label = label.render();
var div = document.createElement("div");
div.innerHTML = label.getHorizontalAlignment();
$elementForExample.prepend(div);
Element.getParent()¶
Возвращает родительский элемент.
Некоторые элементы могут выступать в роли контейнеров для других элементов. В этом случае контейнер называют родительским элементом, а элементы, содержащиеся внутри него, дочерними элементами. Связь дочернего элемента с родительским можно установить в момент создания дочернего элемента, передав в конструктор ссылку на родительский элемент. Если на момент создания дочернего элемента родительский элемент неизвестен, связь с родительским элементом можно установить позже, вызвав метод setParent().
Так например, в момент добавления дочернего элемента родительский элемент вызывает у дочернего метод setParent() и передает ссылку на себя. В свою очередь дочерний элемент запоминает ссылку на родителя, после чего ее можно получить, вызвав метод getParent(). Если в момент вызова метода setParent() дочерний элемент относился к другому родительскому элементу, он автоматически удаляется из старого родительского элемента.
var parent = Element.getParent();
Element.getProperty()¶
Возвращает значение указанного свойства элемента.
Методы getProperty(), setProperty() и событие onPropertyChanged используются механизмом привязки данных. Вместе с этим они предоставляют универсальный унифицированный интерфейс для работы со свойствами элемента.
var value = Element.getProperty('Visible'); // Идентично вызову Element.getVisible();
Element.getStyle()¶
Возвращает кастомный стиль элемента (на деле это класс, стили которого могут быть заданы в подключаемых на страницу стилях).
var styleName = Element.getStyle();
Element.getTag()¶
Возвращает специальное значение, хранящяеся в элементе. Тег можно использовать для привязки произвольных значений к элементу.
var value = Element.getTag();
Element.getText()¶
Возвращает текст элемента (в разных потомках Element, поле text используется по разному. Например, во View это заголовок представления, а в ImageBox это текст кнопки, инициирующей выбор загружаемого изображения)
var elementText = Element.getText();
Element.getTextHorizontalAlignment()¶
Возвращает горизонтальное выравнивание текста в элементе.
Element.getTextHorizontalAlignment()
Нет
Горизонтальное выравнивание текста в элементе.
var horizontalAlignment = Element.getTextHorizontalAlignment();
Element.getTextStyle()¶
Возвращает стиль текста элемента.
var textStyle = Element.getTextStyle();
Element.getToolTip()¶
Возвращает всплывающую подсказку элемента.
Element.getToolTip()
Нет
Текст или визуальный элемент, появляющийся при наведении на элемент.
var toolTip = Element.getToolTip();
Element.getValidationState()¶
Возвращает валидационный статус элемента.
var validationState = Element.getValidationState();
Element.getView()¶
Возвращает родительское представление элемента.
var parentView = someElement.getView();
Element.getVisible()¶
Возвращает значение, определяющее, отображается ли элемент в интерфейсе.
Element.getVisible()
Нет
Логическое значение, определяющее, отображается ли элемент в интерфейсе.
Значение true
означает, что элемент отображается в интерфейсе,
false
- элемент не отображается.
//js-demo
var textbox = new InfinniUI.TextBox();
var $textbox = textbox.render();
var visibleOfButton = textbox.getVisible();
var buttonForToggling = new InfinniUI.Button();
var $buttonForToggling = buttonForToggling.render();
buttonForToggling.setText('Hide textbox');
$elementForExample.prepend($textbox);
$elementForExample.prepend($buttonForToggling);
buttonForToggling.onClick(function(){
if(textbox.getVisible() == true){
buttonForToggling.setText('Show textbox');
textbox.setVisible(false);
}else{
buttonForToggling.setText('Hide textbox');
textbox.setVisible(true);
}
});
Element.isLoaded()¶
Проверяет, готов ли элемент. Возвращает соответствующее значение.
Element.isLoaded()
Нет
Возвращает true
, если элемент готов, иначе возвращает false
.
var isLoaded = Element.isLoaded();
Element.metadata¶
Метаданные описывающие настройки Element.
Name | Type | Default | Description |
---|---|---|---|
Name | String |
null | Имя элемента (строка). Желательно делать его уникальным внутри представления. |
Text | String (⇔)(ƒ) |
“” | Текст элемента. В разных потомках Element, поле text используется по разному. Например, во View это заголовок представления, а в ImageBox это текст кнопки, инициирующей выбор загружаемого изображения. |
Focusable | Boolean (⇔) |
true | Значение, определяющее, может ли элемент получить фокус. |
Enabled | Boolean (⇔) |
true | Значение, определяющее, значение, возможен ли доступ к элементу. |
Visible | Boolean (⇔) |
true | Значение, определяющее видимость элемента. |
HorizontalAlignment | HorizontalAlignment (⇔) | “Stretch” | Горизонтальное выравнивание элемента. |
TextHorizontalAlignment | TextHorizontalAlignment (⇔) | “Left” | Горизонтальное выравнивание внутри элемента. |
Style | String (⇔) |
“” | Имя кастомного стиля (на деле это одноименный класс, стили которого можно задать самому в подключаемых на страницу стилях) |
TextStyle | TextStyle (⇔) | “” | Стиль текста элемента |
Foreground | Color (⇔) | “” | Цвет текста. |
Background | Color (⇔) | “” | Цвет фона. |
ToolTip | String (ƒ), Element |
null | Всплывающая над элементом подсказка. |
Tag | * | null | Произвольное значение, которое можно привязать к элементу. |
OnLoaded | Script | null | Устанавливает обработчик готовности элемента. |
OnGotFocus | Script | null | Устанавливает обработчик получения фокуса элементом. |
OnLostFocus | Script | null | Устанавливает обработчик потери фокуса у элемента. |
OnClick | Script | null | Устанавливает обработчик клика мышью по элементу. |
OnDoubleClick | Script | null | Устанавливает обработчик двойного клика мышью по элементу. |
OnMouseDown | Script | null | Устанавливает обработчик нажатия кнопки мыши над элементом (обычный клик срабатывает после отпускания кнопки мыши). |
OnMouseUp | Script | null | Устанавливает обработчик поднятия кнопки мыши над элементом (обычный клик срабатывает позже). |
OnMouseWheel | Script | null | Устанавливает обработчик прокрутки скролла над элементом. |
OnMouseEnter | Script | null | Устанавливает обработчик появления курсора над элементом. |
OnMouseLeave | Script | null | Устанавливает обработчик выхода курсора из области элемента. |
OnMouseMove | Script | null | Устанавливает обработчик движения курсора в области элемента. |
OnKeyDown | Script | null | Устанавливает обработчик нажатия клавиши клавиатуры, в момент когда фокус находится на текущем элементе. |
OnKeyUp | Script | null | Устанавливает обработчик поднятия клавиши клавиатуры, в момент когда фокус находится на текущем элементе. |
OnPropertyChanged | Script | null | Устанавливает обработчик изменения одного из свойств элемента (value, visible и др.). |
(⇔) Свойство может быть задано, как DataBinding.
(ƒ) Свойство может быть задано, как JSExpression.
Создать экземпляр Element нельзя (это абстрактный класс), однако можно например создать экземпляр кнопки, которая наследуется от Element.
//infinni-ui-demo
{
"DataSources": [
],
"Items": [{
"GridPanel": {
"Items": [
{
"Cell": {
"ColumnSpan": 4,
"Items": [
{
//infinni-ui-display-begin
"Button": {
"Name": "my_button",
"Text": "Button",
"OnClick": "{ alert(args.source.getName()); }"
}
//infinni-ui-display-end
}
]
}
}
]
}
}
]
}
Element.name¶
Поле name содержит имя элемента. Свойство предназначено только для чтения.
Element.name
var elementName = someElement.name;
Element.onBeforeClick¶
Устанавливает обработчик события клика мыши, который будет срабатывать при захвате события на элементе.
Element.onBeforeClick(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что по элементу сделали одинарный клик мыши. В параметре args передается информация о произошедшем событии - объект типа MouseEvent. |
Element.onBeforeClick(
function(context, args) { alert('onBeforeClick'); }
);
Element.onClick¶
Устанавливает обработчик события о том, что по элементу сделали одинарный клик мыши.
element.onClick(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что по элементу сделали одинарный клик мыши. В параметре args передается информация о произошедшем событии - объект типа MouseEvent. |
element.onClick(
function(context, args) { alert('onClick'); }
);
Element.onDoubleClick¶
Устанавливает обработчик события о том, что по элементу сделали двойной клик мыши.
element.onDoubleClick(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что по элементу сделали двойной клик мыши. В параметре args передается информация о произошедшем событии - объект типа MouseEvent. |
element.onDoubleClick(
function(context, args) { alert('onDoubleClick'); }
);
Element.onGotFocus¶
Устанавливает обработчик события о том, что элемент получил фокус ввода.
Element.onGotFocus(callback)
Element.onGotFocus(
function(context, args) { alert('Element got focus!'); }
);
Element.onKeyDown¶
Устанавливает обработчик события о том, что на элементе нажали клавишу клавиатуры.
Element.onKeyDown(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что на элементе нажали клавишу клавиатуры. В параметре args передается информация о произошедшем событии - объект типа KeyboardEvent. |
Element.onKeyDown(
function(context, args) { alert('onKeyDown'); }
);
Element.onKeyUp¶
Устанавливает обработчик события о том, что на элементе отпустили клавишу клавиатуры.
Element.onKeyUp(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что на элементе отпустили клавишу клавиатуры. В параметре args передается информация о произошедшем событии - объект типа KeyboardEvent. |
Element.onKeyUp(
function(context, args) { alert('onKeyUp'); }
);
Element.onLoaded¶
Устанавливает обработчик события о том, что элемент был загружен.
Element.onLoaded(callback)
Element.onLoaded(
function(context, args) { alert('Element is loaded!'); }
);
Element.onLostFocus¶
Устанавливает обработчик события о том, что элемент потерял фокус ввода.
Element.onLostFocus(callback)
Element.onLostFocus(
function(context, args) { alert('Element lost focus!'); }
);
Element.onMouseDown¶
Устанавливает обработчик события о том, что на элементе нажали кнопку мыши.
Element.onMouseDown(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что на элементе нажали кнопку мыши. В параметре args передается информация о произошедшем событии - объект типа MouseEvent. |
Element.onMouseDown(
function(context, args) { alert('onMouseDown'); }
);
Element.onMouseEnter¶
Устанавливает обработчик события о том, что указатель мыши вошел в границы элемента.
Element.onMouseEnter(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что указатель мыши вошел в границы элемента. В параметре args передается информация о произошедшем событии - объект типа MouseEvent. |
Element.onMouseEnter(
function(context, args) { alert('onMouseEnter'); }
);
Element.onMouseLeave¶
Устанавливает обработчик события о том, что указатель мыши покинул границы элемента.
Element.onMouseLeave(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что указатель мыши покинул границы элемента. В параметре args передается информация о произошедшем событии - объект типа MouseEvent. |
Element.onMouseLeave(
function(context, args) { alert('onMouseLeave'); }
);
Element.onMouseMove¶
Устанавливает обработчик события о том, что указатель мыши двигался внутри элемента.
Element.onMouseMove(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что указатель мыши двигался внутри элемента. В параметре args передается информация о произошедшем событии - объект типа MouseEvent. |
Element.onMouseMove(
function(context, args) { alert('onMouseMove'); }
);
Element.onMouseUp¶
Устанавливает обработчик события о том, что на элементе отпустили кнопку мыши.
Element.onMouseUp(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что на элементе отпустили кнопку мыши. В параметре args передается информация о произошедшем событии - объект типа MouseEvent. |
Element.onMouseUp(
function(context, args) { alert('onMouseUp'); }
);
Element.onMouseWheel¶
Устанавливает обработчик события о том, что на элементе прокрутили колесо мыши.
Element.onMouseWheel(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что на элементе прокрутили колесо мыши. В параметре args передается информация о произошедшем событии - объект типа MouseEvent. |
Element.onMouseWheel(
function(context, args) { alert('onMouseWheel'); }
);
Element.onPropertyChanged¶
Устанавливает обработчик события о том, что одно из свойств элемента изменилось.
Методы getProperty(), setProperty() и событие onPropertyChanged используются механизмом привязки данных. Вместе с этим они предоставляют универсальный унифицированный интерфейс для работы со свойствами элемента.
Element.onPropertyChanged(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что одно из свойств элемента изменилось. В параметре args передается информация о произошедшем событии. Свойство property содержит путь к свойству, argument.oldValue - предыдущее значение, argument.newValue - новое значение. |
Element.onPropertyChanged(
function(context, args) { alert('Property ' + args.property + ' is changed!'); }
);
Element.removeChild()¶
Удаляет заданный элемент из списка дочерних.
Удаление элемента из списка дочерних не удалит его визуально. Связи родитель - дочерний элемент используются для построения логической иерархии элементов, котоая в итоге используется для поиска внутри иерархи, каскадного удаления элементов и др.
Element.removeChild(someElement)
Name | Type | Description |
---|---|---|
child |
Element |
Удаляемый элемент из списка дочерних элементов. |
Метод не возвращает значений.
Element.render()¶
Создает DOM-представление элемента.
var $element = someElement.render();
Element.setBackground()¶
Устанавливает цвет фона элемента.
Element.setBackground(value)
Element.setBackground(ColorStyle.primary1);
Element.setEnabled()¶
Устанавливает значение, определяющее, возможен ли доступ к элементу или он заблокирован.
Element.setEnabled(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Логическое значение, определяющее, возможен ли доступ к элементу или он заблокирован. |
undefined
Element.setEnabled(true);
Element.setFocusable()¶
Устанавливает значение, определяющее, возможно ли установить фокус ввода на элемент.
Возможность установки фокуса ввода на элемент зависит от нескольких параметров. Во-первых, от значения соответствующего свойства, которое можно установить с помощью метода setFocusable(). Во-вторых, от текущего состояния элемента. Например, элемент может быть заблокирован или скрыт, либо находится внутри контейнера, который в свою очередь заблокирован или скрыт. Наконец, некоторые элементы на уровне реализации могут запрещать установку фокуса ввода.
Вызов метода setFocused() с параметром
true
учитывает все вышеперечисленные аспекты и пытается установить
фокус ввода на элемент. Если все проверки прошли успешно и элемент
получил фокус ввода, у соответствующего элемента возникает событие
onGotFocus. Следует отметить, что событие
onGotFocus также может возникать и
вследствие действий пользователя.
Установка фокуса ввода на элемент означает также то, что другой, ранее
сфокусированный элемент, теряет фокус ввода, что в свою очередь приводит
к тому, что у соответствующего элемента возникает событие
onLostFocus. Событие
onLostFocus также может спровоцировать
вызов метода setFocused() с параметром
false
, если на элемент был установлен фокус ввода.
Element.setFocusable(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Логическое значение, определяющее, возможно ли установить фокус ввода на элемент. Значение true означает, что установить фокус возможно, значение false - нельзя. |
Метод не возвращает значений.
Element.setFocusable(true);
Element.setFocused()¶
Устанавливает значение, определяющее, установлен ли фокус ввода на элемент.
Возможность установки фокуса ввода на элемент зависит от нескольких параметров. Во-первых, от значения соответствующего свойства, которое можно установить с помощью метода setFocusable(). Во-вторых, от текущего состояния элемента. Например, элемент может быть заблокирован или скрыт, либо находится внутри контейнера, который в свою очередь заблокирован или скрыт. Наконец, некоторые элементы на уровне реализации могут запрещать установку фокуса ввода.
Вызов метода setFocused() с параметром
true
учитывает все вышеперечисленные аспекты и пытается установить
фокус ввода на элемент. Если все проверки прошли успешно и элемент
получил фокус ввода, у соответствующего элемента возникает событие
onGotFocus. Следует отметить, что событие
onGotFocus также может возникать и
вследствие действий пользователя.
Установка фокуса ввода на элемент означает также то, что другой, ранее
сфокусированный элемент, теряет фокус ввода, что в свою очередь приводит
к тому, что у соответствующего элемента возникает событие
onLostFocus. Событие
onLostFocus также может спровоцировать
вызов метода setFocused() с параметром
false
, если на элемент был установлен фокус ввода.
Element.setFocused(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Логическое значение, определяющее, установлен ли фокус ввода на элемент. Значение true означает, что фокус установлен, значение false - не установлен. |
Логическое значение, определяющее, успешность выполнения операции.
Значение true
означает, что метод выполнен успешно, значение
false
- не успешно.
var success = Element.setFocused(true);
Element.setForeground()¶
Устанавливает цвет текста элемента.
Element.setForeground(ColorStyle.primary1);
Element.setHorizontalAlignment()¶
Устанавливает горизонтальное выравнивание в родительском элементе.
Element.setHorizontalAlignment(value)
Name | Type | Description |
---|---|---|
value | String |
Горизонтальное выравнивание в родительском элементе. |
Метод не возвращает значений.
label.setHorizontalAlignment('Center');
Element.setName()¶
Устанавливает наименование элемента.
Element.setName(value)
Name | Type | Description |
---|---|---|
value | String |
Наименование элемента |
Метод не возвращает значений.
Element.setName('button1');
Element.setParent()¶
Устанавливает родительский элемент.
Некоторые элементы могут выступать в роли контейнеров для других элементов. В этом случае контейнер называют родительским элементом, а элементы, содержащиеся внутри него, дочерними элементами. Связь дочернего элемента с родительским можно установить в момент создания дочернего элемента, передав в конструктор ссылку на родительский элемент. Если на момент создания дочернего элемента родительский элемент неизвестен, связь с родительским элементом можно установить позже, вызвав метод setParent().
Так например, в момент добавления дочернего элемента родительский элемент вызывает у дочернего метод setParent() и передает ссылку на себя. В свою очередь дочерний элемент запоминает ссылку на родителя, после чего ее можно получить, вызвав метод getParent(). Если в момент вызова метода setParent() дочерний элемент относился к другому родительскому элементу, он автоматически удаляется из старого родительского элемента.
Element.setParent(parent);
Element.setProperty()¶
Устанавливает значение указанного свойства элемента.
Методы getProperty(), setProperty() и событие onPropertyChanged используются механизмом привязки данных. Вместе с этим они предоставляют универсальный унифицированный интерфейс для работы со свойствами элемента.
Element.setProperty(property, value)
Name | Type | Description |
---|---|---|
property | String |
Путь к свойству. |
value | * | Значение свойства. |
Метод не возвращает значений.
Element.setProperty('Visible', true); // Идентично Element.setVisible(true);
Element.setStyle()¶
Устанавливает элементу кастомный стиль (на деле устанавливает ему одноименный класс, стили которого можно задать самому в подключаемых на страницу стилях). Этот способ кастомизации внешнего вида череват разными последствиями, поскольку примененные к классу css-правила могут противоречить правилам задуманным InfinniUI, в следствии чего верстка может “поехать” неожиданным образом. Следует применять эту возможность как можно реже и как можно аккуратнее
Element.setStyle(value)
Name | Type | Description |
---|---|---|
value | String |
Стилевой класс элемента. |
Метод не возвращает значений.
Element.setStyle('toolbar_button');
Element.setTag()¶
Устанавливает специальное значение. Оно может быть любого типа. Тег можно использовать для привязки произвольных значений к элементу.
Element.setTag(value);
Name | Type | Description |
---|---|---|
value | * | Произвольное значение, которое будет привязано к элементу. |
Метод не возвращает значений.
Element.setTag({a:1});
Element.setText()¶
Устанавливает текст элемента.
Element.setText(value)
Name | Type | Description |
---|---|---|
value | String |
Текст элемента. |
Метод не возвращает значений.
Element.setText('Text');
Element.setTextHorizontalAlignment()¶
Устанавливает горизонтальное выравнивание текста в элементе.
Element.setTextHorizontalAlignment(value)
Name | Type | Description |
---|---|---|
value | TextHorizontalAlignment | Горизонтальное выравнивание текста в элементе |
Метод не возвращает значений
Element.setTextHorizontalAlignment(InfinniUI.TextHorizontalAlignment.left);
Element.setTextStyle()¶
Устанавливает стиль текста элемента.
Element.setTextStyle(value)
Name | Type | Description |
---|---|---|
value | String |
Стиль текста элемента. |
Метод не возвращает значений.
Element.setTextStyle(TextStyle.body1);
Element.setToolTip()¶
Устанавливает всплывающую подсказку элемента.
Element.setToolTip(value)
Name | Type | Description |
---|---|---|
value | String /Element |
Текст или визуальный элемент, появляющийся при наведении на элемент |
Метод не возвращает значений
var toolTip = new Label();
toolTip.setValue('Help text');
Element.setToolTip(toolTip);
Element.setValidationState()¶
Устанавливает заданный валидационный статус и валидационное сообщение.
Element.setValidationState(state, message)
Name | Type | Description |
---|---|---|
state | String |
Валидационный статус. Может принимать значения: ‘success’, ‘warning’, ‘error’ |
message | String |
Валидационное сообщение |
Метод не возвращает значений.
Element.setValidationState('error', 'Last name is a required field');
Element.setVisible()¶
Устанавливает значение, определяющее, отображается ли элемент в интерфейсе.
Element.setVisible(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Логическое значение, определяющее, отображается ли элемент в интерфейсе. Значение true означает, что элемент отображается в интерфейсе, false - элемент не отображается. |
Метод не возвращает значений.
Element.setVisible(true);
Element.metadata¶
Метаданные описывающие настройки Element.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Name | String |
null | Имя элемента (строка). Желательно делать его уникальным внутри представления. |
Text | String (⇔)(ƒ) |
“” | Текст элемента. В разных потомках Element, поле text используется по разному. Например, во View это заголовок представления, а в ImageBox это текст кнопки, инициирующей выбор загружаемого изображения. |
Focusable | Boolean (⇔) |
true | Значение, определяющее, может ли элемент получить фокус. |
Enabled | Boolean (⇔) |
true | Значение, определяющее, значение, возможен ли доступ к элементу. |
Visible | Boolean (⇔) |
true | Значение, определяющее видимость элемента. |
HorizontalAlignment | HorizontalAlignment (⇔) | “Stretch” | Горизонтальное выравнивание элемента. |
TextHorizontalAlignment | TextHorizontalAlignment (⇔) | “Left” | Горизонтальное выравнивание внутри элемента. |
Style | String (⇔) |
“” | Имя кастомного стиля (на деле это одноименный класс, стили которого можно задать самому в подключаемых на страницу стилях) |
TextStyle | TextStyle (⇔) | “” | Стиль текста элемента |
Foreground | Color (⇔) | “” | Цвет текста. |
Background | Color (⇔) | “” | Цвет фона. |
ToolTip | String (ƒ), Element |
null | Всплывающая над элементом подсказка. |
Tag | * | null | Произвольное значение, которое можно привязать к элементу. |
OnLoaded | Script | null | Устанавливает обработчик готовности элемента. |
OnGotFocus | Script | null | Устанавливает обработчик получения фокуса элементом. |
OnLostFocus | Script | null | Устанавливает обработчик потери фокуса у элемента. |
OnClick | Script | null | Устанавливает обработчик клика мышью по элементу. |
OnDoubleClick | Script | null | Устанавливает обработчик двойного клика мышью по элементу. |
OnMouseDown | Script | null | Устанавливает обработчик нажатия кнопки мыши над элементом (обычный клик срабатывает после отпускания кнопки мыши). |
OnMouseUp | Script | null | Устанавливает обработчик поднятия кнопки мыши над элементом (обычный клик срабатывает позже). |
OnMouseWheel | Script | null | Устанавливает обработчик прокрутки скролла над элементом. |
OnMouseEnter | Script | null | Устанавливает обработчик появления курсора над элементом. |
OnMouseLeave | Script | null | Устанавливает обработчик выхода курсора из области элемента. |
OnMouseMove | Script | null | Устанавливает обработчик движения курсора в области элемента. |
OnKeyDown | Script | null | Устанавливает обработчик нажатия клавиши клавиатуры, в момент когда фокус находится на текущем элементе. |
OnKeyUp | Script | null | Устанавливает обработчик поднятия клавиши клавиатуры, в момент когда фокус находится на текущем элементе. |
OnPropertyChanged | Script | null | Устанавливает обработчик изменения одного из свойств элемента (value, visible и др.). |
(⇔) Свойство может быть задано, как DataBinding.
(ƒ) Свойство может быть задано, как JSExpression.
Exampes¶
Создать экземпляр Element нельзя (это абстрактный класс), однако можно например создать экземпляр кнопки, которая наследуется от Element.
//infinni-ui-demo
{
"DataSources": [
],
"Items": [{
"GridPanel": {
"Items": [
{
"Cell": {
"ColumnSpan": 4,
"Items": [
{
//infinni-ui-display-begin
"Button": {
"Name": "my_button",
"Text": "Button",
"OnClick": "{ alert(args.source.getName()); }"
}
//infinni-ui-display-end
}
]
}
}
]
}
}
]
}
View¶
Визуальное представление.
Description¶
Визуальное представление - программный объект, который может быть отображен на экране и представляет собой контейнер взаимосвязанных друг с другом визуальных и невизуальных элементов. Визуальное представление расширяет базовый тип контейнера элементов, таким образом, одно представление может являться частью другого.
Methods¶
Name | Description |
---|---|
getContext | Возвращает контекст представления |
getScripts | Возвращает коллекцию скриптов представления |
getParameters | Возвращает коллекцию параметров представления |
getDataSources | Возвращает коллекцию источников данных представления |
getDialogResult | Возвращает результат работы представления |
setDialogResult | Устанавливает результат работы представления |
open | Открывает представление |
close | Закрывает представление |
setOpenStrategy | Устанавливает стратегию отображения представления |
getHeaderTemplate | Возвращает функцию шаблонизации заголовка представления |
setHeaderTemplate | Устанавливает функцию шаблонизации заголовка представления |
getCloseButtonVisibility | Возвращает флаг видимости кнопки закрытия |
setCloseButtonVisibility | Устанавливает флаг видимости кнопки закрытия |
getApplicationView | Возвращает корневое представление |
getFocusOnControl | Возвращает имя элемента представления, который получит фокус при открытии представления |
setFocusOnControl | Устанавливает имя элемента представления, который получит фокус при открытии представления |
Events¶
Name | Description |
---|---|
onOpening | Устанавливает обработчик события о том, что представление открывается |
onOpened | Устанавливает обработчик события о том, что представление было открыто |
onClosing | Устанавливает обработчик события о том, что представление закрывается |
onClosed | Устанавливает обработчик события о том, что представление было закрыто |
onBeforeLoaded | Устанавливает обработчик события о том, что представление было загружено. Данный обработчик сработает до onLoaded |
DialogResult¶
Результат работы диалогового окна.
DialogResult = {
none: 0,
accepted: 1,
canceled: 2
}
Name | Description |
---|---|
none | Не определен |
accepted | Пользователь подтвердил диалог |
canceled | Пользователь отменил диалог |
DialogResult¶
View.close()¶
Закрывает представление.
Вызов метода close
приводит к возникновению события
onClosing. Представление будет закрыто, если
нет ни одного обработчика, подписанного на событие
onClosing, либо если все обработчики этого
события вернули значение, отличное от false
. Закрытие представления
приводит к возникновению события onClosed. В
обработчике события onClosed можно
зарегистрировать факт закрытия представления.
view.close(success, error)
Name | Type | Description |
---|---|---|
success | Script | Обработчик события о том, что представление закрыто |
error | Script | Обработчик события о том, что при закрытии произошла ошибка |
Метод ничего не возвращает.
view.close();
View.getApplicationView()¶
Возвращает корневое представление, т.е. представление, у которого нет родительского элемента.
var rootView = view.getApplicationView();
View.getCloseButtonVisibility()¶
Возвращает флаг видимости кнопки закрытия. Кнопка закрытия отображается, когда представление открывается в режиме диалога. По умолчанию она является видимой.
var closeButtonVisibility = view.getCloseButtonVisibility();
View.getContext()¶
Возвращает контекст представления.
var viewContext = view.getContext();
View.getDataSources()¶
Возвращает коллекцию источников данных представления.
var myDataSource = new ObjectDataSource(View);
myDataSource.setName('myDataSource');
var dataSources = view.getDataSources();
dataSources.add(myDataSource);
var myDataSource2 = dataSources.getById('myDataSource'); // myDataSource2 === myDataSource
View.getDialogResult()¶
Возвращает результат работы представления.
var dialogResult = view.getDialogResult();
View.getFocusOnControl¶
Возвращает имя элемента представления, который получит фокус при открытии представления.
view.getFocusOnControl()
Нет
Имя элемента представления, который получит фокус при открытии представления.
View.getHeaderTemplate()¶
Возвращает функцию шаблонизации заголовка представления. Данный шаблон используется для создания заголовка в случае, когда представление открывается в режиме диалога.
var headerTemplate = view.getHeaderTemplate();
View.getParameters()¶
Возвращает коллекцию параметров представления.
var myParameter = new Parameter({view: parentView});
myParameter.setName('myParameter');
myParameter.setValue(123);
var parameters = parentView.getParameters();
parameters.add(myParameter);
var myParameter2 = parameters.getById('myParameter'); // myParameter2 === myParameter
myParameter2.getValue(); // 123
View.getScripts()¶
Возвращает коллекцию скриптов представления.
view.getScripts()
Нет
Коллекция скриптов представления. Каждый
элемент коллекции представлен объектом с двумя свойствами: name
и
func
. Свойство name
содержит наименование скрипта, func
-
указатель на функцию скрипта. Использование
данных свойств подразумевает только чтение.
var myScript = function() { alert('Hello!'); };
var scripts = view.getScripts();
scripts.add({ name: 'myScript', func: myScript });
var myScript2 = scripts.getById('myScript'); // myScript2 === myScript
myScript2(); // alert('Hello!');
View.metadata¶
Метаданные типа View.
Name | Type | Default | Description |
---|---|---|---|
Scripts | Array |
– | Коллекция скриптов представления |
Parameters | Array |
– | Коллекция параметров представления |
DataSources | Array |
– | Коллекция источников данных представления |
HeaderTemplate | ElementMetadata | – | Шаблон заголовка представления |
CloseButtonVisibility | Boolean |
true | Флаг видимости кнопки закрытия |
NotificationSubsriptions | Object |
– | Объект подписок для signalR |
OnOpening | Script | – | Обработчик события о том, что представление открывается |
OnOpened | Script | – | Обработчик события о том, что представление было открыто |
OnClosing | Script | – | Обработчик события о том, что представление закрывается |
OnClosed | Script | – | Обработчик события о том, что представление было закрыто |
{
"View": {
"CloseButtonVisibility": false,
"NotificationSubsriptions": {
"routingKey1": "{ console.log( args.message ) }",
"routingKey2": "{ console.log( args.message ) }",
"routingKey3": "{ console.log( args.message ) }"
},
"HeaderTemplate": {
"StackPanel": {
"Items": [
{
"ToolBar": {
"Items": [
{
"ToolBarButton": {
"ContentTemplate": {
"Icon": {
"Value": "times"
}
},
"Name": "CloseButton",
"OnClick": "{context.view.close();}"
}
}
]
}
},
{
"StackPanel": {
"Items": [
{
"Icon": {
"Value": "pencil"
}
},
{
"Label": {
"Text": "EditView"
}
}
]
}
}
]
}
},
"DataSources": [
{
"ObjectDataSource": {
"Name": "MainDataSource",
"Items": [
{}
]
}
}
],
"Scripts": [
{
"Name": "OnOpened",
"Body": "alert('Hi!');"
}
],
"OnOpened": {
"Name": "OnOpened"
},
"Items": [
{
"Label": {
"Text": "ViewBody"
}
}
]
}
}
View.onBeforeLoaded¶
Устанавливает обработчик события о том, что представление представление было загружено. Данный обработчик сработает до onLoaded.
view.onBeforeLoaded(callback)
view.onBeforeLoaded(
function(context, argument) { alert('View is loaded! (1)'); }
);
view.onLoaded(
function(context, argument) { alert('View is loaded! (2)'); }
);
View.onClosed¶
Устанавливает обработчик события о том, что представление было закрыто.
Вызов метода close() приводит к возникновению
события onClosing. Представление будет закрыто,
если нет ни одного обработчика, подписанного на событие
onClosing, либо если все обработчики этого
события вернули значение, отличное от false
. Закрытие представления
приводит к возникновению события onClosed
. В обработчике события
onClosed
можно зарегистрировать факт закрытия представления.
view.onClosed(callback)
view.onClosed(
function(context, argument) { alert('View is closed!'); }
);
View.onClosing¶
Устанавливает обработчик события о том, что представление закрывается.
Вызов метода close() приводит к возникновению
события onClosing
. Представление будет закрыто, если нет ни одного
обработчика, подписанного на событие onClosing
, либо если все
обработчики этого события вернули значение, отличное от false
.
Закрытие представления приводит к возникновению события
onClosed. В обработчике события
onClosed можно зарегистрировать факт закрытия
представления.
view.onClosing(callback)
view.onClosing(
function(context, argument) { alert('View is closing!'); }
);
View.onOpened¶
Устанавливает обработчик события о том, что представление было открыто.
Вызов метода open() приводит к возникновению события
onOpening. Представление будет открыто, если
нет ни одного обработчика, подписанного на событие
onOpening, либо если все обработчики этого
события вернули значение, отличное от false
. Открытие представления
приводит к возникновению события onOpened
. В обработчике события
onOpened
можно зарегистрировать факт открытия представления.
view.onOpened(callback)
view.onOpened(
function(context, argument) { alert('View is opened!'); }
);
View.onOpening¶
Устанавливает обработчик события о том, что представление открывается.
Вызов метода open() приводит к возникновению события
onOpening
. Представление будет открыто, если нет ни одного
обработчика, подписанного на событие onOpening
, либо если все
обработчики этого события вернули значение, отличное от false
.
Открытие представления приводит к возникновению события
onOpened. В обработчике события
onOpened можно зарегистрировать факт открытия
представления.
view.onOpening(callback)
view.onOpening(
function(context, argument) { alert('View is opening!'); }
);
View.open()¶
Открывает представление.
Вызов метода open
приводит к возникновению события
onOpening. Представление будет открыто, если
нет ни одного обработчика, подписанного на событие
onOpening, либо если все обработчики этого
события вернули значение, отличное от false
. Открытие представления
приводит к возникновению события onOpened. В
обработчике события onOpened можно
зарегистрировать факт открытия представления.
view.open(success, error)
Name | Type | Description |
---|---|---|
success | Script | Обработчик события о том, что представление открыто |
error | Script | Обработчик события о том, что при открытии произошла ошибка |
Метод ничего не возвращает.
view.open();
View.setCloseButtonVisibility()¶
Устанавливает флаг видимости кнопки закрытия. Кнопка закрытия отображается, когда представление открывается в режиме диалога. По умолчанию она является видимой.
view.setCloseButtonVisibility(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Флаг видимости кнопки закрытия |
Метод ничего не возвращает.
view.setOpenStrategy(new OpenModeDialogStrategy());
view.setCloseButtonVisibility(false);
View.setDialogResult()¶
Устанавливает результат работы представления.
view.setDialogResult(value)
Name | Type | Description |
---|---|---|
value | DialogResult | Результат работы представления |
Метод ничего не возвращает.
view.setDialogResult(DialogResult.accepted);
View.setFocusOnControl¶
Устанавливает имя элемента представления, который получит фокус при открытии представления
view.setFocusOnControl(value)
Name | Type | Description |
---|---|---|
value |
string |
Имя элемента представления, который получит фокус при открытии представления. |
Нет.
View.setHeaderTemplate()¶
Устанавливает функцию шаблонизации заголовка представления. Данный шаблон используется для создания заголовка в случае, когда представление открывается в режиме диалога.
var headerTemplate = function (context, args) {
var label = new Label();
label.setValue('New title');
return label;
}
view.setOpenStrategy(new OpenModeDialogStrategy());
view.setHeaderTemplate(headerTemplate);
View.setOpenStrategy()¶
Устанавливает стратегию отображения представления.
view.setOpenStrategy(new OpenModeDialogStrategy());
View.metadata¶
Метаданные типа View.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Scripts | Array |
– | Коллекция скриптов представления |
Parameters | Array |
– | Коллекция параметров представления |
DataSources | Array |
– | Коллекция источников данных представления |
HeaderTemplate | ElementMetadata | – | Шаблон заголовка представления |
CloseButtonVisibility | Boolean |
true | Флаг видимости кнопки закрытия |
NotificationSubsriptions | Object |
– | Объект подписок для signalR |
OnOpening | Script | – | Обработчик события о том, что представление открывается |
OnOpened | Script | – | Обработчик события о том, что представление было открыто |
OnClosing | Script | – | Обработчик события о том, что представление закрывается |
OnClosed | Script | – | Обработчик события о том, что представление было закрыто |
Examples¶
{
"View": {
"CloseButtonVisibility": false,
"NotificationSubsriptions": {
"routingKey1": "{ console.log( args.message ) }",
"routingKey2": "{ console.log( args.message ) }",
"routingKey3": "{ console.log( args.message ) }"
},
"HeaderTemplate": {
"StackPanel": {
"Items": [
{
"ToolBar": {
"Items": [
{
"ToolBarButton": {
"ContentTemplate": {
"Icon": {
"Value": "times"
}
},
"Name": "CloseButton",
"OnClick": "{context.view.close();}"
}
}
]
}
},
{
"StackPanel": {
"Items": [
{
"Icon": {
"Value": "pencil"
}
},
{
"Label": {
"Text": "EditView"
}
}
]
}
}
]
}
},
"DataSources": [
{
"ObjectDataSource": {
"Name": "MainDataSource",
"Items": [
{}
]
}
}
],
"Scripts": [
{
"Name": "OnOpened",
"Body": "alert('Hi!');"
}
],
"OnOpened": {
"Name": "OnOpened"
},
"Items": [
{
"Label": {
"Text": "ViewBody"
}
}
]
}
}
LinkView¶
Объект, который создает и настраивает представление.
Methods¶
Name | Description |
---|---|
getOpenMode | Возвращает название стратегии отображения представления |
setOpenMode | Устанавливает название стратегии отображения представления |
setViewTemplate | Устанавливает функцию шаблонизации представления |
createView | Создает представление |
setDialogWidth | Устанавливает ширину диалогового окна (для случая OpenMode = ‘Dialog’) |
setContainer | Устанавливает название контейнера (для случая OpenMode = ‘Container’) |
Events¶
Нет
LinkView.metadata¶
Метаданные LinkView можно задать с помощью
AutoView¶
Метаданные типа LinkView. Позволяет задать содержимое представления, указав путь (названия конфигурации и документа, где хранится представление, и название представления) до соответсвующий метаданных.
Name | Type | Default | Description |
---|---|---|---|
OpenMode | String |
‘Default’ | Название стратегии отображения представления |
DialogWidth | String |
– | Ширина диалогового окна (актуально в случае OpenMode = ‘Dialog’) |
Container | String |
– | Название контейнера (актуально в случае OpenMode = ‘Container’) |
Path | String |
– | Путь до метаданных. Полный путь до метаданных будет выглядеть так: InfinniUI.config.serverUrl + ‘/’ + Path. |
Parameters | Array |
– | Коллекция параметров представления |
{
"LinkView": {
"AutoView": {
"OpenMode": "Dialog",
"DialogWidth": "Small",
"Path": "content/metadata/Views/PersonalAccount/EditView.json",
"Parameters": [
{
"Name": "RefreshInfo",
"Value": true
}
]
}
}
}
InlineView¶
Метаданные типа LinkView. Позволяет задать содержимое представления с помощью метаданных.
Name | Type | Default | Description |
---|---|---|---|
OpenMode | String |
‘Default’ | Название стратегии отображения представления |
DialogWidth | String |
– | Ширина диалогового окна (актуально в случае OpenMode = ‘Dialog’) |
Container | String |
– | Название контейнера (актуально в случае OpenMode = ‘Container’) |
View* | Object |
– | Шаблон содержимого представления |
* Обязательное свойство.
{
"LinkView": {
"InlineView": {
"OpenMode": "Container",
"Container": "CenterPanel",
"View": {
"Items": [
{
"Label": {
"Text": "InlineView"
}
}
]
}
}
}
}
LinkView.createView()¶
Создает представление.
linkView.createView(callback)
Name | Type | Description |
---|---|---|
callback | Script | Обработчик события о том, что представление было создано |
Созданное представление передается в качестве аргумента в callback.
Метод ничего не возвращает.
var onViewReady = function(createdView){
createdView.open();
}
linkView.createView(onViewReady);
LinkView.getOpenMode()¶
Возвращает режим отображения представления.
var openMode = linkView.getOpenMode();
LinkView.setContainer()¶
Устанавливает название контейнера (для случая OpenMode = ‘Container’).
linkView.setContainer(value)
Name | Type | Description |
---|---|---|
value | String |
Название контейнера |
Метод ничего не возвращает.
linkView.setOpenMode('Container');
linkView.setContainer('Footer');
LinkView.setDialogWidth()¶
Устанавливает ширину диалогового окна (для случая OpenMode = ‘Dialog’).
linkView.setDialogWidth(value)
Name | Type | Description |
---|---|---|
value | String |
Ширина диалогового окна |
Возможные значения:
- Small
- Middle
- Large
- ExtraLarge
По умолчанию диалоговое окно имеет ширину Middle.
Метод ничего не возвращает.
linkView.setOpenMode('Dialog');
linkView.setDialogWidth('Large');
LinkView.setOpenMode()¶
Устанавливает режим отображения представления.
linkView.setOpenMode(value)
Name | Type | Description |
---|---|---|
value | String |
Режим отображения представления |
Метод ничего не возвращает.
linkView.setOpenMode('Dialog');
LinkView.setViewTemplate()¶
Устанавливает функцию шаблонизации представления.
var viewTemplate = function (context, args) {
var label = new Label();
label.setValue('View Body');
return label;
}
linkView.setViewTemplate(viewTemplate);
OpenMode¶
Важным фактором отображения представления является режим отображения. В InfinniUI возможны следующие режимы отображения:
Name | Description |
---|---|
Default |
Представление откроется вместо корневого представления |
Dialog |
Представление откроется в диалоговом окне |
Container |
Представление откроется в указанном контейнере |
Каждому режиму отображения соответсвует некоторая стратегия (OpenModeDefaultStrategy, OpenModeDialogStrategy, OpenModeContainerStrategy).
GlobalContext¶
Application global context. Context provides API to appication methods and properties that are used jointly.
Variable InfinniUI.global
contains global context.
Properties¶
Name | Type | Description |
---|---|---|
containers |
Object |
List of containers to view in mode OpenMode="Container" . |
localizations |
Object |
Map, where key is localization name and value is localization. |
localized |
Localization | Current language and regional settings. It stores value from InfinniUI.global.localizations associated with InfinniUI.config.lang. |
factory |
ApplicationBuilder | Common application builder. |
logger |
Logger | Message logging service. |
messageBus |
MessageBus | Application message bus . |
session |
Session | User session provider. |
notificationSubsription |
NotificationSubscriptions | Server notification service. |
Methods¶
Name | Description |
---|---|
executeAction | Fires up execution of an action. |
GlobalContext.executeAction¶
Запускает выполнение указанного действия.
Syntax¶
ViewContext.executeAction(context, executeActionMetadata[, resultCallback]);
Parameters¶
Name | Type | Description |
---|---|---|
context |
ViewContext | Контекст представления. |
executeActionMetadata |
ActionMetadata | Метеданные действия |
resultCallback |
Script | Обработчик события о том, что Action был выполнен |
Examples¶
var metadata = {
"OpenAction": {
"OpenMode": "Dialog",
/** Athoter metadata **/
}
};
InfinniUI.global.executeAction(context, metadata, functino (context, args) {
console.log('Done');
});
JSExpression¶
Синтаксис для возможности задания простых js-выражений в любых текстовых полях. Одним из применений является локализация приложения.
Syntax¶
"{= (JS-expression) }"
Example¶
InfinniUI.localizations['ru-RU'].strings.custom = {
button: {
name: "Текст для кнопки"
}
};
InfinniUI.localizations['en-US'].strings.custom = {
button: {
name: "Text for button"
}
};
var metadata = [
{
"Button": {
"Text": "{= InfinniUI.localized.strings.custom.button.name }" // Text for button
}
},
{
"TextBox": {
"HintText": "{= 1 + 2 }" // 3
}
}
];
See Also¶
Localizations¶
Localization is language and regional settings.
Localization represents info on localization name and its view formats for various data types.
InfinniUI.localizations
is map of localizations settings. InfinniUI.config.lang specifies current language and regional settings. Current localization is stored in InfinniUI.localized
.
Properties¶
Name | Type | Description |
---|---|---|
name | String |
Localization name. |
caption | String |
Original localization name. |
dateTimeFormatInfo | DateTimeFormatInfo | Info on date and time format |
numberFormatInfo | NumberFormatInfo | Info on numeric view formats. |
Example¶
InfinniUI.localizations = {
'en-US': {
caption: 'English',
name: 'en-US',
dateTimeFormatInfo: {
monthNames: [ "January","February","March","April","May","June","July","August","September","October","November","December" ],
dayNames: ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
firstDayOfWeek: 0
},
numberFormatInfo: {
numberDecimalSeparator: '.',
numberGroupSeparator: ','
},
strings: {
ImageBox: {
chooseImage: 'Choose photo',
imageSizeTooBig: 'Size of the chosen file {chosen-size}MB is more than allowed {permitted-size}MB',
incorrectFormat: 'Uploading of this file type is forbidden'
},
FileBox: {
noFile: 'Choose file...',
fileSizeTooBig: 'Size of the chosen file {chosen-size}MB is more than allowed {permitted-size}MB',
incorrectFormat: 'Uploading of this file type is forbidden'
},
custom: {
button: {
name: "Text for button",
tooltip: "Tooltip"
},
anotherButton: {
name: "Another text for button"
}
}
}
},
'ru-RU': {
caption: 'Русский',
name: 'ru-RU',
dateTimeFormatInfo: {
monthNames: [ "Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь" ],
dayNames: [ "воскресенье","понедельник","вторник","среда","четверг","пятница","суббота" ],
firstDayOfWeek: 1
},
numberFormatInfo: {
numberDecimalSeparator: ',',
numberGroupSeparator: ' '
},
strings: {
ImageBox: {
chooseImage: 'Выбрать изображение',
imageSizeTooBig: 'Размер выбранного файла {chosen-size}Мб больше допустимого размера {permitted-size}Мб',
incorrectFormat: 'Загрузка данного типа файла не разрешена'
},
FileBox: {
noFile: 'Файл не выбран...',
fileSizeTooBig: 'Размер выбранного файла {chosen-size}Мб больше допустимого размера {permitted-size}Мб',
incorrectFormat: 'Загрузка данного типа файла не разрешена'
},
custom: {
button: {
name: "Текст для кнопки",
tooltip: "Тултип"
},
anotherButton: {
name: "Другой текст для кнопки"
}
}
}
}
}
See Also¶
- Localizations.dateTimeFormatInfo
- Localizations.dateTimeFormatting
- Localizations.numberFormatInfo
- Localizations.numberFormatting
- Localizations.strings
Localizations.dateTimeFormatInfo¶
Сведения о формате представления даты и времени.
Описание настроек форматирования для даты и времени приведено в разделе DateTimeFormatting.
Properties¶
Тип: Array.<String>
Список наименований месяцев.
["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"]
Тип: Array.<String>
Список сокращенных наименований месяцев.
["янв", "фев", "мар", "апр", "май", "июн", "июл", "авг", "сен", "окт", "ноя", "дек"]
Тип: Array.<String>
Список наименований дней недели.
["воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"]
Тип: Array.<String>
Список сокращенных наименований дней недели.
["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"]
Localizations.DateTimeFormatting¶
Ниже приведены настройки форматирования для даты и времени. Интерпретация большинства перечисленных форматов зависит от текущей локали (GlobalContext. Localizations.dateTimeFormatInfo).
Предопределенные форматы¶
Формат | Наименование | Строка форматирования | Пример |
---|---|---|---|
f |
Полное представление даты и краткое представление времени. | dd MMMM yyyy г. HH:mm |
“4 сентября 2014 г. 16:17” |
F |
Полное представление даты и полное представление времени. | dd MMMM yyyy г. HH:mm:ss |
“4 сентября 2014 г. 16:17:21” |
g |
Краткое представление даты и краткое представление времени. | dd.MM.yyyy HH:mm |
“04.09.2014 16:17” |
G |
Краткое представление даты и полное представление времени. | dd.MM.yyyy HH:mm:ss |
“04.09.2014 16:17:21” |
d |
Краткое представление даты. | dd.MM.yyyy |
“04.09.2014” |
D |
Полное представление даты. | dd MMMM yyyy г. |
“4 сентября 2014 г.” |
t |
Краткое представление времени. | H:mm |
“16:17” |
T |
Полное представление времени. | H:%m:%s |
“16:17:21” |
y or Y |
Представление год/месяц. | MMMM yyyy', Y: 'MMMM yyyy |
“Сентябрь 2014” |
m or M |
Представление месяц/день. | MMMM yy', M: 'MMMM yy |
“сентября 04” |
s |
Представление в формате ISO 8601. | yyyy-MM-ddTHH:mm:ss |
“2014-09-04T16:17:21” |
u |
Представление в универсальном формате. | yyyy-MM-dd HH:mm:ssZ |
“2014-09-04 16:17:21Z” |
Формат | Наименование | Строка форматирования | Пример |
---|---|---|---|
f |
Полное представление даты и краткое представление времени. | dddd, MMMM dd, yyyy h:%m tt |
“Thursday, September 04, 2014 4:17 PM” |
F |
Полное представление даты и полное представление времени. | dddd, MMMM dd, yyyy h:%m:%s tt |
“Thursday, September 04, 2014 4:17:21 PM” |
g |
Краткое представление даты и краткое представление времени. | M/%d/yyyy h:%m tt |
“9/4/2014 4:17 PM” |
G |
Краткое представление даты и полное представление времени. | M/%d/yyyy h:%m:%s tt |
“9/4/2014 4:17:21 PM” |
d |
Краткое представление даты. | M/%d/yyyy |
“9/4/2014” |
D |
Полное представление даты. | dddd, MMMM dd, yyyy |
“Thursday, September 04, 2014” |
t |
Краткое представление времени. | h:%m tt |
“4:17 PM” |
T |
Полное представление времени. | h:%m:%s tt |
“4:17:21 PM” |
y or Y |
Представление год/месяц. | MMMM, yyyy', Y: 'MMMM, yyyy |
“September, 2014” |
m or M |
Представление месяц/день. | MMMM yy', M: 'MMMM yy |
“September 04” |
s |
Представление в формате ISO 8601. | yyyy-MM-ddTHH:mm:ss |
“2014-09-04T16:17:21” |
u |
Представление в универсальном формате. | yyyy-MM-dd HH:mm:ssZ |
“2014-09-04 16:17:21Z” |
Элементы пользовательского формата¶
Пользователь может определять собственные строки форматирования, используя ниже перечисленные элементы.
Элемент | Описание |
---|---|
Год | |
y |
Последняя или две последних цифры года. Если строка форматирования представлена одним символом y , то ее следует записывать в формате %y , чтобы отличать ее от предопределенного формата. |
yy |
Две последних цифры года. |
yyyy |
Все цифры года. |
Месяц | |
M |
Порядковый номер месяца. Если порядковый номер месяца представлен одной цифрой (1-9), он будет отображен в виде одной цифры (1-9). Если строка форматирования представлена одним символом M , то ее следует записывать в формате %M , чтобы отличать ее от предопределенного формата. |
MM |
Порядковый номер месяца. Если порядковый номер месяца представлен одной цифрой (1-9), он будет отображен с ведущим нулем (01-09). |
MMM |
Сокращенное наименование месяца с использованием GlobalContext. Localizations.dateTimeFormatInfo.abbreviatedMonthNames. |
MMMM |
Полное наименование месяца с использованием GlobalContext. Localizations.dateTimeFormatInfo.monthNames. |
День | |
d |
Порядковый номер дня месяца. Если день месяца представлен одной цифрой (1-9), он будет отображен в виде одной цифры (1-9). Если строка форматирования представлена одним символом d , то ее следует записывать в формате %d , чтобы отличать ее от предопределенного формата. |
dd |
Порядковый номер дня месяца. Если день месяца представлен одной цифрой (1-9), он будет отображен с ведущим нулем (01-09). |
ddd |
Сокращенное наименование дня месяца с использованием GlobalContext. Localizations.dateTimeFormatInfo.abbreviatedDayNames. |
dddd |
Полное наименование дня месяца с использованием GlobalContext. Localizations.dateTimeFormatInfo.dayNames. |
Часы | |
h |
Час в 12-часовом формате. Если час представлен одной цифрой (0-9), он будет отображен в виде одной цифры (0-9). |
hh |
Час в 12-часовом формате. Если час представлен одной цифрой (0-9), он будет отображен с ведущим нулем (00-09). |
H |
Час в 24-часовом формате. Если час представлен одной цифрой (0-9), он будет отображен в виде одной цифры (0-9). |
HH |
Час в 24-часовом формате. Если час представлен одной цифрой (0-9), он будет отображен с ведущим нулем (00-09). |
Минуты | |
m |
Если минута представлена одной цифрой (1-9), она будет отображена в виде одной цифры (1-9). Если строка форматирования представлена одним символом m , то ее следует записывать в формате %m , чтобы отличать ее от предопределенного формата. |
mm |
Если минута представлена одной цифрой (1-9), она будет отображена с ведущим нулем (01-09). |
Секунда | |
s |
Если секунда представлена одной цифрой (0-9), она будет отображена в виде одной цифры (0-9). Если строка форматирования представлена одним символом s , то ее следует записывать в формате %s , чтобы отличать ее от предопределенного формата. |
ss |
Если секунда представлена одной цифрой (0-9), она будет отображена с ведущим нулем (00-09). |
Половина суток | |
t |
Первый символ GlobalContext. Localizations.dateTimeFormatInfo.amDesignator или GlobalContext. Localizations.dateTimeFormatInfo.pmDesignator. |
tt |
GlobalContext. Localizations.dateTimeFormatInfo.amDesignator или GlobalContext. Localizations.dateTimeFormatInfo.pmDesignator. |
Номер часового пояса | |
z |
Если номер часового пояса представлен одной цифрой (0-9), он будет отображен в виде одной цифры (0-9) с явным указанием знака (“+” или “-“). Например: “+0”, “+6”, “-6”. |
zz |
Если номер часового пояса представлен одной цифрой (0-9), он будет отображен с ведущим нулем (00-09) с явным указанием знака (“+” или “-“). Например: “+00”, “+06”, “-06”. |
zzz |
Номер часового пояса отображается с указанием часов и минут, где часы и минуты всегда отображаются с ведущим нулем, если они представлены одной цифрой. Например: “+00:00”, “+06:00”, “-06:00”. |
Разделители даты и времени | |
/ |
Должен заменяться на GlobalContext. Localizations.dateTimeFormatInfo.dateSeparator. |
: |
Должен заменяться на GlobalContext. Localizations.dateTimeFormatInfo.timeSeparator. |
Прочие элементы | |
'abc' or "abc" |
Вставляет строку в кавычках, как есть, даже если она содержит элементы формата. Например, “yyyy’-‘MM’-‘dd HH’:’mm’:’ss’Z’”. |
Иные символы | Вставляются, как есть, без изменения. |
Localizations.numberFormatInfo¶
Сведения о формате представления числовых значений.
Описание настроек форматирования для числовых значений приведено в разделе numberFormatting.
Properties¶
Name | Type | Description | Example |
---|---|---|---|
– | – | – | – |
numberDecimalDigits | Integer |
Количество цифр в дробной части для числовых значений. | 2 |
numberDecimalSeparator | String |
Разделитель между целой и дробной частью для числовых значений. | ‘,’ |
numberGroupSeparator | String |
Разделитель между группами для числовых значений. | ‘ ‘ |
numberNegativePattern | String |
Настройки формата представления отрицательных числовых значений. | ‘-n’ |
numberPositivePattern | String |
Настройки формата представления положительных числовых значений. | ‘n’ |
– | – | – | – |
percentDecimalDigits | Integer |
Количество цифр в дробной части для значений процентов. | 2 |
percentDecimalSeparator | String |
Разделитель между целой и дробной частью для значений процентов. | ‘,’ |
percentGroupSeparator | String |
Разделитель между группами для значений процентов. | ‘ ‘ |
percentSymbol | String |
Обозначение знака процента. | ‘%’ |
percentNegativePattern | String |
Настройки формата представления отрицательных значений процентов. | ‘-p%’ |
percentPositivePattern | String |
Настройки формата представления положительных значений процентов. | ‘p%’ |
– | – | – | – |
currencyDecimalDigits | Integer |
Количество цифр в дробной части для значений денежных единиц. | 2 |
currencyDecimalSeparator | String |
Разделитель между целой и дробной частью для значений денежных единиц. | ‘,’ |
currencyGroupSeparator | String |
Разделитель между группами для значений денежных единиц. | ‘ ‘ |
currencySymbol | String |
Обозначение денежной единицы. | ‘р.’ |
currencyNegativePattern | String |
Настройки формата представления отрицательных значений денежных единиц. | ‘-c$’ |
currencyPositivePattern | String | Настройки формата представления положительных значений денежных единиц. | ‘c$’ |
– | – | – | – |
negativeInfinitySymbol | String |
Обозначения минус бесконечности. | ‘-бесконечность’ |
positiveInfinitySymbol | String |
Обозначения плюс бесконечности. | ‘бесконечность’ |
NaNSymbol | String |
Обозначение IEEE NaN (“not a number”). | ‘NaN’ |
Localizations.numberFormatting¶
Ниже приведены настройки форматирования для числовых значений. Интерпретация большинства перечисленных форматов зависит от текущей локали (GlobalContext. Localizations.numberFormatInfo).
Предопределенные форматы¶
Предопределенные форматы представляют числовые значения с использованием часто используемых шаблонов. Предопределенный формат числового значения записывается в виде “Axx”, где “A” - обозначение предопределенного формата из таблице ниже, “xx” - необязательное целочисленное значение, определяющее точность представления числового значения (количество знаков в дробной части). Значение точности “xx” может находиться в диапазоне от 0 до 99. Если точность не определена, используются соответствующие настройки представления числовых значений текущей локали - GlobalContext. Localizations.numberFormatInfo.
Формат | Наименование | Описание | Пример |
---|---|---|---|
Числовые значения | |||
n or N |
Представления числового значения. | Формат использует настройки представления числовых значений текущей локали GlobalContext. Localizations.NumberFormatInfo.Number. | ru-RU, “n”, 123.4567: “123,46”, ru-RU, “n3”, 123.4567: “123,457”, en-US, “n”, 123.4567: “123.46”, en-US, “n3”, 123.4567: “123.457” |
Значения процентов | |||
p |
Представление значения процентов с преобразованием. | Перед представлением значение процентов умножается на 100. Например, значение “0.15” будет представлено, как “15 %”. Формат использует настройки представления значений процентов текущей локали GlobalContext. Localizations.numberFormatInfo.Percent. | ru-RU, “p”, 123.4567: “12 345,67%”, ru-RU, “p3”, 123.4567: “12 345,670%”, en-US, “p”, 123.4567: “12,345.67 %”, en-US, “p3”, 123.4567: “12,345.670 %” |
P |
Представление значения процентов без преобразования. | Перед представлением значение процентов не умножается на 100. Например, значение “0.15” будет представлено, как есть - “0.15 %”. Формат использует настройки представления значений процентов текущей локали GlobalContext. Localizations.numberFormatInfo.Percent. | ru-RU, “P”, 123.4567: “123,46%”, ru-RU, “P3”, 123.4567: “123,457%”, en-US, “P”, 123.4567: “123.46 %”, en-US, “P3”, 123.4567: “123.457 %” |
Значения денежных единиц | _ | ||
c or C |
Представление значения денежной единицы. | Формат использует настройки представления представления денежных единиц текущей локали GlobalContext. Localizations.numberFormatInfo.Currency. | ru-RU, “c”, 123.4567: “123,46р.”, ru-RU, “c3”, 123.4567: “123,457р.”, en-US, “c”, 123.4567: “$123.46”, en-US, “c3”, 123.4567: “$123.457” |
Элементы пользовательского формата¶
Пользователь может определять собственные строки форматирования, используя ниже перечисленные элементы.
Элемент | Описание |
---|---|
% |
Должен заменяться на GlobalContext. Localizations.numberFormatInfo.percentSymbol. |
$ |
Должен заменяться на GlobalContext. Localizations.NumberFormatInfo.CurrencySymbol. |
Иные символы | Вставляются, как есть, без изменения, если не совпадают с предопределенными форматами (см. выше). |
Example¶
Формат | Форматируемое значение | Результат форматирования (en-US) |
---|---|---|
Числовые значения | ||
n |
1234.567 | 1,234.57 |
n |
-1234.567 | -1,234.57 |
n0 |
1234.567 | 1,235 |
n0 |
-1234.567 | -1,235 |
n1 |
1234.567 | 1,234.6 |
n1 |
-1234.567 | -1,234.6 |
n2 |
1234.567 | 1,234.57 |
n2 |
-1234.567 | -1,234.57 |
n3 |
1234.567 | 1,234.567 |
n3 |
-1234.567 | -1,234.567 |
n4 |
1234.567 | 1,234.5670 |
n4 |
-1234.567 | -1,234.5670 |
n5 |
1234.567 | 1,234.56700 |
n5 |
-1234.567 | -1,234.56700 |
Значения процентов | ||
p |
1234.56789 | 123,456.79 % |
p |
-1234.56789 | -123,456.79 % |
p0 |
1234.56789 | 123,457 % |
p0 |
-1234.56789 | -123,457 % |
p1 |
1234.56789 | 123,456.8 % |
p1 |
-1234.56789 | -123,456.8 % |
p2 |
1234.56789 | 123,456.79 % |
p2 |
-1234.56789 | -123,456.79 % |
p3 |
1234.56789 | 123,456.789 % |
p3 |
-1234.56789 | -123,456.789 % |
p4 |
1234.56789 | 123,456.7890 % |
p4 |
-1234.56789 | -123,456.7890 % |
p5 |
1234.56789 | 123,456.78900 % |
p5 |
-1234.56789 | -123,456.78900 % |
Значения денежных единиц | ||
c |
1234.567 | $1,234.57 |
c |
-1234.567 | ($1,234.57) |
c0 |
1234.567 | $1,235 |
c0 |
-1234.567 | ($1,235) |
c1 |
1234.567 | $1,234.6 |
c1 |
-1234.567 | ($1,234.6) |
c2 |
1234.567 | $1,234.57 |
c2 |
-1234.567 | ($1,234.57) |
c3 |
1234.567 | $1,234.567 |
c3 |
-1234.567 | ($1,234.567) |
c4 |
1234.567 | $1,234.5670 |
c4 |
-1234.567 | ($1,234.5670) |
c5 |
1234.567 | $1,234.56700 |
c5 |
-1234.567 | ($1,234.56700) |
Localizations.strings¶
Объект, содержащий текст для различных локалей.
Для полноценной локализации приложения необходимо весь текст задавать через js-выражения ссылкой на локализированный текст.
При необходимости добавить свой локализированный текст нужно текущий объект с локалями расширить объектом customMessages и в метаданных указать ссылки на значения. Так же есть возможность переопределить локлизированный текст по умолчанию для любого элемента.
Для полноценной локализации приложения необходимо весь текст задавать через js-выражения ссылаясь на локализированный текст.
Локализированный текст по умолчанию¶
InfinniUI.localizations['ru-RU'].strings = {
ImageBox: {
chooseImage: 'Выбрать изображение',
imageSizeTooBig: 'Размер выбранного файла {chosen-size}Мб больше допустимого размера {permitted-size}Мб',
incorrectFormat: 'Загрузка данного типа файла не разрешена'
},
FileBox: {
noFile: 'Файл не выбран...',
fileSizeTooBig: 'Размер выбранного файла {chosen-size}Мб больше допустимого размера {permitted-size}Мб',
incorrectFormat: 'Загрузка данного типа файла не разрешена'
},
DateTimePicker: {
time: 'Время',
clear: 'Очистить',
today: 'Сегодня',
date: 'Дата'
},
DeleteAction: {
"warnMessage": "Вы уверены, что хотите удалить?",
"warnMessageNoItem": "Вы не выбрали элемент который необходимо удалить",
"agree": "Да",
"disagree": "Нет",
"cancel": "Закрыть"
}
};
InfinniUI.localizations['en-US'].strings = {
ImageBox: {
chooseImage: 'Choose photo',
imageSizeTooBig: 'Size of the chosen file {chosen-size}MB is more than allowed {permitted-size}MB',
incorrectFormat: 'Uploading of this file type is forbidden'
},
FileBox: {
noFile: 'Choose file...',
fileSizeTooBig: 'Size of the chosen file {chosen-size}MB is more than allowed {permitted-size}MB',
incorrectFormat: 'Uploading of this file type is forbidden'
},
DateTimePicker: {
time: 'Time',
clear: 'Clear',
today: 'Today',
date: 'Date'
},
DeleteAction: {
"warnMessage": "Are you sure to remove item?",
"warnMessageNoItem": "Choose item that you want to remove",
"agree": "Yes",
"disagree": "No",
"cancel": "Close"
}
};
Example¶
// Расширение текущих локалей кастомными значениями для элементов button и anotherButton
InfinniUI.localizations['ru-RU'].strings.custom = {
button: {
name: "Текст для кнопки",
tooltip: "Тултип"
},
anotherButton: {
name: "Другой текст для кнопки"
}
};
InfinniUI.localizations['en-US'].strings.custom = {
button: {
name: "Text for button",
tooltip: "Tooltip"
},
anotherButton: {
name: "Another text for button"
}
};
var metadata = [
{
"Button": {
"Name": "button",
"Text": "{= InfinniUI.localized.strings.custom.button.name }" // Text for button
"Tooltip": "{= InfinniUI.localized.strings.custom.button.tooltip }" // Tooltip
}
},
{
"Button": {
"Name": "anotherButton",
"Text": "{= InfinniUI.localized.strings.custom.anotherButton.name }" // Another text for button
}
}
];
// Переопределение значений по умолчанию для ImageBox
InfinniUI.localizations['ru-RU'].strings.ImageBox = {
chooseImage: 'Выбрать новое изображение',
imageSizeTooBig: 'Размер выбранного Вами файла {chosen-size}Мб больше допустимого размера {permitted-size}Мб',
incorrectFormat: 'Загрузка данного типа файла в данный момент не возможна'
};
See Also¶
Logger¶
Message logging service.
Description¶
Message logging service is a program object which provides methods to register log messages of different levels: Debug, info, warning, errors and tracing messages. The serivce also can set the level of registered messages defining how elaborate logging indo will be.
Methods¶
Name | Description |
---|---|
getLevel | Returns min logging level. |
setLevel | Sets min logging level. |
debug | Registers debugging message. |
info | Registers info message. |
warn | Registers warning message. |
error | Registers error message. |
trace | Register tracing message. |
Logger.debug¶
Регистрирует отладочное сообщение.
Syntax¶
Logger.debug(message)
Name | Type | Description |
---|---|---|
message |
String | Object |
Сообщение. В качестве сообщения может выступать строка или объект. |
Examples¶
Logger.debug('Message');
Logger.debug({ message: 'Message' });
Logger.error¶
Регистрирует сообщение с ошибкой.
Syntax¶
Logger.error(message)
Name | Type | Description |
---|---|---|
message |
String | Object |
Сообщение. В качестве сообщения может выступать строка или объект. |
Examples¶
Logger.error('Message');
Logger.error({ message: 'Message' });
Logger.getLevel¶
Возвращает минимальный уровень регистрируемых сообщений.
Examples¶
var level = Logger.getLevel();
See Also¶
Logger.info¶
Регистрирует информационное сообщение.
Syntax¶
Logger.info(message)
Name | Type | Description |
---|---|---|
message |
String | Object |
Сообщение. В качестве сообщения может выступать строка или объект. |
Examples¶
Logger.info('Message');
Logger.info({ message: 'Message' });
Logger.setLevel¶
Возвращает минимальный уровень регистрируемых сообщений.
Syntax¶
Logger.setLevel(value)
Name | Type | Description |
---|---|---|
value |
LogLevel | Устанавливает уровень регистрируемых сообщений. |
Examples¶
var level = Logger.setLevel(LOG_LEVEL.error);
Logger.debug('Message'); // ignore
Logger.info('Message'); // ignore
Logger.warn('Message'); // ignore
Logger.error('Message'); // log
Logger.trace('Message'); // log
See Also¶
Logger.trace¶
Регистрирует сообщение трассировки.
Syntax¶
Logger.trace(message)
Name | Type | Description |
---|---|---|
message |
String | Object |
Сообщение. В качестве сообщения может выступать строка или объект. |
Examples¶
Logger.trace('Message');
Logger.trace({ message: 'Message' });
Logger.warn¶
Регистрирует сообщение с предупреждением.
Syntax¶
Logger.warn(message)
Name | Type | Description |
---|---|---|
message |
String | Object |
Сообщение. В качестве сообщения может выступать строка или объект. |
Examples¶
Logger.warn('Message');
Logger.warn({ message: 'Message' });
LogLevel¶
Уровень регистрируемых сообщений.
Description¶
Уровень регистрируемых сообщений - простая линейная классификация
сообщений, которые могут регистрироваться в рамках приложения. Уровни
упорядочены по степени их важности. Сообщения уровня debug
имеют
самую низкую важность, сообщения уровня trace
- самую высокую
важность. Благодаря такому ранжированию можно установить минимальный
уровень регистрируемых сообщений, вследствие чего сообщения с более
низким уровнем будет игнорироваться. Таким образом, можно управлять тем,
насколько подробной будет регистрируемая информация.
MessageBus¶
Message bus is a program object which shares infrastructure to exchange events (messages) between various view elements both visual and non-visual.
Description¶
Message bus is created for each view instance. Messages are sent asynchronously that is sender doesn’t get acknowledgement when the message is finally processed. Message exchange within a single instance view doesn’t affect the other view instances.
Each element both visual and non-visual may be a message source and/or be a message subscriber. The time when element will initiate a message sending depends on element working logic. The time when element will process a newly recieved message depends on element. Thus the moment when the message is sent and the moment when its processing is stopped is not determined perhaps the message has never been sent and perhaps will have never been processed). In other words, the only thing that message bus guarantees is delivery to all existing subscribers.
Syntax¶
new MessageBus(view)
Methods¶
Name | Description |
---|---|
getView | Returns parent view. |
send | Sends a message of a certain type. |
subscribe | Subscribes to certain type messages. |
unsubscribeByType | Unsubscribes from certain type messages. |
MessageBus.InfinniUIMessages¶
Для работы с платформенными сообщениями используется InfinniUI.global.messageBus.
MessageTypes¶
Name | Description | messageBody |
---|---|---|
onViewBuildError | Ошибка при создании view | {error: string , metadata: {путь до метаданных}} |
onViewCreated | Создана view | {openMode: openMode, view: view} |
onNotifyUser | Оповещение пользователя | {messageText: string , messageType: string } |
onDataLoading | Отправлен запрос | – |
onDataLoaded | Полечен результат запроса | {success: boolean } |
Examples¶
InfinniUI.global.messageBus.subscribe('onViewCreated', function (context, args) {
var view = args.value.view;
alert('Open ' + view.getName());
});
See Also¶
MessageBus.getView¶
Возвращает родительское представление.
Examples¶
var parentView = MessageBus.getView();
MessageBus.send¶
Отправляет сообщение заданного типа.
Description¶
Для отправки сообщения необходимо передать два параметра: тип сообщения и сообщение. Получив такой запрос, шина сообщений осуществляет поиск всех подписчиков, заинтересованных в получении сообщения с заданным типом, после чего вызывает соответствующие обработчики сообщений, передавая каждому из них указанное сообщение.
Syntax¶
MessageBus.send(type, message)
Name | Type | Description |
---|---|---|
type |
String |
Тип сообщения. |
message |
* | Сообщение. |
Examples¶
MessageBus.send('myEvent', { value: 123 });
See Also¶
MessageBus.subscribe¶
Подписывает на сообщения заданного типа.
Description¶
Для подписки на сообщение необходимо передать два параметра: тип
сообщения и указатель на функцию обработчика сообщения. При появлении
сообщения с заданным типом шина сообщений вызовет данный обработчик
сообщения, передав ему два параметра: context
и argument
. В
параметре context
передается контекст
представления, в рамках которого была
осуществлена подписка; в параметре argument
- полученное сообщение.
В общем случае порядок регистрации обработчиков сообщений никак не связан с порядком их вызова. Последнее значит, что между обработчиками сообщений не должно быть функциональной зависимости.
Syntax¶
MessageBus.subscribe(type, callback)
Examples¶
MessageBus.subscribe('myEvent', function(context, argument) { alert(argument.value); });
MessageBus.unsubscribeByType¶
Отмена всех подписок на сообщения заданного типа.
Description¶
Удаляет все сделанные ранее подписки на событие заданного типа.
Syntax¶
MessageBus.unsubscribeByType(type)
Name | Type | Description |
---|---|---|
type |
String |
Тип сообщения. |
Examples¶
MessageBus.unsubscribeByType('myEvent');
See Also¶
NotificationSubscriptions¶
Service allows to subscribe to server notifications. NotificationSubscriptions based on signalR components - a set of server and clients libraries providing two way real time interaction between server and client.
Description¶
Regulary working with a web-page, both request and transmission is initiated by a client. However in some cases updating data on the web-page should be done timely. To inform clients about changes so called push-notifications are used. SignaR can organize those. NotificationSubscriptions service allows subscribe to notifications from external services made with SignalR.
Parameters¶
No
Methods¶
Name | Description |
---|---|
subscribe | Adds subsciption to event |
unsubscribe | Removes subscribtion to event |
startConnection | Sets server connection and adds listeners in accordance to certain keys |
stopConnection | Removes server connection |
reconnection | Re-establishes conection to a server with certain parameters |
isDisconnected | Checks if the connection is removed |
on | Checks subscription signalR status |
NotificationSubscriptions.isDisconnected¶
Возвращает значение, разорванно соединение с сервером signalR или нет.
Examples¶
NotificationSubscriptions.isDisconnected();
NotificationSubscriptions.on¶
Подписка на события signalR.
Syntax¶
NotificationSubscriptions.on(eventName, callback)
Name | Type | Description |
---|---|---|
eventName | String |
Имя события на которое необходимо подписаться, полный перечень можно найти в документации к signalR |
callback | Script | Обработчик события eventName |
Examples¶
NotificationSubscriptions.on('disconnected', function() {
NotificationSubscriptions.reconnection();
});
NotificationSubscriptions.on('error', function(error) {
console.log(error);
});
NotificationSubscriptions.reconnection¶
Повторно устанавливает соединение с сервером с ранее указанными данными
Examples¶
NotificationSubscriptions.reconnection();
NotificationSubscriptions.startConnection¶
Устанавливает соединение с сервером по заданому hubName. Так же осуществляется подписка по всем routingKey которые были добавлены через метод subscribe или были указаны в метаданных.
Description¶
Для успешного установления соединения с сервером, необходимо сначала добавить хотя бы одну подписку.
Syntax¶
NotificationSubscriptions.startConnection(hubName[, onSuccessCallback[, onErrorCallback]])
Examples¶
NotificationSubscriptions.startConnection("SignalRPushNotificationServiceHub");
See Also¶
NotificationSubscriptions.stopConnection¶
Разрывает соединение с сервером. Подписки при этом сохраняются.
Description¶
Прекращение получений сообщений от сервера.
Examples¶
NotificationSubscriptions.stopConnection();
See Also¶
NotificationSubscriptions.subscribe¶
Подписывает на сообщения по заданому ключу.
Description¶
Для подписки на сообщение необходимо передать два параметра: ключ и
указатель на функцию обработчика сообщения, а так же есть 3й
необязательный параметр: контекст. При появлении сообщения с заданным
ключем NotificationSubscriptions вызовет данный обработчик сообщения,
передав ему два параметра: context
и args
. В параметре
context
передается контекст представления,
в рамках которого была осуществлена подписка; в параметре
args.message
- полученное сообщение.
В общем случае порядок регистрации обработчиков сообщений никак не связан с порядком их вызова. Последнее значит, что между обработчиками сообщений не должно быть функциональной зависимости.
Syntax¶
NotificationSubscriptions.subscribe(routingKey, callback[, context])
Name | Type | Description |
---|---|---|
routingKey | String |
Ключ подписки. |
callback | Обработчик сообщения | Обработчик сообщения. |
context | контекст представления | Контекст представления. |
Examples¶
NotificationSubscriptions.subscribe('myRoutingKey', function(context, args) { alert(args.message); }, this);
NotificationSubscriptions.unsubscribe¶
Отписывает от сообщений по заданому ключу и контексту.
Description¶
Отписывает от сообщений по заданому ключу и контексту, в случае если контекст не передается, происходит отмена всех подписок по заданому ключу.
Syntax¶
NotificationSubscriptions.unsubscribe(routingKey[, context])
Name | Type | Description |
---|---|---|
routingKey | String |
Ключ подписки. |
context | контекст представления | Контекст представления. |
Examples¶
NotificationSubscriptions.unsubscribe('myRoutingKey', this);
Parameters¶
View parameter
Description¶
Parameters declared as views and used to exchange data between views.
Methods¶
Name | Description |
---|---|
getName | Returns parameter name. |
setName | Sets parameter name. |
getView | Returns parent view. |
getValue | Returns parameter value. |
setValue | Sets parameter value. |
getProperty | Returns value of parameter attribute. |
setProperty | Sets value of parameter attribute. |
Events¶
Name | Description |
---|---|
onPropertyChanged |
Sets event processor that event remained unchanged. |
Parameter.getName¶
Возвращает наименование параметра.
Syntax¶
Parameter.getName();
Returns¶
Наименование элемента.
Examples¶
var name = Parameter.getName();
Parameter.getProperty¶
Возвращает значение атрибута параметра.
Syntax¶
Parameter.getProperty(name);
Name | Type | Description |
---|---|---|
name |
String |
наименование параметра. |
Returns¶
Значение атрибута параметра.
Examples¶
var firstName = Parameter.getProperty('first_name');
See Also¶
Parameter.getValue¶
Возвращает значение параметра.
Returns¶
Значение параметра.
Examples¶
var value = Parameter.getValue();
See Also¶
Parameter.getView¶
Возвращает родительское представление.
Returns¶
Родительское представление.
Examples¶
var view = Parameter.getView();
Parameter.metadata¶
Метаданные типа Parameter.
Properties¶
Name | Type | Description |
---|---|---|
Name * |
String |
Наименование параметра |
Value * |
String | DataBinding |
Значение параметра |
DefaultValue |
String |
Значение по умолчанию |
OnPropertyChanged |
Script | Обработчик события о том, что значение было изменено |
* Обязательное свойство.
Examples¶
{
"Name": "Description",
"Value": {
"Source": "dataSource1",
"Property": "$.Description"
},
"DefaultValue": "No description",
"OnPropertyChanged": "OnPropertyChangedScript"
}
Parameter.setName¶
Устанавливает наименование параметра.
Syntax¶
Parameter.setName(value);
Name | Type | Description |
---|---|---|
value |
String |
Наименование параметра. |
Returns¶
Нет
Examples¶
Parameter.setName('parameter1');
Parameter.metadata¶
Метаданные типа Parameter.
Properties¶
Name | Type | Description |
---|---|---|
Name * |
String |
Наименование параметра |
Value * |
String | DataBinding |
Значение параметра |
DefaultValue |
String |
Значение по умолчанию |
OnPropertyChanged |
Script | Обработчик события о том, что значение было изменено |
* Обязательное свойство.
Examples¶
{
"Name": "Description",
"Value": {
"Source": "dataSource1",
"Property": "$.Description"
},
"DefaultValue": "No description",
"OnPropertyChanged": "OnPropertyChangedScript"
}
Routing¶
Возможность настройки роутинга для Single Page Applications. Для работы необходимо конфигурировать массив маршрутов(Routes) и запустить RouterService.
See Also¶
Routes¶
Массив конфигураций маршрутов приложения. Каждый маршрут описывается объектом с обязательными параметрами Name, Path, Action.
Массив конфигурации роутинга доступен через InfinniUI.config.
Syntax¶
window.InfinniUI.config.routes = [
{
Name: routeName,
Path: path,
Action: action
}
];
Properties¶
Name | Type | Description |
---|---|---|
routeName |
String |
Уникальное имя пути. |
path |
String |
Путь. Путь должен начинаться со слеша “/”. Возможно содержание параметров. Имя параметров может состоять только из букв и цифр, без других символов. |
action |
Script |
Функция которая будет вызваны при переходе на указанный путь |
Example¶
window.InfinniUI.config.routes = [
{
Name: "HomePageRoute",
Path: "/",
Action: "{ routeCallback(context, args) }"
},
{
Name: "UserPageRoute",
Path: "/user/<% userId %>/<% pageNumber %>?query1=<% query1 %>&query2=<% query2 %>",
Action: "{ routeCallback2(context, args) }"
}
];
function routerCallback(context, args) {
console.log(args.name); // Передается routeName
console.log(args.params); // Передается массив значений параметров указанных в path, последним элементом массива является null. Если параметров нет, передается [null]
console.log(args.routerParams); // Передается объект с параметрами роутера
}
function routerCallback2(context, args) {
console.log(args.name); // "UserPageRoute"
console.log(args.params); // Например, при url "http://example.com/user/00001/1?query1=notebook&query2=second" придет массив значений ["00001", "1", "notebook", "second", null]
console.log(args.routerParams);
}
See Also¶
RouterService¶
RouterService allows to set up routing for Single Page Application
It is stored in InfinniUI.routerService
.
Description¶
RouterService allows to set up routing at the client side and link this with events, For browsers not supporting History API, RouterService does the same by implementing fragmentary URL.
While the page is loading and after your application opens HomePage view, all routes will be created as defined in InfinniUI.config.routes, router will be automatically fired up in accordance with History API settings from InfinniUI.config.historyAPI. RouterService is a harness for Backbone.Router.
Methods¶
Name | Description |
---|---|
getLinkByName() | Returns link by name path |
startRouter() | Starts routing |
setContext() | Set Context used in scripts |
setParams() | Set Params used in scripts |
addParams() | Add Params used in scripts |
Возвращает полный путь соответствующий переданому имени.
RouterService.getLinkByName(RouteName)
Name | Type | Description |
---|---|---|
RouteName | String |
Имя маршрута заданного в конфигурации. |
Возвращает полный путь соответствующий переданому имени.
RouterService.getLinkByName("HomePageRoute");
Запускает роутер.
Запускает роутер с описанными в InfinniUI.config.routes маршрутами.
RouterService.startRouter();
Устанавливает контекст, который будет передаваться в скрипты, вызываемые RouterService.
RouterService.setContext(context)
Name | Type | Description |
---|---|---|
context | String |
Контекст, который будет передан в скрипты, вызываемые RouterService. |
Метод ничего не возвращает.
RouterService.setContext( view.getContext() );
Устанавливает параметры, который будут передаваться в скрипты, вызываемые RouterService.
RouterService.setParams(params)
Name | Type | Description |
---|---|---|
params | Object |
Параметры, которые будут передаваться в скрипты, вызываемые RouterService. |
Метод ничего не возвращает.
var param = {
user: {
id: 1,
name: 'Иванов Иван Иванович'
}
};
RouterService.setParams( param );
Добавляет параметры, которые нужно передавать в скрипты, вызываемые RouterService.
RouterService.addParams(params)
Name | Type | Description |
---|---|---|
params | Object |
Параметры, которые нужно передавать в скрипты, вызываемые RouterService. |
Метод ничего не возвращает.
var param = {
userRole: 'admin'
};
RouterService.addParams( param );
Script¶
Scripts in InfinniUI are js-functions. Developers can code any logic to implement in front end applications. Scripts have fix input parameters: context and arguments.
Generally scripts are defined and used at the metadata level. They can be defined in two ways. In first case, define any function in js-scripts and call in by name from metadata views. For example: Let us create function alertAction
which upon invocation will display a message on the screen. Let us declare this script as an event processor upon button click.
function alertAction(context, args) {
alert(args.source.getName());
}
//infinni-ui-demo
{
"DataSources": [
],
"Items": [{
"GridPanel": {
"Items": [{
"Cell": {
"ColumnSpan": 4,
"Items": [{
"Button": {
"Name": "button_1",
"Text": "Button",
"OnClick": "{ alertAction(context, args); }"
}
}]
}
}]
}
}]
}
Second way is the more short way. If script is supposed to be used only in one place then its body can be defined in a body of processor without creating a separate function:
//infinni-ui-demo
{
"DataSources": [
],
"Items": [{
"GridPanel": {
"Items": [{
"Cell": {
"ColumnSpan": 4,
"Items": [{
"Button": {
"Name": "button_2",
"Text": "Button",
"OnClick": "{ alert(args.source.getName()); }"
}
}]
}
}]
}
}]
}
As you may notice for this type of script its contents are placed in braces.
Also Script can be an object, that describe any action:
//infinni-ui-demo
{
"DataSources": [
],
"Items": [{
"GridPanel": {
"Items": [{
"Cell": {
"ColumnSpan": 4,
"Items": [{
"Button": {
"Name": "button_2",
"Text": "Button",
"OnClick": {
"OpenAction": {
"LinkView": {
"InlineView": { ... }
}
}
}
}
}]
}
}]
}
}]
}
ActionExecutor¶
Исполнитель Экшенов
Parameters¶
Name | Type | Description |
---|---|---|
actionFactory | ActionFactory | Объект созданный фабрикой создания экшенов |
Examples¶
var onClickExecutor = InfinniUI.ActionExecutor( actionFactory );
ActionFactory¶
Создает и настраивает экшен из метаданных, для дальнейшего исполнения
Executor¶
Создает и настраивает скрипт, по переданным метаданным и билдеру.
InlineScriptFactory¶
Создает и настраивает inline script из метаданных, для дальнейшего исполнения
Script.metadata¶
Метаданные описывающие тип Script.
Exampes¶
Зададим скрипт, который при вызове будет выводить сообщение на экране. Объявим этот скрипт обработчиком события нажатия на кнопку.
//infinni-ui-demo
{
"DataSources": [
],
"Items": [{
"GridPanel": {
"Items": [{
"Cell": {
"ColumnSpan": 4,
"Items": [{
"Button": {
"Name": "button",
"Text": "Button",
"OnClick": "{ alert( args.source.getName() ); }"
}
}]
}
}]
}
}]
}
Script.metadata¶
Метаданные описывающие тип Script.
Exampes¶
Зададим скрипт, который при вызове будет выводить сообщение на экране. Объявим этот скрипт обработчиком события нажатия на кнопку.
//infinni-ui-demo
{
"DataSources": [
],
"Items": [{
"GridPanel": {
"Items": [{
"Cell": {
"ColumnSpan": 4,
"Items": [{
"Button": {
"Name": "button",
"Text": "Button",
"OnClick": "{ alert( args.source.getName() ); }"
}
}]
}
}]
}
}]
}
Session¶
Description¶
User session provider.
Methods¶
Name | Description |
---|---|
getCurrentUser | Returns info on the current user. |
changePassword | Changes password of the current user. |
changeProfile | Changes personal information of the current user. |
changeActiveRole | Changes active role of the current user. |
signInInternal | Sings user in to system via internal provider. |
getSignInExternalForm | Returns user sign-in form via external provider. |
getLinkExternalLoginForm | Returns login form link from external provider. |
unlinkExternalLogin | Unlinks from the current user login from external provider. |
addClaim | Adds user claim. |
setSessionData | Sets the current user claim. |
getSessionData | Gets the current user claim. |
signOut | Signs the current user out. |
Events¶
Name | Description |
---|---|
onActiveRoleChanged | Sets event processor on active role change. |
onSignInInternal | Sets event processor on sign user in via internal provider. |
onSignOut | Sets event processor on sign user out. |
Session.addClaim¶
Добавляет “утверждения” пользователя.
Syntax¶
Session.addClaim(userName, claimName, claimValue[, resultCallback[, errorCallback]]);
Name | Type | Description |
---|---|---|
userName |
String |
Имя пользователя. |
claimName |
String |
Имя “утверждения”. |
claimValue |
Function |
Значение “утверждения”. |
successCallback |
Function |
Обработчик результата выполнения операции. |
errorCallback |
Function |
Обработчик ошибки выполнения операции. |
Returns¶
Нет
Examples¶
session.addClaim(userName, TenantId, Code, function (result) {
update();
});
Session.changeActiveRole¶
Изменяет активную роль текущего пользователя.
Syntax¶
Session.changeActiveRole(activeRole[, resultCallback[, errorCallback]]);
Name | Type | Description |
---|---|---|
activeRole |
String |
Наименование роли. |
successCallback |
Function |
Обработчик результата выполнения операции. |
errorCallback |
Function |
Обработчик ошибки выполнения операции. |
Returns¶
Нет
Examples¶
session.changeActiveRole('admin', onSuccess, onError);
Session.changePassword¶
Изменяет пароль текущего пользователя.
Syntax¶
Session.changePassword(oldPassword, newPassword[, resultCallback[, errorCallback]]);
Name | Type | Description |
---|---|---|
oldPassword |
String |
Старый пароль. |
newPassword |
String |
Новый пароль. |
successCallback |
Function |
Обработчик результата выполнения операции. |
errorCallback |
Function |
Обработчик ошибки выполнения операции. |
Returns¶
Нет
Examples¶
var onSuccess = function () {
console.log('success');
};
var onError = function (err) {
console.error(err);
}
session.changePassword('123', 'abc123', onSuccess, onError);
Session.changeProfile¶
Изменяет персональную информацию текущего пользователя.
Syntax¶
Session.changeProfile(displayName[, description[, resultCallback[, errorCallback]]]);
Name | Type | Description |
---|---|---|
displayName |
String |
Отображаемое имя пользователя. |
description |
String |
Описание пользователя. |
successCallback |
Function |
Обработчик результата выполнения операции. |
errorCallback |
Function |
Обработчик ошибки выполнения операции. |
Returns¶
Нет
Examples¶
session.changeProfile('user name');
Session.getCurrentUser¶
Возвращает информацию о текущем пользователе.
Syntax¶
Session.getCurrentUser(successCallback, errorCallback);
Name | Type | Description |
---|---|---|
successCallback |
Function |
Обработчик результата выполнения операции. |
errorCallback |
Function |
Обработчик ошибки выполнения операции. |
Returns¶
Нет
Examples¶
var onSuccess = function (user) {
console.log('Current user: %s', JSON.stringify(user));
};
var name = Session.getCurrentUser(onSuccess);
Session.getLinkExternalLoginForm¶
Возвращает форму добавления текущему пользователю имени входа у внешнего провайдера.
Syntax¶
Session.getLinkExternalLoginForm(successUrl, failureUrl[, resultCallback[, errorCallback]]);
Name | Type | Description |
---|---|---|
successUrl |
String |
URL для перехода в случае успешного выполнения операции. |
failureUrl |
String |
URL для перехода в случае ошибки выполнения операции. |
successCallback |
Function |
Обработчик результата выполнения операции. |
errorCallback |
Function |
Обработчик ошибки выполнения операции. |
Returns¶
Нет
Examples¶
var successUrl = window.location.href + "?viewName=Profile";
var failureUrl = window.location.href + "?viewName=Profile";
var $form = $("#LoginForm");
session.getSignInExternalForm(successUrl, failureUrl, function (result) {
$form.empty();
$form.append(result);
});
Session.getSessionData¶
Возвращает “утверждения” текущего пользователя.
Syntax¶
Session.getSessionData(claimType[, resultCallback[, errorCallback]]);
Name | Type | Description |
---|---|---|
claimType |
String |
Имя “утверждения”. |
successCallback |
Function |
Обработчик результата выполнения операции. |
errorCallback |
Function |
Обработчик ошибки выполнения операции. |
Returns¶
Нет
Examples¶
Session.getSignInExternalForm¶
Возвращает форму входа пользователя в систему через внешний провайдер.
Syntax¶
Session.getSignInExternalForm(successUrl, failureUrl[, resultCallback[, errorCallback]]);
Name | Type | Description |
---|---|---|
successUrl |
String |
URL для перехода в случае успешного выполнения операции. |
failureUrl |
String |
URL для перехода в случае ошибки выполнения операции. |
successCallback |
Function |
Обработчик результата выполнения операции. |
errorCallback |
Function |
Обработчик ошибки выполнения операции. |
Returns¶
Нет
Examples¶
var successUrl = window.location.href + "&socialAuth=true";
var failureUrl = window.location.href;
var $form = $("#LoginForm");
session.getSignInExternalForm(successUrl, failureUrl, function (result) {
$form.empty();
$form.append(result);
});
Session.onActiveRoleChanged¶
Устанавливает обработчик события изменения активной роли текущего пользователя.
Syntax¶
Session.onActiveRoleChanged(callback);
Name | Type | Description |
---|---|---|
callback |
Function |
Обработчик события изменения активной роли текущего пользователя. |
Returns¶
Нет
Examples¶
Session.onSignInInternal¶
Устанавливает обработчик события входа пользователя в систему через внутренний провайдер.
Syntax¶
Session.onSignInInternal(callback);
Name | Type | Description |
---|---|---|
callback |
Function |
Обработчик события входа пользователя в систему через внутренний провайдер. |
Returns¶
Нет
Examples¶
Session.onSignOut¶
Устанавливает обработчик события выхода пользователя из системы.
Syntax¶
Session.onSignOut(callback);
Name | Type | Description |
---|---|---|
callback |
Function |
Обработчик события выхода пользователя из системы. |
Returns¶
Нет
Examples¶
Session.setSessionData¶
Устанавливает “утверждения” текущего пользователя.
Syntax¶
Session.setSessionData(claimType, claimValue[, resultCallback[, errorCallback]]);
Name | Type | Description |
---|---|---|
claimType |
String |
Имя “утверждения”. |
claimValue |
Function |
Значение “утверждения”. |
successCallback |
Function |
Обработчик результата выполнения операции. |
errorCallback |
Function |
Обработчик ошибки выполнения операции. |
Returns¶
Нет
Examples¶
session.setSessionData(TenantId, Code, function (result) {
update();
});
Session.signInInternal¶
Изменяет активную роль текущего пользователя.
Syntax¶
Session.signInInternal(userName, password, remember[, resultCallback[, errorCallback]]);
Name | Type | Description |
---|---|---|
userName |
String |
Имя пользователя. |
password |
String |
Пароль пользователя. |
remember |
Boolean |
Запомнить пользователя. |
successCallback |
Function |
Обработчик результата выполнения операции. |
errorCallback |
Function |
Обработчик ошибки выполнения операции. |
Returns¶
Нет
Examples¶
session.signInInternal('user', '123', true);
Session.signOut¶
Выход пользователя из системы.
Syntax¶
Session.signOut([resultCallback[, errorCallback]]);
Name | Type | Description |
---|---|---|
successCallback |
Function |
Обработчик результата выполнения операции. |
errorCallback |
Function |
Обработчик ошибки выполнения операции. |
Returns¶
Нет
Examples¶
Session.unlinkExternalLogin¶
Удаляет у текущего пользователя имя входа у внешнего провайдера.
Syntax¶
Session.unlinkExternalLogin(provider, providerKey[, resultCallback[, errorCallback]]);
Name | Type | Description |
---|---|---|
provider |
String |
Название провайдера. |
providerKey |
String |
Ключ провайдера. |
successCallback |
Function |
Обработчик результата выполнения операции. |
errorCallback |
Function |
Обработчик ошибки выполнения операции. |
Returns¶
Нет
Examples¶
session.unlinkExternalLogin(provider, providerKey, function (result) {
updateUser()
});
Style¶
InfinniUI is based on bootstrap 3 framework. Styling of an app made with InfinniUI can be produced in 4 levels.
- Level of choosing from pre-defined values.
- Level of settings of pre-defined platform values.
- Level of bootstrap variable settings.
- Manual styling of css for certain app elements.
As the number of level increases the more customization can be done to the app. However every next level implies the more low-level work needs to be done to stay aligned with the principles built-in InfinniUI. Going to lower levels will require more programmers skills and knowledge.
Pre-defined values level¶
Can be set up in metadata. This setting colors of elements as well as typography inside elements.
//infinni-ui-demo
{
"DataSources": [
],
"Items": [{
"Label": {
"Value": "Label text",
"Background": "primary1",
"Foreground": "accent1",
"TextStyle": "Display1"
}
}]
}
Pre-defined platform values¶
Pre-defined values for element colors as well as
typography inside elements are located in
bootstrap-framework/less/pl-variables.less
(inside of InfinniUI framework). Overlapping is the best to be
implemented in the file <yourProject>/styles/platform-variables.less
(if you are proceeding with
example
template project).
Bootstrap variable settings level¶
Bootstrap framework settings (basic sizes, tabs, rounds etc) are in
bootstrap-framework/less/variables.less
file (inside InfinniUI framework).
Overlapping is best to be done in
<yourProject>/styles/bootstrap-variables.less
file (if you are proceeding with
example
template project).
If you require to overlap bootstrap styles, it can be done
in <yourProject>/styles/bootstrap-theme.less
file.
Manual styling of css for certain app elements¶
Css-styles can be applied for a certain element (change margin for a button). One can set to a certain element metadata Style. This value will appear as element’s additional class which can be assigned a required css-style (or more).
To define custom styles refer to <yourProject>/styles/extensions.less
.
See also¶
ColorStyle¶
Стиль цвета.
Description¶
Описываемые здесь способы задания цвета могут применяться для установки цвета элементов и цвета текста в InfinniUI. Цвета могут быть заданы одним из предопределенных значений цвета.
Цветовые стили включают в себя прозрачность (transparent
), три
основных цвета (primary1
, primary2
, primary3
), три акцентных
цвета (accent1
, accent2
, accent3
), белый (white
) и
черный (black
). Так же, есть 3 цвета фона (background1
,
background2
, background3
).
Syntax¶
ColorStyle = {
transparent: 'Transparent', // Прозрачный
primary1: 'Primary1', // Основной цвет 1
primary2: 'Primary2', // Основной цвет 2
primary3: 'Primary3', // Основной цвет 3
accent1: 'Accent1', // Акцентный цвет 1
accent2: 'Accent2', // Акцентный цвет 2
accent3: 'Accent3', // Акцентный цвет 3
background1: 'Background1', // Цвет фона 1
background2: 'Background2', // Цвет фона 2
background3: 'Background3', // Цвет фона 3
background4: "Background4", // Цвет фона 4
white: 'White', // Белый цвет
black: 'Black' // Черный цвет
}
Examples¶

TextStyle¶
Стиль текста.
Description¶
Стиль текста определяет шрифт (Font Family), размер (Font Size) и насыщенность (Font Weight) выводимого на экран текста. InfinniUI предоставляет набор предопределенных текстовых стилей. Каждый из отдельных элементов этого набора можно настроить на свое усмотрение, а в конечном проекте настраивать стиль текста, применяя тот или иной элемент из набора.
Syntax¶
TextStyle = {
display4: 'Display4',
display3: 'Display3',
display2: 'Display2',
display1: 'Display1',
headline: 'Headline',
title: 'Title',
subhead: 'Subhead',
body2: 'Body2',
body1: 'Body1',
caption: 'Caption',
menu: 'Menu',
button: 'Button'
}
Examples¶

See Also¶
ViewMode¶
View mode
Elements¶
Button¶
Кнопка.
Syntax¶
new Button(parent, viewMode)
Parameters¶
Name | Type | Default | Description |
---|---|---|---|
parent | Element | Родительский элемент | |
viewMode | viewMode | common |
Режим отображения |
Returns¶
Элемент Button.
Methods¶
Name | Description |
---|---|
getContentTemplate | Возвращает функцию шаблонизации содержимого кнопки |
setContentTemplate | Устанавливает функцию шаблонизации содержимого кнопки |
getContent | Возвращает содержимое кнопки |
setContent | Устанавливает содержимое кнопки |
getAction | Возвращает основное действие кнопки |
setAction | Устанавливает основное действие кнопки |
click | Осуществляет программный клик по кнопке |
Events¶
Нет
Button.metadata¶
Метаданные типа Button.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Action | ActionMetadata | – | Основное действие кнопки |
Content | String |
– | Содержимое кнопки |
ContentTemplate | ElementMetadata | – | Шаблон содержимого кнопки |
ViewMode | viewMode | common |
Может принимать значения: ‘link’ или ‘common’. Если указать значение ‘link’, то кнопка примет вид ссылки |
Examples¶
{
"ContentTemplate": {
"Icon": {
"Value": "pencil"
}
},
"Action": {
"EditAction": {
...
}
}
}
Button.getAction¶
Возвращает действие при нажатии на кнопку.
var action = button.getAction();
Button.getContent¶
Возвращает содержимое кнопки, установленное методом setContent.
var content = button.getContent();
Button.getContentTemplate¶
Возвращает функцию шаблонизации содержимого кнопки.
var contentTemplate = button.getContentTemplate();
Button.metadata¶
Метаданные типа Button.
Name | Type | Default | Description |
---|---|---|---|
Action | ActionMetadata | – | Основное действие кнопки |
Content | String |
– | Содержимое кнопки |
ContentTemplate | ElementMetadata | – | Шаблон содержимого кнопки |
ViewMode | viewMode | common |
Может принимать значения: ‘link’ или ‘common’. Если указать значение ‘link’, то кнопка примет вид ссылки |
{
"ContentTemplate": {
"Icon": {
"Value": "pencil"
}
},
"Action": {
"EditAction": {
...
}
}
}
Button.setAction¶
Устанавливает действие при нажатии на кнопку.
var action = new ServerAction(/** Params for ServerAction **/);
var content = button.getContent(action);
Button.setContent¶
Устанавливает содержимое кнопки.
button.setContent(value)
Name | Type | Description |
---|---|---|
value | String |
Содержимое кнопки |
Метод ничего не возвращает.
//js-demo
var button = new InfinniUI.Button();
button.setContent('Click<br/>me');
$elementForExample.append(button.render());
Button.setContentTemplate¶
Устанавливает функцию шаблонизации содержимого кнопки.
//js-demo
var button = new InfinniUI.Button();
var contentTemplate = function (context, args) {
var label = new InfinniUI.Label();
label.setValue('Button 1');
return label;
}
button.setContentTemplate(contentTemplate);
$elementForExample.append(button.render());
ButtonEdit¶
Текстовое поле с кнопкой.
Methods¶
Name | Description |
---|---|
getIcon | Возвращает название иконки, отображаемой на кнопке |
setIcon | Устанавливает название иконки, отображаемой на кнопке |
getReadOnly | Возвращает значение, определяющее, возможно ли редактирование текстового поля |
setReadOnly | Устанавливает значение, определяющее, возможно ли редактирование текстового поля |
getShowClear | Возвращает значение, определяющее наличие кнопки, очищающей указанное значение |
setShowClear | Устанавливает значение, определяющее наличие наличие кнопки, очищающей указанное значение |
Events¶
Name | Description |
---|---|
onButtonClick | Устанавливает обработчик события нажатия на кнопку |
ButtonEdit.metadata¶
Метаданные типа ButtonEdit.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Icon | String 1 |
– | Иконка, отображаемая на кнопке |
ReadOnly | Boolean |
true | Значение, определяющее, возможно ли редактирование текстового поля |
ShowClear | Boolean |
true | Значение, определяющее наличие кнопки, очищающей указанное значение |
OnButtonClick | Script | – | Обработчик события нажатия на кнопку |
Action | ActionMetadata | – | Основное действие кнопки |
OnButtonClick сработает раньше, чем Action.
1 Полный список доступных названий и соответсвующих отображений: Icons.
Examples¶
ButtonEdit удобно использовать для редактирования полей-объектов (вроде адреса).
{
"ButtonEdit": {
"ShowClear": false,
"Icon": "pencil",
"Value": {
"Source": "MainDataSource",
"Property": "$.Address"
},
"DisplayFormat": "${City}, ${Street} st., ${House}",
"Action": {
"EditAction": {
...
}
}
}
}
ButtonEdit.getIcon¶
Возвращает название иконки, отображаемой на кнопке.
var icon = buttonEdit.getIcon();
ButtonEdit.getReadOnly¶
Возвращает значение, определяющее, возможно ли редактирование текстового поля. По умолчанию редактирование запрещено. Чтобы разрешить редактирование, воспользуйтесь методом setReadOnly().
buttonEdit.getReadOnly()
Нет
Логическое значение, определяющее, возможно ли редактирование текстового поля.
var readOnly = buttonEdit.getReadOnly();
ButtonEdit.getShowClear¶
- Возвращает значение, которое определяет наличие кнопки, очищающей
- указанное значение.
- По умолчанию кнопка отображается. Чтобы убрать её, воспользуйтесь
- методом setShowClear().
buttonEdit.getShowClear()
Нет
Логическое значение, определяющее, нужна ли кнопка, очищающая указанное значение.
var showClearButton = buttonEdit.getShowClear();
ButtonEdit.metadata¶
Метаданные типа ButtonEdit.
Name | Type | Default | Description |
---|---|---|---|
Icon | String 1 |
– | Иконка, отображаемая на кнопке |
ReadOnly | Boolean |
true | Значение, определяющее, возможно ли редактирование текстового поля |
ShowClear | Boolean |
true | Значение, определяющее наличие кнопки, очищающей указанное значение |
OnButtonClick | Script | – | Обработчик события нажатия на кнопку |
Action | ActionMetadata | – | Основное действие кнопки |
OnButtonClick сработает раньше, чем Action.
1 Полный список доступных названий и соответсвующих отображений: Icons.
ButtonEdit удобно использовать для редактирования полей-объектов (вроде адреса).
{
"ButtonEdit": {
"ShowClear": false,
"Icon": "pencil",
"Value": {
"Source": "MainDataSource",
"Property": "$.Address"
},
"DisplayFormat": "${City}, ${Street} st., ${House}",
"Action": {
"EditAction": {
...
}
}
}
}
ButtonEdit.onButtonClick¶
Устанавливает обработчик события нажатия на кнопку.
buttonEdit.onButtonClick(callback)
buttonEdit.onButtonClick(
function(context, args) { alert('onButtonClick'); }
);
ButtonEdit.setIcon¶
Устанавливает название иконки, отображаемой на кнопке.
buttonEdit.setIcon(value)
Name | Type | Description |
---|---|---|
value |
String 1 |
Название иконки |
1 Полный список доступных названий и соответсвующих отображений: Icons.
Метод ничего не возвращает
buttonEdit.setIcon('pencil');
ButtonEdit.setReadOnly¶
Устанавливает значение, определяющее, возможно ли редактирование текстового поля.
buttonEdit.setReadOnly(value)
Name | Type | Description |
---|---|---|
value |
Boolean |
Значение, определяющее, возможно ли редактирование текстового поля |
Метод ничего не возвращает
buttonEdit.setReadOnly(false);
ButtonEdit.setShowClear¶
Устанавливает значение, которое определяет наличие кнопки, очищающей указанное значение.
buttonEdit.setShowClear(value)
Name | Type | Description |
---|---|---|
value |
Boolean |
Значение, определяющее, нужна ли кнопка, очищающая указанное значение |
Метод ничего не возвращает
buttonEdit.setShowClear(false);
CheckBox¶
Переключатель в виде флажка.
Description¶
Для отображения переключателя в виде флажка можно использовать
CheckBox и IndeterminateCheckBox.
Отличие в том, что
IndeterminateCheckBox поддерживает ещё
и неопределенное состояние.
CheckBox может принимать значение false
/true
,
IndeterminateCheckBox -
"unchecked"
/"checked"
/"indeterminate"
.
Extends¶
Syntax¶
new CheckBox([parent])
CheckBox.metadata¶
Метаданные типа CheckBox.
Examples¶
{
"Text": "Subscribe",
"Value": {
"Source": "dataSource1",
"Property": "$.IsSubscribe"
}
}
ComboBox¶
Выпадающий список.
Extends¶
Methods¶
Name | Description |
---|---|
getLabelText | Возвращает текст метки |
setLabelText | Устанавливает текст метки |
getLabelFloating | Возвращает значение, определяющее, является ли метка плавающей |
setLabelFloating | Устанавливает значение, определяющее, является ли метка плавающей |
getAutocomplete | Возвращает значение, определяющее, разрешено ли автозавершение ввода |
setAutocomplete | Устанавливает значение, определяющее, разрешено ли автозавершение ввода |
getValueTemplate | Возвращает функцию шаблонизации выбранного значения |
setValueTemplate | Устанавливает функцию шаблонизации выбранного значения |
getShowClear | Возвращает значение, которое определяет наличие кнопки, очищающей выбранное значение |
setShowClear | Устанавливает значение, которое определяет наличие кнопки, очищающей выбранное значение |
getAutocompleteValue | Возвращает значение, для поиска в выпадающем списке значений |
setAutocompleteValue | Устанавливает значение, для поиска в выпадающем списке значений |
setNoItemsMessage | Устанавивает значение, которое будет использоваться для отображения, когда не найден не один элемент. |
getExpandOnEnter | Возвращает значение, определяющее, будет ли открываться выпадающий список по клавише Enter. |
setExpandOnEnter | Устанавивает значение, определяющее, будет ли открываться выпадающий список по клавише Enter. |
Events¶
Нет
ComboBox.metadata¶
Метаданные типа ComboBox.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
LabelText | String |
– | Текст метки |
NoItemsMessage | String |
‘"<span class="search-message"></span>” not found’ | Текст сообщения, которое будет отображаться, когда не найдено ни одного элемента |
LabelFloating | Boolean |
false | Значение, определяющее, является ли метка плавающей |
Autocomplete | Boolean |
false | Значение, определяющее, разрешено ли автозавершение ввода |
ExpandOnEnter | Boolean |
true | Значение, определяющее, раскрывать ли выпадающий список по нажатию на клавишу Enter |
AutocompleteProperty | String |
– | Свойство, по которому будет выполняться автозавершение ввода. Если не указывать AutocompleteProperty, то автозавершение будет выполняться на основе полнотекстового поиска |
ValueTemplate | Element | – | Функция шаблонизации выбранного элемента |
ValueFormat | DisplayFormat | – | Формат отображения выбранного элемента |
ShowClear | Boolean |
true | Значение, которое определяет наличие кнопки, очищающей выбранное значение |
Examples¶
{
"ComboBox": {
"LabelText": "Type",
"LabelFloating": true,
"Autocomplete": true,
"AutocompleteProperty": "Description",
"ItemFormat": "${Description}",
"ValueFormat": "${Description}",
"ShowClear": false,
"Value": {
"Source": "MainDataSource",
"Property": "$.my_type"
},
"Items": {
"Source": "Types",
"Property": ""
}
}
}
ComboBox.getAutocomplete¶
Возвращает значение, определяющее, разрешено ли автозавершение ввода.
Если для ComboBox будет установлено автозавершение ввода, то при наборе первых нескольких букв значения ComboBox сможет завершить набор за вас.
comboBox.getAutocomplete()
Нет
Логическое значение, определяющее, разрешено ли автозавершение ввода.
Значение true
означает, что автозавершение ввода разрешено,
значение false
- запрещено.
var isAutocomplete = comboBox.getAutocomplete();
ComboBox.getAutocompleteValue¶
Возвращает значение, для поиска в выпадающем списке значений.
Возвращает текст, который введен пользователем в строке быстрого поиска значений в выпадающем списке. Для отображения подходящих значений, необходимо привязать значение ComboBox.autocompleteValue к фильтру источника данных выпадающего списка.
comboBox.getAutocompleteValue()
Нет
Возвращает текст, который введен пользователем в строке быстрого поиска значений в выпадающем списке.
text = comboBox.getAutocompleteValue();
Item’s DataSource metadata:
{
"DataSource": {
"DocumentDataSource": {
"Filter": "text(Title, <%lookup%>)",
"FilterParams": {
"lookup": {
"Source": "MyComboBox1",
"Property": "autocompeleteValue"
}
}
}
}
}
ComboBox Metadata:
{
"ComboBox": {
"Name": "MyComboBox1",
"Autocomplete": true,
"Items": {
"Source": "ds1",
"Property": ""
},
"ItemProperty": "Title"
}
}
ComboBox.getLabelFloating¶
Устанавливает значение, определяющее, является ли метка плавающей.
В большинстве случаев вместе с редактором размещается текстовая метка, благодаря чему пользователь понимает какое значение он редактирует. Иногда подобные метки размещаются рядом с редактором, например, слева или сверху от редактора, иногда - внутри редактора в виде заполнителя (placeholder). Если метка размещается внутри редактора и остается видимой даже тогда, когда редактор получает фокус ввода и пользователь начинает вводить значение, она называется “плавающей”. Такое название связано с тем, что при получении фокуса ввода метка обычно перемещается в другую область рядом с редактором, чтобы оставаться видимой пользователю в момент ввода данных.
Текст метки можно установить с помощью метода setLabelText(), а способ отображения - с помощью метода setLabelFloating().
comboBox.getLabelFloating()
Нет
Логическое значение, определяющее, является ли метка плавающей. Значение
true
означает, что метка является плавающей, значение false
означает, что метка является фиксированной.
var isFloating = comboBox.getLabelFloating();
ComboBox.getLabelText¶
Возвращает текст метки.
В большинстве случаев вместе с редактором размещается текстовая метка, благодаря чему пользователь понимает какое значение он редактирует. Иногда подобные метки размещаются рядом с редактором, например, слева или сверху от редактора, иногда - внутри редактора в виде заполнителя (placeholder). Если метка размещается внутри редактора и остается видимой даже тогда, когда редактор получает фокус ввода и пользователь начинает вводить значение, она называется “плавающей”. Такое название связано с тем, что при получении фокуса ввода метка обычно перемещается в другую область рядом с редактором, чтобы оставаться видимой пользователю в момент ввода данных.
Текст метки можно установить с помощью метода setLabelText(), а способ отображения - с помощью метода setLabelFloating().
var labelText = comboBox.getLabelText();
ComboBox.getShowClear¶
Возвращает значение, которое определяет наличие кнопки, очищающей выбранное значение. По умолчанию кнопка отображается. Чтобы убрать её, воспользуйтесь методом setShowClear().
comboBox.getShowClear()
Нет
Логическое значение, определяющее, нужна ли кнопка, очищающая выбранное значение.
var showClearButton = comboBox.getShowClear();
ComboBox.getValueTemplate¶
Возвращает функцию шаблонизации выбранного значения.
Зачастую значения перед отображением необходимо преобразовывать. Чтобы изменить формат отображения значений ComboBox воспользуйтесь методом setItemTemplate. Для изменения формата отображения выбранного значения используйте метод setValueTemplate.
var valueTemplate = comboBox.getValueTemplate();
ComboBox.metadata¶
Метаданные типа ComboBox.
Name | Type | Default | Description |
---|---|---|---|
LabelText | String |
– | Текст метки |
NoItemsMessage | String |
‘"<span class="search-message"></span>” not found’ | Текст сообщения, которое будет отображаться, когда не найдено ни одного элемента |
LabelFloating | Boolean |
false | Значение, определяющее, является ли метка плавающей |
Autocomplete | Boolean |
false | Значение, определяющее, разрешено ли автозавершение ввода |
ExpandOnEnter | Boolean |
true | Значение, определяющее, раскрывать ли выпадающий список по нажатию на клавишу Enter |
AutocompleteProperty | String |
– | Свойство, по которому будет выполняться автозавершение ввода. Если не указывать AutocompleteProperty, то автозавершение будет выполняться на основе полнотекстового поиска |
ValueTemplate | Element | – | Функция шаблонизации выбранного элемента |
ValueFormat | DisplayFormat | – | Формат отображения выбранного элемента |
ShowClear | Boolean |
true | Значение, которое определяет наличие кнопки, очищающей выбранное значение |
{
"ComboBox": {
"LabelText": "Type",
"LabelFloating": true,
"Autocomplete": true,
"AutocompleteProperty": "Description",
"ItemFormat": "${Description}",
"ValueFormat": "${Description}",
"ShowClear": false,
"Value": {
"Source": "MainDataSource",
"Property": "$.my_type"
},
"Items": {
"Source": "Types",
"Property": ""
}
}
}
ComboBox.setAutocomplete¶
Устанавливает значение, определяющее, разрешено ли автозавершение ввода.
Если для ComboBox будет установлено автозавершение ввода, то при наборе первых нескольких букв значения ComboBox сможет завершить набор за вас.
comboBox.setAutocomplete(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Флаг, определяющий, разрешено ли автозавершение ввода. Значение true означает, что автозавершение ввода разрешено, значение false - запрещено |
Метод ничего не возвращает.
comboBox.setAutocomplete(true);
ComboBox.setAutocompleteValue¶
Устанавливает значение, для поиска в выпадающем списке значений
Устанавивает значение, которое будет использоваться для отображения подходящих значений.
comboBox.setAutocompleteValue(value)
Name | Description |
---|---|
value | Значение, для поиска в выпадающем списке значений |
Нет.
text = comboBox.setAutocompleteValue("255");
ComboBox.setLabelFloating¶
Устанавливает значение, определяющее, является ли метка плавающей.
В большинстве случаев вместе с редактором размещается текстовая метка, благодаря чему пользователь понимает какое значение он редактирует. Иногда подобные метки размещаются рядом с редактором, например, слева или сверху от редактора, иногда - внутри редактора в виде заполнителя (placeholder). Если метка размещается внутри редактора и остается видимой даже тогда, когда редактор получает фокус ввода и пользователь начинает вводить значение, она называется “плавающей”. Такое название связано с тем, что при получении фокуса ввода метка обычно перемещается в другую область рядом с редактором, чтобы оставаться видимой пользователю в момент ввода данных.
Текст метки можно установить с помощью метода setLabelText(), а способ отображения - с помощью метода setLabelFloating().
comboBox.setLabelFloating(value)
Name | Type | Description |
---|---|---|
value |
Boolean |
Значение, определяющее, является ли метка плавающей. Значение true означает, что метка является плавающей, значение false означает, что метка является фиксированной |
Метод ничего не возвращает
comboBox.setLabelFloating(true);
ComboBox.setLabelText¶
Устанавливает текст метки.
В большинстве случаев вместе с редактором размещается текстовая метка, благодаря чему пользователь понимает какое значение он редактирует. Иногда подобные метки размещаются рядом с редактором, например, слева или сверху от редактора, иногда - внутри редактора в виде заполнителя (placeholder). Если метка размещается внутри редактора и остается видимой даже тогда, когда редактор получает фокус ввода и пользователь начинает вводить значение, она называется “плавающей”. Такое название связано с тем, что при получении фокуса ввода метка обычно перемещается в другую область рядом с редактором, чтобы оставаться видимой пользователю в момент ввода данных.
Текст метки можно установить с помощью метода setLabelText(), а способ отображения - с помощью метода setLabelFloating().
comboBox.setLabelText(value)
Name | Type | Description |
---|---|---|
value |
String |
Текст метки |
Метод ничего не возвращает
comboBox.setLabelText('Label text');
ComboBox.setNoItemsMessage¶
Устанавивает значение, которое будет использоваться для отображения, когда не найден не один элемент.
Устанавивает значение, которое будет использоваться для отображения когда не найден не один элемент. Если в строку добавить элемент span
с классом “search-message”, как показано в примере, то в этот элемент будет вставляться запрос, который вводит пользователь.
comboBox.setNoItemsMessage( message )
Name | Description |
---|---|
message | Сообщение, которое отображается, когда не найдено ни одного элемента |
Нет.
text = comboBox.setNoItemsMessage( 'Вы ничего не нашли по запросу \"<span class=\"search-message\""></span>\"' );
ComboBox.setShowClear¶
Устанавливает значение, которое определяет наличие кнопки, очищающей выбранное значение.
comboBox.setShowClear(value)
Name | Type | Description |
---|---|---|
value |
Boolean |
Значение, определяющее, нужна ли кнопка, очищающая выбранное значение |
Метод ничего не возвращает
comboBox.setShowClear(false);
ComboBox.setValueTemplate¶
Устанавливает функцию шаблонизации выбранного значения.
Зачастую значения перед отображением необходимо преобразовывать.
Чтобы изменить формат отображения значений ComboBox воспользуйтесь
методом setItemTemplate.
Для изменения формата отображения выбранного значения используйте метод setValueTemplate
.
//js-demo
var comboBox = new InfinniUI.ComboBox();
comboBox.getItems().reset([
'1',
'2',
'3'
]);
var itemTemplate = function (context, args) {
var label = new InfinniUI.Label();
label.setValue('№' + args.value);
return label;
}
comboBox.setItemTemplate(itemTemplate);
var valueTemplate = function (context, args) {
var label = new InfinniUI.Label();
var value = args.value ? 'Выбран №' + args.value : '';
label.setValue(value);
return label;
}
comboBox.setValueTemplate(valueTemplate);
$elementForExample.append(comboBox.render());
DataGrid¶
Таблица.
Extends¶
Syntax¶
new DataGrid([parent])
Methods¶
Name | Description |
---|---|
getColumns | Возвращает коллекцию колонок таблицы. |
getShowSelectors | Возвращает значение, определяющее показывать ли колонку с CheckBox/Radio для выбора элементов. |
setShowSelectors | Устанавливает значение, определяющее показывать ли колонку с CheckBox/Radio для выбора элементов. |
getCheckAllVisible | Возвращает значение, определяющее виден ли элемент “Выбрать все” в шапке таблицы. |
setCheckAllVisible | Устанавливает значение, определяющее виден ли элемент “Выбрать все” в шапке таблицы. |
getCheckAll | Возвращает состояние элемента “Выбрать все” из шапки таблицы. |
getVerticalAlignment | Возвращает вертикальное выравнивание элемент. |
setVerticalAlignment | Устанавливает вертикальное выравнивание элемента. |
Events¶
Name | Description |
---|---|
onCheckAllChanged | Устанавливает обработчик события о том, что состоняие элемента “Выбрать все” в шапке таблицы изменилось. |
onRowClick | Устанавливает обработчик события на клик по элементам DataGrid. |
onRowDoubleClick | Устанавливает обработчик события на двойной клик по элементам DataGrid. |
DataGrid.metadata¶
Метаданные типа DataGrid.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Columns | Array.<DataGridColumn> | – | Список колонок таблицы. |
ShowSelectors | Boolean | true |
Определяет показывать ли колонку с CheckBox/Radio для выбора элементов. |
Scroll | Boolean | true |
Расстягивает DataGrid на все свободное пространство по вертикали. |
CheckAllVisible | Boolean | false |
Определяет виден ли элемент “Выбрать все” в шапке таблицы. |
OnCheckAllChanged | Script | – | Устанавливает обработчик изменения состоняие элемента “Выбрать все” в шапке таблицы. |
VerticalAlignment | String (⇔) |
– | Вертикальное выравнивание таблицы. Возможны значения: Top, Center, Bottom, Stretch. |
RowBackground | Color (⇔) | – | Цвет фона строки |
RowForeground | Color (⇔) | – | Цвет текста строки |
RowTextStyle | TextStyle (⇔) | – | Стиль текста строки |
RowStyle | String (⇔) |
– | Имя кастомного стиля, применяемого к строке |
onRowClick | Script | – | Устанавливает обработчик события на клик по элементам DataGrid. |
onRowDoubleClick | Script | – | Устанавливает обработчик события на двойной клик по элементам DataGrid. |
(⇔) Свойство может быть задано, как DataBinding.
Examples¶
{
"DataGrid": {
"Columns": [
{
"Header": "Name",
"CellProperty": "Name",
"Sortable": true,
"SortedDefault": "asc",
"SortFunction": "{ console.log(args.sortDirection) }"
},
{
"Header": "Family",
"CellProperty": "Family"
},
{
"Header": "Kingdom",
"CellProperty": "Kingdom"
}
],
"VerticalAlignment": "Stretch",
"Items": {
"Source": "peopleDataSource"
},
"OnRowClick": "{ console.log(args.source) }",
"OnRowDoubleClick": "{ console.log(args.source) }",
"RowBackground": {
"Source": "RowStyleDataSource",
"Property": "#",
"Mode": "ToElement",
"Converter": {
"ToElement": "{ return args.value.Age > 100 ? 'Accent1' : 'Accent2'; }"
}
}
}
}
DataGrid.getCheckAll¶
Возвращает состояние элемента “Выбрать все” из шапки таблицы.
DataGrid.getCheckAll()
Нет
Значение, определяющее состояние элемента “Выбрать все” из шапки таблицы
(true
- установлен, false
- сброшен).
var isCheckAll = dataGrid.getCheckAll();
DataGrid.getCheckAllVisible¶
Возвращает значение, определяющее виден ли элемент “Выбрать все” в шапке таблицы.
DataGrid.getCheckAllVisible()
Нет
Значение, определяющее виден ли элемент “Выбрать все” в шапке таблицы.
var isVisible = dataGrid.getCheckAllVisible();
DataGrid.getColumns¶
Возвращает коллекцию колонок таблицы.
var columns = DataGrid.getColumns();
DataGrid.getShowSelectors¶
Возвращает значение, определяющее показывать ли колонку с CheckBox/Radio для выбора элементов.
DataGrid.getShowSelectors()
Нет
Значение, определяющее показывать ли колонку с CheckBox/Radio для выбора элементов.
var showSelectors = dataGrid.getShowSelectors();
DataGrid.getVerticalAlignment¶
Возвращает вертикальное выравнивание элемент.
var verticalAlignment = dataGrid.getVerticalAlignment();
DataGrid.metadata¶
Метаданные типа DataGrid.
Name | Type | Default | Description |
---|---|---|---|
Columns | Array.<DataGridColumn> | – | Список колонок таблицы. |
ShowSelectors | Boolean | true |
Определяет показывать ли колонку с CheckBox/Radio для выбора элементов. |
Scroll | Boolean | true |
Расстягивает DataGrid на все свободное пространство по вертикали. |
CheckAllVisible | Boolean | false |
Определяет виден ли элемент “Выбрать все” в шапке таблицы. |
OnCheckAllChanged | Script | – | Устанавливает обработчик изменения состоняие элемента “Выбрать все” в шапке таблицы. |
VerticalAlignment | String (⇔) |
– | Вертикальное выравнивание таблицы. Возможны значения: Top, Center, Bottom, Stretch. |
RowBackground | Color (⇔) | – | Цвет фона строки |
RowForeground | Color (⇔) | – | Цвет текста строки |
RowTextStyle | TextStyle (⇔) | – | Стиль текста строки |
RowStyle | String (⇔) |
– | Имя кастомного стиля, применяемого к строке |
onRowClick | Script | – | Устанавливает обработчик события на клик по элементам DataGrid. |
onRowDoubleClick | Script | – | Устанавливает обработчик события на двойной клик по элементам DataGrid. |
(⇔) Свойство может быть задано, как DataBinding.
{
"DataGrid": {
"Columns": [
{
"Header": "Name",
"CellProperty": "Name",
"Sortable": true,
"SortedDefault": "asc",
"SortFunction": "{ console.log(args.sortDirection) }"
},
{
"Header": "Family",
"CellProperty": "Family"
},
{
"Header": "Kingdom",
"CellProperty": "Kingdom"
}
],
"VerticalAlignment": "Stretch",
"Items": {
"Source": "peopleDataSource"
},
"OnRowClick": "{ console.log(args.source) }",
"OnRowDoubleClick": "{ console.log(args.source) }",
"RowBackground": {
"Source": "RowStyleDataSource",
"Property": "#",
"Mode": "ToElement",
"Converter": {
"ToElement": "{ return args.value.Age > 100 ? 'Accent1' : 'Accent2'; }"
}
}
}
}
DataGrid.onCheckAllChanged¶
Устанавливает обработчик события о том, что состояние элемента “Выбрать все” в шапке таблицы изменилось.
Новое значение переключателя передаётся в параметре args.value
.
DataGrid.onCheckAllChanged(callback)
DataGrid.onRowClick¶
Устанавливает обработчик события на клик по элементам DataGrid.
DataGrid.onRowClick(callback)
Name | Type | Description |
---|---|---|
callback | Обработчик события | Обработчик события о том, что одно из свойств элемента изменилось. В параметре args передается информация о произошедшем событии. |
DataGrid.onRowDoubleClick¶
Устанавливает обработчик события на двойной клик по элементам DataGrid.
DataGrid.onRowDoubleClick(callback)
Name | Type | Description |
---|---|---|
callback | Обработчик события | Обработчик события о том, что одно из свойств элемента изменилось. В параметре args передается информация о произошедшем событии. |
DataGrid.setCheckAllVisible¶
Устанавливает значение, определяющее виден ли элемент “Выбрать все” в шапке таблицы.
DataGrid.setCheckAllVisible(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Значение, определяющее виден ли элемент “Выбрать все” в шапке таблицы. |
нет.
dataGrid.setCheckAllVisible(true);
DataGrid.setShowSelectors¶
Устанавливает значение, определяющее показывать ли колонку с CheckBox/Radio для выбора элементов.
DataGrid.setShowSelectors(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Значение, определяющее показывать ли колонку с CheckBox/Radio для выбора элементов. |
нет.
dataGrid.setShowSelectors(true);
DataGrid.setVerticalAlignment¶
Устанавливает вертикальное выравнивание элемента.
DataGrid.setVerticalAlignment(value)
Name | Type | Description |
---|---|---|
value | String |
Вертикальное выравнивание элемента. Возможные варианты: Stretch, Top, Middle, Bottom. |
нет.
dataGrid.setVerticalAlignment('Top');
DataGridColumn¶
Колонка таблицы.
Name | Description |
---|---|
getWidth | Возвращает ширину колонки. |
setWidth | Устанавливает ширину колонки. |
getHeader | Возвращает заголовок колонки. |
setHeader | Устанавливает заголовок колонки. |
getSortable | Возвращает boolean-значение, которое показывает можно ли сортировать колонку. |
setSortable | Устанавливает значение, можно ли сортировать колонку. |
getSortDirection | Возвращает направление сортировки у колонки. |
setSortDirection | Устанавливает направление сортировки у колонки. |
isSortable | Проверяет, можно ли сортировать колонку. |
Name | Description |
---|---|
onSort | Устанавливает обработчик события сортировки колонки. |
Метаданные типа DataGridColumn.
Name | Type | Description |
---|---|---|
HeaderTemplate | Element | Шаблон отображения заголовка колонки. |
Header | String |
Заголовок колонки. |
CellSelector | Script | Функция выборки из элемента коллеции значения для ячейки. |
CellProperty | String |
Свойство элемента коллекции со значением для ячейки. |
CellFormat | String | Format |
Правила форматирования элемента коллекции для ячейки. |
CellTemplate | Element | Шаблон отображения элемента коллекции для ячейки. |
Width | String |
Ширина колонки (напр. “100px”, “25%”). |
Sortable | Boolean |
Возможность сортировки колонки. |
SortedDefault | String |
Направление сортировки колонки по умолчанию (напр. “asc” или “desc”). |
SortFunction | Script |
Функция сортировки колонки. |
{
"Header": "Kingdom",
"CellProperty": "Kingdom",
"Sortable": true,
"SortedDefault": "asc",
"SortFunction": "{ console.log( args.sortDirection ) }"
}
Возвращает значение селектора ячейки.
var cellSelector = DataGridColumn.getCellSelector();
Возвращает функцию шаблонизации дочернего элемента DataGrid.
DataGridColumn.getCellTemplate();
Нет
Функция шаблонизации ячейки дочернего
элемента DataGrid. В параметре args
передается информация,
необходимая для формирования визуального
элемента, который будет
отображен в качестве элемента DataGrid. Результатом работы функции
должен быть визуальный элемент.
var cellTemplate = DataGridColumn.getCellTemplate();
Возвращает заголовок колонки.
var header = DataGridColumn.getHeader();
Возвращает функцию шаблонизации ячейки заголовка DataGrid.
DataGridColumn.getHeaderTemplate();
Нет
Функция шаблонизации ячейки заголовка DataGrid. Результатом работы функции должен быть визуальный элемент.
var headerTemplate = DataGridColumn.getHeaderTemplate();
Возвращает boolean-значение о том, есть ли шаблон ячейки заголовка.
var headerTemplate = DataGridColumn.getIsHeaderTemplateEmpty();
Возвращает направление сортировки.
column.getSortDirection();
Возвращает boolean-значение, которое показывает можно ли применять сортировку к данной колонке.
column.getSortable();
Возвращает ширину колонки таблицы.
var width = DataGridColumn.getWidth();
Возвращает true если колонку можно сортировать.
column.isSortable();
Метаданные типа DataGridColumn.
Name | Type | Description |
---|---|---|
HeaderTemplate | Element | Шаблон отображения заголовка колонки. |
Header | String |
Заголовок колонки. |
CellSelector | Script | Функция выборки из элемента коллеции значения для ячейки. |
CellProperty | String |
Свойство элемента коллекции со значением для ячейки. |
CellFormat | String | Format |
Правила форматирования элемента коллекции для ячейки. |
CellTemplate | Element | Шаблон отображения элемента коллекции для ячейки. |
Width | String |
Ширина колонки (напр. “100px”, “25%”). |
Sortable | Boolean |
Возможность сортировки колонки. |
SortedDefault | String |
Направление сортировки колонки по умолчанию (напр. “asc” или “desc”). |
SortFunction | Script |
Функция сортировки колонки. |
{
"Header": "Kingdom",
"CellProperty": "Kingdom",
"Sortable": true,
"SortedDefault": "asc",
"SortFunction": "{ console.log( args.sortDirection ) }"
}
Устанавливает обработчик события на событие ‘onSort’
Новое значение направления передаётся в параметре
args.sortDirection
.
DataGridColumn.onSort(callback);
Name | Type | Description |
---|---|---|
callback | Обработчик события | Обработчик события о том, что необходимо изменить сортировку элементов DataGrid. |
Нет.
column.onSort(callback);
Устанавливает функцию которая возвращает значение селектора ячейки.
DataGridColumn.setCellSelector(value);
Name | Type | Description |
---|---|---|
value | Script |
Функция возвращающая значение селектора ячейки. |
Нет.
DataGridColumn.setCellSelector(function (value) {
return value;
});
Устанавливает функцию шаблонизации ячейки дочернего элемента DataGrid.
DataGridColumn.setCellTemplate();
Name | Type | Description |
---|---|---|
value | Script | Функция шаблонизации ячейки дочернего элемента DataGrid. В параметре args передается информация, необходимая для формирования визуального элемента, который будет отображен в качестве элемента DataGrid. Результатом работы функции должен быть визуальный элемент |
Нет.
DataGridColumn.setCellTemplate(function(context, argument) {
var cell = new Label();
cell.setValue(argument.value);
return cell;
});
Устанавливает заголовок колонки таблицы.
DataGridColumn.setHeader(value);
Name | Type | Description |
---|---|---|
value | String |
Заголовок колонки таблицы. |
Нет
column.setHeader("Id");
Устанавливает функцию шаблонизации ячейки заголовка DataGrid.
DataGridColumn.setHeaderTemplate(value);
Name | Type | Description |
---|---|---|
value | Script | Функция шаблонизации ячейки заголовка DataGrid. Результатом работы функции должен быть визуальный элемент |
Нет.
DataGridColumn.setHeaderTemplate(function(context, argument) {
var header = new Label();
header.setValue(argument.value);
return header;
});
Устанавливает boolean-значение о том, что есть шаблон ячейки заголовка.
DataGridColumn.setIsHeaderTemplateEmpty(value);
Name | Type | Description |
---|---|---|
value | Boolean |
Устанавливает boolean-значение о том, что есть шаблон ячейки заголовка. |
Нет.
DataGridColumn.setIsHeaderTemplateEmpty(true);
Возвращает направление сортировки.
Возможны следующие направления сортировки:
- asc - сортировка по возрастанию,
- desc - сортировка по убыванию.
DataGridColumn.setSortDirection(value);
Name | Type | Description |
---|---|---|
value | String |
Направление сортировки. |
Нет.
column.setSortDirection('asc');
Устанавливает или убирает возможность сортировки данной колонки.
DataGridColumn.setSortable(value);
Name | Type | Description |
---|---|---|
value | Boolean |
Возможность сортировки колонки. |
Нет.
column.setSortable(true);
Устанавливает ширину колонки. Значение ширины может задаваться как в абсолютных величинах (напр. “150px”) так и в относительных (напр. “33%”).
DataGridColumn.setWidth(value)
Name | Type | Description |
---|---|---|
value | String |
Ширина колонки таблицы |
Нет
column.setWidth("50%");
DatePicker¶
Редактор даты. Значением данного элемента всегдя является UNIX time - количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года.
Extends¶
Syntax¶
new DatePicker(parent)
Parameters¶
Name | Type | Description |
---|---|---|
parent |
Element | Родительский элемент. |
//js-demo
// Format
var format = new InfinniUI.DateTimeFormat("d");
format.setOptions({TimeZone: 0});
var displayFormat = function (context, args) {
return format.formatValue(args.value);
}
// EditMask
var editMask = new InfinniUI.DateTimeEditMask();
editMask.mask = "d";
editMask.format = format;
// DateTimePicker
var datePicker = new InfinniUI.DatePicker();
datePicker.setDisplayFormat(displayFormat);
datePicker.setEditMask(editMask);
datePicker.setMinValue(new Date()); // Set minimum value
datePicker.onValueChanged(function (context, args) {
datePicker.setHintText("New Value: " + args.newValue);
datePicker.setErrorText("Min Value: " + datePicker.getMinValue());
datePicker.setWarningText("Max Value: " + datePicker.getMaxValue());
});
// Render
$elementForExample.append(datePicker.render());
See Also¶
DateTimePicker¶
Редактор даты и времени. Значением данного элемента всегда является текстовая строка, представляющая собой выбранное значение даты и времени в формате ISO 8601.
Extends¶
Syntax¶
new DateTimePicker(parent)
Methods¶
Name | Description |
---|---|
getMinValue | Возвращает минимальное значение для ввода. |
setMinValue | Устанавливает минимальное значение для ввода. |
getMaxValue | Возвращает максимальное значение для ввода. |
setMaxValue | Устанавливает максимальное значение для ввода. |
getMode | Возвращает режим работы элемента. |
setMode | Устанавливает режим работы элемента. |
setTimeZone | Устанавливает смещение часового пояса. |
getTimeZone | Возвращает смещение часового пояса. |
getExpandOnEnter | Возвращает значение, определяющее, будет ли открываться выпадающее меню по клавише Enter. |
setExpandOnEnter | Устанавивает значение, определяющее, будет ли открываться выпадающее меню по клавише Enter. |
DateTimePicker.metadata¶
Метаданные типа DateTimePicker.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
MinValue | String |
– | Минимальное значение в формате ISO8601 |
MaxValue | String |
– | Максимальное значение в формате ISO8601 |
ExpandOnEnter | Boolean |
true | Значение, определяющее, раскрывать ли выпадающее меню по нажатию на клавишу Enter |
Mode | String |
Date |
Режим работы элемента (Date , Time , DateTime ) |
TimeZone | Integer |
– | Смещение часового пояса, являющееся разностью в минутах между временем UTC и местным временем. Если смещение не задано, используется текущая локаль. |
Examples¶
{
"LabelText": "Birthday",
"LabelFloating": true,
"Value": {
"Source": "mainDataSource",
"Property": "$.Birthday"
}
}
DateTimePicker.getExpandOnEnter¶
Возвращает значение, определяющее, будет ли открываться выпадающее меню по клавише Enter.
var expandOnEnter = dateTimePicker.getExpandOnEnter();
DateTimePicker.getMaxValue¶
Возвращает максимальное значение для ввода.
var maxValue = dateTimePicker.getMaxValue();
DateTimePicker.getMinValue¶
Возвращает минимальное значение для ввода.
var minValue = dateTimePicker.getMinValue();
DateTimePicker.getMode¶
Возвращает режим работы элемента.
var mode = dateTimePicker.getMode();
DateTimePicker.setTimeZone¶
Возвращает смещение часового пояса. Смещением является разность в минутах между временем UTC и местным временем.
DateTimePicker.metadata¶
Метаданные типа DateTimePicker.
Name | Type | Default | Description |
---|---|---|---|
MinValue | String |
– | Минимальное значение в формате ISO8601 |
MaxValue | String |
– | Максимальное значение в формате ISO8601 |
ExpandOnEnter | Boolean |
true | Значение, определяющее, раскрывать ли выпадающее меню по нажатию на клавишу Enter |
Mode | String |
Date |
Режим работы элемента (Date , Time , DateTime ) |
TimeZone | Integer |
– | Смещение часового пояса, являющееся разностью в минутах между временем UTC и местным временем. Если смещение не задано, используется текущая локаль. |
{
"LabelText": "Birthday",
"LabelFloating": true,
"Value": {
"Source": "mainDataSource",
"Property": "$.Birthday"
}
}
DateTimePicker.setExpandOnEnter¶
Устанавивает значение, определяющее, будет ли открываться выпадающее меню по клавише Enter.
dateTimePicker.setExpandOnEnter( value )
Name | Type | Description |
---|---|---|
value |
Boolean |
Значение, определяющее, будет ли открываться выпадающее меню по клавише Enter. По умолчанию оно равно true. |
Нет.
dateTimePicker.setExpandOnEnter( false );
DateTimePicker.setMaxValue¶
Устанавливает максимальное значение для ввода.
DateTimePicker.setMaxValue(value)
Name | Type | Description |
---|---|---|
value |
Date |
Максимальное значение для ввода. |
//js-demo
// Format
var format = new InfinniUI.DateTimeFormat("G");
var displayFormat = function (context, args) {
return format.formatValue(args.value);
}
// EditMask
var editMask = new InfinniUI.DateTimeEditMask();
editMask.mask = "G";
editMask.format = format;
// DateTimePicker
var dtPicker = new InfinniUI.DateTimePicker();
dtPicker.setMode("DateTime");
dtPicker.setMaxValue(new Date()); // Set maximum value
dtPicker.setDisplayFormat(displayFormat);
dtPicker.setEditMask(editMask);
dtPicker.onValueChanged(function (context, args) {
dtPicker.setHintText("New Value: " + args.newValue);
});
// Render
$elementForExample.append(dtPicker.render());
DateTimePicker.setMinValue¶
Устанавливает минимальное значение для ввода.
DateTimePicker.setMinValue(value)
Name | Type | Description |
---|---|---|
value |
Date |
Минимальное значение для ввода. |
//js-demo
// Format
var format = new InfinniUI.DateTimeFormat("G");
format.setOptions({TimeZone: -180});
var displayFormat = function (context, args) {
return format.formatValue(args.value);
}
// EditMask
var editMask = new InfinniUI.DateTimeEditMask();
editMask.mask = "G";
editMask.format = format;
// DateTimePicker
var dtPicker = new InfinniUI.DateTimePicker();
dtPicker.setMode("DateTime");
dtPicker.setTimeZone(-180);
dtPicker.setMinValue(new Date()); // Set minimum value
dtPicker.setDisplayFormat(displayFormat);
dtPicker.setEditMask(editMask);
dtPicker.onValueChanged(function (context, args) {
dtPicker.setHintText("New Value: " + args.newValue);
});
// Render
$elementForExample.append(dtPicker.render());
DateTimePicker.setMode¶
Устанавливает режим работы элемента.
DateTimePicker.setMode(value)
Name | Type | Description |
---|---|---|
value |
String |
Режим работы элемента: Date , Time или DateTime . |
//js-demo
// Format
var format = new InfinniUI.DateTimeFormat("G");
var displayFormat = function (context, args) {
return format.formatValue(args.value);
}
// EditMask
var editMask = new InfinniUI.DateTimeEditMask();
editMask.mask = "G";
editMask.format = format;
// DateTimePicker
var dtPicker = new InfinniUI.DateTimePicker();
dtPicker.setMode("DateTime");
dtPicker.setValue("2016-07-04T17:00");
dtPicker.setDisplayFormat(displayFormat);
dtPicker.setEditMask(editMask);
dtPicker.onValueChanged(function (context, args) {
dtPicker.setHintText("New Value: " + args.newValue);
});
// Render
$elementForExample.append(dtPicker.render());
DateTimePicker.setTimeZone¶
Устанавливает смещение часового пояса. Смещение задается разностью в минутах между временем UTC и местным временем.
DateTimePicker.setTimeZone(value)
Name | Type | Description |
---|---|---|
value |
Integer |
Смещение часового пояса. |
//js-demo
// Format
var format = new InfinniUI.DateTimeFormat("G");
var timeZone = -180; // UTC+3
format.setOptions({TimeZone: timeZone});
var displayFormat = function (context, args) {
return format.formatValue(args.value);
}
// EditMask
var editMask = new InfinniUI.DateTimeEditMask();
editMask.mask = "G";
editMask.format = format;
// DateTimePicker
var dtPicker = new InfinniUI.DateTimePicker();
dtPicker.setMode("DateTime");
dtPicker.setTimeZone(timeZone);
dtPicker.setDisplayFormat(displayFormat);
dtPicker.setEditMask(editMask);
dtPicker.onValueChanged(function (context, args) {
dtPicker.setHintText("New Value: " + args.newValue);
dtPicker.setWarningText("TimeZone: " + dtPicker.getTimeZone());
});
// Render
$elementForExample.append(dtPicker.render());
Divider¶
Разделитель.
Methods¶
Нет
Events¶
Нет
EditorBase¶
Интерфейс редакторов значений.
Syntax¶
new EditorBase(parent)
Methods¶
Name | Description |
---|---|
getValue | Возвращает значение. |
setValue | Устанавливает значение. |
getHintText | Возвращает текст с подсказкой для ввода. |
setHintText | Устанавливает текст с подсказкой для ввода. |
getErrorText | Возвращает текст с информацией об ошибке. |
setErrorText | Устанавливает текст с информацией об ошибке. |
getWarningText | Возвращает текст с информацией о предупреждении. |
setWarningText | Устанавливает текст с информацией о предупреждении. |
Events¶
Name | Description |
---|---|
onValueChanging | Устанавливает обработчик события о том, что значение изменяется. |
onValueChanged | Устанавливает обработчик события о том, что значение было изменено. |
EditorBase.metadata¶
Метаданные типа EditorBase.
Properties¶
Name | Type | Description |
---|---|---|
Value | BindingMetadata | Значение |
HintText | String (ƒ) |
Текст с подсказкой для ввода |
ErrorText | String (ƒ) |
Текст с информацией об ошибке |
WarningText | String (ƒ) |
Текст с информацией о предупреждении |
OnValueChanging | Script | Обработчик события о том, что значение изменяется |
OnValueChanged | Script | Обработчик события о том, что значение было изменено |
(ƒ) Свойство может быть задано, как JSExpression.
Examples¶
{
"Value": {
"Source": "MainDataSource",
"Property": "Name"
},
"HintText": "Enter your name",
"OnValueChanged": "onNameChengedScript"
}
EditorBase.getErrorText¶
Возвращает текст с информацией об ошибке.
var errorText = EditorBase.getErrorText();
EditorBase.getHintText¶
Возвращает текст с подсказкой для ввода.
var hintText = EditorBase.getHintText();
EditorBase.getWarningText¶
Возвращает текст с информацией о предупреждении.
var warningText = EditorBase.getWarningText();
EditorBase.metadata¶
Метаданные типа EditorBase.
Name | Type | Description |
---|---|---|
Value | BindingMetadata | Значение |
HintText | String (ƒ) |
Текст с подсказкой для ввода |
ErrorText | String (ƒ) |
Текст с информацией об ошибке |
WarningText | String (ƒ) |
Текст с информацией о предупреждении |
OnValueChanging | Script | Обработчик события о том, что значение изменяется |
OnValueChanged | Script | Обработчик события о том, что значение было изменено |
(ƒ) Свойство может быть задано, как JSExpression.
{
"Value": {
"Source": "MainDataSource",
"Property": "Name"
},
"HintText": "Enter your name",
"OnValueChanged": "onNameChengedScript"
}
EditorBase.onValueChanged¶
Устанавливает обработчик события о том, что значение было изменено.
Метод setValue() позволяет изменить
значение редактора. Если значение переданного параметра отличается от
текущего значения редактора, происходит генерация события
onValueChanging. Если нет ни одного
обработчика, подписанного на событие
onValueChanging, либо если все
обработчики этого события вернули значение, отличное от false
,
значение редактора меняется на новое. Факт изменения значения редактора
приводит к возникновению события
onValueChanged.
EditorBase.onValueChanged(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что значение было изменено. В параметре argument передается информация о произошедшем событии. Свойство argument.oldValue содержит предыдущее значение редактора, argument.newValue - новое значение редактора. |
EditorBase.onValueChanged(
function(context, argument) {
alert('Value is changed!');
}
);
EditorBase.onValueChanging¶
Устанавливает обработчик события о том, что значение изменяется.
Метод setValue() позволяет изменить
значение редактора. Если значение переданного параметра отличается от
текущего значения редактора, происходит генерация события
onValueChanging. Если нет ни одного
обработчика, подписанного на событие
onValueChanging, либо если все
обработчики этого события вернули значение, отличное от false
,
значение редактора меняется на новое. Факт изменения значения редактора
приводит к возникновению события
onValueChanged.
EditorBase.onValueChanging(callback)
Name | Type | Description |
---|---|---|
callback |
Script | Обработчик события о том, что значение изменяется. В параметре argument передается информация о произошедшем событии. Свойство argument.oldValue содержит предыдущее значение редактора, argument.newValue - новое значение редактора. |
EditorBase.onValueChanging(
function(context, argument) {
return (argument.newValue >= 0 && argument.newValue < 100);
}
);
EditorBase.setErrorText¶
Устанавливает текст с информацией об ошибке.
EditorBase.setErrorText(value)
Name | Type | Description |
---|---|---|
value |
String |
Текст с информацией об ошибке. |
EditorBase.setErrorText('Negative values are not allowed');
EditorBase.setHintText¶
Устанавливает текст с подсказкой для ввода.
EditorBase.setHintText(value)
Name | Type | Description |
---|---|---|
value |
String |
Текст с подсказкой для ввода. |
EditorBase.setHintText('Enter positive value');
EditorBase.setValue¶
Устанавливает значение.
Метод setValue() позволяет изменить
значение редактора. Если значение переданного параметра отличается от
текущего значения редактора, происходит генерация события
onValueChanging. Если нет ни одного
обработчика, подписанного на событие
onValueChanging, либо если все
обработчики этого события вернули значение, отличное от false
,
значение редактора меняется на новое. Факт изменения значения редактора
приводит к возникновению события
onValueChanged.
EditorBase.setValue(value)
Name | Description |
---|---|
value |
Значение редактора. |
Нет.
EditorBase.setValue(newValue);
ExtensionPanel¶
Контейнер для встраивания произвольных прикладных элементов.
Description¶
Для реализации функционала, не предусмотренного платформой, нужно зарегистрировать с помощью InfinniUI.extensionPanels.register функцию-конструктор, экземпляры которой будут добавлять нужный элемент, а затем указать имя функции-конструктора ExtensionPanel в поле ExtensionName.
Syntax¶
new ExtensionPanel(parent)
Methods¶
Name | Description |
---|---|
setExtensionName | Устанавливает название прикладного элемента |
setContext | Устанавливает контекст представления |
setBuilder | Устанавливает Builder |
getParameters | Возвращает параметры, передаваемые в прикладной элемент |
setParameters | Устанавливает параметры, передаваемые в прикладной элемент |
Events¶
Нет
ExtensionPanel.metadata¶
Метаданные типа ExtensionPanel.
Properties¶
Name | Type | Description |
---|---|---|
ExtensionName | String |
Название пользовательского элемента |
Parameters | Array |
Параметры, передаваемые в пользовательский элемент |
Examples¶
{
"ExtensionName": "SuperPanelExtension",
"ItemTemplate": {
"Label": {
"Value": {
"Source": "MainDataSource",
"Property": "#.Name"
}
}
},
"Items": {
"Source": "MainDataSource",
"Property": ""
}
}
{
"ExtensionName": "CaptchaExtension",
"Parameters": [
{
"Name": "type",
"Value": "reCAPTCHA"
}
]
}
See Also¶
InfinniUI.extensionPanels¶
Сервис для регистрации прикладных элементов.
Methods¶
Name | Description |
---|---|
register | Регистрирует функцию-конструктор для встраивания прикладных элементов. |
getByName | Возвращает функцию-конструктор для встраивания прикладных элементов. |
Регистрирует прикладные элементы.
InfinniUI.extensionPanels.register(value)
Name | Type | Description |
---|---|---|
value | Object | Параметры, необходимые для создания прикладного элемента. Является объектом с полями: name - идентификатор прикладного элемента, initialize - инициализация функции-конструктора:sup:1, render - функция построения прикладного элемента:sup:2. |
1 На вход получает параметры context и args. args является объектом с полями:
- $el - элемент выделенный под ExtensionPanel,
- parameters - параметры,
- builder - построитель элементов,
- itemTemplate - функция шаблонизации дочерних элементов,
- items - коллекция дочерних элементов.
2 Схематически данную функцию можно описать так:
render: function() {
var myElement;
// тут определяется myElement
args.$el.append(myElement);
}
Обратите внимание, что в методе render нужно самостоятельно делать вставку создаваемого элемента в требуемое место (выделенный под ExtensionPanel контейнер будет передан в функцию-конструктор в args.$el).
Метод не возвращает значений.
InfinniUI.extensionPanels.register( {
name: 'SuperPanelExtension',
initialize: function( context, args ) {
this.context = args.context;
this.$el = args.$el;
this.items = args.items;
this.itemTemplate = args.itemTemplate;
},
render: function() {
var that = this;
if( this.items == null ) {
return;
}
this.items.forEach( function(item, index) {
var item = that.itemTemplate(context, {index: index}),
$item = item.render(),
$div = $("<div>");
$div.addClass("my-super-class")
.append($item);
that.$el.append($div);
} );
}
} );
InfinniUI.extensionPanels.register( {
name: 'CaptchaExtension',
initialize: function( context, args ) {
this.context = args.context;
this.$el = args.$el;
this.parameters = args.parameters;
},
render: function() {
var $captcha = this.createCaptcha();
this.$el.append($captcha);
},
createCaptcha: function() {
// captcha creation
}
} );
Возвращает функцию-конструктор для прикладного элемента по имени.
ExtensionPanel.getParameters()¶
Возвращает параметры, передаваемые в прикладной элемент.
Examples¶
var params = extensionPanel.getParameters();
See Also¶
ExtensionPanel.metadata¶
Метаданные типа ExtensionPanel.
Properties¶
Name | Type | Description |
---|---|---|
ExtensionName | String |
Название пользовательского элемента |
Parameters | Array |
Параметры, передаваемые в пользовательский элемент |
Examples¶
{
"ExtensionName": "SuperPanelExtension",
"ItemTemplate": {
"Label": {
"Value": {
"Source": "MainDataSource",
"Property": "#.Name"
}
}
},
"Items": {
"Source": "MainDataSource",
"Property": ""
}
}
{
"ExtensionName": "CaptchaExtension",
"Parameters": [
{
"Name": "type",
"Value": "reCAPTCHA"
}
]
}
ExtensionPanel.setBuilder()¶
Устанавливает Builder. Builder может быть полезен, когда по каким-либо причинам itemTemplate неприменим.
Examples¶
extensionPanel.setBuilder( new InfinniUI.ApplicationBuilder() );
ExtensionPanel.setContext()¶
Устанавливает контекст представления.
Syntax¶
extensionPanel.setContext(value)
Name | Type | Description |
---|---|---|
value | ViewContext | Контекст представления |
Метод не возвращает значений.
Examples¶
extensionPanel.setContext( view.getContext() );
ExtensionPanel.setExtensionName()¶
Устанавливает имя прикладному элементу. Одноименная функция-конструктор прикладного элемента должна быть доступна глобально.
Syntax¶
extensionPanel.setExtensionName( value )
Name | Type | Description |
---|---|---|
value | String |
Наименование элемента |
Метод не возвращает значений.
Examples¶
extensionPanel.setExtensionName( 'YandexMapExtension' );
FileBox¶
Редактор файлов.
Extends¶
Methods¶
Name | Description |
---|---|
getMaxSize | Возвращает максимальный размер данных в байтах. |
setMaxSize | Устанавливает максимальный размер данных в байтах. |
getAcceptTypes | Возвращает коллекцию допустимых форматов данных. |
setAcceptTypes | Устанавливает список допустимых форматов данных. |
FileBox.metadata¶
Метаданные типа FileBox.
Properties¶
Name | Type | Description |
---|---|---|
AcceptTypes | Array |
Список допустимых форматов данных. |
MaxSize | Number |
Максимальный размер данных в байтах. |
Examples¶
{
"AcceptTypes": [
"application/pdf",
"application/msword"
],
"MaxSize": 1048576,
"Value": {
"Source": "dataSource1",
"Property": "$.Attachment"
}
}
FileBox.getAcceptTypes¶
Возвращает коллекцию допустимых форматов данных.
var collection = fileBox.getAcceptTypes();
console.log(collection.toArray().join(','));
FileBox.getMaxSize¶
Возвращает максимальный размер данных в байтах.
var maxSize = fileBox.getMaxSize();
FileBox.metadata¶
Метаданные типа FileBox.
Name | Type | Description |
---|---|---|
AcceptTypes | Array |
Список допустимых форматов данных. |
MaxSize | Number |
Максимальный размер данных в байтах. |
{
"AcceptTypes": [
"application/pdf",
"application/msword"
],
"MaxSize": 1048576,
"Value": {
"Source": "dataSource1",
"Property": "$.Attachment"
}
}
FileBox.setAcceptTypes¶
Устанавливает список допустимых форматов данных. Значениями могут быть имена MIME-типа или расширения файлов вместе с разделительной точкой.
FileBox.setAcceptTypes(value)
Name | Type | Description |
---|---|---|
value |
Array |
список допустимых форматов данных. |
Нет.
fileBox.setAcceptTypes(['application/pdf', 'application/zip', '.7z', '.rar']);
GridPanel¶
Контейнер в виде сетки из столбцов и строк.
Description¶
Сетка - контейнер визуальных
элементов, который делит свою рабочую область на строки и столбцы, на
пересечении которых располагаются ячейки.
Визуально сетка никак не отображается, однако задает правила
расположения дочерних элементов. Количество столбцов всегда фиксировано
и равно 12
, количество строк - неограничено. Ячейки располагаются
внутри строки, слева направо, строки следуют сверху вниз. Для каждой
ячейки можно задать размер
- целое число от 1
до 12
включительно, определяющее то, сколько
колонок по горизонтали будет занимать ячейка. Если размеры ячейки не
позволяют разместить ее в текущей строке, она и ее содержимое будут
перенесены на новую строку. Высота ячейки определяется высотой самого
высокого элемента, высота строки определяется высотой самой высокой
ячейки данной строки.
Methods¶
Нет
Events¶
Нет
GridPanel.metadata¶
Метаданные типа GridPanel.
Properties¶
Нет
Examples¶
//infinni-ui-demo
{
"Items": [
//infinni-ui-display-begin
{
"GridPanel": {
"Items": [
{
"Cell": {
"ColumnSpan": 6,
"Items": [
{
"Label": {
"Value": "Row 1, 6 columns"
}
}
]
}
},
{
"Cell": {
"ColumnSpan": 6,
"Items": [
{
"Label": {
"Value": "Row 1, 6 columns"
}
}
]
}
},
{
"Cell": {
"ColumnSpan": 12,
"Items": [
{
"Label": {
"Value": "Row 2, 12 columns"
}
}
]
}
}
]
}
}
//infinni-ui-display-end
]
}
See Also¶
GridPanel.metadata¶
Метаданные типа GridPanel.
Properties¶
Нет
Examples¶
//infinni-ui-demo
{
"Items": [
//infinni-ui-display-begin
{
"GridPanel": {
"Items": [
{
"Cell": {
"ColumnSpan": 6,
"Items": [
{
"Label": {
"Value": "Row 1, 6 columns"
}
}
]
}
},
{
"Cell": {
"ColumnSpan": 6,
"Items": [
{
"Label": {
"Value": "Row 1, 6 columns"
}
}
]
}
},
{
"Cell": {
"ColumnSpan": 12,
"Items": [
{
"Label": {
"Value": "Row 2, 12 columns"
}
}
]
}
}
]
}
}
//infinni-ui-display-end
]
}
Icon¶
Элемент для отображения изображения.
Для отображения используется библиотека значков Font Awesome.
Для отображения нужной картинки, в Value
элемента необходимо
установить имя соотвествующей картинки (напр. “fa-battery-empty”).
Полный список доступных картинок: Icons.
Extends¶
Syntax¶
new Icon([parent])
Icon.metadata¶
Метаданные типа Icon.
Properties¶
Name | Type | Description |
---|---|---|
Size | TextStyle* | Размер иконки |
* в данном случае TextStyle определяет только размер шрифта.
Examples¶
{
"Icon": {
"Value": "star",
"Size": "display1"
}
}
See also¶
ImageBox¶
Редактор изображений.
Extends¶
Syntax¶
new ImageBox([parent])
Methods¶
Name | Description |
---|---|
getMaxSize | Возвращает максимальный размер данных в байтах. |
setMaxSize | Устанавливает максимальный размер данных в байтах. |
getAcceptTypes | Возвращает коллекцию допустимых форматов данных. |
setAcceptTypes | Устанавливает список допустимых форматов данных. |
ImageBox.metadata¶
Метаданные типа ImageBox.
Properties¶
Name | Type | Description |
---|---|---|
AcceptTypes | Array |
Список допустимых форматов данных. |
MaxSize | Number |
Максимальный размер данных в байтах. |
Examples¶
{
"AcceptTypes": [
"image/jpeg",
"image/png"
],
"MaxSize": 1048576,
"Value": {
"Source": "dataSource1",
"Property": "$.Photo"
}
}
{
"ImageBox": {
"Enabled": false,
"Value": "\\img\\notice.png"
}
}
ImageBox.getAcceptTypes¶
Возвращает коллекцию допустимых форматов данных.
var collection = imageBox.getAcceptTypes();
console.log(collection.toArray().join(','));
ImageBox.getMaxSize¶
Возвращает максимальный размер данных в байтах.
var maxSize = imageBox.getMaxSize();
ImageBox.metadata¶
Метаданные типа ImageBox.
Name | Type | Description |
---|---|---|
AcceptTypes | Array |
Список допустимых форматов данных. |
MaxSize | Number |
Максимальный размер данных в байтах. |
{
"AcceptTypes": [
"image/jpeg",
"image/png"
],
"MaxSize": 1048576,
"Value": {
"Source": "dataSource1",
"Property": "$.Photo"
}
}
{
"ImageBox": {
"Enabled": false,
"Value": "\\img\\notice.png"
}
}
ImageBox.setAcceptTypes¶
Устанавливает список допустимых форматов данных. Значениями могут быть имена MIME-типа.
ImageBox.setAcceptTypes(value)
Name | Type | Description |
---|---|---|
value |
Array |
список допустимых форматов данных. |
Нет.
imageBox.setAcceptTypes(["image/jpeg", "image/png"]);
IndeterminateCheckBox¶
Переключатель в виде флажка. Допускает неопределенное состояние.
Description¶
Для отображения переключателя в виде флажка можно использовать
CheckBox и IndeterminateCheckBox.
Отличие в том, что IndeterminateCheckBox поддерживает ещё и
неопределенное состояние.
CheckBox может принимать значение false
/true
,
IndeterminateCheckBox - "unchecked"
/"checked"
/"indeterminate"
.
Syntax¶
new IndeterminateCheckBox([parent])
IndeterminateCheckBox.metadata¶
Метаданные типа IndeterminateCheckBox.
Examples¶
{
"Text": "Subscribe",
"Value": {
"Source": "dataSource1",
"Property": "$.IsSubscribe"
}
}
See also¶
IndeterminateCheckBox.metadata¶
Метаданные типа IndeterminateCheckBox.
{
"Text": "Subscribe",
"Value": {
"Source": "dataSource1",
"Property": "$.IsSubscribe"
}
}
Label¶
Текстовая метка.
Extends¶
Syntax¶
new Label(parent, viewMode)
Parameters¶
Name | Type | Description |
---|---|---|
parent | Element | Родительский элемент |
viewMode | String |
Строка со значением режима отображения |
Methods¶
Name | Description |
---|---|
getDisplayFormat | Возвращает функцию форматирования значения для отображения. |
setDisplayFormat | Устанавливает функцию форматирования значения для отображения. |
getTextTrimming | Возвращает значение, определяющее, усекается ли текст при переполнении. |
setTextTrimming | Устанавливает значение, определяющее, усекается ли текст при переполнении. |
getTextWrapping | Возвращает значение, определяющее, переносится ли текст при переполнении. |
setTextWrapping | Устанавливает значение, определяющее, переносится ли текст при переполнении. |
getEscapeHtml | Возвращает значение, определяющее, экранируется ли HTML-разметка. |
setEscapeHtml | Устанавливает значение, определяющее, экранируется ли HTML-разметка. |
Label.metadata¶
Метаданные типа Label.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
DisplayFormat | DisplayFormatMetadata |
– | Форматирование значения для отображения |
TextTrimming | Boolean |
true | Значение, определяющее, усекается ли текст при переполнении |
TextWrapping | Boolean |
true | Значение, определяющее, переносится ли текст при переполнении |
EscapeHtml | Boolean |
true | Значение, определяющее, экранируется ли HTML-разметка |
Examples¶
{
"DisplayFormat": "${FirstName} ${LastName}",
"Value": {
"Source": "dataSource1",
"Property": "$.Person"
}
}
{
"Text": "<b>Полужирный</b> <i>курсив</i>",
"EscapeHtml": false
}
Label.getDisplayFormat¶
Возвращает функцию форматирования значения для отображения.
var format = myLabel.getDisplayFormat();
Label.getEscapeHtml¶
Возвращает значение, определяющее, экранируется ли HTML-разметка.
myLabel.getEscapeHtml();
Label.getTextTrimming¶
Возвращает значение, определяющее, усекается ли текст при переполнении.
Label.getTextTrimming()
Нет
Возвращает логическое значение, определяющее, усекается ли текст при переполнении.
var trimming = myLabel.getTextTrimming();
Label.getTextWrapping¶
Возвращает значение, определяющее, переносится ли текст при переполнении.
Label.getTextWrapping()
Нет
Возвращает логическое значение, определяющее, переносится ли текст при переполнении.
var wrapping = myLabel.getTextWrapping();
Label.metadata¶
Метаданные типа Label.
Name | Type | Default | Description |
---|---|---|---|
DisplayFormat | DisplayFormatMetadata |
– | Форматирование значения для отображения |
TextTrimming | Boolean |
true | Значение, определяющее, усекается ли текст при переполнении |
TextWrapping | Boolean |
true | Значение, определяющее, переносится ли текст при переполнении |
EscapeHtml | Boolean |
true | Значение, определяющее, экранируется ли HTML-разметка |
{
"DisplayFormat": "${FirstName} ${LastName}",
"Value": {
"Source": "dataSource1",
"Property": "$.Person"
}
}
{
"Text": "<b>Полужирный</b> <i>курсив</i>",
"EscapeHtml": false
}
Label.setDisplayFormat¶
Устанавливает функцию форматирования значения для отображения.
//js-demo
var label = new InfinniUI.Label();
var formaToLowerCase = function (context, args) {
return String(args.value).toLowerCase();
}
label.setDisplayFormat(formaToLowerCase);
label.setValue('sOmEcAsE');
$elementForExample.prepend(label.render());
Label.setEscapeHtml¶
Устанавливает значение, определяющее, экранируется ли HTML-разметка.
Label.setEscapeHtml(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Значение, определяющее, экранируется ли HTML-разметка. |
Нет.
//js-demo
var metadata = {
Label: {
EscapeHtml: false,
DisplayFormat: "{title}<sup>{id}</sup>"
}
};
var value = {id: 3, title: "Three"};
var builder = new InfinniUI.ApplicationBuilder();
var label = builder.build(metadata);
label.setValue(value);
// Render
$elementForExample.append(label.render());
Label.setTextTrimming¶
Устанавливает значение, определяющее, усекается ли текст при переполнении.
Label.setTextTrimming(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Значение, определяющее, усекается ли текст при переполнении. |
Нет
myLabel.setTextTrimming(false);
Label.setTextWrapping¶
Устанавливает значение, определяющее, переносится ли текст при переполнении.
Label.setTextWrapping(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Значение, определяющее, переносится ли текст при переполнении. |
Нет
myLabel.setTextWrapping(false);
Link¶
Ссылка.
Methods¶
Name | Description |
---|---|
getHref | Возвращает адрес документа, на который переводит ссылка. |
setHref | Устанавливает адрес документа, на который должна переводить ссылка. |
getTarget | Возвращает режим загрузки документа. |
setTarget | Устанавливает режим загрузки документа. |
Link.metadata¶
Метаданные типа Link.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Href | String | Object |
“javascript:;” | Адрес документа, на который должна переводить ссылка. |
Target | String |
“self” | Режим загрузки документа. Может принимать следующие значения: ● blank - загружает страницу в новое окно браузера, ● self - загружает страницу в текущее окно, ● parent - загружает cтраницу во фрейм-родитель (если фреймов нет, то работает как self), ● top - отменяет все фреймы и загружает страницу в полном окне браузера (если фреймов нет, то работает как self). |
Href.metadata¶
Name | Type | Description |
---|---|---|
Name* | String |
Название маршрута из InfinniUI.config.routes. |
Params | Array .<Href.paramObject> |
Параметры запроса. |
Query | Array .<Href.paramObject> |
Параметры поиска. |
* Обязательное свойство.
Href.paramObject¶
Name | Type | Description |
---|---|---|
Name* | String |
Название параметра. |
Value* | String | DataBinding |
Значение параметра. |
* Обязательное свойство.
Examples¶
Простая ссылка:
//infinni-ui-demo
{
"Items": [
//infinni-ui-display-begin
{
"Link": {
"Text": "link",
"Href": "http://infinnity.ru/",
"Target": "blank"
}
}
//infinni-ui-display-end
]
}
Рассмотрим случай, когда ссылка должна изменяться в зависимости от неких параметров. Тогда в массив InfinniUI.config.routes необходимо добавить соответсвующий путь. Пусть
window.InfinniUI.config.routes = [
{
Name: "mainPageRouter",
Path: "/publicPages/<% pageName %>/?userId=<% userId %>&date=<% date %>",
Action: "{ routeCallback(context, args) }"
}
];
Определим соответсвующую ссылку
{
"Link": {
"Text": "link",
"Href": {
"Name": "mainPageRouter",
"Params": [
{
"Name": "pageName",
"Value": "patient"
}
],
"Query": [
{
"Name": "date",
"Value": "2016-12-16"
},
{
"Name": "userId",
"Value": {
"Source": "usersDataSource",
"Property": "$.id"
}
}
]
},
"Target": "blank"
}
}
Link.getHref¶
Возвращает адрес документа, на который переводит ссылка.
var href = link.getHref();
Link.getTarget¶
Возвращает режим загрузки документа.
Возможны следующие режимы загрузки документа:
- blank - загружает страницу в новое окно браузера,
- self - загружает страницу в текущее окно,
- parent - загружает страницу во фрейм-родитель (если фреймов нет, то работает как self),
- top - отменяет все фреймы и загружает страницу в полном окне браузера (если фреймов нет, то работает как self).
var target = link.getTarget();
Link.metadata¶
Метаданные типа Link.
Name | Type | Default | Description |
---|---|---|---|
Href | String | Object |
“javascript:;” | Адрес документа, на который должна переводить ссылка. |
Target | String |
“self” | Режим загрузки документа. Может принимать следующие значения: ● blank - загружает страницу в новое окно браузера, ● self - загружает страницу в текущее окно, ● parent - загружает cтраницу во фрейм-родитель (если фреймов нет, то работает как self), ● top - отменяет все фреймы и загружает страницу в полном окне браузера (если фреймов нет, то работает как self). |
Name | Type | Description |
---|---|---|
Name* | String |
Название маршрута из InfinniUI.config.routes. |
Params | Array .<Href.paramObject> |
Параметры запроса. |
Query | Array .<Href.paramObject> |
Параметры поиска. |
* Обязательное свойство.
Name | Type | Description |
---|---|---|
Name* | String |
Название параметра. |
Value* | String | DataBinding |
Значение параметра. |
* Обязательное свойство.
Простая ссылка:
//infinni-ui-demo
{
"Items": [
//infinni-ui-display-begin
{
"Link": {
"Text": "link",
"Href": "http://infinnity.ru/",
"Target": "blank"
}
}
//infinni-ui-display-end
]
}
Рассмотрим случай, когда ссылка должна изменяться в зависимости от неких параметров. Тогда в массив InfinniUI.config.routes необходимо добавить соответсвующий путь. Пусть
window.InfinniUI.config.routes = [
{
Name: "mainPageRouter",
Path: "/publicPages/<% pageName %>/?userId=<% userId %>&date=<% date %>",
Action: "{ routeCallback(context, args) }"
}
];
Определим соответсвующую ссылку
{
"Link": {
"Text": "link",
"Href": {
"Name": "mainPageRouter",
"Params": [
{
"Name": "pageName",
"Value": "patient"
}
],
"Query": [
{
"Name": "date",
"Value": "2016-12-16"
},
{
"Name": "userId",
"Value": {
"Source": "usersDataSource",
"Property": "$.id"
}
}
]
},
"Target": "blank"
}
}
Link.setHref¶
Устанавливает адрес документа, на который должна переводить ссылка.
Link.setHref(value)
Name | Type | Description |
---|---|---|
value | String |
Адрес документа, на который должна переводить ссылка. |
Нет.
link.setHref("http://docs.infinnity.ru/");
Link.setTarget¶
Устанавливает режим загрузки документа.
Возможны следующие режимы загрузки документа:
- blank - загружает страницу в новое окно браузера,
- self - загружает страницу в текущее окно,
- parent - загружает страницу во фрейм-родитель (если фреймов нет, то работает как self),
- top - отменяет все фреймы и загружает страницу в полном окне браузера (если фреймов нет, то работает как self).
Link.setTarget(value)
Name | Type | Description |
---|---|---|
value | String |
Режим загрузки документа. |
нет
link.setTarget("blank");
ListBox¶
Список.
Extends¶
Syntax¶
new ListBox(parent, viewMode)
Parameters¶
Name | Type | Description |
---|---|---|
parent* | Element | Родительский элемент |
viewMode* | String |
Строка со значением режима отображения. Может принимать значения: ‘common’, ‘base’, ‘checking’. Если указать значение ‘checking’, то отобразится список радиокнопок |
* Обязательный аргумент.
Usage¶
Посмотрим, как выглядят различные режимы отображения ListBox.
//js-demo
var simpleItemTemplate = function (context, args) {
var label = new InfinniUI.Label();
label.setValue(args.item);
return label;
};
function createListBox (openMode, isMultiSelect){
listBox = new InfinniUI.ListBox(null, openMode);
listBox.getItems().reset(['1', '2', '3']);
listBox.setItemTemplate(simpleItemTemplate);
listBox.setMultiSelect(isMultiSelect);
$listBox = listBox.render();
$elementForExample.append($listBox);
}
// hiddenCodeStart
var viewModeListBox = new InfinniUI.ListBox(null, 'checking'),
listBox, checkBox;
viewModeListBox.getItems().reset([
'common',
'base',
'checking'
]);
viewModeListBox.onValueChanged(function(context, args) {
if ($listBox){
$listBox.remove();
}
createListBox(args.newValue, checkBox.getValue());
});
viewModeListBox.setItemTemplate(simpleItemTemplate);
var $viewModeListBox = viewModeListBox.render(), $listBox;
$elementForExample.append($viewModeListBox);
checkBox = new InfinniUI.CheckBox();
checkBox.setText('MultiSelect');
checkBox.setValue(true);
checkBox.onValueChanged(function (context, args){
if(listBox) {
listBox.setMultiSelect(args.newValue);
$listBox.remove();
$listBox = listBox.render();
$elementForExample.append($listBox);
}
});
var $checkBox = checkBox.render();
$elementForExample.append($checkBox);
viewModeListBox.setValue('common');
// hiddenCodeStop
Methods¶
Нет
Events¶
Нет
ListBox.metadata¶
Метаданные типа ListBox.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
ViewMode | String |
common |
Режим отображения списка. Может принимать значения: ‘common’, ‘base’, ‘checking’. |
Examples¶
{
"ListBox": {
"Name": "ChildrenList",
"ItemTemplate": {
"Label": {
"Value": {
"Source": "MainDataSource",
"Property": "$.Childrens.#.Name"
}
}
},
"Items": {
"Source": "MainDataSource",
"Property": "$.Childrens"
}
}
}
ListBox.metadata¶
Метаданные типа ListBox.
Name | Type | Default | Description |
---|---|---|---|
ViewMode | String |
common |
Режим отображения списка. Может принимать значения: ‘common’, ‘base’, ‘checking’. |
{
"ListBox": {
"Name": "ChildrenList",
"ItemTemplate": {
"Label": {
"Value": {
"Source": "MainDataSource",
"Property": "$.Childrens.#.Name"
}
}
},
"Items": {
"Source": "MainDataSource",
"Property": "$.Childrens"
}
}
}
ListEditorBase¶
Базовый тип редакторов коллекций данных.
Extends¶
Syntax¶
new ListEditorBase(parent)
Methods¶
Name | Description |
---|---|
getMultiSelect | Возвращает значение, определяющее, разрешен ли выбор нескольких элементов. |
setMultiSelect | Устанавливает значение, определяющее, разрешен ли выбор нескольких элементов. |
getValueSelector | Возвращает функцию выборки из элемента коллекции значимой части. |
setValueSelector | Устанавливает функцию выборки из элемента коллекции значимой части. |
getSelectedItem | Возвращает выделенный элемент коллекции. |
setSelectedItem | Устанавливает выделенный элемент коллекции. |
getDisabledItemCondition | Возвращает функцию, определяющую запрет на выбор элемента. |
setDisabledItemCondition | Устанавливает функцию, определяющую запрет на выбор элемента. |
setValueItem | Устанавливает значение элемента по элементу коллекции. |
Events¶
Name | Description |
---|---|
onSelectedItemChanged | Устанавливает обработчик события о том, что выделенный элемент изменился. |
ListEditorBase.metadata¶
Метаданные типа ListEditorBase.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
MultiSelect | Boolean |
false | Разрешен ли выбор нескольких элементов коллекции |
ValueSelector | Script | – | Функция выборки из элемента коллекции значения для выбора |
ValueProperty | String |
– | Свойство элемента коллекции со значением для выбора |
DisabledItemCondition | Script | – | Функция, определяющая запрет на выбор элемента |
OnSelectedItemChanged | Script | – | Обработчик события о том, что элемент был выделен |
Examples¶
{
"MultiSelect": true,
"ValueProperty": "id",
"ItemFormat": "${FirstName} ${LastName}, ${BirthDate:d}",
"DisabledItemCondition": "{ return (args.value.Id == 3); }"
}
ListEditorBase.getDisabledItemCondition¶
Возвращает функцию, определяющую запрет на выбор элемента.
ListEditorBase.getMultiSelect¶
Возвращает значение, определяющее, разрешен ли выбор нескольких элементов.
Элементы представления, отображающие коллекции данных, предоставляют возможность выбора одного или нескольких элементов из списка. Выбранные элементы визуально помечаются, чтобы пользователь мог отличить выбранный элемент от невыбранного. Вопросы визуального отличия выбранных и невыбранных элементов (цвет, шрифт и т.п.), а также способы осуществления выбора (мышь, клавиатура и т.п.) в данном контексте не оговариваются, главное то, что у пользователя есть такая возможность.
Метод setMultiSelect() позволяет переключать режим работы списка, разрешая или запрещая выбор нескольких элементов. Данная настройка напрямую влияет на результат работы метода getValue(). Если выбор нескольких элементов разрешен, метод getValue() возвращает массив, элементами которого являются выбранные элементы. Если выбор нескольких элементов запрещен, метод getValue() вернет один выбранный элемент.
Метод setValueSelector() позволяет указать функцию выборки из элемента коллекции значимой части. Эта функция применяется к выделенным элементам при вызове метода getValue(). Если выбор нескольких элементов разрешен, метод getValue() вернет массив, каждый из элемент которого является результатом работы ранее установленной функции выборки, примененной к выбранным элементам. Если выбор нескольких элементов запрещен, метод getValue() вернет результат работы ранее установленной функции выборки, примененной к одному выбранному элементу.
ListEditorBase.getMultiSelect()
Логическое значение, определяющее, разрешен ли выбор нескольких
элементов. Значение true
означает, что выбор нескольких элементов
разрешен, значение false
- запрещен.
ListEditorBase.getValueSelector¶
Возвращает функцию выборки из элемента коллекции значимой части.
Возвращает функцию выборки значения для
элемента коллекции, который передается в параметре args.value
.
ListEditorBase.metadata¶
Метаданные типа ListEditorBase.
Name | Type | Default | Description |
---|---|---|---|
MultiSelect | Boolean |
false | Разрешен ли выбор нескольких элементов коллекции |
ValueSelector | Script | – | Функция выборки из элемента коллекции значения для выбора |
ValueProperty | String |
– | Свойство элемента коллекции со значением для выбора |
DisabledItemCondition | Script | – | Функция, определяющая запрет на выбор элемента |
OnSelectedItemChanged | Script | – | Обработчик события о том, что элемент был выделен |
{
"MultiSelect": true,
"ValueProperty": "id",
"ItemFormat": "${FirstName} ${LastName}, ${BirthDate:d}",
"DisabledItemCondition": "{ return (args.value.Id == 3); }"
}
ListEditorBase.setDisabledItemCondition¶
Устанавливает функцию, определяющую запрет на выбор элемента.
ListEditorBase.setDisabledItemCondition(func)
Name | Type | Description |
---|---|---|
func | Script | Функция, определяющая запрет на выбор элемента. Элементы, для которых данная функция вернёт true, будут недоступны для выбора. |
Метод ничего не возвращает.
listEditorBase.setDisabledItemCondition( function (context, args) { return args.value.Count == 0; });
ListEditorBase.setMultiSelect¶
Устанавливает значение, определяющее, разрешен ли выбор нескольких элементов.
ListEditorBase.setSelectedItem¶
Устанавливает выделенный элемент коллекции. В один момент времени выделенным может быть только один элемент из коллекции.
ListEditorBase.setValueItem¶
Устанавливает значение элемента по элементу коллекции.
Устанавливает значение элемента соответсвующим значением для переданного
элемента коллекции. Для элемента в режиме MultiSelect = true
в
качестве аргумента передается массив элементов коллекции.
ListEditorBase.setValueSelector¶
Устанавливает функцию выборки из элемента коллекции значимой части.
Устанавливает функцию выборки значения для
элемента коллекции, который передается в параметре args.value
.
var idSelector = function (context, args) {
var item = args.value;
return item ? item.id : null;
};
ListEditorBase.setValueSelector(idSelector);
NumericBox¶
Редактор чисел.
Extends¶
Syntax¶
new NumericBox(parent)
Methods¶
Name | Description |
---|---|
getMinValue | Возвращает минимальное значение для ввода. |
setMinValue | Устанавливает минимальное значение для ввода. |
getMaxValue | Возвращает максимальное значение для ввода. |
setMaxValue | Устанавливает максимальное значение для ввода. |
getIncrement | Возвращает приращение значения при вводе с помощью кнопок. |
setIncrement | Устанавливает приращение значения при вводе с помощью кнопок. |
getStartValue | Возвращает начальное значение по умолчанию. |
setStartValue | Устанавливает начальное значение по умолчанию. |
NumericBox.metadata¶
Метаданные типа NumericBox.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
MinValue | Number |
– | Минимальное значение |
MaxValue | Number |
– | Максимальное значение |
Increment | Number |
1 | Приращение значения |
StartValue | Number |
– | Начальное значение по умолчанию |
Examples¶
{
"LabelText": "Age",
"LabelFloating": true,
"MinValue": 0,
"Value": {
"Source": "mainDataSource",
"Property": "$.Age"
}
}
NumericBox.getIncrement¶
Возвращает приращение значения при вводе с помощью кнопок.
var maxValue = numericBox.getIncrement();
NumericBox.getMaxValue¶
Возвращает максимальное значение для ввода.
var maxValue = numericBox.getMaxValue();
NumericBox.getMinValue¶
Возвращает минимальное значение для ввода.
var minValue = numericBox.getMinValue();
NumericBox.getStartValue¶
Возвращает начальное значение по умолчанию.
var startValue = numericBox.getStartValue();
NumericBox.metadata¶
Метаданные типа NumericBox.
Name | Type | Default | Description |
---|---|---|---|
MinValue | Number |
– | Минимальное значение |
MaxValue | Number |
– | Максимальное значение |
Increment | Number |
1 | Приращение значения |
StartValue | Number |
– | Начальное значение по умолчанию |
{
"LabelText": "Age",
"LabelFloating": true,
"MinValue": 0,
"Value": {
"Source": "mainDataSource",
"Property": "$.Age"
}
}
NumericBox.setIncrement¶
Устанавливает приращение значения при вводе с помощью кнопок.
NumericBox.setIncrement(value)
Name | Type | Description |
---|---|---|
value |
Number |
Приращение значения при вводе с помощью кнопок. |
numericBox.setIncrement(5);
NumericBox.setMaxValue¶
Устанавливает максимальное значение для ввода.
NumericBox.setMaxValue(value)
Name | Type | Description |
---|---|---|
value |
Number |
Максимальное значение для ввода. |
numericBox.setMaxValue(100);
NumericBox.setMinValue¶
Устанавливает минимальное значение для ввода.
NumericBox.setMinValue(value)
Name | Type | Description |
---|---|---|
value |
Number |
Минимальное значение для ввода. |
numericBox.setMinValue(0);
NumericBox.setStartValue¶
Устанавливает начальное значение по умолчанию. Заданное значение будет
автоматически подставляться в качестве значения в элементе при нажатии
кнопок +
/ -
, если значение еще не указано.
NumericBox.setStartValue(value);
Name | Type | Description |
---|---|---|
value |
Number |
Начальное значение по умолчанию. |
Нет.
//js-demo
var numericBox = new InfinniUI.NumericBox();
numericBox.setStartValue(1980);
numericBox.setMinValue(1000);
numericBox.setMaxValue(2000);
// Render
$elementForExample.append(numericBox.render());
Panel¶
Контейнер в виде прямоугольной области.
Description¶
Панель - контейнер визуальных элементов в виде прямоугольной области. Дочерние элементы панели располагаются внутри контейнера и визуально не могут выходить за его пределы.
Methods¶
Name | Description |
---|---|
getCollapsible | Возвращает значение, определяющее, разрешено ли сворачивание панели |
setCollapsible | Устанавливает значение, определяющее, разрешено ли сворачивание панели |
getCollapsed | Возвращает значение, определяющее, свернута ли панель |
setCollapsed | Устанавливает значение, определяющее, свернута ли панель |
getHeaderTemplate | Возвращает функцию шаблонизации заголовка панели |
setHeaderTemplate | Устанавливает функцию шаблонизации заголовка панели |
getHeader | Возвращает заголовок панели |
setHeader | Устанавливает заголовок панели |
getCollapseChanger | Возвращает имя элемента, при клике на который раскрывается панель |
setCollapseChanger | Устанавливает имя элемента, при клике на который раскрывается панель |
Events¶
Name | Description |
---|---|
onExpanding | Устанавливает обработчик события о том, что панель разворачивается |
onExpanded | Устанавливает обработчик события о том, что панель была развернута |
onCollapsing | Устанавливает обработчик события о том, что панель сворачивается |
onCollapsed | Устанавливает обработчик события о том, что панель была свернута |
Panel.metadata¶
Метаданные типа Panel.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Collapsible | Boolean |
false | Значение, определяющее, разрешено ли сворачивание панели |
Collapsed | Boolean |
false | Значение, определяющее, свернута ли панель |
HeaderTemplate | Element | – | Шаблон отображения заголовка панели |
Header | String /BindingMetadata |
– | Заголовок панели |
CollapseChanger | String |
– | Имя элемента, при нажатии на который панель будет сворачиваться/разворачиваться. |
OnExpanding | Script | – | Обработчик события о том, что панель разворачивается |
OnExpanded | Script | – | Обработчик события о том, что панель была развернута |
OnCollapsing | Script | – | Обработчик события о том, что панель сворачивается |
OnCollapsed | Script | – | Обработчик события о том, что панель была свернута |
Examples¶
//infinni-ui-demo
{
"Items": [
//infinni-ui-display-begin
{
"Panel": {
"Collapsible": true,
"Header": "Numbers",
"OnExpanded": "{ alert('Panel is expanded!'); }",
"OnCollapsed": "{ alert('Panel is collapsed!'); }",
"Items": [
{
"Label": {
"Value": "One"
}
},
{
"Label": {
"Value": "Two"
}
},
{
"Label": {
"Value": "Three"
}
}
]
}
}
//infinni-ui-display-end
]
}
See Also¶
Panel.getCollapseChanger()¶
Возвращает имя элемента, при клике на который раскрывается панель.
Description¶
Чтобы разрешить сворачивание панели воспользуйтесь методом setCollapsible. По умолчанию панел сворачивается/разворачивается при клике на заголовок. C помощью метода setCollapseChanger можно установить элемент заголовка, клик на который будет регулировать состояние панели.
Syntax¶
panel.getCollapseChanger()
Нет
Имя элемента при клике на который раскрывается панель.
Examples¶
var collapseChangerName = panel.getCollapseChanger();
Panel.getCollapsed()¶
Возвращает значение, определяющее, свернута ли панель.
Description¶
Вызов метода setCollapsible() управляет возможностью сворачивания панели. Если сворачивание запрещено, панель нельзя свернуть ни визуально, ни программно - с помощью метода setCollapsed(). Если сворачивание было запрещено в то время, как панель была свернута, панель разворачивается автоматически.
Syntax¶
panel.getCollapsed()
Нет
Логическое значение, определяющее, свернута ли панель.
Значение false
говорит о том, что панель развернута (значение по умолчанию),
значение true
- свернута.
Examples¶
var isCollapsed = panel.getCollapsed();
Panel.getCollapsible()¶
Возвращает значение, определяющее, разрешено ли сворачивание панели.
Description¶
Вызов метода setCollapsible() управляет возможностью сворачивания панели. Если сворачивание запрещено, панель нельзя свернуть ни визуально, ни программно - с помощью метода setCollapsed(). Если сворачивание было запрещено в то время, как панель была свернута, панель разворачивается автоматически.
Syntax¶
panel.getCollapsible()
Нет
Логическое значение, определяющее, разрешено ли сворачивание панели.
Значение false
говорит о том, что сворачивание запрещено (значение по умолчанию),
значение true
- сворачивание разрешено.
Examples¶
var isCollapsible = panel.getCollapsible();
Panel.getHeader()¶
Возвращает значение заголовка панели.
Syntax¶
panel.getHeader()
Нет
Заголовок панели. Если у панели не задан шаблонизатор заголовка, то в качестве заголовка будет использоваться текст, возвращаемый Panel.getHeader()
.
Если же шаблонизатор заголовка задан, то данное значение будет передаваться в шаблонизатор в качестве args.value
.
Examples¶
var header = panel.getHeader();
Panel.getHeaderTemplate()¶
Возвращает функцию шаблонизации заголовка панели.
Syntax¶
panel.getHeaderTemplate()
Нет
Функция шаблонизации заголовка панели. В
параметре args
передается информация, необходимая для формирования
визуального элемента, который
будет отображен в качестве заголовка панели. Свойство args.value
содержит данные заголовка. Результатом работы функции должен быть
визуальный элемент.
Examples¶
var headerTemplate = panel.getHeaderTemplate();
See Also¶
Panel.metadata¶
Метаданные типа Panel.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Collapsible | Boolean |
false | Значение, определяющее, разрешено ли сворачивание панели |
Collapsed | Boolean |
false | Значение, определяющее, свернута ли панель |
HeaderTemplate | Element | – | Шаблон отображения заголовка панели |
Header | String /BindingMetadata |
– | Заголовок панели |
CollapseChanger | String |
– | Имя элемента, при нажатии на который панель будет сворачиваться/разворачиваться. |
OnExpanding | Script | – | Обработчик события о том, что панель разворачивается |
OnExpanded | Script | – | Обработчик события о том, что панель была развернута |
OnCollapsing | Script | – | Обработчик события о том, что панель сворачивается |
OnCollapsed | Script | – | Обработчик события о том, что панель была свернута |
Examples¶
//infinni-ui-demo
{
"Items": [
//infinni-ui-display-begin
{
"Panel": {
"Collapsible": true,
"Header": "Numbers",
"OnExpanded": "{ alert('Panel is expanded!'); }",
"OnCollapsed": "{ alert('Panel is collapsed!'); }",
"Items": [
{
"Label": {
"Value": "One"
}
},
{
"Label": {
"Value": "Two"
}
},
{
"Label": {
"Value": "Three"
}
}
]
}
}
//infinni-ui-display-end
]
}
Panel.onCollapsed¶
Устанавливает обработчик события о том, что панель была свернута.
Description¶
Если панель была развернута и ее можно
свернуть, вызов метод
setCollapsed() с параметром true
означает необходимость свернуть панель. В этом случае возникает событие
onCollapsing. В итоге панель будет
свернута, если нет ни одного обработчика, подписанного на событие
onCollapsing, либо если все обработчики
этого события вернули значение, отличное от false
. Если панель в
конечном счете была свернута, возникает событие
onCollapsed. В обработчике события
onCollapsed можно зарегистрировать факт
того, что панель была свернута.
Syntax¶
panel.onCollapsed(callback)
Name | Type | Description |
---|---|---|
callback | Script | Обработчик события о том, что панель была свернута |
Метод ничего не возвращает
Examples¶
panel.setCollapsible(true);
panel.setCollapsed(false);
panel.onCollapsed(
function(context, argument) { alert('Panel is collapsed!'); }
);
panel.setCollapsed(true);
See Also¶
Panel.onCollapsing¶
Устанавливает обработчик события о том, что панель сворачивается.
Description¶
Если панель была развернута и ее можно
свернуть, вызов метод
setCollapsed() с параметром true
означает необходимость свернуть панель. В этом случае возникает событие
onCollapsing. В итоге панель будет
свернута, если нет ни одного обработчика, подписанного на событие
onCollapsing, либо если все обработчики
этого события вернули значение, отличное от false
. Если панель в
конечном счете была свернута, возникает событие
onCollapsed. В обработчике события
onCollapsed можно зарегистрировать факт
того, что панель была свернута.
Syntax¶
panel.onCollapsing(callback)
Name | Type | Description |
---|---|---|
callback | Script | Обработчик события о том, что панель сворачивается |
Метод ничего не возвращает
Examples¶
panel.setCollapsible(true);
panel.setCollapsed(false);
panel.onCollapsing(
function(context, argument) { alert('Panel is collapsing!'); }
);
panel.setCollapsed(true);
See Also¶
Panel.onExpanded¶
Устанавливает обработчик события о том, что панель была развернута.
Description¶
Если панель была свернута, вызов метода
setCollapsed() с параметром false
означает необходимость развернуть панель. В этом случае возникает
событие onExpanding. В итоге панель будет
развернута, если нет ни одного обработчика, подписанного на событие
onExpanding, либо если все обработчики этого
события вернули значение, отличное от false
. Если панель в конечном
счете была развернута, возникает событие
onExpanded. В обработчике события
onExpanded можно зарегистрировать факт того,
что панель была развернута.
Syntax¶
panel.onExpanded(callback)
Name | Type | Description |
---|---|---|
callback | Script | Обработчик события о том, что панель была развернута |
Метод ничего не возвращает
Examples¶
panel.setCollapsible(true);
panel.setCollapsed(true);
panel.onExpanded(
function(context, argument) { alert('Panel is expanded!'); }
);
panel.setCollapsed(false);
See Also¶
Panel.onExpanding¶
Устанавливает обработчик события о том, что панель разворачивается.
Description¶
Если панель была свернута, вызов метода
setCollapsed() с параметром false
означает необходимость развернуть панель. В этом случае возникает
событие onExpanding. В итоге панель будет
развернута, если нет ни одного обработчика, подписанного на событие
onExpanding, либо если все обработчики этого
события вернули значение, отличное от false
. Если панель в конечном
счете была развернута, возникает событие
onExpanded. В обработчике события
onExpanded можно зарегистрировать факт того,
что панель была развернута.
Syntax¶
panel.onExpanding(callback)
Name | Type | Description |
---|---|---|
callback | Script | Обработчик события о том, что панель разворачивается |
Метод ничего не возвращает
Examples¶
panel.setCollapsible(true);
panel.setCollapsed(true);
panel.onExpanding(
function(context, args) { alert('Panel is expanding!'); }
);
panel.setCollapsed(false);
See Also¶
Panel.setCollapseChanger()¶
Устанавливает имя элемента, при клике на который раскрывается панель.
Description¶
Чтобы разрешить сворачивание панели воспользуйтесь методом setCollapsible. По умолчанию панел сворачивается/разворачивается при клике на заголовок. C помощью метода setCollapseChanger можно установить элемент заголовка, клик на который будет регулировать состояние панели.
Syntax¶
panel.setCollapseChanger(value)
Name | Type | Description |
---|---|---|
value | String |
Имя элемента, при нажатии на который панель будет сворачиваться/разворачиваться. |
Метод ничего не возвращает.
Examples¶
//js-demo
var panel = new InfinniUI.Panel();
panel.setHeaderTemplate(function(context, args) {
var header = new InfinniUI.StackPanel(),
icon = new InfinniUI.Icon(),
label = new InfinniUI.Label;
icon.setName('icon_1')
icon.setValue('star');
label.setValue('Header');
header.setOrientation(InfinniUI.StackPanelOrientation.horizontal);
header.getItems().reset([icon, label]);
header.setItemTemplate(function(context, args){
return args.item;
});
return header;
});
panel.setCollapsible(true);
panel.setCollapseChanger('icon_1');
// hiddenCodeStart
$elementForExample.append(panel.render());
// hiddenCodeStop
Panel.setCollapsed()¶
Устанавливает значение, определяющее, свернута ли панель.
Description¶
Вызов метода setCollapsible() управляет возможностью сворачивания панели. Если сворачивание запрещено, панель нельзя свернуть ни визуально, ни программно - с помощью метода setCollapsed(). Если сворачивание было запрещено в то время, как панель была свернута, панель разворачивается автоматически.
Если панель была свернута, вызов метода
setCollapsed() с параметром false
означает необходимость развернуть панель. В этом случае возникает
событие onExpanding. В итоге панель будет
развернута, если нет ни одного обработчика, подписанного на событие
onExpanding, либо если все обработчики этого
события вернули значение, отличное от false
. Если панель в конечном
счете была развернута, возникает событие
onExpanded. В обработчике события
onExpanded можно зарегистрировать факт того,
что панель была развернута.
Если панель была развернута и ее можно
свернуть, вызов метода
setCollapsed() с параметром true
означает необходимость свернуть панель. В этом случае возникает событие
onCollapsing. В итоге панель будет
свернута, если нет ни одного обработчика, подписанного на событие
onCollapsing, либо если все обработчики
этого события вернули значение, отличное от false
. Если панель в
конечном счете была свернута, возникает событие
onCollapsed. В обработчике события
onCollapsed можно зарегистрировать факт
того, что панель была свернута.
Syntax¶
panel.setCollapsed(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Флаг, определяющий, свернута ли панель. Значение false говорит о том, что панель развернута, значение true - свернута. |
Метод ничего не возвращает.
Examples¶
// Disable collapsing
panel.setCollapsible(false);
panel.setCollapsed(false); // No effect, panel.getCollapsed() === false
panel.setCollapsed(true); // No effect, panel.getCollapsed() === false
// Enable collapsing
panel.setCollapsible(true);
panel.setCollapsed(true); // Collapsed, panel.getCollapsed() === true
panel.setCollapsed(false); // Expanded, panel.getCollapsed() === false
panel.setCollapsed(true); // Collapsed, panel.getCollapsed() === true
// Disable collapsing
panel.setCollapsible(false); // Expanded, panel.getCollapsed() === false
Panel.setCollapsible()¶
Устанавливает значение, определяющее, разрешено ли сворачивание панели.
Description¶
Вызов метода setCollapsible() управляет возможностью сворачивания панели. Если сворачивание запрещено, панель нельзя свернуть ни визуально, ни программно - с помощью метода setCollapsed(). Если сворачивание было запрещено в то время, как панель была свернута, панель разворачивается автоматически.
Syntax¶
panel.setCollapsible(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Флаг, определяющий, разрешено ли сворачивание панели. Значение false говорит о том, что сворачивание запрещено, значение true - сворачивание разрешено. |
Метод ничего не возвращает.
Examples¶
// Disable collapsing
panel.setCollapsible(false);
panel.setCollapsed(false); // No effect, panel.getCollapsed() === false
panel.setCollapsed(true); // No effect, panel.getCollapsed() === false
// Enable collapsing
panel.setCollapsible(true);
panel.setCollapsed(true); // Collapsed, panel.getCollapsed() === true
panel.setCollapsed(false); // Expanded, panel.getCollapsed() === false
panel.setCollapsed(true); // Collapsed, panel.getCollapsed() === true
// Disable collapsing
panel.setCollapsible(false); // Expanded, panel.getCollapsed() === false
Panel.setHeader()¶
Устанавливает заголовок панели.
Syntax¶
panel.setHeader(value)
Name | Description |
---|---|
value | Заголовок панели. Если у панели не задан шаблонизатор заголовка, то в качестве заголовка будет использоваться текст, возвращаемый Panel.getHeader() . Если же шаблонизатор заголовка задан, то данное значение будет передаваться в шаблонизатор в качестве args.value . |
Метод ничего не возвращает.
Examples¶
panel.setHeader('Header text');
Panel.setHeaderTemplate()¶
Устанавливает функцию шаблонизации заголовка панели.
Syntax¶
panel.setHeaderTemplate(value)
Name | Type | Description |
---|---|---|
value | Script | Функция шаблонизации заголовка панели. В параметре args передается информация, необходимая для формирования визуального элемента, который будет отображен в качестве заголовка панели. Свойство args.value содержит данные заголовка. Результатом работы функции должен быть визуальный элемент |
Метод ничего не возвращает.
Examples¶
panel.setHeaderTemplate(function(context, args) {
var element = new Label();
element.setValue(args.value);
return element;
});
See Also¶
PasswordBox¶
Редактор пароля.
Extends¶
Syntax¶
new PasswordBox(parent)
Methods¶
Name | Description |
---|---|
getLabelText | Возвращает текст метки. |
setLabelText | Устанавливает текст метки. |
getLabelFloating | Возвращает значение, определяющее, является ли метка плавающей. |
setLabelFloating | Устанавливает значение, определяющее, является ли метка плавающей. |
getAutocomplete | Возвращает значение, определяющее, будет ли срабатывать стандартная автоподстановка пароля. |
setAutocomplete | Устанавливает значение, определяющее, будет ли срабатывать стандартная автоподстановка пароля. |
PasswordBox.metadata¶
Метаданные типа PasswordBox.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
LabelText | String |
– | Текст метки |
LabelFloating | Boolean |
false |
Является ли метка плавающей |
Autocomplete | Boolean |
true |
Автоподстановка сохраненных в браузере паролей |
Examples¶
{
"LabelText": "Password",
"LabelFloating": true,
"Value": {
"Source": "dataSource1",
"Property": "$.Password"
}
}
PasswordBox.getAutocomplete¶
Возвращает значение, определяющее, будет ли срабатывать стандартная автоподстановка пароля.
PasswordBox.getAutocomplete()
Значение, определяющее, будет ли срабатывать стандартная автоподстановка
пароля: * false
означает, что автоподстановка сохраненных ранее
паролей происходить не будет. * true
означает, что автоподстановка
сохраненных ранее паролей будет срабатывать (поведение по умолчанию).
var autocomplete = PasswordBox.getAutocomplete();
PasswordBox.getLabelFloating¶
Устанавливает значение, определяющее, является ли метка плавающей.
В большинстве случаев вместе с редактором размещается текстовая метка, благодаря чему пользователь понимает какое значение он редактирует. Иногда подобные метки размещаются рядом с редактором, например, слева или сверху от редактора, иногда - внутри редактора в виде заполнителя (placeholder). Если метка размещается внутри редактора и остается видимой даже тогда, когда редактор получает фокус ввода и пользователь начинает вводить значение, она называется “плавающей”. Такое название связано с тем, что при получении фокуса ввода метка обычно перемещается в другую область рядом с редактором, чтобы оставаться видимой пользователю в момент ввода данных.
Текст метки можно установить с помощью метода setLabelText(), а способ отображения - с помощью метода setLabelFloating().
PasswordBox.getLabelFloating()
Значение, определяющее, является ли метка плавающей. Значение true
означает, что метка является плавающей, значение false
означает, что
метка является фиксированной.
var isFloating = PasswordBox.getLabelFloating();
PasswordBox.getLabelText¶
Возвращает текст метки.
В большинстве случаев вместе с редактором размещается текстовая метка, благодаря чему пользователь понимает какое значение он редактирует. Иногда подобные метки размещаются рядом с редактором, например, слева или сверху от редактора, иногда - внутри редактора в виде заполнителя (placeholder). Если метка размещается внутри редактора и остается видимой даже тогда, когда редактор получает фокус ввода и пользователь начинает вводить значение, она называется “плавающей”. Такое название связано с тем, что при получении фокуса ввода метка обычно перемещается в другую область рядом с редактором, чтобы оставаться видимой пользователю в момент ввода данных.
Текст метки можно установить с помощью метода setLabelText(), а способ отображения - с помощью метода setLabelFloating().
var labelText = PasswordBox.getLabelText();
PasswordBox.metadata¶
Метаданные типа PasswordBox.
Name | Type | Default | Description |
---|---|---|---|
LabelText | String |
– | Текст метки |
LabelFloating | Boolean |
false |
Является ли метка плавающей |
Autocomplete | Boolean |
true |
Автоподстановка сохраненных в браузере паролей |
{
"LabelText": "Password",
"LabelFloating": true,
"Value": {
"Source": "dataSource1",
"Property": "$.Password"
}
}
PasswordBox.setAutocomplete¶
Устанавливает значение, определяющее, будет ли срабатывать стандартная автоподстановка пароля.
PasswordBox.setAutocomplete(value)
Name | Type | Description |
---|---|---|
value |
Boolean |
Значение, определяющее, будет ли срабатывать стандартная автоподстановка пароля. |
Нет.
PasswordBox.getAutocomplete(false); //Отключить автозаполнение
PasswordBox.setLabelFloating¶
Устанавливает значение, определяющее, является ли метка плавающей.
В большинстве случаев вместе с редактором размещается текстовая метка, благодаря чему пользователь понимает какое значение он редактирует. Иногда подобные метки размещаются рядом с редактором, например, слева или сверху от редактора, иногда - внутри редактора в виде заполнителя (placeholder). Если метка размещается внутри редактора и остается видимой даже тогда, когда редактор получает фокус ввода и пользователь начинает вводить значение, она называется “плавающей”. Такое название связано с тем, что при получении фокуса ввода метка обычно перемещается в другую область рядом с редактором, чтобы оставаться видимой пользователю в момент ввода данных.
Текст метки можно установить с помощью метода setLabelText(), а способ отображения - с помощью метода setLabelFloating().
PasswordBox.setLabelFloating(value)
Name | Type | Description |
---|---|---|
value |
Boolean |
Значение, определяющее, является ли метка плавающей. Значение true означает, что метка является плавающей, значение false означает, что метка является фиксированной. |
PasswordBox.setLabelFloating('Label text');
PasswordBox.setLabelText¶
Устанавливает текст метки.
В большинстве случаев вместе с редактором размещается текстовая метка, благодаря чему пользователь понимает какое значение он редактирует. Иногда подобные метки размещаются рядом с редактором, например, слева или сверху от редактора, иногда - внутри редактора в виде заполнителя (placeholder). Если метка размещается внутри редактора и остается видимой даже тогда, когда редактор получает фокус ввода и пользователь начинает вводить значение, она называется “плавающей”. Такое название связано с тем, что при получении фокуса ввода метка обычно перемещается в другую область рядом с редактором, чтобы оставаться видимой пользователю в момент ввода данных.
Текст метки можно установить с помощью метода setLabelText(), а способ отображения - с помощью метода setLabelFloating().
PasswordBox.setLabelText('Label text');
PopupButton¶
Кнопка со всплывающим контейнером.
Syntax¶
new PopupButton([parent], [viewMode]])
PopupButton.metadata¶
Метаданные типа PopupButton.
Examples¶
{
"Text": "Delete",
"Items": [
{
"Button": {
"Text": "Delete rows"
}
},
{
"Button": {
"Text": "Delete columns"
}
},
{
"Button": {
"Text": "Delete cells"
}
},
{
"Button": {
"Text": "Delete table"
}
}
]
}
PopupButton.metadata¶
Метаданные типа PopupButton.
{
"Text": "Delete",
"Items": [
{
"Button": {
"Text": "Delete rows"
}
},
{
"Button": {
"Text": "Delete columns"
}
},
{
"Button": {
"Text": "Delete cells"
}
},
{
"Button": {
"Text": "Delete table"
}
}
]
}
RadioGroup¶
Список радиокнопок. Один из режимов отображения ListBox.
Syntax¶
new ListBox(parent, 'checking')
Methods¶
Нет
Events¶
Нет
RadioGroup.metadata¶
Метаданные типа RadioGroup.
Properties¶
Метаданные строятся по той же схеме, что и ListBox.metadata.
Examples¶
{
"RadioGroup": {
"ItemTemplate": {
"Label": {
"Value": {
"Source": "MainDataSource",
"Property": "$.Childrens.#.Name"
}
}
},
"Items": {
"Source": "MainDataSource",
"Property": "$.Childrens"
}
}
}
RadioGroup.metadata¶
Метаданные типа RadioGroup.
Метаданные строятся по той же схеме, что и ListBox.metadata.
{
"RadioGroup": {
"ItemTemplate": {
"Label": {
"Value": {
"Source": "MainDataSource",
"Property": "$.Childrens.#.Name"
}
}
},
"Items": {
"Source": "MainDataSource",
"Property": "$.Childrens"
}
}
}
ScrollPanel¶
Контейнер в виде прокручиваемой области. Для корректной работы параметр InfinniUI.config.enableAutoHeightService должен иметь значение true, либо нужно задать высоту панели самостоятельно с помощью стилей.
Description¶
Прокручиваемая область - контейнер визуальных элементов, который позволяет отображать содержимое в области, размер которой меньше размера содержимого. Когда содержимое контейнера не отображается полностью, отображаются полосы прокрутки, с помощью которых можно перемещать видимую область содержимого.
Syntax¶
new ScrollPanel(parent)
Methods¶
Name | Description |
---|---|
getHorizontalScroll | Возвращает видимость полосы прокрутки по горизонтали |
setHorizontalScroll | Устанавливает видимость полосы прокрутки по горизонтали |
getVerticalScroll | Возвращает видимость полосы прокрутки по вертикали |
setVerticalScroll | Устанавливает видимость полосы прокрутки по вертикали |
Events¶
Нет
ScrollPanel.metadata¶
Метаданные типа ScrollPanel.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
HorizontalScroll | ScrollVisibility | ‘Auto’ | Видимость полосы прокрутки по горизонтали |
VerticalScroll | ScrollVisibility | ‘Auto’ | Видимость полосы прокрутки по вертикали |
Examples¶
//infinni-ui-demo
{
"Items": [
//infinni-ui-display-begin
{
"ScrollPanel": {
"HorizontalScroll": "Hidden",
"VerticalScroll": "Visible",
"Items": [
{
"Label": {
"Value": "One"
}
},
{
"Label": {
"Value": "Two"
}
},
{
"Label": {
"Value": "Three"
}
}
]
}
}
//infinni-ui-display-end
]
}
See Also¶
ScrollPanel.getHorizontalScroll()¶
Возвращает видимость полосы прокрутки по горизонтали.
Syntax¶
scrollPanel.getHorizontalScroll()
Нет
Видимость полосы прокрутки по горизонтали.
Examples¶
var horizontalScroll = scrollPanel.getHorizontalScroll();
ScrollPanel.getVerticalScroll()¶
Возвращает видимость полосы прокрутки по вертикали.
Syntax¶
scrollPanel.getVerticalScroll()
Нет
Видимость полосы прокрутки по вертикали.
Examples¶
var verticalScroll = scrollPanel.getVerticalScroll();
ScrollPanel.metadata¶
Метаданные типа ScrollPanel.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
HorizontalScroll | ScrollVisibility | ‘Auto’ | Видимость полосы прокрутки по горизонтали |
VerticalScroll | ScrollVisibility | ‘Auto’ | Видимость полосы прокрутки по вертикали |
Examples¶
//infinni-ui-demo
{
"Items": [
//infinni-ui-display-begin
{
"ScrollPanel": {
"HorizontalScroll": "Hidden",
"VerticalScroll": "Visible",
"Items": [
{
"Label": {
"Value": "One"
}
},
{
"Label": {
"Value": "Two"
}
},
{
"Label": {
"Value": "Three"
}
}
]
}
}
//infinni-ui-display-end
]
}
ScrollPanel.setHorizontalScroll()¶
Устанавливает видимость полосы прокрутки по горизонтали.
Syntax¶
scrollPanel.setHorizontalScroll(value)
Name | Type | Description |
---|---|---|
value | ScrollVisibility | Видимость полосы прокрутки по горизонтали |
Метод ничего не возвращает.
Examples¶
scrollPanel.setHorizontalScroll(ScrollVisibility.auto);
ScrollPanel.setVerticalScroll()¶
Устанавливает видимость полосы прокрутки по вертикали.
Syntax¶
scrollPanel.setVerticalScroll(value)
Name | Type | Description |
---|---|---|
value | ScrollVisibility | Видимость полосы прокрутки по вертикали |
Метод ничего не возвращает.
Examples¶
scrollPanel.setVerticalScroll(ScrollVisibility.auto);
ScrollVisibility¶
Видимость полосы прокрутки в ScrollPanel.
Syntax¶
ScrollVisibility = {
auto: 'Auto',
visible: 'Visible',
hidden: 'Hidden'
}
Name | Description |
---|---|
auto | Полоса прокрутки видима, если контейнер не может отобразить все содержимое |
visible | Полоса прокрутки видима всегда, даже если контейнер может отобразить все содержимое |
hidden | Полоса прокрутки не видима, даже если контейнер не может отобразить все содержимое |
StackPanel¶
Контейнер в виде стека элементов.
Description¶
Стек - контейнер визуальных элементов, который позволяет располагать дочерние элементы друг за другом, в порядке их следования по горизонтали или вертикали. По умолчанию элементы располагаются вертикально. Изменить ориентацию стека элементов можно с помощью метода setOrientation.
Если ширина и высота всех дочерних элементов фиксирована, размеры
стека определяются с использованием следующих правил:
при горизонтальной ориентации высота стека равна высоте самого
высокого дочернего элемента, а ширина равна сумме широт всех дочерних
элементов;
при вертикальной ориентации высота стека равна сумме высот всех
дочерних элементов, а ширина равна ширине самого широкого дочернего
элемента.
При горизонтальной ориентации, если есть несколько дочерних элементов с нефиксированной шириной, все они будут иметь равную ширину, которая определяется, как результат деления свободного по ширине пространства стека и количества нефиксированных по ширине элементов. Свободное по ширине пространство равно разнице общей ширины стека и суммы широт всех фиксированных по ширине элементов. Высота элементов с нефиксированной высотой равна высоте стека.
При вертикальной ориентации, если есть несколько дочерних элементов с нефиксированной высотой, все они будут иметь равную высоту, которая определяется, как результата деления свободного по высоте пространства стека и количества нефиксированных по высоте элементов. Свободное по высоте пространство равно разнице общей высоты стека и суммы высот всех фиксированных по высоте элементов. Ширина элементов с нефиксированной широтой равна ширине стека.
Syntax¶
new StackPanel(parent, viewMode)
Parameters¶
Name | Type | Default | Description |
---|---|---|---|
parent | Element | – | Родительский элемент |
viewMode | String |
‘Base’ | Строка со значением режима отображения. Возможные значения: ‘Base’, ‘FormGroup’. Отличие ‘FormGroup’ от ‘Base’ в том, что между элементами добавляются отступы |
Methods¶
Name | Description |
---|---|
getOrientation | Возвращает ориентацию стека элементов |
setOrientation | Устанавливает ориентацию стека элементов |
Events¶
Нет
StackPanel.metadata¶
Метаданные типа StackPanel.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
ViewMode | String |
– | Режим отображения. Может принимать значения: ‘Base’, ‘FormGroup’. |
Orientation | StackPanelOrientation | ‘Vertical’ | Ориентация стека элементов |
Examples¶
//infinni-ui-demo
{
"Items": [
//infinni-ui-display-begin
{
"StackPanel": {
"ViewMode": "Base",
"Orientation": "Horizontal",
"Items": [
{
"Label": {
"Value": "One"
}
},
{
"Label": {
"Value": "Two"
}
},
{
"Label": {
"Value": "Three"
}
}
]
}
},
{
"StackPanel": {
"ViewMode": "FormGroup",
"Orientation": "Horizontal",
"Items": [
{
"Label": {
"Value": "One"
}
},
{
"Label": {
"Value": "Two"
}
},
{
"Label": {
"Value": "Three"
}
}
]
}
}
//infinni-ui-display-end
]
}
See Also¶
StackPanel.getOrientation()¶
Возвращает ориентацию стека элементов.
Examples¶
var orientation = stackPanel.getOrientation();
See Also¶
StackPanel.metadata¶
Метаданные типа StackPanel.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
ViewMode | String |
– | Режим отображения. Может принимать значения: ‘Base’, ‘FormGroup’. |
Orientation | StackPanelOrientation | ‘Vertical’ | Ориентация стека элементов |
Examples¶
//infinni-ui-demo
{
"Items": [
//infinni-ui-display-begin
{
"StackPanel": {
"ViewMode": "Base",
"Orientation": "Horizontal",
"Items": [
{
"Label": {
"Value": "One"
}
},
{
"Label": {
"Value": "Two"
}
},
{
"Label": {
"Value": "Three"
}
}
]
}
},
{
"StackPanel": {
"ViewMode": "FormGroup",
"Orientation": "Horizontal",
"Items": [
{
"Label": {
"Value": "One"
}
},
{
"Label": {
"Value": "Two"
}
},
{
"Label": {
"Value": "Three"
}
}
]
}
}
//infinni-ui-display-end
]
}
StackPanel.setOrientation()¶
Устанавливает ориентацию стека элементов.
Syntax¶
stackPanel.setOrientation(value)
Name | Type | Description |
---|---|---|
value | StackPanelOrientation | Ориентация стека элементов |
Метод ничего не возвращает.
Examples¶
stackPanel.setOrientation(InfinniUI.StackPanelOrientation.horizontal);
See Also¶
StackPanelOrientation¶
Ориентация StackPanel.
Syntax¶
StackPanelOrientation = {
horizontal: 'Horizontal',
vertical: 'Vertical'
}
Name | Description |
---|---|
horizontal | Стек ориентирован горизонтально |
vertical | Стек ориентирован вертикально |
See Also¶
TablePanel¶
Контейнер в виде таблицы.
Description¶
Таблица - контейнер визуальных
элементов, который делит свою рабочую область на строки и
столбцы, на пересечении которых располагаются ячейки.
Визуально сетка никак не отображается, однако задает правила
расположения дочерних элементов. Количество столбцов всегда фиксировано
и равно 12
, количество строк - неограничено. Ячейки располагаются
внутри строки, слева направо, строки следуют сверху вниз. Для каждой
ячейки можно задать размер - целое число
от 1
до 12
включительно, определяющее то, сколько колонок по
горизонтали будет занимать ячейка. Высота ячейки определяется высотой
самого высокого элемента, высота строки определяется высотой самой
высокой ячейки данной строки.
Syntax¶
new TablePanel(parent)
Methods¶
Нет
Events¶
Нет
TablePanel.metadata¶
Метаданные типа TablePanel.
Properties¶
Нет
Examples¶
//infinni-ui-demo
{
"Items": [
//infinni-ui-display-begin
{
"TablePanel": {
"Items": [
{
"Row": {
"Items": [
{
"Cell": {
"ColumnSpan": 5,
"Items": [
{
"Label": {
"Value": "Row 1, 5 columns"
}
}
]
}
},
{
"Cell": {
"ColumnSpan": 3,
"Items": [
{
"Label": {
"Value": "Row 1, 3 columns"
}
}
]
}
}
]
}
},
{
"Row": {
"Items": [
{
"Cell": {
"ColumnSpan": 2,
"Items": [
{
"Label": {
"Value": "Row 2, 2 columns"
}
}
]
}
},
{
"Cell": {
"ColumnSpan": 6,
"Items": [
{
"Label": {
"Value": "Row 2, 6 columns"
}
}
]
}
},
{
"Cell": {
"ColumnSpan": 4,
"Items": [
{
"Label": {
"Value": "Row 2, 4 columns"
}
}
]
}
}
]
}
}
]
}
}
//infinni-ui-display-end
]
}
See Also¶
TablePanel.metadata¶
Метаданные типа TablePanel.
Properties¶
Нет
Examples¶
//infinni-ui-demo
{
"Items": [
//infinni-ui-display-begin
{
"TablePanel": {
"Items": [
{
"Row": {
"Items": [
{
"Cell": {
"ColumnSpan": 5,
"Items": [
{
"Label": {
"Value": "Row 1, 5 columns"
}
}
]
}
},
{
"Cell": {
"ColumnSpan": 3,
"Items": [
{
"Label": {
"Value": "Row 1, 3 columns"
}
}
]
}
}
]
}
},
{
"Row": {
"Items": [
{
"Cell": {
"ColumnSpan": 2,
"Items": [
{
"Label": {
"Value": "Row 2, 2 columns"
}
}
]
}
},
{
"Cell": {
"ColumnSpan": 6,
"Items": [
{
"Label": {
"Value": "Row 2, 6 columns"
}
}
]
}
},
{
"Cell": {
"ColumnSpan": 4,
"Items": [
{
"Label": {
"Value": "Row 2, 4 columns"
}
}
]
}
}
]
}
}
]
}
}
//infinni-ui-display-end
]
}
Cell¶
Ячейка таблицы TablePanel или сетки GridPanel.
Description¶
Ширину ячейки можно определить с помощью метода
setColumnSpan. По умолчанию ширина равна
1
.
Methods¶
Name | Description |
---|---|
getColumnSpan | Возвращает размер ячейки в колонках |
setColumnSpan | Устанавливает размер ячейки в колонках |
Events¶
Нет
Cell.metadata¶
Метаданные типа Cell.
Name | Type | Default | Description |
---|---|---|---|
ColumnSpan | Integer |
1 | Размер ячейки |
{
"Cell": {
"ColumnSpan": 2,
"Items": [
{
"Label": {
"Value": "Cell text"
}
}
]
}
}
See Also¶
Возвращает размер ячейки в колонках.
cell.getColumnSpan()
Нет
Целое число, определяющее то, сколько колонок по горизонтали будет
занимать ячейка. Число должно быть в диапазоне от 1
до 12
включительно.
var columnSpan = cell.getColumnSpan();
Метаданные типа Cell.
Name | Type | Default | Description |
---|---|---|---|
ColumnSpan | Integer |
1 | Размер ячейки |
{
"Cell": {
"ColumnSpan": 2,
"Items": [
{
"Label": {
"Value": "Cell text"
}
}
]
}
}
Возвращает размер ячейки в колонках.
cell.setColumnSpan(value)
Name | Type | Description |
---|---|---|
value | Integer |
Целое число, определяющее то, сколько колонок по горизонтали будет занимать ячейка. Число должно быть в диапазоне от 1 до 12 включительно. |
Метод ничего не возвращает.
cell.setColumnSpan(2);
TabPanel¶
Контейнер в виде набора закладок.
Description¶
Панель закладок - контейнер визуальных элементов в виде прямоугольной области с набором закладок, которые позволяют переключаться между связанными с ними страницами. При переключении на какую-либо страницу, она занимает все пространство контейнера, перекрывая при этом все остальные страницы панели.
Methods¶
Name | Description |
---|---|
getHeaderLocation | Возвращает расположение закладок |
setHeaderLocation | Устанавливает расположение закладок |
getHeaderTemplate | Возвращает функцию шаблонизации закладок дочерних элементов панели |
setHeaderTemplate | Устанавливает функцию шаблонизации закладок дочерних элементов панели |
getSelectedItem | Возвращает выделенный дочерний элемент панели |
setSelectedItem | Устанавливает выделенный дочерний элемент панели |
Events¶
Name | Description |
---|---|
onSelectedItemChanged | Устанавливает обработчик события о том, что выделенный элемент изменился |
TabPanel.metadata¶
Метаданные типа TabPanel.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
HeaderLocation | TabHeaderLocation | ‘Top’ | Расположение закладок |
OnSelectedItemChanged | Script | – | Обработчик события о том, что выделенный элемент изменился |
Examples¶
//infinni-ui-demo
{
"Items": [
//infinni-ui-display-begin
{
"TabPanel": {
"HeaderLocation": "Top",
"OnSelectedItemChanged": "{ console.log(args.getText()); }",
"Items": [
{
"TabPage": {
"Text": "Page1",
"Items": [
{
"Label": {
"Value": "Content of Page1"
}
}
]
}
},
{
"TabPage": {
"Text": "Page2",
"Items": [
{
"Label": {
"Value": "Content of Page2"
}
}
]
}
}
]
}
}
//infinni-ui-display-end
]
}
See Also¶
TabHeaderLocation¶
Расположение закладок в TabPanel.
Syntax¶
TabHeaderLocation = {
none: 'None',
left: 'Left',
top: 'Top',
right: 'Right',
bottom: 'Bottom',
}
Name | Description |
---|---|
none | Закладки не отображаются |
left | Закладки отображаются слева |
top | Закладки отображаются сверху |
right | Закладки отображаются справа |
bottom | Закладки отображаются снизу |
See Also¶
TabPage¶
Страница панели закладок TabPanel.
Description¶
Страница панели закладок - контейнер визуальных элементов в виде прямоугольной области, отображаемой в рамках панели закладок. Дочерние элементы страницы располагаются внутри контейнера и визуально не могут выходить за его пределы.
Methods¶
Name | Description |
---|---|
getCanClose | Возвращает значение, определяющее, разрешено ли закрытие страницы |
setCanClose | Устанавливает значение, определяющее, разрешено ли закрытие страницы |
close | Закрывает страницу |
Events¶
Name | Description |
---|---|
onClosing | Устанавливает обработчик события о том, что страница закрывается |
onClosed | Устанавливает обработчик события о том, что страница была закрыта |
TabPage.metadata¶
Метаданные типа TabPage.
Name | Type | Default | Description |
---|---|---|---|
CanClose | Boolean |
false | Значение, определяющее, разрешено ли закрытие страницы |
OnClosing | Script | – | Обработчик события о том, что страница закрывается |
OnClosed | Script | – | Обработчик события о том, что страница была закрыта |
//infinni-ui-demo
{
"Items": [
{
"TabPanel": {
"Items": [
//infinni-ui-display-begin
{
"TabPage": {
"Text": "Page_1",
"OnClosed": "{ alert('Page_1 is closed!'); }",
"Items": [
{
"Label": {
"Value": "1"
}
},
{
"Label": {
"Value": "2"
}
},
{
"Label": {
"Value": "3"
}
}
]
}
},
{
"TabPage": {
"Text": "Page_2",
"OnClosed": "{ alert('Closed: Page_2'); }",
"Items": [
{
"Label": {
"Value": "A"
}
},
{
"Label": {
"Value": "B"
}
},
{
"Label": {
"Value": "C"
}
}
]
}
}
//infinni-ui-display-end
]
}
}
]
}
See Also¶
Закрывает страницу.
Вызов метода close() предпринимает попытку
закрытия страницы панели. Закрытие страницы означает, что она будет
удалена из панели. Метод close() предпринимает
попытку закрытия страницы, если метод
getCanClose() вернул true
. Если при
этом нет ни одного обработчика, подписанного на событие
onClosing, либо если все обработчики этого
события вернули значение, отличное от false
, страница будет закрыта.
Иначе вызов метода close() ни к чему не
приведет. Наконец, если все попытки закончились успехом и страница была
закрыта, будет вызвано событие onClosed, в
обработчике которого можно обработать факт закрытия страницы.
tabPage.close(success, error)
Name | Type | Description |
---|---|---|
success | Script | Обработчик события о том, что страница была закрыта |
error | Script | Обработчик события о том, что при закрытии страницы произошла ошибка |
Метод ничего не возвращает
tabPage.close();
Возвращает значение, определяющее, разрешено ли закрытие страницы.
Вызов метода close() предпринимает попытку
закрытия страницы панели. Закрытие страницы означает, что она будет
удалена из панели. Метод close() предпринимает
попытку закрытия страницы, если метод
getCanClose() вернул true
. Если при
этом нет ни одного обработчика, подписанного на событие
onClosing, либо если все обработчики этого
события вернули значение, отличное от false
, страница будет закрыта.
Иначе вызов метода close() ни к чему не
приведет. Наконец, если все попытки закончились успехом и страница была
закрыта, будет вызвано событие onClosed, в
обработчике которого можно обработать факт закрытия страницы.
tabPage.getCanClose()
Нет
Логическое значение, определяющее, разрешено ли закрытие страницы.
Значение true
означает, что закрытие страницы разрешено,
значение false
- запрещено.
var canClose = tabPage.getCanClose();
Метаданные типа TabPage.
Name | Type | Default | Description |
---|---|---|---|
CanClose | Boolean |
false | Значение, определяющее, разрешено ли закрытие страницы |
OnClosing | Script | – | Обработчик события о том, что страница закрывается |
OnClosed | Script | – | Обработчик события о том, что страница была закрыта |
//infinni-ui-demo
{
"Items": [
{
"TabPanel": {
"Items": [
//infinni-ui-display-begin
{
"TabPage": {
"Text": "Page_1",
"OnClosed": "{ alert('Page_1 is closed!'); }",
"Items": [
{
"Label": {
"Value": "1"
}
},
{
"Label": {
"Value": "2"
}
},
{
"Label": {
"Value": "3"
}
}
]
}
},
{
"TabPage": {
"Text": "Page_2",
"OnClosed": "{ alert('Closed: Page_2'); }",
"Items": [
{
"Label": {
"Value": "A"
}
},
{
"Label": {
"Value": "B"
}
},
{
"Label": {
"Value": "C"
}
}
]
}
}
//infinni-ui-display-end
]
}
}
]
}
Устанавливает обработчик события о том, что страница была закрыта.
Вызов метода close() предпринимает попытку
закрытия страницы панели. Закрытие страницы означает, что она будет
удалена из панели. Метод close() предпринимает
попытку закрытия страницы, если метод
getCanClose() вернул true
. Если при
этом нет ни одного обработчика, подписанного на событие
onClosing, либо если все обработчики этого
события вернули значение, отличное от false
, страница будет закрыта.
Иначе вызов метода close() ни к чему не
приведет. Наконец, если все попытки закончились успехом и страница была
закрыта, будет вызвано событие onClosed, в
обработчике которого можно обработать факт закрытия страницы.
tabPage.onClosed(callback)
Name | Type | Description |
---|---|---|
callback | Script | Обработчик события о том, что страница была закрыта |
Метод ничего не возвращает
tabPage.onClosed(
function(context, args) { alert('Page is closed!'); }
);
Устанавливает обработчик события о том, что страница закрывается.
Вызов метода close() предпринимает попытку
закрытия страницы панели. Закрытие страницы означает, что она будет
удалена из панели. Метод close() предпринимает
попытку закрытия страницы, если метод
getCanClose() вернул true
. Если при
этом нет ни одного обработчика, подписанного на событие
onClosing, либо если все обработчики этого
события вернули значение, отличное от false
, страница будет закрыта.
Иначе вызов метода close() ни к чему не
приведет. Наконец, если все попытки закончились успехом и страница была
закрыта, будет вызвано событие onClosed, в
обработчике которого можно обработать факт закрытия страницы.
tabPage.onClosing(callback)
Name | Type | Description |
---|---|---|
callback | Script | Обработчик события о том, что страница закрывается |
Метод ничего не возвращает
tabPage.onClosing(
function(context, args) { alert('Page is closing!'); }
);
Устанавливает значение, определяющее, разрешено ли закрытие страницы.
Вызов метода close() предпринимает попытку
закрытия страницы панели. Закрытие страницы означает, что она будет
удалена из панели. Метод close() предпринимает
попытку закрытия страницы, если метод
getCanClose() вернул true
. Если при
этом нет ни одного обработчика, подписанного на событие
onClosing, либо если все обработчики этого
события вернули значение, отличное от false
, страница будет закрыта.
Иначе вызов метода close() ни к чему не
приведет. Наконец, если все попытки закончились успехом и страница была
закрыта, будет вызвано событие onClosed, в
обработчике которого можно обработать факт закрытия страницы.
tabPage.setCanClose(value)
Name | Type | Description |
---|---|---|
value | Boolean |
Логическое значение, определяющее, разрешено ли закрытие страницы. Значение true означает, что закрытие страницы разрешено, значение false - запрещено |
Метод ничего не возвращает
tabPage.setCanClose(true);
TabPanel.getHeaderLocation()¶
Возвращает расположение закладок.
Examples¶
var headerLocation = tabPanel.getHeaderLocation();
See Also¶
TabPanel.getHeaderTemplate()¶
Возвращает функцию шаблонизации закладок дочерних элементов панели.
Description¶
Если функция шаблонизации закладок дочерних элементов панели определена, то она используется при изменении коллекции дочерних элементов панели - getItems().
Syntax¶
tabPanel.getHeaderTemplate()
Нет
Функция шаблонизации закладок дочерних
элементов панели. В параметре args
передается информация,
необходимая для формирования визуального
элемента, который будет отображен в
качестве закладки панели. Свойство args.value
содержит исходный
элемент. Результатом работы функции должен быть визуальный
элемент.
Examples¶
var headerTemplate = tabPanel.getHeaderTemplate();
TabPanel.getSelectedItem()¶
Возвращает выделенный дочерний элемент панели.
Description¶
В каждый момент времени пользователь может работать только с одной
страницей, которая соответствует выделенному дочернему
элементу панели. Метод
setSelectedItem() позволяет
программно выделить необходимый элемент. Выделяемый элемент должен
присутствовать в коллекции дочерних
элементов панели -
getItems().
Если соответствующая страница
заблокирована,
скрыта или не
найдена, выделение элемента завершится неудачей и метод
setSelectedItem() вернет значение
false
. При успешном выделении элемента данный метод вернет значение
true
. Изменение выделенного элемента приводит к возникновению
события onSelectedItemChanged.
Examples¶
var selectedItem = tabPanel.getSelectedItem();
TabPanel.metadata¶
Метаданные типа TabPanel.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
HeaderLocation | TabHeaderLocation | ‘Top’ | Расположение закладок |
OnSelectedItemChanged | Script | – | Обработчик события о том, что выделенный элемент изменился |
Examples¶
//infinni-ui-demo
{
"Items": [
//infinni-ui-display-begin
{
"TabPanel": {
"HeaderLocation": "Top",
"OnSelectedItemChanged": "{ console.log(args.getText()); }",
"Items": [
{
"TabPage": {
"Text": "Page1",
"Items": [
{
"Label": {
"Value": "Content of Page1"
}
}
]
}
},
{
"TabPage": {
"Text": "Page2",
"Items": [
{
"Label": {
"Value": "Content of Page2"
}
}
]
}
}
]
}
}
//infinni-ui-display-end
]
}
TabPanel.onSelectedItemChanged¶
Устанавливает обработчик события о том, что выделенный элемент изменился.
Description¶
В каждый момент времени пользователь может работать только с одной
страницей, которая соответствует выделенному дочернему
элементу панели. Метод
setSelectedItem() позволяет
программно выделить необходимый элемент. Выделяемый элемент должен
присутствовать в коллекции дочерних
элементов панели -
getItems().
Если соответствующая страница
заблокирована,
скрыта или не
найдена, выделение элемента завершится неудачей и метод
setSelectedItem() вернет значение
false
. При успешном выделении элемента данный метод вернет значение
true
. Изменение выделенного элемента приводит к возникновению
события onSelectedItemChanged.
Syntax¶
tabPanel.onSelectedItemChanged(callback)
Name | Type | Description |
---|---|---|
callback | Script | Обработчик события о том, что выделенный элемент изменился |
Метод ничего не возвращает
Examples¶
var tabPanel = new TabPanel();
var tabPage1 = new TabPage();
var tabPage2 = new TabPage();
tabPanel.getItems().add(tabPage1);
tabPanel.getItems().add(tabPage2);
tabPanel.setSelectedItem(tabPage1);
tabPanel.onSelectedItemChanged(
function(context, args) { alert('Item is selected!'); }
);
tabPanel.setSelectedItem(tabPage2);
TabPanel.setHeaderLocation()¶
Устанавливает расположение закладок.
Syntax¶
tabPanel.setHeaderLocation(value)
Name | Type | Description |
---|---|---|
value | TabHeaderLocation | Расположение закладок |
Метод ничего не возвращает.
Examples¶
tabPanel.setHeaderLocation(TabHeaderLocation.top);
See Also¶
TabPanel.setHeaderTemplate()¶
Устанавливает функцию шаблонизации закладок дочерних элементов панели.
Description¶
Если функция шаблонизации закладок дочерних элементов панели определена, то она используется при изменении коллекции дочерних элементов панели - getItems().
Syntax¶
tabPanel.setHeaderTemplate(value)
Name | Type | Description |
---|---|---|
value | Script | Функция шаблонизации закладок дочерних элементов панели. В параметре args передается информация, необходимая для формирования визуального элемента, который будет отображен в качестве закладки панели. Свойство args.value содержит исходный элемент. Результатом работы функции должен быть визуальный элемент |
Метод ничего не возвращает.
Examples¶
tabPanel.setHeaderTemplate(function(context, argument) {
var header = new Label();
header.setValue(argument.value);
return header;
});
tabPanel.setItemTemplate(function(context, argument) {
var tabPage = new TabPage();
var content = new Label();
content.setValue(argument.value);
tabPage.getItems().add(content);
return tabPage;
});
tabPanel.getItems().reset([
'One',
'Two',
'Three'
]);
TabPanel.setSelectedItem()¶
Возвращает выделенный дочерний элемент панели.
Description¶
В каждый момент времени пользователь может работать только с одной
страницей, которая соответствует выделенному дочернему
элементу панели. Метод
setSelectedItem() позволяет
программно выделить необходимый элемент. Выделяемый элемент должен
присутствовать в коллекции дочерних
элементов панели -
getItems().
Если соответствующая страница
заблокирована,
скрыта или не
найдена, выделение элемента завершится неудачей и метод
setSelectedItem() вернет значение
false
. При успешном выделении элемента данный метод вернет значение
true
. Изменение выделенного элемента приводит к возникновению
события onSelectedItemChanged.
Syntax¶
tabPanel.setSelectedItem(value)
Name | Type | Description |
---|---|---|
value | TabPage | Дочерний элемент панели, который необходимо выделить |
Логическое значение, определяющее успешность выделения дочернего
элемента панели. Значение false
говорит о том, элемент не был
выделен, значение true
- элемент успешно выделен.
Examples¶
var tabPanel = new TabPanel();
var tabPage1 = new TabPage();
var tabPage2 = new TabPage();
tabPanel.getItems().add(tabPage1);
tabPanel.getItems().add(tabPage2);
tabPanel.setSelectedItem(tabPage1);
TextBox¶
Редактор неформатированного текста.
Extends¶
Methods¶
Name | Description |
---|---|
getMultiline | Возвращает значение, определяющее, разрешен ли многострочный текст. |
setMultiline | Устанавливает значение, определяющее, разрешен ли многострочный текст. |
getLineCount | Возвращает максимально видимое количество строк. |
setLineCount | Устанавливает максимально видимое количество строк. |
TextBox.metadata¶
Метаданные типа TextBox.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
Multiline |
Boolean |
false |
Разрешен ли многострочный текст |
LineCount |
Integer |
– | Максимально видимое количество строк |
Examples¶
{
"LabelText": "Description",
"LabelFloating": true,
"Multiline": true,
"LineCount": 5,
"Value": {
"Source": "dataSource1",
"Property": "$.Description"
}
}
TextBox.getLineCount¶
Возвращает максимально видимое количество строк.
textbox.getLineCount()
Нет
Возвращает максимально видимое количество строк.
var lineCount = textbox.getLineCount();
TextBox.getMultiline¶
Возвращает значение, определяющее, разрешен ли многострочный текст.
textbox.getMultiline()
Нет
Значение, определяющее, разрешен ли многострочный текст.
var isTextArea = textbox.getMultiline();
TextBox.metadata¶
Метаданные типа TextBox.
Name | Type | Default | Description |
---|---|---|---|
Multiline |
Boolean |
false |
Разрешен ли многострочный текст |
LineCount |
Integer |
– | Максимально видимое количество строк |
{
"LabelText": "Description",
"LabelFloating": true,
"Multiline": true,
"LineCount": 5,
"Value": {
"Source": "dataSource1",
"Property": "$.Description"
}
}
TextBox.setLineCount¶
Устанавливает максимально видимое количество строк.
textbox.setLineCount(lineCount)
Name | Type | Default | Description |
---|---|---|---|
lineCount | Integer |
Максимально видимое количество строк |
Нет
textbox.setLineCount(10);
TextBox.setMultiLine¶
Устанавливает значение, определяющее, разрешен ли многострочный текст.
textbox.setMultiline(value)
Name | Type | Description |
---|---|---|
value |
Boolean |
Значение, определяющее, разрешен ли многострочный текст. |
Нет
//js-demo
var textarea = new InfinniUI.TextBox();
textarea.setMultiline(true);
textarea.setLineCount(4);
textarea.setLabelText('textarea');
$elementForExample.append(textarea.render());
TextEditorBase¶
Базовый тип редакторов текстовых значений.
Extends¶
Syntax¶
new TextEditorBase(parent)
Methods¶
Name | Description |
---|---|
getLabelText | Возвращает текст метки. |
setLabelText | Устанавливает текст метки. |
getLabelTextTitle | Возвращает значение, которое показывает, копируется текст метки в атрибут title или нет. |
setLabelTextTitle | Устанавливает значение, которое показывает, копируется текст метки в атрибут title или нет. |
getLabelFloating | Возвращает значение, определяющее, является ли метка плавающей. |
setLabelFloating | Устанавливает значение, определяющее, является ли метка плавающей. |
getDisplayFormat | Возвращает функцию форматирования значения для отображения. |
setDisplayFormat | Устанавливает функцию форматирования значения для отображения. |
getEditMask | Возвращает маску ввода данных. |
setEditMask | Устанавливает маску ввода данных. |
TextEditorBase.metadata¶
Метаданные типа TextEditorBase.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
LabelText |
String (ƒ) |
– | Текст метки |
LabelTextTitle |
Boolean |
false |
Копирование LabelText в атрибут title |
LabelFloating |
Boolean |
false |
Является ли метка плавающей |
DisplayFormat |
String |
– | Формат отображения значения |
EditMask |
EditMask | – | Маска ввода значения |
(ƒ) Свойство может быть задано, как JSExpression.
Examples¶
{
"LabelText": "Birthday",
"LabelTextTitle": true,
"LabelFloating": true,
"DisplayFormat": ":d",
"EditMask": {
"DateTimeEditMask": {
"Mask": "d"
}
}
}
TextEditorBase.getDisplayFormat¶
Возвращает функцию форматирования значения для отображения.
В некоторых ситуациях для представления данных пользователю требуется их предварительная обработка. Метод setDisplayFormat() позволяет установить функцию форматирования значения редактора. Результат работы этой функции используется в качестве отображаемого значения.
TextEditorBase.getDisplayFormat()
var displayFormat = TextEditorBase.getDisplayFormat();
TextEditorBase.getEditMask¶
Возвращает маску ввода данных.
var editMask = TextEditorBase.getEditMask();
TextEditorBase.getLabelFloating¶
Устанавливает значение, определяющее, является ли метка плавающей.
В большинстве случаев вместе с редактором размещается текстовая метка, благодаря чему пользователь понимает какое значение он редактирует. Иногда подобные метки размещаются рядом с редактором, например, слева или сверху от редактора, иногда - внутри редактора в виде заполнителя (placeholder). Если метка размещается внутри редактора и остается видимой даже тогда, когда редактор получает фокус ввода и пользователь начинает вводить значение, она называется “плавающей”. Такое название связано с тем, что при получении фокуса ввода метка обычно перемещается в другую область рядом с редактором, чтобы оставаться видимой пользователю в момент ввода данных.
Текст метки можно установить с помощью метода setLabelText(), а способ отображения - с помощью метода setLabelFloating().
TextEditorBase.getLabelFloating()
Значение, определяющее, является ли метка плавающей. Значение true
означает, что метка является плавающей, значение false
означает, что
метка является фиксированной.
var isFloating = TextEditorBase.getLabelFloating();
TextEditorBase.getLabelText¶
Возвращает текст метки.
В большинстве случаев вместе с редактором размещается текстовая метка, благодаря чему пользователь понимает какое значение он редактирует. Иногда подобные метки размещаются рядом с редактором, например, слева или сверху от редактора, иногда - внутри редактора в виде заполнителя (placeholder). Если метка размещается внутри редактора и остается видимой даже тогда, когда редактор получает фокус ввода и пользователь начинает вводить значение, она называется “плавающей”. Такое название связано с тем, что при получении фокуса ввода метка обычно перемещается в другую область рядом с редактором, чтобы оставаться видимой пользователю в момент ввода данных.
Текст метки можно установить с помощью метода setLabelText(), а способ отображения - с помощью метода setLabelFloating().
var labelText = TextEditorBase.getLabelText();
TextEditorBase.getLabelText¶
Возвращает значение, которое показывает, копировать метку в атрибут title или нет.
TextEditorBase.getLabelTextTitle()
Значение, которое показывает, копировать метку в атрибут title или нет.
var labelText = TextEditorBase.getLabelTextTitle();
TextEditorBase.metadata¶
Метаданные типа TextEditorBase.
Name | Type | Default | Description |
---|---|---|---|
LabelText |
String (ƒ) |
– | Текст метки |
LabelTextTitle |
Boolean |
false |
Копирование LabelText в атрибут title |
LabelFloating |
Boolean |
false |
Является ли метка плавающей |
DisplayFormat |
String |
– | Формат отображения значения |
EditMask |
EditMask | – | Маска ввода значения |
(ƒ) Свойство может быть задано, как JSExpression.
{
"LabelText": "Birthday",
"LabelTextTitle": true,
"LabelFloating": true,
"DisplayFormat": ":d",
"EditMask": {
"DateTimeEditMask": {
"Mask": "d"
}
}
}
TextEditorBase.setDisplayFormat¶
Устанавливает функцию форматирования значения для отображения.
В некоторых ситуациях для представления данных пользователю требуется их предварительная обработка. Метод setDisplayFormat() позволяет установить функцию форматирования значения редактора. Результат работы этой функции используется в качестве отображаемого значения.
TextEditorBase.setDisplayFormat(value)
TextEditorBase.setDisplayFormat(
function(context, argument) {
return localized.dateTimeFormatInfo.format("g", argument.value);
}
);
TextEditorBase.setEditMask¶
Устанавливает маску ввода данных.
TextEditorBase.setEditMask(value)
var editMask = new NumberEditMask('n2');
TextEditorBase.setEditMask(editMask);
TextEditorBase.setLabelFloating¶
Устанавливает значение, определяющее, является ли метка плавающей.
В большинстве случаев вместе с редактором размещается текстовая метка, благодаря чему пользователь понимает какое значение он редактирует. Иногда подобные метки размещаются рядом с редактором, например, слева или сверху от редактора, иногда - внутри редактора в виде заполнителя (placeholder). Если метка размещается внутри редактора и остается видимой даже тогда, когда редактор получает фокус ввода и пользователь начинает вводить значение, она называется “плавающей”. Такое название связано с тем, что при получении фокуса ввода метка обычно перемещается в другую область рядом с редактором, чтобы оставаться видимой пользователю в момент ввода данных.
Текст метки можно установить с помощью метода setLabelText(), а способ отображения - с помощью метода setLabelFloating().
TextEditorBase.setLabelFloating(value)
Name | Type | Description |
---|---|---|
value |
Boolean |
Значение, определяющее, является ли метка плавающей. Значение true означает, что метка является плавающей, значение false означает, что метка является фиксированной. |
TextEditorBase.setLabelFloating(true);
TextEditorBase.setLabelText¶
Устанавливает текст метки.
В большинстве случаев вместе с редактором размещается текстовая метка, благодаря чему пользователь понимает какое значение он редактирует. Иногда подобные метки размещаются рядом с редактором, например, слева или сверху от редактора, иногда - внутри редактора в виде заполнителя (placeholder). Если метка размещается внутри редактора и остается видимой даже тогда, когда редактор получает фокус ввода и пользователь начинает вводить значение, она называется “плавающей”. Такое название связано с тем, что при получении фокуса ввода метка обычно перемещается в другую область рядом с редактором, чтобы оставаться видимой пользователю в момент ввода данных.
Текст метки можно установить с помощью метода setLabelText(), а способ отображения - с помощью метода setLabelFloating().
TextEditorBase.setLabelText(value)
Name | Type | Description |
---|---|---|
value |
String |
Текст метки. |
TextEditorBase.setLabelText('Label text');
TextEditorBase.setLabelTextTitle¶
Копирует текст метки в атрибут title для отображение браузерных всплывающих сообщений
TextEditorBase.setLabelTextTitle(value)
Name | Type | Description |
---|---|---|
value |
Boolean |
Копировать или нет метку в атрибут. |
TextEditorBase.setLabelTextTitle(true);
TimePicker¶
Редактор времени. Значением данного элемента всегдя является UNIX time - количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года.
Extends¶
Syntax¶
new TimePicker(parent)
Examples¶
//js-demo
// Format
var timeZone = 0;
var format = new InfinniUI.DateTimeFormat("t");
format.setOptions({TimeZone: timeZone});
var displayFormat = function (context, args) {
return format.formatValue(args.value);
}
// EditMask
var editMask = new InfinniUI.DateTimeEditMask();
editMask.mask = "t";
editMask.format = format;
// DateTimePicker
var minValue = InfinniUI.DateUtils.parseTimeISO8601toDate("09:00");
var maxValue = InfinniUI.DateUtils.parseTimeISO8601toDate("18:00");
var timePicker = new InfinniUI.TimePicker();
timePicker.setDisplayFormat(displayFormat);
timePicker.setEditMask(editMask);
timePicker.setMinValue(minValue); // Set maximum value "09:00"
timePicker.setMaxValue(maxValue); // Set maximum value "18:00"
timePicker.onValueChanged(function (context, args) {
timePicker.setHintText("New Value: " + args.newValue);
timePicker.setErrorText("Min Value: " + timePicker.getMinValue());
timePicker.setWarningText("Max Value: " + timePicker.getMaxValue());
});
// Render
$elementForExample.append(timePicker.render());
See Also¶
ToggleButton¶
Переключатель в виде кнопки.
Extends¶
Syntax¶
new ToggleButton([parent])
Methods¶
Name | Description |
---|---|
getTextOn | Возвращает текст на включенное состояние. |
setTextOn | Устанавливает текст на включенное состояние. |
getTextOff | Возвращает текст на выключенное состояние. |
setTextOff | Устанавливает текст на выключенное состояние. |
ToggleButton.metadata¶
Метаданные типа ToggleButton.
Properties¶
Name | Type | Default | Description |
---|---|---|---|
TextOn | String |
‘ON’ | Текст на включенное состояние. |
TextOff | String |
‘OFF’ | Текст на выключенное состояние. |
Examples¶
{
"Text": "Subscribe",
"TextOn": "yes",
"TextOff": "no",
"Value": {
"Source": "dataSource1",
"Property": "$.IsSubscribe"
}
}
//js-demo
var metadata = {
ToggleButton: {
"Text": "Subscribe",
"TextOn": "yes",
"TextOff": "no"
}
};
var builder = new InfinniUI.ApplicationBuilder();
var toggle = builder.build(metadata);
// Render
$elementForExample.append(toggle.render());
ToggleButton.getTextOff¶
Возвращает текст на выключенное состояние.
var text = toggleButton.getTextOff();
ToggleButton.getTextOn¶
Возвращает текст на включенное состояние.
var text = toggleButton.getTextOn();
ToggleButton.metadata¶
Метаданные типа ToggleButton.
Name | Type | Default | Description |
---|---|---|---|
TextOn | String |
‘ON’ | Текст на включенное состояние. |
TextOff | String |
‘OFF’ | Текст на выключенное состояние. |
{
"Text": "Subscribe",
"TextOn": "yes",
"TextOff": "no",
"Value": {
"Source": "dataSource1",
"Property": "$.IsSubscribe"
}
}
//js-demo
var metadata = {
ToggleButton: {
"Text": "Subscribe",
"TextOn": "yes",
"TextOff": "no"
}
};
var builder = new InfinniUI.ApplicationBuilder();
var toggle = builder.build(metadata);
// Render
$elementForExample.append(toggle.render());
ToolBar¶
Панель инструментов.
TreeView¶
Иерархический список.
Extends¶
Methods¶
Name | Description |
---|---|
getKeySelector | Возвращает функцию выборки из элемента коллекции идентификатора. |
setKeySelector | Устанавливает функцию выборки из элемента коллекции идентификатора. |
getParentSelector | Возвращает функцию выборки из элемента коллекции идентификатора родителя. |
setParentSelector | Устанавливает функцию выборки из элемента коллекции идентификатора родителя. |
TreeView.metadata¶
Метаданные типа TreeView.
Properties¶
Name | Type | Description |
---|---|---|
KeySelector | Script | Функция выборки из элемента коллекции идентификатора. |
KeyProperty | String |
Свойство элемента коллекции с идентификатором. |
ParentSelector | Script | Функция выборки из элемента коллекции идентификатора родителя. |
ParentProperty | String |
Свойство элемента коллекции с идентификатором родителя. |
OnExpand | Script | Устанавливает обработчик события раскрытия элемента. |
OnCollapse | Script | Устанавливает обработчик события скрытия элемента. |
Examples¶
{
"TreeView": {
{
"KeyProperty": "Id",
"ParentProperty": "ParentId",
"ItemProperty": "DisplayName",
"Items": {
"Source": "dataSource1"
}
}
}
}
{
"TreeView": {
{
"KeyProperty": "Id",
"ParentProperty": "ParentId",
"ItemProperty": "DisplayName",
"Items": {
"Source": "dataSource1"
},
"OnExpand": "{ console.log( 'This item is expanded: ', args.item ); }",
"OnCollapse": "{ console.log( 'This item is collapsed: ', args.item ); }"
}
}
}
TreeView.getKeySelector¶
Возвращает функцию выборки из элемента коллекции идентификатора.
var selector = treeview.getKeySelector();
TreeView.getParentSelector¶
Возвращает функцию выборки из элемента коллекции идентификатора родителя.
var selector = treeview.getParentSelector();
TreeView.metadata¶
Метаданные типа TreeView.
Name | Type | Description |
---|---|---|
KeySelector | Script | Функция выборки из элемента коллекции идентификатора. |
KeyProperty | String |
Свойство элемента коллекции с идентификатором. |
ParentSelector | Script | Функция выборки из элемента коллекции идентификатора родителя. |
ParentProperty | String |
Свойство элемента коллекции с идентификатором родителя. |
OnExpand | Script | Устанавливает обработчик события раскрытия элемента. |
OnCollapse | Script | Устанавливает обработчик события скрытия элемента. |
{
"TreeView": {
{
"KeyProperty": "Id",
"ParentProperty": "ParentId",
"ItemProperty": "DisplayName",
"Items": {
"Source": "dataSource1"
}
}
}
}
{
"TreeView": {
{
"KeyProperty": "Id",
"ParentProperty": "ParentId",
"ItemProperty": "DisplayName",
"Items": {
"Source": "dataSource1"
},
"OnExpand": "{ console.log( 'This item is expanded: ', args.item ); }",
"OnCollapse": "{ console.log( 'This item is collapsed: ', args.item ); }"
}
}
}
TreeView.setKeySelector¶
Устанавливает функцию выборки из элемента коллекции идентификатора.
TreeView.setKeySelector(value)
Name | Type | Description |
---|---|---|
value |
Script | Функция выборки из элемента коллекции идентификатора. |
Нет.
var keySelector = function (context, args) {
return args.value ? args.value['Id'] : null;
}
treeview.setKeySelector(keySelector);
TreeView.setParentSelector¶
Устанавливает функцию выборки из элемента коллекции идентификатора родителя.
TreeView.setParentSelector(value)
Name | Type | Description |
---|---|---|
value |
Script | Функция выборки из элемента коллекции идентификатора родителя. |
Нет.
var parentSelector = function (context, args) {
return args.value ? args.value['parentId'] : null;
}
treeview.setParentSelector(parentSelector);
ViewPanel¶
Контейнер для отображения представления.
Syntax¶
new ViewPanel(parent)
Methods¶
Name | Description |
---|---|
getLayout | Возвращает представление, которое отображается внутри ViewPanel. |
setLayout | Устанавливает представление, которое нужно отображать внутри ViewPanel. |
Events¶
Нет
ViewPanel.metadata¶
Метаданные типа ViewPanel.
Properties¶
Name | Type | Description |
---|---|---|
LinkView | LinkView | Объект, который создает и настраивает представление, отображаемое внутри ViewPanel |
Examples¶
{
"ViewPanel": {
"LinkView": {
"AutoView": {
"Path": "/view/patients/listView.json"
}
}
}
}
ViewPanel.getLayout()¶
Возвращает представление, которое отображается внутри ViewPanel.
viewPanel.getLayout()
Нет.
Представление, которое отображается внутри ViewPanel.
var layout = viewPanel.getLayout();
ViewPanel.metadata¶
Метаданные типа ViewPanel.
Name | Type | Description |
---|---|---|
LinkView | LinkView | Объект, который создает и настраивает представление, отображаемое внутри ViewPanel |
{
"ViewPanel": {
"LinkView": {
"AutoView": {
"Path": "/view/patients/listView.json"
}
}
}
}
ViewPanel.setLayout()¶
Устанавливает представление, которое нужно отображать внутри ViewPanel.
viewPanel.setLayout(value)
Name | Type | Description |
---|---|---|
value | View | Представление, которое нужно отображать внутри ViewPanel |
Метод не возвращает значений.
var countingRhyme = new View();
countingRhyme.setItemTemplate(function(context, args){
var label = new Label();
label.setValue(args.item.text);
return label;
});
countingRhyme.getProperty('items').reset( [
{text: "One, two. How are you? "},
{text: "Three, four. Who's at the door? "},
{text: "Five, six. My name is Fix."},
{text: "Seven, eght. Sorry, I'm late."},
{text: "Nine, ten. Say it again."}
] );
viewPanel.setLayout(countingRhyme);