Объект выборки¶
Доступ к главной выборке:
Selection mainSelection = form.mainSelection();
Доступ к детальной выборке:
Selection selection = form.selection("gtk-ru.bitec.app.gs3.qa.composer.collections.Gs3_QACollectionFirst", "List_idReference");
See also
Руководство пользователя: Объект формы
Операции с выборкой¶
В контексте выборки можно выполнять ряд стандартных операций.
Выполнение операции:
selection.executeOperation("mm_forms_ReferenceMdiCard");
Выполнение JEXL-скрипта:
selection.executeJexl("selection.setVar('scaption', 'Название 2')");
See also
Руководство пользователя Настройка сервера приложений
Конфигурация:
Configuration.Client.Automation.operExecution
Конфигурация:
Configuration.Client.Automation.jexlExecution
Руководство пользователя: Аннотации
Выбор записи выборки по заданным критериям:
Map<String, Object> propertyMap = new HashMap<>();
propertyMap.put("id", 60);
Object locateResult = selection.locate(propertyMap, new Selection.LocateOption[] {Selection.LocateOption.Nearest, Selection.LocateOption.Next});
Доступ к элементам выборки¶
В объекте выборки доступны её разметка
и фрейм
.
На фрейме доступны панель инструментов
,
панель вкладок
и представление выборки
.
Layout layout = selection.layout();
Frame frame = layout.frame();
ToolBar toolBar = frame.toolbar();
TabPanel tabPanel = frame.tabpanel();
AbstractView view = frame.view();
Панель инструментов позволяет взаимодействовать с её кнопками.
ToolBar toolBar = frame.toolbar();
ToolButton closeButton = toolBar.button(StandardOperations.CLOSE_FORM_CANCEL);
closeButton.click();
Панель вкладок позволяет переключаться между вкладками формы.
TabPanel tabPanel = frame.tabpanel();
tabPanel.itemByCaption("Коллекция первая").click();
tabPanel.itemByCaption("Коллекция вторая").click();
Note
Панель вкладок можно получить и через компоновщик
разметки выборки:
frame.layout().<TabComposer>composer().tabpanel().itemByCaption("Коллекция первая");
Представление выборки¶
Перед использованием представления выборки
нужно привести его к конкретному типу.
AbstractView view = frame.view();
if ( view != null) {
if ( view.is(Grid.class) ) {
Grid grid = view.cast();
} else if ( view.is(Card.class) ) {
Card card = view.cast();
}
}
Типы представления Card
и Grid
являются основными типами представления выборки.
Общий принцип работы с представлениями:
Получить с представления
поле
по его названию.Получить значение из этого поля или установить новое значение.
Повторить для других полей на представлении.
See also
Руководство пользователя: Объект поля ввода
API:
ru.bitec.gs.automation.client.ui.layout.view.table.Grid
Карточное представление (Card)¶
Использование полей на карточном представлении:
Field field = card.field("SCAPTION");
Object originalValue = field.value();
field.setValue("Новый заголовок");
Если редактор в поле является “редактором с кнопками”, то нужно кликнуть кнопкой мышки в нужную кнопку редактора. Это вернет соответствующий редактор выбора. С редактором выбора нужно взаимодействовать исходя из его структуры.
ComboBox<?> field = card.field("PCOMBOBOX");
List<AbstractButtonsInputBox.InboxButton> buttons = field.buttons(); // (1)
AbstractButtonsInputBox.InboxButton button = buttons.get(0);
button.click(); // (2)
GridDropDown dropDown = field.waitDropdown(); // (3)
Rows rows = dropDown.getRows(); // (4)
int lastRowIndex = rows.size() - 1;
Row row = dropDown.getRowByIndex(lastRowIndex); // (5)
row.click(); // (6)
В примере используется “поле с комбобоксом
”.
Действия:
Из поля получается список кнопок
Выполняется клик кнопкой мышки в самую первую кнопку редактора (индексация начинается с нуля)
Выполняется ожидание появления выпадающего списка комбобокса
Из комбобокса получаются все строки списка (используются для вычисления количества строк)
Ищется последняя строка по индексу (индексация начинается с нуля)
Выполняется клик кнопкой мышки в найденную строку.
В результате, в поле вводится выбранное значение.
Табличное представление (Grid)¶
В табличном представлении необходимо учитывать положение
ячейки
,
так как поле связано с конкретной строкой
и столбцом
:
Cell cell = grid.getCell(42, "SMEMO");
MemoBox memoBox = cell.field();
memoBox.setValue("Новая заметка");
Ссылка на ячейку получается по индексу (начиная с нуля) строки и названию поля, отображаемого в колонке.
See also
Руководство пользователя: Объект табличного представления