Опции свойства
При объявлении свойства в инструкции = в конце объявления может указываться некоторый набор опций свойства.
Синтаксис
Опции перечесляются друг за другом в произвольном порядке через пробел или переводы строк:
propertyOption1 ... propertyOptionN
Поддерживается следующий набор опций (синтаксис каждой опции указывается в отдельной строке):
IN groupName
viewType
ON eventType { actionOperator }
CHANGEKEY key [SHOW | HIDE]
CHANGEMOUSE key [SHOW | HIDE]
STICKY | NOSTICKY
syncType
MATERIALIZED
TABLE tableName
INDEXED [LIKE | MATCH]
NONULL [DELETE] eventClause
AUTOSET
CHARWIDTH width [FLEX | NOFLEX]
PATTERN patternExpr
REGEXP rexpr [message]
ECHO
DEFAULTCOMPARE [compare]
EVENTID eventId
LAZY [WEAK | STRONG]
imageSetting
annotationSetting
Описание и параметры
-
IN groupNameУказание группы свойств и действий, которой принадлежит свойство. Если опция не указывается, то свойство по умолчанию будет принадлежать группе
System.private.-
groupNameИмя группы. Составной идентификатор.
-
-
MATERIALIZEDКлючевое слово, помечающее свойство как материализованное. Такие свойства будут храниться в полях таблицы базы данных.
-
TABLE tableNameУказание таблицы, в которой будет храниться свойство. Количество ключей таблицы должно совпадать с количеством аргументов свойства, и классы аргументов должны подходить к классам ключей таблицы. Если таблица не задана, свойство автоматически будет помещено в "ближайшую" существующую в системе таблицу.
-
tableNameИмя таблицы. Составной идентификатор.
-
-
INDEXEDКлючевое слово, указание которого создает индекс по этому свойству. Аналогично использованию инструкции
INDEX.-
LIKEКлючевое слово, указание которого создает кроме обычного индекса дополнительно GIN индекс.
-
MATCHКлючевое слово, указание которого создает кроме обычного индекса ещё два: GIN индекс и GIN индекс с to_tsvector.
-
-
NONULL [DELETE] eventClauseДобавление ограничения определенности. Если это ограничение в результате каких-то изменений для некоторых объектов нарушается, то будет либо показано соответствующее сообщение, либо при указании
DELETEтакие объекты будут удалены.-
DELETEКлючевое слово, при указании которого в случае, если свойство становится равным
NULL, будут удалены объекты, которые являются в данном случае аргументами свойства. -
eventClauseБлок описания типа события. Описывает событие по которому будет выполняться проверка свойства на
NULL.
-
Блок интерактивного представления
-
viewTypeУказание типа представления свойства при добавлении на форму.
GRID- колонка таблицыTOOLBAR- тулбарPANEL- панель
По действию аналогично указанию опции
viewTypeв блоке свойств инструкцииFORM. Соответственно если эта опция не указана ни в опциях свойств, ни в блоке свойств непосредственно на форме, используется тип представления по умолчанию для группы отображения, добавляемого на форму свойства. -
ON eventType { actionOperator }Указание действия, которое будет обработкой по умолчанию некоторого события формы всех интерактивных представлений этого свойства. Могут быть переопределены в блоке свойств инструкции
FORM.-
eventTypeТип события формы. Задается одним из следующих вариантов:
CHANGE- происходит при попытке изменения значения свойства.CHANGEWYS- происходит при попытке изменении значения свойства с помощью специального механизма ввода.GROUPCHANGE- происходит при попытке изменения значения свойства для всех объектов в таблице (групповое редактирование).EDIT- происходит при попытке редактировать объект, который является значением этого свойства.CONTEXTMENU [caption]- пользователь выбрал в контекстном меню свойства на форме заданный пункт. Также при необходимости можно задать заголовокcaptionэтого пункта меню (строковый литерал). Если этого не сделать, то, по умолчанию, он будет равен заголовку действия.
-
actionOperatorКонтекстно-зависимый оператор-действие. Оператор, описывающий выполняемое по событию действие. В качестве параметров оператора можно использовать параметры самого свойства.
-
-
imageSettingНастройка иконки, которая будет отображаться для свойства. Эта опция позволяет настроить отображение иконки вручную. Может иметь один из двух видов:
-
IMAGE [imageLiteral]Указание иконки, которая будет отображаться в качестве иконки свойства. Если
imageLiteralне указывается, то происходит переключение в режим автоматической установки иконки.-
imageLiteralСтроковый литерал, значение которого определяет иконку.
-
-
NOIMAGEКлючевое слово, указывающее на то, что иконка свойства должна отсутствовать.
-
-
annotationSettingАннотация свойства. Начинается с @@. Поддерживаются следующие аннотации:
-
@@deprecated -
@@deprecated(since) -
@@deprecated(since,message)Пометка свойства как устаревшего и не рекомендованного для использования. Плагин показывает использование таких свойств перечёркнутым.
-
sinceСтроковый литерал, версия платформы, начиная с которой свойство считается устаревшим.
-
messageСтроковый литерал, сообщение, поясняющее, почему свойство помечено устаревшим.
-
-
Блок значений по умолчанию инструкции DESIGN
-
CHARWIDTH width [FLEX | NOFLEX]Указание количества символов значения свойства, которые должны быть видны пользователю. Устанавливает значение для дизайна по умолчанию, может быть переопределено в инструкции
DESIGN.-
widthКоличество символов. Целочисленный литерал.
-
FLEXКлючевое слово. Если указано, коэффициент расширения значения свойства автоматически устанавливается равным его базовому размеру.
-
NOFLEXКлючевое слово. Если указано, коэффициент расширения значения свойства автоматически устанавливается равным нулю.
-
-
PATTERN patternExprУказание шаблона форматирования значения свойства. Синтаксис задания шаблона аналогичен синтаксису DecimalFormat либо SimpleDateFormat в зависимости от типа значения.
-
patternExprВыражение, значение которого задает шаблон форматирования.
-
-
REGEXP rexpr [message]Указание регулярного выражения, которому должно соответствовать значение свойства после редактирования. Устанавливает значение для дизайна по умолчанию, может быть переопределено в инструкции
DESIGN.-
rexprСтроковый литерал, описывающий регулярное выражение. Правила задания аналогичны принятым в языке Java.
-
messageСтроковый литерал, описывающий сообщение, которое будет показано пользователю в случае, если он введет значение, не соответствующее регулярному выражению. Если не указывается, то будет показано сообщение по умолчанию.
-
-
ECHOКлючевое слово, указание которого приведет к отображению символов звездочки
*вместо значения свойства. Используется, например, для паролей. Может быть переопределено в инструкцииDESIGN. -
CHANGEKEY key [SHOW | HIDE]Указание комбинации клавиш, при нажатии которой будет начато редактирование свойства. Устанавливает значение для дизайна по умолчанию, может быть переопределено в инструкции
DESIGN.key
Строковый литерал, описывающий комбинацию клавиш. Синтаксис:
keyStroke [;(modeKey=modeValue;)*]-
keyStrokeСтроковое представление комбинации клавиш. Принцип задания аналогичен способу задания параметра в методе Java-класса Keystroke.getKeystroke(String). -
(modeKey=modeValue;)*Опции, задающие условия выполнения дляkeyStroke. Поддерживаются следующие опции:-
priority = priorityValueПриоритет, целочисленное значение. Если несколько свойств имеют подходящий под условияCHANGEKEY, выполнится тот, у которого приоритет будет выше. Если приоритет не задан, он равняется порядковому номеру свойства на форме. Кроме того, в любом случае к значению приоритета добавляется 1000, если совпадает группа объектов. -
preview = previewValueВсе события проверяются на выполнение дважды: сначала с isPreview=true, потом - с isPreview=false. Поддерживаемые значенияpreviewValue:AUTO,ONLY-> isPreviewNO-> !isPreviewALL-> true
-
dialog = dialogValueПроверка, выполнять лиCHANGEKEYв диалоговом окне. Поддерживаемые значенияdialogValue:AUTO,ALL-> trueONLY-> isDialogNO-> !isDialog
-
window = windowValueПроверка, выполнять лиCHANGEKEYв модальном окне. Поддерживаемые значенияwindowValue:AUTO,ALL-> trueONLY-> isWindowNO-> !isWindow
-
group = groupValueПроверка, совпадает ли группа объектов. Поддерживаемые значенияgroupValue:AUTO,ALL-> trueONLY-> equalGroupNO-> !equalGroup
-
editing = editingValueПроверка, выполнять лиCHANGEKEYв режиме редактирования свойства. Поддерживаемые значенияeditingValue:AUTO-> !(isEditing() && getEditElement().isOrHasChild(Element.as(event.getEventTarget())))ALL-> trueONLY-> isEditingNO-> !isEditing
-
showing = showingValueПроверка, показывается ли в данный момент свойство на форме. Поддерживаемые значенияshowingValue:AUTO,ONLY-> isShowingALL-> trueNO-> !isShowing
-
panel = panelValueПроверка, находится ли свойство в панели. Поддерживаемые значенияpanelValue:AUTO-> !isMouse || !isPanelALL-> trueONLY-> isPanelNO-> !isPanel
-
cell = cellValueПроверка, находится ли свойство в таблице. Поддерживаемые значенияcellValue:AUTO-> !isMouse || isCellALL-> trueONLY-> isCellNO-> !isCell
Для всех опций кроме
priorityзначением по умолчанию являетсяAUTO. -
-
SHOWКлючевое слово, при указании которого комбинация клавиш будет отображаться в заголовке свойства. Используется по умолчанию.
-
HIDEКлючевое слово, при указании которого комбинация клавиш не будет отображаться в заголовке свойства.
-
CHANGEMOUSE key [SHOW | HIDE]Указание комбинации клавиш мыши, при нажатии которых будет начато редактирование свойства. Устанавливает значение для дизайна по умолчанию, может быть переопределено в инструкции
DESIGN.key
Строковый литерал, описывающий комбинацию клавиш. Синтаксис:
keyStroke [;(modeKey=modeValue;)*]-
keyStrokeСтроковое представление комбинации клавиш мыши. В данный момент единственное поддерживаемое значение -DBLCLK- двойной клик. -
(modeKey=modeValue;)*Синтаксис полностью совпадает сCHANGEKEY. -
SHOWКлючевое слово, при указании которого комбинация клавиш мыши будет отображаться в заголовке свойства. Используется по умолчанию.
-
HIDEКлючевое слово, при указании которого комбинация клавиш мыши не будет отображаться в заголовке свойства.
-
STICKY|NOSTICKYКлючевые слова.
STICKYуказывает на то, что свойство в таблице будет прикреплено слева и при скроллинге вправо будет оставаться видимым.NOSTICKYснимает это закрепление. По умолчаниюSTICKYилиNOSTICKYвычисляется эвристически. -
syncTypeОпределяет, включены ли для свойства асинхронные действия:
WAIT- асинхронные действия выключены.NOWAIT- асинхронные действия включены. Это значение используется по умолчанию.
-
DEFAULTCOMPARE [compare]Указание для свойства типа фильтра по умолчанию.
-
compareТип фильтра по умолчанию. Строковый литерал. Может принимать следующие значения:
=,>,<,>=,<=,!=,CONTAINS,LIKE. По умолчанию принимает значение=для всех типов данных кроме строковых регистронезависимых, для которых принимает значениеCONTAINS. При включенной настройкеSystem.defaultCompareForStringContainsпо умолчанию принимает значениеCONTAINSдля всех строковых данных независимо от регистрозависимости. Может быть переопределено в инструкцииDESIGN.
-
-
EVENTID eventIdУказание для свойства специального режима обработки ввода.
-
eventIdСтроковый литерал. На данный момент поддерживается только значение
SCANNER. Включает специальный режим обработки нажатий клавиш для выявления ввода GS (group separator).
-
-
LAZY [WEAK | STRONG]Указание для свойства уровня кэширования.
WEAKозначает кэширование значения свойства на сервере приложений (если чтение идет для всех фиксированных параметров).STRONGозначает, что кэш будет очищаться не целиком при любом изменении свойства, а будет создаваться событие и будут очищаться конкретные значения. По умолчаниюWEAK.
Примеры
// cвойство задано контекстно-независимым оператором-свойством DATA
cost 'Стоимость' (i) = DATA NUMERIC[12,3] (Item);
// cвойство задано выражением
weightedSum 'Взвешенная сумма' (a, b) = 2*a + 3*b;
// заголовком этого свойства будет 'diff', а параметрами - (a, b)
diff = a - b;
// свойство задано оператором DATA с указанием дополнительных опций свойства
teamName 'Название команды' = DATA BPSTRING[30](Team) IN baseGroup TABLE team;