MCPcopy Create free account
hub / github.com/SuperMap/iClient-JavaScript / findHover

Method findHover

src/common/overlay/levelRenderer/Handler.js:557–636  ·  view source on GitHub ↗

* Method: findHover * 迭代函数,查找 hover 到的图形元素并即时做些事件分发。 * * Parameters: * shape - {Object} 图形。 * x - {number} 鼠标 x。 * y - {number} 鼠标 y。 * * Returns: * {boolean} 是否找到图形。 *

(shape, x, y)

Source from the content-addressed store, hash-verified

555 *
556 */
557 function findHover(shape, x, y) {
558 var me = this;
559 if (
560 (me._draggingTarget && me._draggingTarget.id == shape.id) // 迭代到当前拖拽的图形上
561 || shape.isSilent() // 打酱油的路过,啥都不响应的shape~
562 ) {
563 return false;
564 }
565
566 var event = me._event;
567 if (shape.isCover(x, y)) {
568 if (shape.hoverable) {
569 // SMIC-修改 - start
570 if (shape.isHoverByRefDataID && shape.isHoverByRefDataID === true) {
571 if (shape.refDataID) {
572 var fid = shape.refDataID;
573 //me.painter.clearHover();
574 //me.storage.delHover();
575
576 var hoverGroup = null;
577 if (shape.refDataHoverGroup) {
578 hoverGroup = shape.refDataHoverGroup;
579 }
580
581 //查找同一个用户数据 feature 的所有图形
582 var shapeList = me.storage._shapeList;
583 for (var i = 0, len = shapeList.length; i < len; i++) {
584 var si = shapeList[i];
585 if (si.refDataID && fid === si.refDataID) {
586 if (hoverGroup) {
587 if (si.refDataHoverGroup && hoverGroup === si.refDataHoverGroup) {
588 me.storage.addHover(si);
589 }
590 } else {
591 me.storage.addHover(si);
592 }
593 }
594 }
595 }
596 } else {
597 me.storage.addHover(shape);
598 }
599 //初始代码:
600 // me.storage.addHover(shape);
601 // SMIC-修改 - end
602 }
603 // 查找是否在 clipShape 中
604 var p = shape.parent;
605 while (p) {
606 if (p.clipShape && !p.clipShape.isCover(me._mouseX, me._mouseY)) {
607 // 已经被祖先 clip 掉了
608 return false;
609 }
610 p = p.parent;
611 }
612
613 if (me._lastHover != shape) {
614 me._processOutShape(event);

Calls 8

isSilentMethod · 0.80
isCoverMethod · 0.80
addHoverMethod · 0.80
_processOutShapeMethod · 0.80
_processDragLeaveMethod · 0.80
_processDragEnterMethod · 0.80
_processOverShapeMethod · 0.80
_processDragOverMethod · 0.80

Tested by

no test coverage detected