mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2025-04-20 16:20:48 +00:00
Passing node to context menu
This commit is contained in:
parent
0cc7b62526
commit
055dde4ea5
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
<div class="context-menu" [style.left]="leftPosition" [style.top]="topPosition">
|
||||
<div class="context-menu" [style.left]="leftPosition" [style.top]="topPosition" *ngIf="node">
|
||||
<span [matMenuTriggerFor]="contextMenu"></span>
|
||||
<mat-menu #contextMenu="matMenu">
|
||||
<button mat-menu-item>
|
||||
<button mat-menu-item *ngIf="node.status == 'stopped'">
|
||||
<mat-icon>play_arrow</mat-icon>
|
||||
<span>Start</span>
|
||||
</button>
|
||||
<button mat-menu-item>
|
||||
<button mat-menu-item *ngIf="node.status == 'started'">
|
||||
<mat-icon>stop</mat-icon>
|
||||
<span>Stop</span>
|
||||
</button>
|
||||
|
@ -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();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user