Выделить все ячейки на бумаге - jointjs
Недавно мы добавили функцию подсветки jointjs, чтобы показать пользователю, какие ячейки в данный момент выделены и выделены. Однако, если пользователь щелкает снаружи, мы хотим выделить все ячейки, которые нарисованы на бумаге. После изучения официальной документации мы не смогли найти решение для нашего требования.
Код для выделения cellView(s):
this.paper.on('cell:pointerclick', (cellView: any) => {
cellView.highlight();
});
1 ответ
Чтобы решить эту проблему, мы перебираем все cellViews, которые показаны на текущем документе (область), и вызываем функцию unhighlight. Эта логика помещена с blank:pointerdown
обратный вызов - так что мы обрабатываем все клики за пределами реальных cellViews.
this.paper.on('blank:pointerdown', (evt, x, y) => {
this.paper.findViewsInArea(this.paper.getArea()).forEach(cell => {
cell.unhighlight();
});
});
Надеюсь это поможет.