Выделить все ячейки на бумаге - 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();
             });
        });

Надеюсь это поможет.

Другие вопросы по тегам