@@ -6,9 +6,9 @@ import {EditableNodeDirective} from './editable-node.directive.ts';
66@Component ( {
77 selector : 'ng2-tree' ,
88 template : `
9- <ul class="tree" (keyup)="cancelActions($event)">
9+ <ul *ngIf="tree" class="tree" (keyup)="cancelActions($event)">
1010 <li>
11- <div (mouseup )="showMenu($event)">
11+ <div (contextmenu )="showMenu($event)">
1212 <span class="folding" (click)="switchFolding($event, tree)" [ngClass]="foldingType(tree)"></span>
1313 <span class="node-value" *ngIf="!edit">{{tree.value}}</span>
1414 <input type="text" class="node-value" editable [nodeValue]="tree.value" (valueChanged)="applyNewValue($event, tree)" *ngIf="edit"/>
@@ -17,7 +17,7 @@ import {EditableNodeDirective} from './editable-node.directive.ts';
1717 <ul class="node-menu-content">
1818 <li (click)="rename($event, tree)">Rename node</li>
1919 <li>Add node</li>
20- <li>Remove node</li>
20+ <li (click)="remove($event, tree)" >Remove node</li>
2121 </ul>
2222 </div>
2323 <ng2-tree *ngFor="#child of tree.children" [tree]="child"></ng2-tree>
@@ -95,7 +95,14 @@ export class Ng2Tree implements OnInit {
9595 }
9696 }
9797
98- private showMenu ( $event : any ) : void {
98+ private remove ( $event : any , node : any ) {
99+ if ( $event . which === 1 ) {
100+ this . treeService . emitRemoveEvent ( { node} ) ;
101+ this . isMenuVisible = false ;
102+ }
103+ }
104+
105+ private showMenu ( $event : MouseEvent ) : void {
99106 if ( $event . which === 3 ) {
100107 this . isMenuVisible = ! this . isMenuVisible ;
101108 this . treeService . emitMenuEvent ( { sender : this , action : 'close' } )
@@ -119,5 +126,18 @@ export class Ng2Tree implements OnInit {
119126 this . isMenuVisible = false ;
120127 }
121128 } )
129+
130+ this . treeService . removeNodeEventStream ( )
131+ . subscribe ( removeEvent => {
132+ if ( ! this . tree || ! this . tree . children ) return ;
133+ for ( let i = 0 ; i < this . tree . children . length ; i ++ ) {
134+ const child = this . tree . children [ i ] ;
135+ if ( child === removeEvent . node ) {
136+ delete this . tree . children [ i ] ;
137+
138+ break ;
139+ }
140+ }
141+ } )
122142 }
123143}
0 commit comments