Skip to content

Commit 0d29e70

Browse files
authored
feat(dia.ElementView): add getTargetParentView() method (#2748)
1 parent ca80b2c commit 0d29e70

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

packages/joint-core/src/dia/ElementView.mjs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,11 @@ export const ElementView = CellView.extend({
540540
}
541541
},
542542

543+
getTargetParentView: function(evt) {
544+
const { candidateEmbedView = null } = this.eventData(evt);
545+
return candidateEmbedView;
546+
},
547+
543548
getDelegatedView: function() {
544549

545550
var view = this;

packages/joint-core/test/jointjs/embedding.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,4 +396,38 @@ QUnit.module('embedding', function(hooks) {
396396
}), 'All links were brought to front.');
397397
});
398398

399+
QUnit.test('getTargetParentView()', function(assert) {
400+
401+
let evt;
402+
403+
const r1 = new joint.shapes.standard.Rectangle({
404+
position: { x: 100, y: 100 },
405+
size: { width: 100, height: 100 }
406+
});
407+
const r2 = new joint.shapes.standard.Rectangle({
408+
position: { x: 500, y: 500 },
409+
size: { width: 100, height: 100 }
410+
});
411+
412+
this.graph.addCells([r1, r2]);
413+
414+
const v1 = r1.findView(this.paper);
415+
const v2 = r2.findView(this.paper);
416+
417+
evt = new $.Event({ target: v1.el });
418+
assert.equal(v2.getTargetParentView(evt), null);
419+
v2.pointerdown(evt, 500, 500);
420+
v2.pointermove(evt, 600, 600);
421+
assert.equal(v2.getTargetParentView(evt), null);
422+
v2.pointerup(evt, 600, 600);
423+
assert.equal(v2.getTargetParentView(evt), null);
424+
425+
evt = new $.Event({ target: v1.el });
426+
v2.pointerdown(evt, 600, 600);
427+
v2.pointermove(evt, 100, 100);
428+
assert.equal(v2.getTargetParentView(evt), v1);
429+
v2.pointerup(evt, 100, 100);
430+
assert.equal(v2.getTargetParentView(evt), null);
431+
assert.equal(r2.get('parent'), r1.id);
432+
});
399433
});

packages/joint-core/types/joint.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -989,6 +989,8 @@ export namespace dia {
989989

990990
getDelegatedView(): ElementView | null;
991991

992+
getTargetParentView(evt: dia.Event): CellView | null;
993+
992994
findPortNode(portId: string | number): SVGElement | null;
993995
findPortNode(portId: string | number, selector: string): E | null;
994996

0 commit comments

Comments
 (0)