Перейти к содержимому
FastOffice

Реакция на щелчки и контекстное меню

Как обработать щелчок по листу, выделение и своё контекстное меню.

За смысл книги отвечает контракт операций, за события указателя — ваш интерфейс. Эти обязанности нужно держать раздельно:

Событие или задача Кто отвечает Что передавать
Щелчок и двойной щелчок Ваш интерфейс Координату, во что попали, текущее выделение
Контекстное меню Ваш интерфейс Тип объекта и разрешённые для него команды
Значение или формула ячейки Ядро sheetKey, row, col, inputKind, input
Отмена и повтор Ядро subsetId и направление
Сохранение Ядро subsetId и адрес назначения
{
"subsetId": "subset-...",
"sheetKey": "xl/worksheets/sheet1.xml",
"selection": { "top": 0, "left": 0, "rows": 1, "cols": 1 },
"hit": { "kind": "cell", "row": 0, "col": 0 },
"pointer": { "kind": "double-click", "button": 0 }
}

По такому объекту интерфейс решает, какое меню показать. Команда, меняющая книгу, затем превращается в строго типизированный запрос к ядру. Не отправляйте в ядро узлы разметки или куски HTML: оно работает с адресами ячеек и типами значений, а не с тем, что нарисовано на экране.

Ассистент документации

Ответ собран из документации и может быть неточным — сверяйтесь с источниками.