From 055dde4ea5cc4ae26eb570a4fb2d4bdead140411 Mon Sep 17 00:00:00 2001 From: ziajka Date: Wed, 29 Nov 2017 13:29:32 +0100 Subject: [PATCH] Passing node to context menu --- src/app/cartography/map/map.component.ts | 4 ++-- src/app/cartography/shared/widgets/nodes.widget.ts | 6 +++--- .../node-context-menu/node-context-menu.component.html | 6 +++--- .../node-context-menu/node-context-menu.component.ts | 9 +++++++-- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/app/cartography/map/map.component.ts b/src/app/cartography/map/map.component.ts index 6ac75e4c..0c719b52 100644 --- a/src/app/cartography/map/map.component.ts +++ b/src/app/cartography/map/map.component.ts @@ -94,8 +94,8 @@ export class MapComponent implements OnInit, OnChanges, OnDestroy { this.graphLayout = new GraphLayout(); this.graphLayout.draw(this.svg, this.graphContext); - this.graphLayout.getNodesWidget().setOnContextMenuCallback((event: any) => { - this.nodeContextMenu.open(event.clientY, event.clientX); + this.graphLayout.getNodesWidget().setOnContextMenuCallback((event: any, node: Node) => { + this.nodeContextMenu.open(node, event.clientY, event.clientX); }); } } diff --git a/src/app/cartography/shared/widgets/nodes.widget.ts b/src/app/cartography/shared/widgets/nodes.widget.ts index a6c0e71a..f09e343e 100644 --- a/src/app/cartography/shared/widgets/nodes.widget.ts +++ b/src/app/cartography/shared/widgets/nodes.widget.ts @@ -9,7 +9,7 @@ export interface NodeOnContextMenuListener { export class NodesWidget implements Widget { private onContextMenuListener: NodeOnContextMenuListener; - private onContextMenuCallback: (event: any) => void; + private onContextMenuCallback: (event: any, node: Node) => void; constructor() {} @@ -17,7 +17,7 @@ export class NodesWidget implements Widget { this.onContextMenuListener = onContextMenuListener; } - public setOnContextMenuCallback(onContextMenuCallback: (event: any) => void) { + public setOnContextMenuCallback(onContextMenuCallback: (event: any, node: Node) => void) { this.onContextMenuCallback = onContextMenuCallback; } @@ -50,7 +50,7 @@ export class NodesWidget implements Widget { .on("contextmenu", function (n: Node, i: number) { event.preventDefault(); if (self.onContextMenuCallback !== null) { - self.onContextMenuCallback(event); + self.onContextMenuCallback(event, n); } }); diff --git a/src/app/shared/node-context-menu/node-context-menu.component.html b/src/app/shared/node-context-menu/node-context-menu.component.html index 41c5c579..ff526bb0 100644 --- a/src/app/shared/node-context-menu/node-context-menu.component.html +++ b/src/app/shared/node-context-menu/node-context-menu.component.html @@ -1,11 +1,11 @@ -
+
- - diff --git a/src/app/shared/node-context-menu/node-context-menu.component.ts b/src/app/shared/node-context-menu/node-context-menu.component.ts index c7821712..623541be 100644 --- a/src/app/shared/node-context-menu/node-context-menu.component.ts +++ b/src/app/shared/node-context-menu/node-context-menu.component.ts @@ -1,6 +1,7 @@ import {ChangeDetectorRef, Component, Input, OnInit, ViewChild} from '@angular/core'; import {MatMenuTrigger} from "@angular/material"; import {DomSanitizer} from "@angular/platform-browser"; +import {Node} from "../../cartography/shared/models/node.model"; @Component({ @@ -13,8 +14,11 @@ export class NodeContextMenuComponent implements OnInit { private topPosition; private leftPosition; + private node: Node; - constructor(protected sanitizer: DomSanitizer, protected changeDetector: ChangeDetectorRef) {} + constructor( + private sanitizer: DomSanitizer, + private changeDetector: ChangeDetectorRef) {} ngOnInit() { this.setPosition(0, 0); @@ -26,7 +30,8 @@ export class NodeContextMenuComponent implements OnInit { this.changeDetector.detectChanges(); } - public open(top: number, left: number) { + public open(node: Node, top: number, left: number) { + this.node = node; this.setPosition(top, left); this.contextMenu.openMenu(); }