Расширенная настройка > Использование повторно используемых компонентов > Доступные повторно используемые компоненты > Панель действий
  
Панель действий
Определение и использование
Повторно используемый компонент "Панель действий" представляет собой виджет, отображающий набор действий, доступных пользователю. Действия отображаются в виде ряда кнопок и в сопутствующем выпадающем меню. Число действий, которые отображаются в виде кнопок, определяется конфигурацией компонента и размером экрана пользователя. Действия, которые не отображаются в виде кнопок, отображаются в выпадающем меню. Можно сконфигурировать повторно используемый компонент "Панель действий" следующими способами.
Определить действия, которые будут включены в панель действий
Задать максимальное число действий для показа в виде кнопок
Задать опции видимости для действий в зависимости от их доступности
Определить порядок действий
Определить, требуются ли для действия входные данные
Выбрать нужный стиль для панели действий
Действия предназначены для активации сервиса или всплывающего окна. Сервис или мэшап всплывающего окна необходимо отдельно сконфигурировать в ThingWorx. Любые дополнительные возможности, такие как всплывающие сообщения, должны быть сконфигурированы в соответствующем сервисе или мэшапе в ThingWorx.
Панель действий включается в повторно используемые компоненты "Список элементов" и "Идентификация элементов".
На приведенном ниже изображении показан повторно используемый компонент "Панель действий":
Не существует предопределенных конфигураций, доступных для повторно используемого компонента "Панель действий".
Свойства привязки
Существует восемь свойств компонента "Панель действий", доступных для связывания:
Disabled - логическое значение, которое выключает виджет в мэшапе.
EventTriggered - событие, которое инициируется при завершении работы сервиса или при отображении всплывающего окна, если при конфигурировании этого действия для свойства fireEventOnFinish задано true.
Input - объект JSON, представляющий собой идентификатор входного параметра, для которого необходимо получить данные из серверной системы. Эта информация должна быть указана в формате CCO (Common Communication Object).
PopupClosed - событие, которое инициируется при закрытии открытого всплывающего окна.
ServiceActionId - строка, в которой обновляется идентификатор действия для действия сервиса, если щелкнуть это действие.
ServiceActionIdChanged - событие, которое инициируется при изменении значения ServiceActionId, свидетельствующем о завершении выполнения сервиса, вызванного на панели действий.
SubComponentConfiguration - объект JSON, который может быть связан с файлом конфигурации JSON, если файл конфигурации JSON изменяется во время выполнения. Если конфигурация не изменяется во время выполнения, используйте поля конфигурации, описанные в следующем разделе.
Поля конфигурации
В следующих таблицах показаны поля JSON, которые можно использовать для конфигурирования этого компонента.
Имя свойства
Описание
Тип
Значение по умолчанию
Обязательное или необязательное
maxItemsToShow
Максимальное число отображаемых кнопок действий. Если кнопок действий больше, чем данное указанное значение, в выпадающем меню будут отображены дополнительные действия.
Целое число
2
Обязательный
modelThingName
Имя вещи, содержащей сервис со следующей сигнатурой:
public JSONObject GetActions(@ThingworxServiceParameter(name = "ccoJson", baseType = "JSON") JSONObject ccoJson)
Этот сервис получает входные данные в формате CCO (Common Communication Object), содержащем один элемент. Затем он возвращает JSONObject, содержащий массив, который сопоставляет идентификатор доступного действия с его меткой, полученной из серверной системы. См. приведенный ниже пример с образцом конфигурации JSON.
Строка
"PTC.ActionBar Model.Thing"
Обязательный
actions
Действия, доступные на панели действий. См. подсвойство:
Строка
Н/Д
Обязательный
id
ИД действия, полученного из серверной системы. См. подсвойства, приведенные в следующей таблице.
Строка
Н/Д
Обязательный
objectType
Тип объекта, для которого должны быть вызваны действия.
Строка
Н/Д
Обязательный
adapter
Исходная конфигурация для серверной системы. См. подсвойства:
Строка
Н/Д
Обязательный
instanceName
Экземпляр соединителя, то есть соединитель, который должен использоваться для соединения с серверной системой.
Строка
"windchill"
Обязательный
thingName
Наименование серверной системы или адаптера, из которого загружаются данные.
Строка
"PTC.WCAdapter"
Обязательный
Поля конфигурации для id
Имя свойства
Описание
Тип
Значение по умолчанию
Обязательное или необязательное
overrideLabel
Здесь набор значений представлен меткой кнопки действия, которая переопределяет значение, поступающее из серверной системы. Для локализации заключите это значение в двойные скобки.
Строка
Н/Д
Необязательный
actionButtonVisibility
Определяет, при каких условиях отображаются кнопки действий и в каком состоянии. Опции: AlwaysShown, DisableUnavailable, HideUnavailable. Кнопка AlwaysShown всегда видима и включена. Кнопка DisableUnavailable всегда видима, но отключена, если действие недоступно для данного выбора. Кнопка HideUnavailable видима, только если действие доступно для данного выбора.
Примечание. Существуют другие конфигурации, определяющие, должна ли кнопка быть включена или выключена.
Строка
Н/Д
Обязательный
buttonStyle
Определяет визуальный стиль кнопки. Опции: primary, secondary, tertiary, danger, transparent.
Строка
Н/Д
Обязательный
overrideSetDisabled
Если это поле задано, то его значение будет единственным фактором, определяющим включение или выключение кнопки. Опции: true, false. При значении true эта кнопка будет выключена, а при значении false - включена.
Логический
Н/Д
Необязательный
activityType
Определяет, запускает ли данное действие сервис или отображает всплывающий мэшап. Опции: popup, service. В приведенных ниже таблицах представлены необходимые подсвойства для всплывающего окна и для сервиса.
Строка
Н/Д
Обязательный
fireEventOnFinish
Если для этого поля задано значение true, при завершении работы сервиса инициируется событие EventTriggered, а при закрытии всплывающего окна инициируется событие PopupClosed.
Логический
Н/Д
Необязательный
inputConstraints
Определяет ограничение входных данных для этого действия. Опции: InputRequired, SingleInputOnly и NoInputRequired.
InputRequired - это действие должно получать входные данные для работы. При пустых входных данных, когда они не содержат ни одного элемента, кнопка этого действия выключена.
SingleInputOnly - это действие должно получать один входной параметр для работы. Если входные данные пустые или содержат более одного элемента, кнопка этого действия выключена.
NoInputRequired - это действие может выполняться без входных данных или с входными данными.
Строка
Н/Д
Необязательный
ordinal
Порядок, в котором отображаются кнопки действий. Действие с наименьшим порядковым номером отображается в начальном крайнем левом положении. Разрешены отрицательные значения.
Целое число
Н/Д
Обязательный
iconWhenEnabled
Если это поле указано, то кнопка действия, когда она включена, содержит соответствующий значок слева от метки.
Строка
Н/Д
Необязательный
entityName
Наименование медиаобъекта, который должен использоваться в качестве значка.
Строка
Н/Д
Необязательный
iconWhenDisabled
Если это поле указано, то кнопка действия, когда она выключена, содержит соответствующий значок слева от метки.
Строка
Н/Д
Необязательный
entityName
Наименование медиаобъекта, который должен использоваться в качестве значка.
Строка
Н/Д
Необязательный
Подсвойства activityType для popup
Имя свойства
Описание
Тип
Значение по умолчанию
Обязательное или необязательное
mashupName
Имя мэшапа, которое отображается в виде всплывающего окна.
Строка
Н/Д
Обязательный
redirectAfterPopupSuccess
Перенаправляет в другой мэшап, если всплывающее окно закрылось после успешной операции.
Чтобы передать в панель действий информацию об успешном или неуспешном завершении операции, выполняемой всплывающим окном, необходимо задать для параметра PTC.ActionBar.popupCloseParameters сессии значение, обозначающее, соответственно, успешное завершение или сбой. Например, мэшап всплывающего окна может содержать выражение, вычисляемое по завершении операции, выполняемой всплывающим окном, а в этом выражении задан параметр сессии. В следующем примере атрибут JSON operationSuccessful имеет значение true, после того как операция была успешно выполнена:
sessionStorage.setItem("PTC.ActionBar.popupCloseParameters", JSON.stringify( { operationSuccessful: true } ));
Строка
Н/Д
Необязательный
popupWidth
Определяет ширину появляющегося всплывающего окна. Если это поле оставлено пустым, ширина всплывающего окна по умолчанию будет равна 1024.
Целое число
Н/Д
Необязательный
popupHeight
Определяет ширину появляющегося всплывающего окна. Если это поле оставлено пустым, ширина всплывающего окна по умолчанию будет равна 640.
Целое число
Н/Д
Необязательный
Подсвойства activityType для service
Имя свойства
Описание
Тип
Значение по умолчанию
Обязательное или необязательное
thingWithService
Наименование вещи, содержащей сервис, который будет выполняться.
Строка
Н/Д
Обязательный
serviceName
Имя сервиса, который должен выполняться.
Строка
Н/Д
Обязательный
parameters
Это необязательное поле позволяет передавать в сервис жестко закодированные параметры. Параметры определяются в JSONObject, но должны иметь формат строки объекта JSON с обратной косой чертой и кавычками. Параметры необходимо вводить в файл конфигурации в формате "{\"myParamName\": \"hardcodedValue\"}" . Дополнительные сведения см. ниже.
StringRepresentationOfJSONObject
Н/Д
Необязательный
Использование parameters для конфигурирования действия сервиса
Предположим, что существует сервис с наименованием MyService со следующей сигнатурой:
@ThingworxServiceDefinition(name = "MyService", category = "MyCategory")
public void MyService(
@ThingworxServiceParameter(name = "exampleInt", baseType = "INTEGER") Integer exampleInt,
@ThingworxServiceParameter(name = "ExampleString", baseType = "STRING") String exampleString,
@ThingworxServiceParameter(name = "ExampleBoolean", baseType = "BOOLEAN") Boolean exampleBoolean)
Значения параметров для MyService имеют следующий вид:
{
\"exampleInt\": 123,
\"exampleString\": \"Hello\",
\"exampleBoolean\": true
}
* 
Существует два параметра, которые сервис получает автоматически, если определена сигнатура сервиса для их получения: serviceParam_InputCco и serviceParam_ActionId. Параметр serviceParam_InputCco - это JSONObject и входное значение, предоставляемое на панели действий. Параметр serviceParam_ActionId - это строка, содержащая ИД действия, которое было выбрано. Если эти параметры не включены в сигнатуру сервиса, их нельзя использовать. Если нужно использовать эти параметры, определите свою сигнатуру сервиса для использования любого из них или обоих, выполнив следующие действия.
@ThingworxServiceDefinition(name = "MyService", category = "MyCategory")
public void MyService(
@ThingworxServiceParameter(name = "serviceParam_InputCco", baseType = "JSON")
JSONObject serviceParam_InputCco,
@ThingworxServiceParameter(name = "serviceParam_ActionId", baseType = "STRING")
String serviceParam_ActionId)
Пример конфигурации
{
"maxItemsToShow": {
"value": 3
},
"modelThingName": {
"entityName": "PTC.ActionBarModel.Thing"
},
"actions": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "Approve",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 1
}, {
"id": "Reject",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 2
}, {
"id": "Analyze",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 3
}, {
"id": "Reassign",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": "Reassign"
},
"actionButtonVisibility": {
"selectedKey": "AlwaysShown"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.ReassignActionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "InputRequired"
}
}
},
"ordinal": 4
}
],
"objectType": "WT.WorkItem.Actions"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
}